Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
9304bed55b
|
@@ -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 0–4).
|
**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.
|
||||||
|
|||||||
Reference in New Issue
Block a user