OpenTelemetry Tracing Reference
All backend spans are created via the OpenTelemetry SDK using otel.Tracer(observability.TracerName). Traces are exported to Tempo via OTLP gRPC (port 4317) and can be visualized in Grafana Explore using the Tempo datasource.
Auth Middleware
| Span | Attributes | Source |
|---|---|---|
auth.validate_token | auth.valid | api/auth_middleware.go |
auth.resolve_access | auth.subject_id, auth.subject_type, auth.is_super_admin | api/auth_middleware.go |
auth.check_permission | auth.permission_checked, auth.subject_id, auth.subject_type, auth.is_super_admin, auth.permitted, auth.client_id | api/auth_middleware.go |
HTTP Middleware
| Span | Attributes | Source |
|---|---|---|
otelhttp (auto-instrumented) | request_id, method, path, status | observability/middleware.go |
Credential API
| Span | Attributes | Source |
|---|---|---|
api.CreateCredential | — | api/credential_handler.go |
api.ListCredentials | — | api/credential_handler.go |
api.GetCredential | — | api/credential_handler.go |
api.UpdateCredential | — | api/credential_handler.go |
api.DeleteCredential | — | api/credential_handler.go |
api.TestCredential | — | api/credential_handler.go |
Healthcheck API
| Span | Attributes | Source |
|---|---|---|
healthcheck.score.host | — | api/healthcheck_handler.go |
healthcheck.score.environment | — | api/healthcheck_handler.go |
healthcheck.score.client | — | api/healthcheck_handler.go |
healthcheck.trigger | — | api/healthcheck_handler.go |
Metric API
| Span | Attributes | Source |
|---|---|---|
api.ListMetricNames | proxima.host_id | api/metric_handler.go |
api.QueryMetrics | proxima.host_id, proxima.metric_name, proxima.derivative | api/metric_handler.go |
api.ListMetricSeries | proxima.host_id, proxima.metric_name | api/metric_handler.go |
api.QueryLatestMetrics | proxima.host_count, proxima.metric_count | api/metric_handler.go |
api.QueryProcessMetrics | proxima.host_id, proxima.pid, proxima.process_name | api/metric_handler.go |
api.QueryContainerMetrics | proxima.host_id, proxima.container_id | api/metric_handler.go |
api.QueryContainerLatestMetrics | proxima.host_id | api/metric_handler.go |
Aggregate Metric API
| Span | Attributes | Source |
|---|---|---|
api.ListMetricNamesByEnvironment | — | api/aggregate_metric_handler.go |
api.QueryMetricsByEnvironment | — | api/aggregate_metric_handler.go |
api.ListMetricSeriesByEnvironment | — | api/aggregate_metric_handler.go |
api.ListMetricNamesByClient | — | api/aggregate_metric_handler.go |
api.QueryMetricsByClient | — | api/aggregate_metric_handler.go |
api.ListMetricSeriesByClient | — | api/aggregate_metric_handler.go |
Search API
| Span | Attributes | Source |
|---|---|---|
api.Search | — | api/search_handler.go |
api.SearchCount | — | api/search_handler.go |
api.SearchFields | — | api/search_handler.go |
api.SearchValues | — | api/search_handler.go |
api.SearchValidate | — | api/search_handler.go |
api.SearchAggregate | — | api/search_handler.go |
Logs API
| Span | Attributes | Source |
|---|---|---|
logs.query | — | api/logs_handler.go |
logs.proxy | — | api/logs_handler.go |
Saved Search API
| Span | Attributes | Source |
|---|---|---|
api.SavedSearchList | — | api/saved_search_handler.go |
api.SavedSearchCreate | — | api/saved_search_handler.go |
api.SavedSearchGetByID | — | api/saved_search_handler.go |
api.SavedSearchUpdate | — | api/saved_search_handler.go |
api.SavedSearchDelete | — | api/saved_search_handler.go |
NATS Workers
| Span | Attributes | Source |
|---|---|---|
process.registration | messaging.system, messaging.subject, proxima.correlation_id, proxima.host_id, proxima.message_type | worker/events.go |
process.heartbeat | messaging.system, messaging.subject, proxima.correlation_id, proxima.host_id, proxima.message_type | worker/events.go |
process.inventory | messaging.system, messaging.subject, proxima.correlation_id, proxima.host_id, proxima.message_type | worker/events.go |
process.telemetry | messaging.system, messaging.subject | worker/telemetry.go |
process.heartbeat_v2 | messaging.system, messaging.subject | worker/heartbeat_consumer.go |
process.config_fetch | messaging.system, messaging.subject, proxima.host_id | worker/config_fetch.go |
process.config_apply | messaging.system, messaging.subject, proxima.host_id, proxima.config_type, proxima.status, proxima.version | worker/config_apply.go |
Worker Processing
| Span | Attributes | Source |
|---|---|---|
worker.HeartbeatProcess | proxima.host_id, proxima.collectors_count, proxima.scanners_count | worker/heartbeat.go |
worker.ProcessesProcess | proxima.host_id, proxima.process_count | worker/processes.go |
worker.MetricsProcess | proxima.host_id, vm.account_id, vm.metric_count | worker/metrics.go |
worker.InventoryProcess | — | worker/inventory.go |
worker.ChangesProcess | proxima.host_id, proxima.scan_type, proxima.file_count, proxima.batch_seq, proxima.batch_total | worker/changes.go |
worker.HealthcheckProcess | proxima.host_id, proxima.run_id, proxima.scanner, proxima.environment_id, proxima.client_id, proxima.total_checks, proxima.passed, proxima.failed, proxima.findings_count | worker/healthcheck.go |
logs.process | proxima.host_id, vl.account_id, vl.entry_count | worker/logs_worker.go |
Compliance Worker
| Span | Attributes | Source |
|---|---|---|
process.compliance.evaluate | messaging.system, messaging.subject, proxima.host_id, proxima.run_id, proxima.environment_id, proxima.client_id | worker/compliance_consumer.go |
worker.ComplianceEvaluate | proxima.host_id, proxima.run_id, proxima.environment_id, proxima.client_id, proxima.framework.{slug}.controls, proxima.framework.{slug}.evaluations | worker/compliance.go |
Config Sync
| Span | Attributes | Source |
|---|---|---|
configsync.resolve | proxima.config_type, proxima.host_id, proxima.environment_id, proxima.source | agentconfig/resolver.go |
configsync.resolve_all | proxima.host_id, proxima.environment_id, proxima.config_count | agentconfig/resolver.go |
configsync.resolve_credentials | proxima.config_type, proxima.client_id, credential_id, credential_type | agentconfig/credential_resolver.go |
Search Engine
| Span | Attributes | Source |
|---|---|---|
search.Compile | proxima.query | search/search.go |
VictoriaMetrics Client
| Span | Attributes | Source |
|---|---|---|
vmclient.Import | — | vmclient/client.go |
vmclient.QueryRange | — | vmclient/client.go |
vmclient.Query | — | vmclient/client.go |
vmclient.LabelValues | — | vmclient/client.go |
vmclient.Health | — | vmclient/client.go |
VictoriaLogs Client
| Span | Attributes | Source |
|---|---|---|
vlclient.Insert | — | vlclient/client.go |
vlclient.Health | — | vlclient/client.go |
Vault Transit
| Span | Attributes | Source |
|---|---|---|
vault.transit.encrypt | — | credential/vault_transit.go |
vault.transit.decrypt | — | credential/vault_transit.go |
Store
| Span | Attributes | Source |
|---|---|---|
store.SavedSearchList | — | store/saved_search.go |
store.SavedSearchGetByID | — | store/saved_search.go |
store.SavedSearchCreate | — | store/saved_search.go |
store.SavedSearchUpdate | — | store/saved_search.go |
store.SavedSearchDelete | — | store/saved_search.go |
store.SearchHosts | — | store/search.go |
store.SearchCount | — | store/search.go |
store.SearchAggregate | — | store/search.go |
store.SearchFieldValues | — | store/search.go |
AI Chat & MCP
| Span | Attributes | Source |
|---|---|---|
chat.llm_call | model | chat/llm_client.go |
chat.model_route.llm | message_preview | chat/router.go |
chat.context_prefetch | — | chat/prefetch.go |
chat.encryption.encrypt | — | chat/encryption.go |
chat.encryption.decrypt | — | chat/encryption.go |
chat.encryption.dek_resolve | — | chat/encryption.go |
chat.encryption.vault_encrypt | — | chat/encryption.go |
chat.encryption.vault_decrypt | — | chat/encryption.go |
Interactive Terminal (gRPC)
| Span | Attributes | Source |
|---|---|---|
TerminalGRPC.Session | hostname, login, ... | grpcserver/terminal.go |
TerminalGRPC.JoinSession | session_id | grpcserver/terminal.go |
TerminalGRPC.PortForward | user_id | grpcserver/tunnel.go |
TerminalGRPC.ProxySSH | user_id | grpcserver/proxyssh.go |
L1 Incident Agent & Alerts
| Span | Attributes | Source |
|---|---|---|
process.escalation.tick | proxima.escalation.planned | worker/escalation_timer_worker.go |
process.memory.draft | messaging.system, messaging.subject, proxima.alert_group_id | worker/memory.go |
process.alerts.ingest | messaging.system, messaging.subject | worker/alert.go |
process.alerts.triage | messaging.system, messaging.subject, proxima.alert_group_id | worker/triage.go |
process.alerts.correlate | messaging.system, messaging.subject | worker/correlation.go |
Fleet
| Span | Attributes | Source |
|---|---|---|
fleet.worker_tick | — | worker/fleet_update_worker.go |
Service Desk & JSM
| Span | Attributes | Source |
|---|---|---|
api.ServiceDesk.GetTicket.SLA | — | api/service_desk_ticket_handler.go |
api.ServiceDesk.GetTicket.Delivery | — | api/service_desk_ticket_handler.go |
api.ServiceDesk.GetTicket.StatusHistory | — | api/service_desk_ticket_handler.go |
jsm.add_attachment | — | jsmclient/client.go |
jsm.proxy_download | — | jsmclient/client.go |
Briefing
| Span | Attributes | Source |
|---|---|---|
briefing.Assemble | — | service/briefing_service.go |
briefing.<source> | (per-source child spans) | service/briefing_service.go |
OIDC
| Span | Attributes | Source |
|---|---|---|
auth.oidc_exchange | (client span) | auth/oidc.go |
auth.oidc_verify | (client span) | auth/oidc.go |
All span names follow the subsystem.operation naming convention. Attributes use the proxima. prefix for domain-specific values and OpenTelemetry semantic conventions (e.g., messaging.system) for infrastructure attributes.
This page lists the primary span subsystems. The backend instruments additional spans (e.g. Kubernetes sync, ClickHouse, email) and the agent emits its own spans that are forwarded to Tempo via the trace-ingest worker — see Agent Tracing. The authoritative source is always the *.Start(ctx, "...") calls in the backend and agent code.