Package Usage: go: go.opentelemetry.io/otel/metric
Package metric provides the OpenTelemetry API used to measure metrics about
source code operation.
This API is separate from its implementation so the instrumentation built from
it is reusable. See go.opentelemetry.io/otel/sdk/metric for the official
OpenTelemetry implementation of this API.
All measurements made with this package are made via instruments. These
instruments are created by a Meter which itself is created by a
MeterProvider. Applications need to accept a MeterProvider implementation
as a starting point when instrumenting. This can be done directly, or by using
the OpenTelemetry global MeterProvider via GetMeterProvider. Using an
appropriately named Meter from the accepted MeterProvider, instrumentation
can then be built from the Meter's instruments.
Each instrument is designed to make measurements of a particular type. Broadly,
all instruments fall into two overlapping logical categories: asynchronous or
synchronous, and int64 or float64.
All synchronous instruments (Int64Counter, Int64UpDownCounter,
Int64Histogram, Float64Counter, Float64UpDownCounter, and
Float64Histogram) are used to measure the operation and performance of source
code during the source code execution. These instruments only make measurements
when the source code they instrument is run.
All asynchronous instruments (Int64ObservableCounter,
Int64ObservableUpDownCounter, Int64ObservableGauge,
Float64ObservableCounter, Float64ObservableUpDownCounter, and
Float64ObservableGauge) are used to measure metrics outside of the execution
of source code. They are said to make "observations" via a callback function
called once every measurement collection cycle.
Each instrument is also grouped by the value type it measures. Either int64 or
float64. The value being measured will dictate which instrument in these
categories to use.
Outside of these two broad categories, instruments are described by the
function they are designed to serve. All Counters (Int64Counter,
Float64Counter, Int64ObservableCounter, and Float64ObservableCounter) are
designed to measure values that never decrease in value, but instead only
incrementally increase in value. UpDownCounters (Int64UpDownCounter,
Float64UpDownCounter, Int64ObservableUpDownCounter, and
Float64ObservableUpDownCounter) on the other hand, are designed to measure
values that can increase and decrease. When more information needs to be
conveyed about all the synchronous measurements made during a collection cycle,
a Histogram (Int64Histogram and Float64Histogram) should be used. Finally,
when just the most recent measurement needs to be conveyed about an
asynchronous measurement, a Gauge (Int64ObservableGauge and
Float64ObservableGauge) should be used.
See the OpenTelemetry documentation for more information about instruments
and their intended use.
OpenTelemetry defines an instrument name syntax that restricts what
instrument names are allowed.
Instrument names should ...
To ensure compatibility with observability platforms, all instruments created
need to conform to this syntax. Not all implementations of the API will validate
these names, it is the callers responsibility to ensure compliance.
Measurements are made by recording values and information about the values with
an instrument. How these measurements are recorded depends on the instrument.
Measurements for synchronous instruments (Int64Counter, Int64UpDownCounter,
Int64Histogram, Float64Counter, Float64UpDownCounter, and
Float64Histogram) are recorded using the instrument methods directly. All
counter instruments have an Add method that is used to measure an increment
value, and all histogram instruments have a Record method to measure a data
point.
Asynchronous instruments (Int64ObservableCounter,
Int64ObservableUpDownCounter, Int64ObservableGauge,
Float64ObservableCounter, Float64ObservableUpDownCounter, and
Float64ObservableGauge) record measurements within a callback function. The
callback is registered with the Meter which ensures the callback is called once
per collection cycle. A callback can be registered two ways: during the
instrument's creation using an option, or later using the RegisterCallback
method of the Meter that created the instrument.
If the following criteria are met, an option (WithInt64Callback or
WithFloat64Callback) can be used during the asynchronous instrument's
creation to register a callback (Int64Callback or Float64Callback,
respectively):
If the criteria are not met, use the RegisterCallback method of the Meter that
created the instrument to register a Callback.
This package does not conform to the standard Go versioning policy, all of its
interfaces may have methods added to them without a package major version bump.
This non-standard API evolution could surprise an uninformed implementation
author. They could unknowingly build their implementation in a way that would
result in a runtime panic for their users that update to the new API.
The API is designed to help inform an instrumentation author about this
non-standard API evolution. It requires them to choose a default behavior for
unimplemented interface methods. There are three behavior choices they can
make:
All interfaces in this API embed a corresponding interface from
go.opentelemetry.io/otel/metric/embedded. If an author wants the default
behavior of their implementations to be a compilation failure, signaling to
their users they need to update to the latest version of that implementation,
they need to embed the corresponding interface from
go.opentelemetry.io/otel/metric/embedded in their implementation. For
example,
If an author wants the default behavior of their implementations to a panic,
they need to embed the API interface directly.
This is not a recommended behavior as it could lead to publishing packages that
contain runtime panics when users update other package that use newer versions
of go.opentelemetry.io/otel/metric.
Finally, an author can embed another implementation in theirs. The embedded
implementation will be used for methods not defined by the author. For example,
an author who wants to default to silently dropping the call can use
go.opentelemetry.io/otel/metric/noop:
It is strongly recommended that authors only embed
go.opentelemetry.io/otel/metric/noop if they choose this default behavior.
That implementation is the only one OpenTelemetry authors can guarantee will
fully implement all the API interfaces when a user updates their API.
51 versions
Latest release: 4 months ago
8,263 dependent packages
View more package details: https://packages.ecosyste.ms/registries/proxy.golang.org/packages/go.opentelemetry.io/otel/metric
View more repository details: http://repos.ecosyste.ms/hosts/GitHub/repositories/open-telemetry%2Fopentelemetry-go
Dependent Repos 40,014
kmodules/resource-metadata
API for defining metadata about Kubernetes resourcesSize: 85.4 MB - Last synced: 4 days ago - Pushed: 4 days ago

brotherlogic/logging
Logging for systemSize: 2.76 MB - Last synced: 15 days ago - Pushed: 16 days ago

ossf/scorecard-action
Official GitHub Action for OpenSSF Scorecard.Size: 6.93 MB - Last synced: about 6 hours ago - Pushed: 5 days ago

zeromike/syft Fork of anchore/syft
CLI tool and library for generating a Software Bill of Materials from container images and filesystemsSize: 10.4 MB - Last synced: 11 months ago - Pushed: almost 3 years ago

aberja/argo Fork of argoproj/argo-workflows
Argo Workflows: Get stuff done with Kubernetes.Size: 66.8 MB - Last synced: 11 months ago - Pushed: about 2 years ago

krasish/test-infra Fork of kyma-project/test-infra
Test infrastructure for the Kyma project.Size: 15.3 MB - Last synced: about 2 years ago - Pushed: about 2 years ago

philip-teleport/teleport Fork of gravitational/teleport
Certificate authority and access plane for SSH, Kubernetes, web apps, databases and desktopsSize: 521 MB - Last synced: about 1 year ago - Pushed: about 1 year ago

spolti/kie-cloud-operator Fork of kiegroup/kie-cloud-operator
OCP Operator for KIESize: 100 MB - Last synced: 7 months ago - Pushed: over 1 year ago

cheqd/tendermint Fork of tendermint/tendermint
⟁ Tendermint Core (BFT Consensus) in GoSize: 142 MB - Last synced: 11 months ago - Pushed: over 2 years ago

ahmedabu98/beam Fork of apache/beam
Apache Beam is a unified programming model for Batch and StreamingSize: 392 MB - Last synced: 5 days ago - Pushed: 5 days ago

fahedouch/crossplane-runtime Fork of crossplane/crossplane-runtime
A set of libraries for writing Crossplane controllers.Size: 2.37 MB - Last synced: 11 months ago - Pushed: 11 months ago

nakamasato/mysql-operator
Manage MySQL users, databases, schemas, etc.Size: 1.75 MB - Last synced: 1 day ago - Pushed: 1 day ago

observIQ/grafana-agent Fork of grafana/agent
Telemetry agent for the LGTM stack.Size: 48.3 MB - Last synced: over 1 year ago - Pushed: over 1 year ago

tharun208/loki Fork of grafana/loki
Like Prometheus, but for logs.Size: 168 MB - Last synced: about 1 year ago - Pushed: about 2 years ago




overmindtech/stdlib-source
Standard library for global itemsSize: 926 KB - Last synced: 4 months ago - Pushed: 4 months ago

antonyggvzvmnxxcx/linkerd2 Fork of linkerd/linkerd2
Ultralight, security-first service mesh for Kubernetes. Main repo for Linkerd 2.x.Size: 33.5 MB - Last synced: about 2 years ago - Pushed: about 2 years ago

jan--f/telemeter Fork of openshift/telemeter
Prometheus push federationSize: 35 MB - Last synced: almost 2 years ago - Pushed: almost 2 years ago

gtully/activemq-artemis-operator Fork of arkmq-org/activemq-artemis-operator
Size: 55.8 MB - Last synced: 16 days ago - Pushed: 17 days ago

rancher-max/rancher Fork of rancher/rancher
Complete container management platformSize: 140 MB - Last synced: about 1 month ago - Pushed: about 1 month ago

carlkyrillos/integreatly-operator Fork of integr8ly/integreatly-operator
An Openshift Operator based on the Operator SDK for installing and reconciling Integreatly servicesSize: 128 MB - Last synced: 6 months ago - Pushed: 6 months ago

mdisibio/tempo Fork of grafana/tempo
Grafana Tempo is a high volume, minimal dependency trace storage.Size: 159 MB - Last synced: 6 days ago - Pushed: 6 days ago

FairwindsOps/insights-cli
A command line tool for Fairwinds InsightsSize: 23.4 MB - Last synced: 14 days ago - Pushed: 26 days ago

paketo-buildpacks/go
A Cloud Native Buildpack for GoSize: 83.2 MB - Last synced: 1 day ago - Pushed: 1 day ago

paketo-buildpacks/dotnet-core
A Cloud Native Buildpack for .NET CoreSize: 176 MB - Last synced: 4 days ago - Pushed: 4 days ago


influxdata/influxdb-observability
Size: 1.8 MB - Last synced: 20 days ago - Pushed: about 1 month ago

stolostron/governance-policy-template-sync Fork of open-cluster-management-io/governance-policy-template-sync 📦
Size: 6.81 MB - Last synced: 11 months ago - Pushed: almost 2 years ago

Zondax/rosetta-filecoin-lib
Size: 455 KB - Last synced: about 1 month ago - Pushed: about 1 month ago

RafaySystems/terraform-provider-rafay
Rafay terraform providerSize: 6.56 MB - Last synced: 10 days ago - Pushed: 10 days ago

IBM/ibm-commonui-operator
Operator used to install the common webui serviceSize: 45.8 MB - Last synced: 7 days ago - Pushed: 7 days ago

outscale/cluster-api-provider-outscale
Cluster API Provider for Outscale enables automated Kubernetes cluster management on Outscale’s cloud, integrating with Cluster API for seamless scaling and deployment.Size: 16.8 MB - Last synced: 5 days ago - Pushed: 5 days ago

Cha0sIDL/ZeroBot-Plugin Fork of FloatTech/ZeroBot-Plugin
基于 ZeroBot 的 OneBot 插件Size: 28.4 MB - Last synced: 11 months ago - Pushed: over 1 year ago

sapcc/absent-metrics-operator
Absent Metrics Operator creates metric absence alerts atop KubernetesSize: 17 MB - Last synced: 4 days ago - Pushed: 9 days ago

stolostron/multicloud-operators-subscription-release
Managing helm release with operators for multicloud.Size: 1.63 MB - Last synced: 25 days ago - Pushed: about 2 years ago

berty/labs
Berty Labs is a mobile app to explore IPFS on mobileSize: 3.44 MB - Last synced: 23 days ago - Pushed: about 2 years ago


elisasre/kops-autoscaler-openstack
Provide AutoScalingGroup capability to OpenStack KopsSize: 17.7 MB - Last synced: about 4 hours ago - Pushed: about 5 hours ago

apache/submarine 📦
Submarine is Cloud Native Machine Learning Platform.Size: 29.3 MB - Last synced: about 24 hours ago - Pushed: about 1 year ago

ekmixon/istio Fork of istio/istio
Connect, secure, control, and observe services.Size: 199 MB - Last synced: 14 days ago - Pushed: 15 days ago

stashed/apimachinery
Stash API types and client-goSize: 52.9 MB - Last synced: 20 days ago - Pushed: 2 months ago

vinted/prometheus Fork of prometheus/prometheus
The Prometheus monitoring system and time series database.Size: 173 MB - Last synced: 5 months ago - Pushed: 5 months ago

choria-io/provisioner
Choria Server Provisioning SystemSize: 4.62 MB - Last synced: 19 days ago - Pushed: 27 days ago

sigstore/rekor-monitor
Log monitor for Rekor to verify immutability and monitor entriesSize: 1.86 MB - Last synced: 6 days ago - Pushed: 6 days ago

codeboten/opentelemetry-lambda Fork of open-telemetry/opentelemetry-lambda
Size: 1.59 MB - Last synced: over 1 year ago - Pushed: over 1 year ago

moov-io/irs
Internal Revenue Service (IRS) Filing Information Returns Electronically (FIRE)Size: 1.42 MB - Last synced: 12 days ago - Pushed: 12 days ago

moov-io/ach-test-harness
Programmatic and configurable ACH scenario testing of returns, NOC/corrections, reconciliation, etc.Size: 1.07 MB - Last synced: 12 days ago - Pushed: 12 days ago

openshift/cluster-kube-descheduler-operator
An operator to run descheduler on OpenShift.Size: 76.3 MB - Last synced: 7 days ago - Pushed: 7 days ago

rogue73/hugo Fork of gohugoio/hugo
The world’s fastest framework for building websites.Size: 109 MB - Last synced: about 2 years ago - Pushed: about 2 years ago

akram/origin Fork of openshift/origin
Enterprise Kubernetes for DevelopersSize: 1.18 GB - Last synced: 6 months ago - Pushed: 6 months ago

tts-tblock/kubernetes-client Fork of fabric8io/kubernetes-client
Java client for Kubernetes & OpenShiftSize: 449 MB - Last synced: about 2 years ago - Pushed: about 2 years ago

bf2fc6cc711aee1a0c2a/cos-tools
Tools and support script for the Managed Connector ServiceSize: 22.9 MB - Last synced: 11 months ago - Pushed: almost 2 years ago
