Skip to content

Observability Field Matrix

This document defines the canonical field inventory for the Observability domain.

The field matrix sits between the OpenTelemetry telemetry inventory and the canonical data model. It records how telemetry emitted by the Observability package is represented, what dimensions it carries, and where it is consumed.

The matrix is derived from:

  1. Dashboard specifications
  2. PromQL and LogQL references
  3. The Observability Metrics Catalogue
  4. The current OpenTelemetry resource, metric, log, and trace instrumentation

The field matrix does not define dashboard behaviour or PromQL. It defines the data fields available to downstream systems.


Purpose

The field matrix provides a stable mapping between telemetry produced by the Observability package and the canonical organizational data model.

It answers:

  • What telemetry fields exist?
  • Which instrumentation produces them?
  • What does each field represent?
  • At what scope does the field exist?
  • What dimensions distinguish its values?
  • Which dashboards consume it?
  • Which fields can be mapped directly into canonical concepts?
  • Which fields require derivation or further modelling?

Field Matrix

Service and Resource Identity

These fields identify the service, deployment, process, host, and runtime associated with telemetry.

Signal Instrumentation OTel Field Field Type Value Type Scope Unit Dimensions Description Canonical ID Mapping Type Used By Status
resource Core service.name Resource Attribute string Resource Logical name of the instrumented service observability.service.name direct All dashboards stable
resource Core service.version Resource Attribute string Resource Deployed service version observability.service.version direct Service Overview stable
resource Core service.instance.id Resource Attribute string Resource Unique identifier for a service instance observability.service.instance_id direct Service Overview, Infrastructure stable
resource Core deployment.environment Resource Attribute string Resource Deployment environment observability.environment direct All dashboards stable
resource Core host.name Resource Attribute string Resource Hostname on which the process runs observability.host.name direct Infrastructure stable
resource Core host.arch Resource Attribute string Resource Host CPU architecture observability.host.architecture direct Infrastructure stable
resource Core os.type Resource Attribute string Resource Operating system type observability.os.type direct Infrastructure stable
resource Core process.pid Resource Attribute integer Resource Operating system process identifier observability.process.pid direct Infrastructure stable
resource Core process.runtime.name Resource Attribute string Resource Runtime implementation used by the process observability.runtime.name direct Infrastructure stable
resource Core process.runtime.version Resource Attribute string Resource Runtime version observability.runtime.version direct Infrastructure stable

HTTP Server Metrics

These fields describe incoming HTTP traffic handled by an instrumented service.

Signal Instrumentation OTel Field Prometheus Name Field Type Value Type Scope Unit Dimensions Description Canonical ID Mapping Type Used By Status
metric FastAPI http.server.request.duration http_server_duration_milliseconds Metric Histogram Datapoint ms http_method, http_status_code, http_target Duration of incoming HTTP requests observability.http.request.duration direct Service Overview, HTTP/API stable
metric FastAPI http.server.active_requests http_server_active_requests Metric Gauge Datapoint requests http_method Number of currently active HTTP requests observability.http.active_requests direct Service Overview, HTTP/API stable

HTTP Derived Fields

Some dashboard values are derived from the underlying HTTP metrics rather than emitted as independent telemetry.

Derived Field Source Metric Derivation Canonical ID Used By
Request Rate http_server_duration_milliseconds Rate of completed request observations observability.http.request_rate Service Overview, HTTP/API
Error Rate http_server_duration_milliseconds Ratio of 5xx responses to total responses observability.http.error_rate Service Overview, HTTP/API
Average Latency http_server_duration_milliseconds Duration sum divided by request count observability.http.average_latency Service Overview
P50 Latency http_server_duration_milliseconds Histogram quantile 0.50 observability.http.p50_latency HTTP/API
P95 Latency http_server_duration_milliseconds Histogram quantile 0.95 observability.http.p95_latency Service Overview, HTTP/API
P99 Latency http_server_duration_milliseconds Histogram quantile 0.99 observability.http.p99_latency HTTP/API
Top Endpoints http_server_duration_milliseconds Aggregation by http_target observability.http.top_endpoints Service Overview, HTTP/API
Slowest Endpoints http_server_duration_milliseconds Latency aggregation by http_target observability.http.slowest_endpoints Service Overview, HTTP/API
Status Distribution http_server_duration_milliseconds Aggregation by http_status_code observability.http.status_distribution Service Overview, HTTP/API

These derived fields belong to the analytical layer rather than the raw telemetry inventory.


HTTP Client Metrics

These fields describe outbound HTTP requests generated by an instrumented service.

Signal Instrumentation OTel Field Prometheus Name Field Type Value Type Scope Unit Dimensions Description Canonical ID Mapping Type Used By Status
metric HTTPX http.client.request.duration http_client_request_duration Metric Histogram Datapoint ms http_request_method, http_response_status_code, server_address Duration of outbound HTTP requests observability.http.client.request.duration direct External Services stable
metric HTTPX http.client.active_requests http_client_active_requests Metric Gauge Datapoint requests http_request_method Number of active outbound HTTP requests observability.http.client.active_requests direct External Services stable

HTTP Client Derived Fields

Derived Field Source Metric Derivation Canonical ID Used By
HTTP Client Request Rate http_client_request_duration Rate of outbound request observations observability.http.client.request_rate External Services
HTTP Client P95 Latency http_client_request_duration Histogram quantile 0.95 observability.http.client.p95_latency External Services
Top Dependencies http_client_request_duration Aggregation by server_address observability.http.client.top_dependencies External Services

Database Metrics

These fields describe database operations performed by instrumented services.

Signal Instrumentation OTel Field Prometheus Name Field Type Value Type Scope Unit Dimensions Description Canonical ID Mapping Type Used By Status
metric SQLAlchemy / psycopg2 db.client.operation.duration db_client_operation_duration Metric Histogram Datapoint ms db_operation, db_system_name, db_name Duration of database operations observability.database.operation.duration direct Database stable
metric SQLAlchemy / psycopg2 db.client.operation.active db_client_operation_active Metric Gauge Datapoint operations db_operation Number of currently active database operations observability.database.operation.active direct Database stable
metric SQLAlchemy db.client.connections.usage db_client_connections_usage Metric Gauge Datapoint connections state Database connection usage by connection state observability.database.connections.usage direct Database stable
metric SQLAlchemy db.client.connections.wait_time db_client_connections_wait_time Metric Histogram Datapoint ms db_operation Time spent waiting for database connections observability.database.connections.wait_time direct Database stable

Database Derived Fields

Derived Field Source Metric Derivation Canonical ID Used By
Database Request Rate db_client_operation_duration Rate of database operation observations observability.database.request_rate Database
Database P95 Latency db_client_operation_duration Histogram quantile 0.95 observability.database.p95_latency Database
Database Connections db_client_connections_usage Aggregation across connection states observability.database.connections Database

Redis Metrics

Redis operations are represented using the database client metric family because Redis instrumentation produces database client telemetry.

Signal Instrumentation OTel Field Prometheus Name Field Type Value Type Scope Unit Dimensions Description Canonical ID Mapping Type Used By Status
metric Redis db.client.operation.duration db_client_operation_duration Metric Histogram Datapoint ms db_operation, db_system_name Duration of Redis operations observability.redis.operation.duration direct External Services stable
metric Redis db.client.operation.active db_client_operation_active Metric Gauge Datapoint operations db_operation Number of active Redis operations observability.redis.operation.active direct External Services stable

The db_system_name dimension distinguishes Redis telemetry from other database systems.

Redis Derived Fields

Derived Field Source Metric Derivation Canonical ID Used By
Redis Request Rate db_client_operation_duration Rate filtered to Redis observability.redis.request_rate External Services
Redis P95 Latency db_client_operation_duration Histogram quantile filtered to Redis observability.redis.p95_latency External Services

Process Runtime Metrics

These fields describe the health and resource consumption of the application process.

Signal Instrumentation OTel Field Prometheus Name Field Type Value Type Scope Unit Dimensions Description Canonical ID Mapping Type Used By Status
metric System Metrics process.cpu.utilization process_cpu_utilization_ratio Metric Gauge Datapoint ratio exported_job CPU utilization of the process observability.process.cpu.utilization direct Infrastructure stable
metric System Metrics process.cpu.time process_cpu_time_seconds_total Metric Counter Datapoint seconds exported_job Cumulative CPU time consumed by the process observability.process.cpu.time direct Infrastructure stable
metric System Metrics process.memory.usage process_memory_usage_bytes Metric Gauge Datapoint bytes exported_job Memory used by the process observability.process.memory.usage direct Infrastructure stable
metric System Metrics process.memory.virtual process_memory_virtual_bytes Metric Gauge Datapoint bytes exported_job Virtual memory allocated to the process observability.process.memory.virtual direct Infrastructure stable
metric Process Runtime process.runtime.start_time process_runtime_start_time Metric Gauge Datapoint Unix timestamp exported_job Process start time observability.process.start_time direct Service Overview, Infrastructure stable
metric Process Runtime process.thread.count process_thread_count Metric Gauge Datapoint threads exported_job Number of active process threads observability.process.thread_count direct Infrastructure stable
metric Process Runtime process.open_file_descriptors process_open_file_descriptor_count Metric Gauge Datapoint descriptors exported_job Number of open file descriptors observability.process.open_file_descriptors direct Infrastructure stable

Python Runtime Metrics

These fields describe Python garbage collection activity.

Signal Instrumentation OTel Field Prometheus Name Field Type Value Type Scope Unit Dimensions Description Canonical ID Mapping Type Used By Status
metric System Metrics cpython.gc.collections cpython_gc_collections_total Metric Counter Datapoint collections exported_job Number of garbage collection cycles observability.python.gc.collections direct Infrastructure stable
metric System Metrics cpython.gc.collected_objects cpython_gc_collected_objects_total Metric Counter Datapoint objects exported_job Number of objects reclaimed by garbage collection observability.python.gc.collected_objects direct Infrastructure stable
metric System Metrics cpython.gc.uncollectable_objects cpython_gc_uncollectable_objects_total Metric Counter Datapoint objects exported_job Objects that could not be reclaimed by garbage collection observability.python.gc.uncollectable_objects direct Infrastructure stable

System Metrics

These fields describe host-level resource activity visible to the instrumented process.

Signal Instrumentation OTel Field Prometheus Name Field Type Value Type Scope Unit Dimensions Description Canonical ID Mapping Type Used By Status
metric System Metrics system.memory.utilization system_memory_utilization_ratio Metric Gauge Datapoint ratio exported_job System memory utilization observability.system.memory.utilization direct Infrastructure stable
metric System Metrics system.network.io system_network_io_bytes_total Metric Counter Datapoint bytes direction, exported_job Network bytes transmitted or received observability.system.network.io direct Infrastructure stable
metric System Metrics system.disk.io system_disk_io_bytes_total Metric Counter Datapoint bytes direction, exported_job Disk bytes read or written observability.system.disk.io direct Infrastructure stable

Logging Fields

Logs are exported using OTLP and stored in Loki.

The current observability package establishes the following fields as the minimum logging contract.

Signal Instrumentation OTel Field Field Type Value Type Scope Unit Dimensions Description Canonical ID Mapping Type Used By Status
log Logging service.name Resource Attribute string Resource Service that emitted the log observability.service.name direct Logs stable
log Logging deployment.environment Resource Attribute string Resource Environment in which the log was generated observability.environment direct Logs stable
log Logging severity Log Field string Log Record Log severity observability.log.severity direct Logs stable
log Logging trace_id Log Field string Log Record Trace identifier associated with the log observability.trace.id direct Logs, Traces stable
log Logging span_id Log Field string Log Record Span identifier associated with the log observability.span.id direct Logs, Traces stable

The current implementation also injects trace identifiers into standard Python logging records through LoggingInstrumentor.

Tracing Fields

Traces are exported through OTLP and visualized through Jaeger.

Signal Instrumentation OTel Field Field Type Value Type Scope Unit Dimensions Description Canonical ID Mapping Type Used By Status
trace Core service.name Resource Attribute string Resource Service producing the trace observability.service.name direct Traces stable
trace Core span.name Span Attribute string Span Name of the span operation observability.trace.span.name direct Traces stable
trace Core trace_id Trace Field string Trace Unique identifier for a distributed trace observability.trace.id direct Logs, Traces stable
trace Core span_id Span Field string Span Unique identifier for a span observability.span.id direct Logs, Traces stable
trace Core duration Span Field numeric Span time Duration of the span observability.trace.span.duration direct Traces stable
trace Core status Span Field enum Span Span status observability.trace.span.status direct Traces stable

Instrumentation Coverage

The field matrix currently covers the following instrumentation sources.

Instrumentation Signal Domain Area Status
FastAPI Metrics, Traces HTTP Server stable
HTTPX Metrics, Traces HTTP Client stable
SQLAlchemy Metrics, Traces Database stable
psycopg2 Traces Database stable
Redis Metrics, Traces Redis stable
System Metrics Metrics Process, Python, System stable
Process Runtime Metrics Process stable
Python Logging Logs Logging stable
OpenTelemetry SDK Metrics, Logs, Traces Resource Identity stable

Canonical Mapping Status

Canonical IDs in this matrix represent the current proposed namespace for the Observability domain.

They are intentionally scoped under:

observability.*

The IDs are not yet the final organizational ontology.

They provide stable identifiers for the field mapping layer while the minimum Observability ontology is being established.

The following mapping types are currently recognized:

Mapping Type Meaning
direct The telemetry field maps directly to a canonical field
derived The value is calculated from one or more telemetry fields
composite The canonical concept requires multiple telemetry fields
provisional Mapping exists but requires further ontology review

Field Matrix Principles

The following rules apply to future additions.

  1. Every dashboard-facing telemetry field should appear in this matrix.

  2. Every field should have an identifiable OpenTelemetry source.

  3. Prometheus names should only be recorded where the signal is exported through Prometheus-compatible metrics.

  4. Resource attributes should not be treated as metric labels unless they are actually promoted into labels by the telemetry pipeline.

  5. Dashboard-derived values should be distinguished from raw telemetry.

  6. Canonical IDs should remain stable even when the underlying Prometheus representation changes.

  7. Instrumentation-specific fields should map into shared canonical concepts where their semantics are equivalent.

  8. Redis telemetry should remain distinguishable from general database telemetry through its database system dimension.

  9. Logs and traces should remain separate signals even where they share correlation identifiers.

  10. The field matrix should describe the telemetry contract, not the implementation details of individual Grafana panels.


Relationship to Other Observability Documents

The Observability domain uses the following documentation flow:

Dashboard Specifications
        ↓
PromQL / LogQL References
        ↓
Metrics Catalogue
        ↓
OTel Metric / Attribute Inventory
        ↓
Field Matrix
        ↓
Canonical Mappings
        ↓
Minimum Observability Ontology

The field matrix therefore acts as the boundary between the implementation telemetry model and the canonical organizational data model.