Observability: optional OpenObserve/OTLP support via init/config #59

Open
opened 2026-08-26 07:45:54 +00:00 by lost-rob0t · 0 comments
lost-rob0t commented 2026-08-26 07:45:54 +00:00 (Migrated from github.com)

Cross-project observability work

Coordinate with https://github.com/lost-rob0t/starintel-server/issues/128.

Add optional operator-controlled observability for Quasar using OpenTelemetry/OTLP so OpenObserve is a supported destination without becoming a hard runtime dependency.

Docs: https://openobserve.ai/docs/ingestion/

Configuration

Wire this through Quasar's normal startup/init configuration. Absence of the observability block MUST preserve current behavior.

Config contract should cover: enabled, OTLP HTTP/gRPC endpoint, service/instance name, environment, stream, enabled signals (logs, metrics, traces), batching/timeout limits, and auth via environment/secret reference rather than literal credentials.

Acceptance

  • Default OFF; no config means no exporter and no outbound observability traffic.
  • No required OpenObserve/collector service for normal startup.
  • Exporter failure is non-fatal and cannot block actor/runtime work.
  • Instrument actor lifecycle, message handling, job/run lifecycle, HTTP/API boundaries, and important failures with bounded-cardinality attributes.
  • Correlate logs/traces where possible.
  • Redact secrets and sensitive investigation payloads before export.
  • Tests prove disabled = zero network/exporter initialization.
  • Tests cover configured endpoint and exporter-down behavior.
  • Document OpenObserve and generic OTLP examples.

Exclusion

This is deployment observability only. Do not add StarIntel-owned analytics/product telemetry, installation IDs, or automatic crash upload here.

## Cross-project observability work Coordinate with https://github.com/lost-rob0t/starintel-server/issues/128. Add optional operator-controlled observability for Quasar using OpenTelemetry/OTLP so OpenObserve is a supported destination without becoming a hard runtime dependency. Docs: https://openobserve.ai/docs/ingestion/ ## Configuration Wire this through Quasar's normal startup/init configuration. Absence of the observability block MUST preserve current behavior. Config contract should cover: `enabled`, OTLP HTTP/gRPC endpoint, service/instance name, environment, stream, enabled signals (`logs`, `metrics`, `traces`), batching/timeout limits, and auth via environment/secret reference rather than literal credentials. ## Acceptance - [ ] Default OFF; no config means no exporter and no outbound observability traffic. - [ ] No required OpenObserve/collector service for normal startup. - [ ] Exporter failure is non-fatal and cannot block actor/runtime work. - [ ] Instrument actor lifecycle, message handling, job/run lifecycle, HTTP/API boundaries, and important failures with bounded-cardinality attributes. - [ ] Correlate logs/traces where possible. - [ ] Redact secrets and sensitive investigation payloads before export. - [ ] Tests prove disabled = zero network/exporter initialization. - [ ] Tests cover configured endpoint and exporter-down behavior. - [ ] Document OpenObserve and generic OTLP examples. ## Exclusion This is deployment observability only. Do not add StarIntel-owned analytics/product telemetry, installation IDs, or automatic crash upload here.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
nsaspy/quasar#59
No description provided.