Skip to main content

Exposed metrics

The following tables describe the metrics exported by OBI in both OpenTelemetry (OTEL) and Prometheus formats, for use within Coralogix observability workflows.

Application metrics

Changed in v0.10.0
FamilyName (OTEL)Name (Prometheus)TypeUnitDescription
Applicationhttp.client.request.durationhttp_client_request_duration_secondsHistogramsecondsTime taken for outbound HTTP calls from client applications
Applicationhttp.client.request.body.sizehttp_client_request_body_size_bytesHistogrambytesSize of HTTP request payloads sent by clients
Applicationhttp.client.response.body.sizehttp_client_response_body_size_bytesHistogrambytesSize of HTTP responses received by clients
Applicationhttp.server.request.durationhttp_server_request_duration_secondsHistogramsecondsTime taken to process inbound HTTP requests on servers
Applicationhttp.server.request.body.sizehttp_server_request_body_size_bytesHistogrambytesSize of incoming HTTP request bodies received by servers
Applicationhttp.server.response.body.sizehttp_server_response_body_size_bytesHistogrambytesSize of outbound HTTP response bodies sent by servers
Applicationrpc.client.durationrpc_client_duration_secondsHistogramsecondsDuration of outbound gRPC service calls
Applicationrpc.server.durationrpc_server_duration_secondsHistogramsecondsDuration of inbound RPC service calls
Applicationsql.client.durationsql_client_duration_secondsHistogramsecondsTime taken for SQL client operations (Experimental)
Applicationredis.client.durationredis_client_duration_secondsHistogramsecondsTime taken for Redis client operations (Experimental)
Applicationmessaging.publish.durationmessaging_publish_durationHistogramsecondsTime taken for message publication (e.g., Kafka) (Experimental)
Applicationmessaging.process.durationmessaging_process_durationHistogramsecondsTime taken for message processing (e.g., Kafka) (Experimental)
Application Processprocess.cpu.timeprocess_cpu_time_seconds_totalCountersecondsTotal CPU time consumed, broken down by state (system/user/wait)
Application Processprocess.cpu.utilizationprocess_cpu_utilization_ratioGaugeratioCPU time usage change over time, normalized by CPU count
Application Processprocess.memory.usageprocess_memory_usage_bytesUpDownCounterbytesPhysical memory currently used
Application Processprocess.memory.virtualprocess_memory_virtual_bytesUpDownCounterbytesVirtual memory committed
Application Processprocess.disk.ioprocess_disk_io_bytes_totalCounterbytesTotal disk I/O bytes transferred
Application Processprocess.network.ioprocess_network_io_bytes_totalCounterbytesTotal network I/O bytes transferred
Go runtimego.memory.limitgo_memory_limit_bytesUpDownCounterbytesGo runtime memory limit. Added in OBI v0.10.0.
Go runtimego.memory.gc.cyclesgo_memory_gc_cycles_totalCountercountCompleted Go GC cycles. Added in OBI v0.10.0.
Go runtimego.processor.limitgo_processor_limitUpDownCounterprocessorsGOMAXPROCS value. Added in OBI v0.10.0.
Go runtimego.config.gogcgo_config_gogc_percentUpDownCounterpercentGOGC configuration value. Added in OBI v0.10.0.
JVMjvm.memory.usedjvm_memory_used_bytesUpDownCounterbytesHotSpot JVM memory used. Added in OBI v0.10.0.
JVMjvm.memory.committedjvm_memory_committed_bytesUpDownCounterbytesHotSpot JVM memory committed. Added in OBI v0.10.0.
JVMjvm.memory.limitjvm_memory_limit_bytesUpDownCounterbytesHotSpot JVM memory limit. Added in OBI v0.10.0.
JVMjvm.memory.used_after_last_gcjvm_memory_used_after_last_gc_bytesUpDownCounterbytesHotSpot JVM memory used after the last GC. Added in OBI v0.10.0.
JVMobi.jvm.heap.usedobi_jvm_heap_used_bytesUpDownCounterbytesOBI-reported JVM heap used, sampled via GCTracer uprobes. Added in OBI v0.10.0.
Networkobi.network.flow.bytesobi_network_flow_bytesCounterbytesBytes transmitted between source and destination network endpoints
Networkobi.network.flow.packetsobi_network_flow_packets_totalCountercountPackets transmitted between source and destination network endpoints. Added in OBI v0.10.0.
Networkobi.network.inter.zone.bytesobi_network_inter_zone_bytesCounterbytesCross-zone network bytes within Kubernetes clusters (Experimental)
Networkobi.stat.tcp.ioobi_stat_tcp_io_bytes_totalCounterbytesTCP bytes transferred. Added in OBI v0.10.0.
Networkobi.stat.tcp.retransmitsobi_stat_tcp_retransmitsCountercountTCP segment retransmissions. Added in OBI v0.10.0.
Networkobi.stat.tcp.failed_connectionsobi_stat_tcp_failed_connectionsCounterconnectionsTCP failed connection count, labeled by network.tcp.handshake.role (client or server) and failure reason. Added in OBI v0.9.0. The reason label is disabled by default.

OBI also supports exporting Span metrics and Service Graph metrics, which can be toggled via feature configuration options.

From OBI v0.10.0, HTTP spans emit url.query by default when present, and client HTTP spans include the query string in url.full. Sensitive parameters are automatically redacted; extend the redaction list with OTEL_EBPF_SENSITIVE_QUERY_PARAMS_ADD. Java route harvesting is disabled by default, so the http.route attribute on Java spans falls back to the raw URL path. See What's changed in the overview.

From OBI v0.9.0, database error response bodies are no longer included on SQL spans by default. If you previously relied on sql.client.duration spans carrying database error responses, enable that capture explicitly. See What's changed in the overview.

From OBI v0.7.0+, DNS calls are excluded from span metrics and service-graph metrics by default. SQL operations (MySQL, PostgreSQL, MariaDB) are now reported as SERVER spans, so any aggregations or filters that key on span kind for SQL traffic should be updated accordingly. See What's changed in the overview for details.

Attribute selection for OBI metrics

Metrics and attributes follow OTEL dot.notation but are converted to Prometheus underscore_notation in Prometheus outputs.

You can customize which attributes are exposed or hidden by using the attributes->select section in the configuration.

Common attributes table

MetricsAttribute NameDefault
Application (all)http.request.methodshown
Application (all)http.response.status_codeshown
Application (all)http.routeshown if routes config exists
Application (all)k8s.daemonset.nameshown if Kubernetes metadata is on
Application (all)k8s.deployment.nameshown if Kubernetes metadata is on
Application (all)k8s.namespace.nameshown if Kubernetes metadata is on
Application (all)k8s.node.nameshown if Kubernetes metadata is on
Application (all)k8s.owner.nameshown if Kubernetes metadata is on
Application (all)k8s.pod.nameshown if Kubernetes metadata is on
Application (all)k8s.container.nameshown if Kubernetes metadata is on
Application (all)k8s.pod.start_timeshown if Kubernetes metadata is on
Application (all)k8s.pod.uidshown if Kubernetes metadata is on
Application (all)k8s.replicaset.nameshown if Kubernetes metadata is on
Application (all)k8s.statefulset.nameshown if Kubernetes metadata is on
Application (all)k8s.cluster.nameshown if Kubernetes metadata is on
Application (all)service.nameshown
Application (all)service.namespaceshown
Application (all)target.instanceshown
Application (all)url.pathhidden
Application (client)server.addresshidden
Application (client)server.porthidden
Application (process)various process-specific attributes (e.g., process.command, process.executable.path)shown if process metrics enabled
Application RPCvarious RPC attributes (rpc.method, rpc.grpc.status_code)shown
Application (server)client.addresshidden
Networknetwork-specific attributes (e.g., src.address, dst.address, iface)mostly hidden or conditional
Network (TCP failed connections)network.tcp.handshake.role — values client or servershown

Note: The obi.network.inter.zone.bytes metric shares the same attribute set as obi.network.flow.bytes but all are hidden by default except k8s.cluster.name, src.zone, and dst.zone.

Internal OBI metrics

OBI provides several internal Prometheus-format metrics to help monitor its own health and activity:

NameTypeDescription
obi_ebpf_tracer_flushesHistogramSize of trace groups flushed from eBPF to pipeline
obi_otel_metric_exports_totalCounterTotal metric batches sent to remote OTEL collector
obi_otel_metric_export_errors_totalCounterVecCount of OTEL metric export errors by type
obi_otel_trace_exports_totalCounterTotal trace batches sent to remote OTEL collector
obi_otel_trace_export_errors_totalCounterVecCount of OTEL trace export errors by type
obi_prometheus_http_requests_totalCounterVecPrometheus scrape endpoint request count by port and path
obi_instrumented_processesGaugeVecNumber of processes instrumented by Obi, labeled by process name
obi_internal_build_infoGaugeVecObi version information including build timestamp and commit ID
Last updated on
Includes latestOlder versionDeprecated
On this page
Was this page helpful?