OBI exported metrics
আপনি এই পৃষ্ঠার ইংরেজি সংস্করণ দেখছেন কারণ এটি এখনও সম্পূর্ণভাবে অনুবাদ করা হয়নি। সাহায্য করতে আগ্রহী? দেখুন Contributing।
The following table shows selected exported metrics in OpenTelemetry and Prometheus format. For the complete v0.15.2 metric definitions, including MCP, GPU, and runtime metrics, see the OBI telemetry catalog.
| Family | Name (OTel) | Name (Prometheus) | Type | Unit | Description |
|---|---|---|---|---|---|
| Application | http.client.request.duration | http_client_request_duration_seconds | Histogram | seconds | Duration of HTTP service calls from the client side |
| Application | http.client.request.body.size | http_client_request_body_size_bytes | Histogram | bytes | Size of the HTTP request body as sent by the client |
| Application | http.client.response.body.size | http_client_response_body_size_bytes | Histogram | bytes | Size of the HTTP response body as sent by the client |
| Application | http.server.request.duration | http_server_request_duration_seconds | Histogram | seconds | Duration of HTTP service calls from the server side |
| Application | http.server.request.body.size | http_server_request_body_size_bytes | Histogram | bytes | Size of the HTTP request body as received at the server side |
| Application | http.server.response.body.size | http_server_response_body_size_bytes | Histogram | bytes | Size of the HTTP response body as received at the server side |
| Application | rpc.client.call.duration | rpc_client_call_duration_seconds | Histogram | seconds | Duration of RPC service calls from the client side |
| Application | rpc.server.call.duration | rpc_server_call_duration_seconds | Histogram | seconds | Duration of RPC service calls from the server side |
| Application | db.client.operation.duration | db_client_operation_duration_seconds | Histogram | seconds | Duration of database client operations (Experimental) |
| Application | db.server.operation.duration | db_server_operation_duration_seconds | Histogram | seconds | Duration of server-side Redis, Memcached, and SQL operations (Experimental) |
| Application | messaging.client.operation.duration | messaging_client_operation_duration_seconds | Histogram | seconds | Duration of messaging client operations across supported systems such as Kafka, MQTT, NATS, and AMQP (Experimental) |
| Application | messaging.process.duration | messaging_process_duration_seconds | Histogram | seconds | Duration of messaging process operations across supported systems such as Kafka, MQTT, NATS, and AMQP (Experimental) |
| Application | gen_ai.client.operation.duration | gen_ai_client_operation_duration_seconds | Histogram | seconds | Duration of GenAI client operations (Experimental) |
| Application | gen_ai.client.token.usage | gen_ai_client_token_usage | Histogram | 1 | Number of GenAI input/output tokens consumed, labeled by token type (Experimental) |
| Go runtime | go.memory.limit | go_memory_limit_bytes | Gauge | bytes | Runtime memory limit configured for an instrumented Go service |
| Go runtime | go.memory.gc.goal | go_memory_gc_goal_bytes | Gauge | bytes | Current garbage-collection heap goal |
| Go runtime | go.memory.gc.cycles | go_memory_gc_cycles_total | Counter | cycles | Completed Go garbage-collection cycles |
| Go runtime | go.memory.gc.pause.duration | go_memory_gc_pause_duration_seconds | Histogram | seconds | Cumulative stop-the-world garbage-collection pause durations |
| Go runtime | go.memory.used | go_memory_used_bytes | Gauge | bytes | Memory used by stack and other runtime memory categories |
| Go runtime | go.memory.allocated | go_memory_allocated_bytes_total | Counter | bytes | Cumulative allocated heap bytes |
| Go runtime | go.memory.allocations | go_memory_allocations_total | Counter | allocations | Cumulative heap allocation count |
| Go runtime | go.cpu.time | go_cpu_time_seconds_total | Counter | seconds | Cumulative runtime CPU time by state |
| Go runtime | go.goroutine.count | go_goroutine_count | Gauge | goroutines | Current goroutine count |
| Go runtime | go.processor.limit | go_processor_limit | Gauge | threads | Current GOMAXPROCS value |
| Go runtime | go.config.gogc | go_config_gogc_percent | Gauge | percent | Current GOGC heap target percentage |
| Go runtime | go.schedule.duration | go_schedule_duration_seconds | Histogram | seconds | Cumulative runnable-to-running goroutine latency |
| JVM runtime | jvm.memory.used | jvm_memory_used_bytes | Gauge | bytes | Current JVM memory used, labeled by memory type and pool |
| JVM runtime | jvm.memory.committed | jvm_memory_committed_bytes | Gauge | bytes | Current JVM memory committed, labeled by memory type and pool |
| JVM runtime | jvm.memory.limit | jvm_memory_limit_bytes | Gauge | bytes | Current JVM memory limit, labeled by memory type and pool |
| JVM runtime | jvm.memory.used_after_last_gc | jvm_memory_used_after_last_gc_bytes | Gauge | bytes | JVM memory used after the last garbage collection |
| .NET runtime | dotnet.process.cpu.count | dotnet_process_cpu_count | UpDownCounter | CPUs | Runtime processor count, including processor-count overrides, container quota, and affinity |
| .NET runtime | dotnet.process.cpu.time | dotnet_process_cpu_time_seconds_total | Counter | seconds | Process CPU time, labeled by cpu.mode as user or system |
| .NET runtime | dotnet.gc.last_collection.heap.size | dotnet_gc_last_collection_heap_size_bytes | UpDownCounter | bytes | Heap size after the latest collection, including fragmentation, labeled by heap generation |
| Node runtime | nodejs.eventloop.time | nodejs_eventloop_time_seconds_total | Counter | seconds | Cumulative event-loop time, labeled as idle or active |
| Node runtime | nodejs.eventloop.utilization | nodejs_eventloop_utilization_ratio | Gauge | 1 | Active share of the event loop during the last sampling interval |
| Node runtime | nodejs.eventloop.delay.min | nodejs_eventloop_delay_min_seconds | Gauge | seconds | Minimum event-loop delay during the last sampling interval |
| Node runtime | nodejs.eventloop.delay.max | nodejs_eventloop_delay_max_seconds | Gauge | seconds | Maximum event-loop delay during the last sampling interval |
| Node runtime | nodejs.eventloop.delay.mean | nodejs_eventloop_delay_mean_seconds | Gauge | seconds | Mean event-loop delay during the last sampling interval |
| Node runtime | nodejs.eventloop.delay.stddev | nodejs_eventloop_delay_stddev_seconds | Gauge | seconds | Standard deviation of event-loop delay during the last sampling interval |
| Node runtime | nodejs.eventloop.delay.p50 | nodejs_eventloop_delay_p50_seconds | Gauge | seconds | 50th percentile event-loop delay during the last sampling interval |
| Node runtime | nodejs.eventloop.delay.p90 | nodejs_eventloop_delay_p90_seconds | Gauge | seconds | 90th percentile event-loop delay during the last sampling interval |
| Node runtime | nodejs.eventloop.delay.p99 | nodejs_eventloop_delay_p99_seconds | Gauge | seconds | 99th percentile event-loop delay during the last sampling interval |
| Network | obi.network.flow.bytes | obi_network_flow_bytes_total | Counter | bytes | Bytes submitted from a source network endpoint to a destination network endpoint |
| Network | obi.network.flow.packets | obi_network_flow_packets_total | Counter | packets | Packets observed from a source network endpoint to a destination network endpoint |
| Network | obi.network.inter.zone.bytes | obi_network_inter_zone_bytes_total | Counter | bytes | Bytes flowing between cloud availability zones in your cluster (Experimental, currently only available in Kubernetes) |
| Network | obi.stat.tcp.rtt | obi_stat_tcp_rtt_seconds | Histogram | seconds | TCP round-trip time (RTT) latency observed between network endpoints (StatsO11y) |
| Network | obi.stat.tcp.failed.connections | obi_stat_tcp_failed_connections_total | Counter | 1 | Failed TCP connection attempts between endpoints, labeled by failure reason (StatsO11y) |
| Network | obi.stat.tcp.retransmits | obi_stat_tcp_retransmits_total | Counter | 1 | TCP retransmissions observed per connection (StatsO11y) |
| Network | obi.stat.tcp.io | obi_stat_tcp_io_bytes_total | Counter | bytes | Bytes transferred at the socket layer per TCP connection and I/O direction (StatsO11y) |
- v0.10.0 adopts the OpenTelemetry semantic convention names
rpc.client.call.durationandrpc.server.call.duration. The corresponding Prometheus metric names include_call_as shown in the table. - Starting with v0.12.1, server-side Redis and Memcached measurements use
db.server.operation.durationinstead ofdb.client.operation.duration. Update dashboards and alerts that query those server-side measurements.
The .NET processor-count and heap-size instruments use UpDownCounters in OTLP and gauges in Prometheus.
OBI can also export Span metrics and Service graph metrics, which you can enable via the features configuration option.
Starting with v0.14.0, the application feature includes the HTTP body-size
histograms. Use application_red instead if you only want RED metrics, or
combine application_red and application_sizes in the same feature list. See
metrics export features.
HTTP duration and body-size metrics now include error.type on failed requests
by default. Their Prometheus series have an error_type label, with an empty
value for successful requests. Update dashboards and alerts that match the old
series. OTLP span metrics no longer put host.id on each data point; it remains
on the resource and in target_info. OBI’s Prometheus exporter is unaffected.
Starting with v0.15.2, database duration metrics include db.collection.name by
default. RPC client duration includes server.port, and failed RPC server
duration includes error.type. Messaging duration metrics can also split by
operation type and subscription name. MQTT SUBSCRIBE uses a subscription name
instead of a destination name. Review these dimensions when estimating
cardinality or updating existing queries.
The new ring-buffer counters in Internal metrics are also
available through OTLP as obi.bpf.ringbuf.writes and
obi.bpf.ringbuf.write.failures.
Attributes of OBI metrics
For the sake of brevity, the metrics and attributes in this list use the OTel
dot.notation. When using the Prometheus exporter, the metrics use
underscore_notation.
In order to configure which attributes to show or which attributes to hide,
check the attributes->select section in the
configuration documentation.
| Metrics | Name | Default |
|---|---|---|
| Application (all) | http.request.method | shown |
| Application (all) | http.response.status_code | shown |
| Application (all) | http.route | shown if routes configuration section exists |
| Application (all) | k8s.daemonset.name | shown if Kubernetes metadata is enabled |
| Application (all) | k8s.deployment.name | shown if Kubernetes metadata is enabled |
| Application (all) | k8s.namespace.name | shown if Kubernetes metadata is enabled |
| Application (all) | k8s.node.name | shown if Kubernetes metadata is enabled |
| Application (all) | k8s.owner.name | shown if Kubernetes metadata is enabled |
| Application (all) | k8s.pod.name | shown if Kubernetes metadata is enabled |
| Application (all) | k8s.container.name | shown if Kubernetes metadata is enabled |
| Application (all) | k8s.pod.start_time | shown if Kubernetes metadata is enabled |
| Application (all) | k8s.pod.uid | shown if Kubernetes metadata is enabled |
| Application (all) | k8s.replicaset.name | shown if Kubernetes metadata is enabled |
| Application (all) | k8s.statefulset.name | shown if Kubernetes metadata is enabled |
| Application (all) | k8s.cluster.name | shown if Kubernetes metadata is enabled |
| Application (all) | container.id | shown if Docker metadata is enabled |
| Application (all) | container.name | shown if Docker metadata is enabled |
| Application (all) | cloud.provider | shown if cloud metadata is enabled |
| Application (all) | cloud.platform | shown if cloud metadata is enabled |
| Application (all) | cloud.region | shown if cloud metadata is enabled |
| Application (all) | cloud.account.id | shown if cloud metadata is enabled |
| Application (all) | cloud.availability_zone | shown if cloud metadata is enabled |
| Application (all) | cloud.resource_id | shown if cloud metadata is enabled (Azure only) |
| Application (all) | host.id | shown if cloud metadata is enabled |
| Application (all) | host.type | shown if cloud metadata is enabled |
| Application (all) | host.image.id | shown if cloud metadata is enabled (AWS only) |
| Application (all) | gcp.gce.instance.name | shown if cloud metadata is enabled (GCP only) |
| Application (all) | gcp.gce.instance.hostname | shown if cloud metadata is enabled (GCP only) |
| Application (all) | service.name | shown |
| Application (all) | service.namespace | shown |
| Application (all) | target.instance | shown |
| Application (all) | url.path | hidden |
| Application (client) | server.address | hidden |
| Application (client) | server.port | hidden |
Application rpc.* | rpc.response.status_code | shown |
Application rpc.* | rpc.method | shown |
Application rpc.* | rpc.system.name | shown |
rpc.client.call.duration | server.port | shown |
rpc.server.call.duration | error.type | shown on failed requests |
| Application (server) | client.address | hidden |
obi.network.flow.bytes | obi.ip | hidden |
db.client.operation.duration | db.operation.name | shown |
db.client.operation.duration | db.collection.name | shown |
db.server.operation.duration | db.operation.name | shown |
db.server.operation.duration | db.collection.name | shown |
messaging.client.operation.duration | messaging.system | shown |
messaging.client.operation.duration | messaging.destination.name | shown |
messaging.client.operation.duration | messaging.operation.type | shown |
messaging.client.operation.duration | messaging.destination.subscription.name | shown when present |
messaging.process.duration | messaging.system | shown |
messaging.process.duration | messaging.destination.name | shown |
messaging.process.duration | messaging.destination.subscription.name | shown when present |
obi.network.flow.bytes | client.port | hidden |
obi.network.flow.bytes | direction | shown |
obi.network.flow.bytes | dst.address | hidden |
obi.network.flow.bytes | dst.cidr | shown if the cidrs configuration section exists |
obi.network.flow.bytes | dst.name | hidden |
obi.network.flow.bytes | dst.port | hidden |
obi.network.flow.bytes | dst.zone (only Kubernetes) | hidden |
obi.network.flow.bytes | iface | hidden |
obi.network.flow.bytes | k8s.cluster.name | shown if Kubernetes is enabled |
obi.network.flow.bytes | k8s.dst.name | hidden |
obi.network.flow.bytes | k8s.dst.namespace | shown if Kubernetes is enabled |
obi.network.flow.bytes | k8s.dst.node.ip | hidden |
obi.network.flow.bytes | k8s.dst.node.name | hidden |
obi.network.flow.bytes | k8s.dst.owner.type | shown if Kubernetes is enabled |
obi.network.flow.bytes | k8s.dst.type | hidden |
obi.network.flow.bytes | k8s.dst.owner.name | shown if Kubernetes is enabled |
obi.network.flow.bytes | k8s.src.name | hidden |
obi.network.flow.bytes | k8s.src.namespace | shown if Kubernetes is enabled |
obi.network.flow.bytes | k8s.src.node.ip | hidden |
obi.network.flow.bytes | k8s.src.owner.name | shown if Kubernetes is enabled |
obi.network.flow.bytes | k8s.src.owner.type | shown if Kubernetes is enabled |
obi.network.flow.bytes | k8s.src.type | hidden |
obi.network.flow.bytes | server.port | hidden |
obi.network.flow.bytes | src.address | hidden |
obi.network.flow.bytes | src.cidr | shown if the cidrs configuration section exists |
obi.network.flow.bytes | src.name | hidden |
obi.network.flow.bytes | src.port | hidden |
obi.network.flow.bytes | src.zone (only Kubernetes) | hidden |
obi.network.flow.bytes | transport | hidden |
obi.network.flow.bytes | network.type | hidden |
obi.network.flow.bytes | network.protocol.name | hidden |
obi.network.flow.bytes | src.country | shown if the geoip configuration section exists |
obi.network.flow.bytes | src.asn | shown if the geoip configuration section exists |
obi.network.flow.bytes | dst.country | shown if the geoip configuration section exists |
obi.network.flow.bytes | dst.asn | shown if the geoip configuration section exists |
obi.stat.tcp.rtt | obi.ip | hidden |
obi.stat.tcp.rtt | src.address | hidden |
obi.stat.tcp.rtt | dst.address | hidden |
obi.stat.tcp.rtt | src.port | hidden |
obi.stat.tcp.rtt | dst.port | hidden |
obi.stat.tcp.rtt | src.name | hidden |
obi.stat.tcp.rtt | dst.name | hidden |
obi.stat.tcp.rtt | src.zone | hidden |
obi.stat.tcp.rtt | dst.zone | hidden |
obi.stat.tcp.rtt | network.tcp.handshake.role | hidden |
obi.stat.tcp.failed.connections | obi.ip | hidden |
obi.stat.tcp.failed.connections | src.address | hidden |
obi.stat.tcp.failed.connections | dst.address | hidden |
obi.stat.tcp.failed.connections | src.port | hidden |
obi.stat.tcp.failed.connections | dst.port | hidden |
obi.stat.tcp.failed.connections | src.name | hidden |
obi.stat.tcp.failed.connections | dst.name | hidden |
obi.stat.tcp.failed.connections | src.zone | hidden |
obi.stat.tcp.failed.connections | dst.zone | hidden |
obi.stat.tcp.failed.connections | reason | hidden |
obi.stat.tcp.failed.connections | network.tcp.handshake.role | hidden |
obi.stat.tcp.retransmits | Source/destination address, port, name, and zone attributes | hidden |
obi.stat.tcp.io | Source/destination address, port, name, and zone attributes | hidden |
obi.stat.tcp.io | network.io.direction | shown |
| Traces (HTTP) | url.query | shown when a query string exists |
| Traces (GraphQL) | graphql.document | hidden |
| Traces (SQL, Redis) | db.query.text | hidden |
The obi.network.inter.zone.bytes metric supports the same set of attributes
as obi.network.flow.bytes, but all of them are hidden by default, except
k8s.cluster.name, src.zone and dst.zone.
The obi.network.flow.packets metric supports the same attributes and
defaults as obi.network.flow.bytes. JVM memory metrics include
jvm.memory.type and jvm.memory.pool.name. The nodejs.eventloop.time
metric includes nodejs.eventloop.state, with a value of idle or active.
Internal metrics
OBI v0.12.1 removes Prometheus-style suffixes from four internal OTLP metric
names. Update OTLP queries from obi.bpf.map.entries_total to
obi.bpf.map.entries, from obi.bpf.map.max_entries_total to
obi.bpf.map.max_entries, from obi.bpf.network.packets.total to
obi.bpf.network.packets, and from obi.bpf.network.ignored.packets.total to
obi.bpf.network.ignored.packets. The corresponding Prometheus counter names
remain unchanged. The Prometheus gauge names become obi_bpf_map_entries and
obi_bpf_map_max_entries.
OBI can be configured to report internal metrics in Prometheus Format.
| Name | Type | Description |
|---|---|---|
obi_ebpf_tracer_flushes | Histogram | Length of the groups of traces flushed from the eBPF tracer to the next pipeline stage |
obi_otel_metric_exports_total | Counter | Length of the metric batches submitted to the remote OTel collector |
obi_otel_metric_export_errors_total | CounterVec | Error count on each failed OTel metric export, by error type |
obi_otel_trace_exports_total | Counter | Length of the trace batches submitted to the remote OTel collector |
obi_otel_trace_export_errors_total | CounterVec | Error count on each failed OTel trace export, by error type |
obi_prometheus_http_requests_total | CounterVec | Number of requests towards the Prometheus Scrape endpoint, faceted by HTTP port and path |
obi_bpf_network_ignored_packets_total | Counter | Number of network packets dropped by OBI network filters before flow accounting |
obi_bpf_ringbuf_writes_total | CounterVec | Attempted writes to each ring buffer, labeled by bpf_map_name |
obi_bpf_ringbuf_write_failures_total | CounterVec | Writes that failed because the ring buffer was full, labeled by bpf_map_name |
obi_instrumented_processes | GaugeVec | Instrumented processes by OBI, with process name |
obi_internal_build_info | GaugeVec | Version information of the OBI binary, including the build time and commit hash |
obi_avoided_services | GaugeVec | Services for which OBI suppressed telemetry after detecting OpenTelemetry SDK export |
মূল্যায়ন
এই পৃষ্ঠাটি কি সহায়ক ছিল?
Thank you. Your feedback is appreciated!
Please let us know how we can improve this page. Your feedback is appreciated!