Exported 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
Family | Name (OTEL) | Name (Prometheus) | Type | Unit | Description |
---|---|---|---|---|---|
Application | http.client.request.duration | http_client_request_duration_seconds | Histogram | seconds | Time taken for outbound HTTP calls from client applications |
Application | http.client.request.body.size | http_client_request_body_size_bytes | Histogram | bytes | Size of HTTP request payloads sent by clients |
Application | http.client.response.body.size | http_client_response_body_size_bytes | Histogram | bytes | Size of HTTP responses received by clients |
Application | http.server.request.duration | http_server_request_duration_seconds | Histogram | seconds | Time taken to process inbound HTTP requests on servers |
Application | http.server.request.body.size | http_server_request_body_size_bytes | Histogram | bytes | Size of incoming HTTP request bodies received by servers |
Application | http.server.response.body.size | http_server_response_body_size_bytes | Histogram | bytes | Size of outbound HTTP response bodies sent by servers |
Application | rpc.client.duration | rpc_client_duration_seconds | Histogram | seconds | Duration of outbound gRPC service calls |
Application | rpc.server.duration | rpc_server_duration_seconds | Histogram | seconds | Duration of inbound RPC service calls |
Application | sql.client.duration | sql_client_duration_seconds | Histogram | seconds | Time taken for SQL client operations (Experimental) |
Application | redis.client.duration | redis_client_duration_seconds | Histogram | seconds | Time taken for Redis client operations (Experimental) |
Application | messaging.publish.duration | messaging_publish_duration | Histogram | seconds | Time taken for message publication (e.g., Kafka) (Experimental) |
Application | messaging.process.duration | messaging_process_duration | Histogram | seconds | Time taken for message processing (e.g., Kafka) (Experimental) |
Application Process | process.cpu.time | process_cpu_time_seconds_total | Counter | seconds | Total CPU time consumed, broken down by state (system/user/wait) |
Application Process | process.cpu.utilization | process_cpu_utilization_ratio | Gauge | ratio | CPU time usage change over time, normalized by CPU count |
Application Process | process.memory.usage | process_memory_usage_bytes | UpDownCounter | bytes | Physical memory currently used |
Application Process | process.memory.virtual | process_memory_virtual_bytes | UpDownCounter | bytes | Virtual memory committed |
Application Process | process.disk.io | process_disk_io_bytes_total | Counter | bytes | Total disk I/O bytes transferred |
Application Process | process.network.io | process_network_io_bytes_total | Counter | bytes | Total network I/O bytes transferred |
Network | obi.network.flow.bytes | obi_network_flow_bytes | Counter | bytes | Bytes transmitted between source and destination network endpoints |
Network | obi.network.inter.zone.bytes | obi_network_inter_zone_bytes | Counter | bytes | Cross-zone network bytes within Kubernetes clusters (Experimental) |
OBI also supports exporting Span metrics and Service Graph metrics, which can be toggled via feature configuration options.
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
Metrics | Attribute Name | Default |
---|---|---|
Application (all) | http.request.method | shown |
Application (all) | http.response.status_code | shown |
Application (all) | http.route | shown if routes config exists |
Application (all) | k8s.daemonset.name | shown if Kubernetes metadata is on |
Application (all) | k8s.deployment.name | shown if Kubernetes metadata is on |
Application (all) | k8s.namespace.name | shown if Kubernetes metadata is on |
Application (all) | k8s.node.name | shown if Kubernetes metadata is on |
Application (all) | k8s.owner.name | shown if Kubernetes metadata is on |
Application (all) | k8s.pod.name | shown if Kubernetes metadata is on |
Application (all) | k8s.container.name | shown if Kubernetes metadata is on |
Application (all) | k8s.pod.start_time | shown if Kubernetes metadata is on |
Application (all) | k8s.pod.uid | shown if Kubernetes metadata is on |
Application (all) | k8s.replicaset.name | shown if Kubernetes metadata is on |
Application (all) | k8s.statefulset.name | shown if Kubernetes metadata is on |
Application (all) | k8s.cluster.name | shown if Kubernetes metadata is on |
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 (process) | various process-specific attributes (e.g., process.command , process.executable.path ) | shown if process metrics enabled |
Application RPC | various RPC attributes (rpc.method , rpc.grpc.status_code ) | shown |
Application (server) | client.address | hidden |
Network | network-specific attributes (e.g., src.address , dst.address , iface ) | mostly hidden or conditional |
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:
Name | Type | Description |
---|---|---|
obi_ebpf_tracer_flushes | Histogram | Size of trace groups flushed from eBPF to pipeline |
obi_otel_metric_exports_total | Counter | Total metric batches sent to remote OTEL collector |
obi_otel_metric_export_errors_total | CounterVec | Count of OTEL metric export errors by type |
obi_otel_trace_exports_total | Counter | Total trace batches sent to remote OTEL collector |
obi_otel_trace_export_errors_total | CounterVec | Count of OTEL trace export errors by type |
obi_prometheus_http_requests_total | CounterVec | Prometheus scrape endpoint request count by port and path |
obi_instrumented_processes | GaugeVec | Number of processes instrumented by Obi, labeled by process name |
obi_internal_build_info | GaugeVec | Obi version information including build timestamp and commit ID |