Compare commits

1 Commits
v0.9.0 ... main

Author SHA1 Message Date
9304bed55b docs(telemetry): correct tier from 5 to 1
telemetry has zero micro-lib dependencies — only the external OTel SDK.
Tier 1 reflects its actual position in the dependency graph. The Tier 5
label was misleading about push/tag ordering; telemetry can be released
independently of all other micro-lib modules.
2026-03-19 06:56:16 -06:00

View File

@@ -8,7 +8,7 @@ Sets the three OTel global providers so that all micro-libs using the OTel globa
## Tier & Dependencies ## Tier & Dependencies
**Tier 5** (application bootstrap only). Must never be imported by framework libraries (Tier 04). **Tier 1** (no micro-lib dependencies; external OTel SDK only). Must never be imported by framework libraries.
Depends on: Depends on:
- `go.opentelemetry.io/otel` and sub-packages — API and SDK - `go.opentelemetry.io/otel` and sub-packages — API and SDK
@@ -21,7 +21,7 @@ No micro-lib dependencies. No `launcher` dependency — telemetry has no Compone
## Key Design Decisions ## Key Design Decisions
- **Tier 5 / app-only** (ADR-001): Libraries use only the OTel API (no-op default). This module activates the real SDK. Importing it from a library is a mistake. - **Tier 1 / app-only** (ADR-001): Libraries use only the OTel API (no-op default). This module activates the real SDK. Importing it from a library is a mistake.
- **Three-signal OTLP bootstrap** (ADR-002): `New(ctx, cfg)` sets up traces → Tempo, metrics → Mimir, logs → Loki, all over a single OTLP gRPC endpoint. W3C TraceContext + Baggage propagation is set globally. - **Three-signal OTLP bootstrap** (ADR-002): `New(ctx, cfg)` sets up traces → Tempo, metrics → Mimir, logs → Loki, all over a single OTLP gRPC endpoint. W3C TraceContext + Baggage propagation is set globally.
- **Global provider strategy** (ADR-003): Libraries call `otel.Tracer(...)` / `otel.Meter(...)` / `global.Logger(...)`. After `telemetry.New`, those calls route to the real SDK with no library changes required. - **Global provider strategy** (ADR-003): Libraries call `otel.Tracer(...)` / `otel.Meter(...)` / `global.Logger(...)`. After `telemetry.New`, those calls route to the real SDK with no library changes required.
- **No `launcher.Component`**: Telemetry is not a lifecycle component. The caller defers the returned shutdown function directly in `main`. This keeps the module dependency graph minimal and the interface simple. - **No `launcher.Component`**: Telemetry is not a lifecycle component. The caller defers the returned shutdown function directly in `main`. This keeps the module dependency graph minimal and the interface simple.