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:
2026-05-12 18:25:21 +00:00
parent 9304bed55b
commit 83ac0e3900
6 changed files with 92 additions and 7 deletions

46
RELEASE.md Normal file
View File

@@ -0,0 +1,46 @@
# v1.0.0
> `code.nochebuena.dev/go/telemetry`
## Overview
`telemetry` bootstraps the full OpenTelemetry SDK with OTLP gRPC exporters targeting
a Grafana Alloy collector. A single call to `New` sets all three OTel global providers
(traces → Tempo, metrics → Mimir, logs → Loki) and returns a shutdown function the
caller defers in `main`.
v1.0.0 adds named per-provider shutdown errors, bumps the Go directive to 1.26, and
commits the API as stable. No micro-lib dependencies are added.
## What Changed Since v0.9.0
### Named per-provider shutdown errors
The shutdown function now labels each provider failure individually:
```
telemetry: trace provider shutdown: <cause>
telemetry: metric provider shutdown: <cause>
telemetry: log provider shutdown: <cause>
```
Errors are still joined with `errors.Join`; individual causes remain accessible via
`errors.As`. Previously, provider shutdown failures were joined without labels, making
it impossible to identify which signal pipeline failed.
### Go directive bumped to 1.26
## Full API (stable)
- `Config``ServiceName`, `ServiceVersion`, `Environment`, `OTLPEndpoint`, `OTLPInsecure`
- `New(ctx, cfg) (func(context.Context) error, error)`
## Installation
```
go get code.nochebuena.dev/go/telemetry@v1.0.0
```
## Changelog
See [CHANGELOG.md](CHANGELOG.md#100---2026-05-12).