Skip to content

feat(observability): identify the process in telemetry (version, instance id, roles) #772

Description

@EricAndrechek

Area: observability — gap · found during a backlog review

Expected: with several processes exporting telemetry (split api / ingest roles, replicas), every metric series, span and log record can be traced back to the process, its roles and the build it runs, and an operator can set the service name and resource attributes the standard OpenTelemetry way.

Actual:

  • The OpenTelemetry resource carries only service.name (internal/observability/provider.go:137-139), built with resource.New and no resource.WithFromEnv(), so OTEL_SERVICE_NAME and OTEL_RESOURCE_ATTRIBUTES are ignored; the name is the constant "wavehouse" (internal/app/wire.go:42).
  • instance_id exists (internal/config/config.go:30, defaulting to <hostname>-<8 hex>) and is the coord lease holder (internal/app/wire_nats.go:132), but it is only logged once at boot (internal/app/app.go:178), with the roles, and is on no metric, span or later log record.
  • Version, commit and build time reach log records only on the OTLP log path (wire.go:239-243); /version serves them over HTTP (Build Info & /version Endpoint #44), but there is no build_info-style metric, so which build each process runs isn't visible from metrics.

Impact: series and spans pushed over OTLP from two replicas of the same role are indistinguishable unless the collector adds its own instance attribute, and a mixed-version rollout can't be seen from dashboards.

Related: #44 (closed; /version), #94.


Found during a backlog review; validated by code-read against origin/main at afd76695 on 2026-10-08.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    area/observabilityMetrics, logs, traces, health, profilingenhancementNew feature or request

    Type

    No type

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions