Observability: optional OTLP/OpenObserve hooks through runtime config #49

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

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

Add provider-neutral observability hooks to the Star Language runtime so StarLang actors can participate in the same operator-controlled OTLP/OpenObserve plane without making observability mandatory.

Requirements

  • Add optional observability configuration to the runtime/init configuration.
  • Default OFF; absent config means no exporter initialization or outbound observability traffic.
  • Keep instrumentation API/provider-neutral; OTLP is the export boundary and OpenObserve is one destination.
  • Instrument actor creation/termination, mailbox/message processing, supervision/restart, dispatch, runtime errors, and external-call boundaries.
  • Preserve semantic control-plane identities in safe resource/span attributes (actor type/name, runtime version, environment), avoiding unbounded cardinality.
  • Do not export message bodies or investigation payloads by default.
  • Exporter failures are bounded/non-fatal and never change actor semantics.
  • Tests prove disabled mode has zero exporter/network effects.
  • Tests cover configured exporter and exporter-down behavior.
  • Document generic OTLP and OpenObserve examples.

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

Exclusion

No anonymous usage analytics or StarIntel-owned product telemetry endpoint.

Coordinate with https://github.com/lost-rob0t/starintel-server/issues/128. Add provider-neutral observability hooks to the Star Language runtime so StarLang actors can participate in the same operator-controlled OTLP/OpenObserve plane without making observability mandatory. ## Requirements - [ ] Add optional observability configuration to the runtime/init configuration. - [ ] Default OFF; absent config means no exporter initialization or outbound observability traffic. - [ ] Keep instrumentation API/provider-neutral; OTLP is the export boundary and OpenObserve is one destination. - [ ] Instrument actor creation/termination, mailbox/message processing, supervision/restart, dispatch, runtime errors, and external-call boundaries. - [ ] Preserve semantic control-plane identities in safe resource/span attributes (actor type/name, runtime version, environment), avoiding unbounded cardinality. - [ ] Do not export message bodies or investigation payloads by default. - [ ] Exporter failures are bounded/non-fatal and never change actor semantics. - [ ] Tests prove disabled mode has zero exporter/network effects. - [ ] Tests cover configured exporter and exporter-down behavior. - [ ] Document generic OTLP and OpenObserve examples. Docs: https://openobserve.ai/docs/ingestion/ ## Exclusion No anonymous usage analytics or StarIntel-owned product telemetry endpoint.
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/star-lang#49
No description provided.