# Exposed metrics

Copy as Markdown[Open in ChatGPT](https://chatgpt.com/?q=Read%20https%3A%2F%2Fcoralogix.com%2Fdocs%2Fopentelemetry%2Finstrumentation-options%2Febpf-auto-instrumentation%2Fexported-metrics.md%20and%20help%20me%20with%20my%20question%20about%20this%20Coralogix%20documentation%20page.)[Open in Claude](https://claude.ai/new?q=Read%20https%3A%2F%2Fcoralogix.com%2Fdocs%2Fopentelemetry%2Finstrumentation-options%2Febpf-auto-instrumentation%2Fexported-metrics.md%20and%20help%20me%20with%20my%20question%20about%20this%20Coralogix%20documentation%20page.)

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

## Application metrics[​](#application-metrics "Direct link to Application metrics")

Changed in v0.10.0

| 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                                                                                                                                         |
| Go runtime          | `go.memory.limit`                 | `go_memory_limit_bytes`                | UpDownCounter | bytes       | Go runtime memory limit. Added in OBI v0.10.0.                                                                                                                              |
| Go runtime          | `go.memory.gc.cycles`             | `go_memory_gc_cycles_total`            | Counter       | count       | Completed Go GC cycles. Added in OBI v0.10.0.                                                                                                                               |
| Go runtime          | `go.processor.limit`              | `go_processor_limit`                   | UpDownCounter | processors  | `GOMAXPROCS` value. Added in OBI v0.10.0.                                                                                                                                   |
| Go runtime          | `go.config.gogc`                  | `go_config_gogc_percent`               | UpDownCounter | percent     | `GOGC` configuration value. Added in OBI v0.10.0.                                                                                                                           |
| JVM                 | `jvm.memory.used`                 | `jvm_memory_used_bytes`                | UpDownCounter | bytes       | HotSpot JVM memory used. Added in OBI v0.10.0.                                                                                                                              |
| JVM                 | `jvm.memory.committed`            | `jvm_memory_committed_bytes`           | UpDownCounter | bytes       | HotSpot JVM memory committed. Added in OBI v0.10.0.                                                                                                                         |
| JVM                 | `jvm.memory.limit`                | `jvm_memory_limit_bytes`               | UpDownCounter | bytes       | HotSpot JVM memory limit. Added in OBI v0.10.0.                                                                                                                             |
| JVM                 | `jvm.memory.used_after_last_gc`   | `jvm_memory_used_after_last_gc_bytes`  | UpDownCounter | bytes       | HotSpot JVM memory used after the last GC. Added in OBI v0.10.0.                                                                                                            |
| JVM                 | `obi.jvm.heap.used`               | `obi_jvm_heap_used_bytes`              | UpDownCounter | bytes       | OBI-reported JVM heap used, sampled via GCTracer uprobes. Added in OBI v0.10.0.                                                                                             |
| Network             | `obi.network.flow.bytes`          | `obi_network_flow_bytes`               | Counter       | bytes       | Bytes transmitted between source and destination network endpoints                                                                                                          |
| Network             | `obi.network.flow.packets`        | `obi_network_flow_packets_total`       | Counter       | count       | Packets transmitted between source and destination network endpoints. Added in OBI v0.10.0.                                                                                 |
| Network             | `obi.network.inter.zone.bytes`    | `obi_network_inter_zone_bytes`         | Counter       | bytes       | Cross-zone network bytes within Kubernetes clusters (Experimental)                                                                                                          |
| Network             | `obi.stat.tcp.io`                 | `obi_stat_tcp_io_bytes_total`          | Counter       | bytes       | TCP bytes transferred. Added in OBI v0.10.0.                                                                                                                                |
| Network             | `obi.stat.tcp.retransmits`        | `obi_stat_tcp_retransmits`             | Counter       | count       | TCP segment retransmissions. Added in OBI v0.10.0.                                                                                                                          |
| Network             | `obi.stat.tcp.failed_connections` | `obi_stat_tcp_failed_connections`      | Counter       | connections | TCP 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](https://coralogix.com/docs/docs/opentelemetry/instrumentation-options/ebpf-auto-instrumentation/overview/.md#obi-v0100) 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](https://coralogix.com/docs/docs/opentelemetry/instrumentation-options/ebpf-auto-instrumentation/overview/.md#obi-v090) 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](https://coralogix.com/docs/docs/opentelemetry/instrumentation-options/ebpf-auto-instrumentation/overview/.md#obi-v070) in the overview for details.

## Attribute selection for OBI metrics[​](#attribute-selection-for-obi-metrics "Direct link to 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[​](#common-attributes-table "Direct link to 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       |
| Network (TCP failed connections) | `network.tcp.handshake.role` — values `client` or `server`                               | shown                              |

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[​](#internal-obi-metrics "Direct link to 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  |
