feat(telemetry)!: promote to v1.0.0 — named shutdown errors per provider, Go 1.26
Label each provider shutdown failure with its signal name (trace/metric/log). Errors remain joined via errors.Join; individual causes still unwrappable. Go directive bumped from 1.25 to 1.26. API committed as stable.
This commit is contained in:
20
CHANGELOG.md
20
CHANGELOG.md
@@ -5,6 +5,24 @@ All notable changes to this module will be documented in this file.
|
||||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
||||
and this module adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||
|
||||
## [1.0.0] - 2026-05-12
|
||||
|
||||
### Changed
|
||||
|
||||
- Go directive bumped from 1.25 to 1.26
|
||||
- Shutdown function now wraps each provider error with a `providerErr` type that
|
||||
prefixes the signal name (`"telemetry: trace provider shutdown: …"`,
|
||||
`"telemetry: metric provider shutdown: …"`, `"telemetry: log provider shutdown: …"`).
|
||||
The combined error is still joined with `errors.Join`; individual causes remain
|
||||
unwrappable via `errors.As`. Previously, the three errors were joined without labels.
|
||||
|
||||
### Stabilization
|
||||
|
||||
- API committed as stable. `Config`, `New`, and the shutdown function signature
|
||||
(`func(context.Context) error`) are unchanged from v0.9.0.
|
||||
|
||||
[1.0.0]: https://code.nochebuena.dev/go/telemetry/compare/v0.9.0...v1.0.0
|
||||
|
||||
## [0.9.0] - 2026-03-18
|
||||
|
||||
### Added
|
||||
@@ -17,7 +35,7 @@ and this module adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.
|
||||
|
||||
### Design Notes
|
||||
|
||||
- This module is Tier 5 (application bootstrap only) and must never be imported by framework libraries; those libraries use only the OTel API, which defaults to no-ops until `New` is called and sets the global providers
|
||||
- This module is Tier 1 (no micro-lib dependencies) and must never be imported by framework libraries; those libraries use only the OTel API, which defaults to no-ops until `New` is called and sets the global providers
|
||||
- All three signals share a single OTLP gRPC endpoint, matching the standard Grafana LGTM stack topology where Grafana Alloy receives all signals and fans them out to Tempo, Mimir, and Loki
|
||||
- The module intentionally does not implement `launcher.Component`; the returned shutdown function is deferred directly in `main`, keeping the dependency graph free of `launcher` and the interface as simple as a single function call
|
||||
|
||||
|
||||
Reference in New Issue
Block a user