Releases: go-coldbrew/core
v0.2.1
What's new
core.AddWorkerRunOptions(opts ...workers.RunOption)— init-time hook to configure run-level worker options (metrics, default jitter, run-level interceptors).- Default Prometheus worker metrics —
core.Run()now wiresworkers.NewPrometheusMetrics(APP_NAME)automatically whenAPP_NAMEis set and Prometheus isn't disabled. Worker lifecycle metrics (worker_started_total,worker_panicked_total,worker_active_count,worker_run_duration_seconds, etc.) now show up on/metricsfor any service usingCBWorkerProviderwithout per-worker setup. - A user-supplied
workers.WithMetrics(...)viaAddWorkerRunOptionsoverrides the default.
Bug fixed
Prior to this release, core.Run() invoked workers.Run with no RunOptions, so the workers package fell back to BaseMetrics{} (no-op) and every worker lifecycle metric silently stayed at zero in any service that adopted CBWorkerProvider (#87).
Compatibility
Additive only — no breaking changes. Services that don't set APP_NAME or that disable Prometheus continue to behave as before.
v0.2.0
Workers integration + lifecycle hooks
Add 5 optional interfaces for service lifecycle management, following the existing CBStopper/CBGracefulStopper pattern:
- CBWorkerProvider — run background workers managed by go-coldbrew/workers
- CBPreStarter — setup before servers start (DB connections, auth interceptors)
- CBPostStarter — act after server goroutines launch (service discovery)
- CBPreStopper — act before graceful shutdown (deregister, flush)
- CBPostStopper — final cleanup after everything stops
Lifecycle
PreStart → initGRPC → initHTTP → start workers → start servers → PostStart
→ block → PreStop → FailCheck → drain → stop workers → stop servers → Stop → PostStop
Config
- Added
env:""tags on all Config fields alongsideenvconfig:""for modern ecosystem compat - Added
Config.ValidateStrict() []errorfor programmatic validation
Other
- 100% backward compatible — CB interface unchanged, existing services work without modification
- Bumped
go-coldbrew/workersto v0.2.1
v0.1.52
What's Changed
Automatic TLS certificate hot-reloading
ColdBrew now automatically watches TLS cert/key files for changes and reloads them without requiring a service restart. This is powered by cloudflare/certinel using fsnotify for event-driven file watching.
- Zero-downtime certificate rotation for Kubernetes (cert-manager, Vault)
- Works with symlink-based rotation out of the box
- Watcher errors trigger graceful shutdown so the process can be restarted by the orchestrator
Full Changelog: v0.1.51...v0.1.52
v0.1.51
- Switch SetupLogger to slog-native
log.SetDefault(log.NewHandler(...)) - Native
slog.LogAttrscalls now get ColdBrew context fields automatically - Respect user-configured handler —
SetupLoggerskips iflog.DefaultIsSet() - Fix error log field ordering in SetupLogger
- Bump
go-coldbrew/logto v0.4.1
v0.1.50
v0.1.49
v0.1.48
v0.1.47
v0.1.46
v0.1.46-dev
feat: native stats/opentelemetry + OTEL metrics + OpenTracing removal
- Migrate gRPC OTel instrumentation from deprecated otelgrpc contrib to native grpc stats/opentelemetry
- Add opt-in OTEL metrics dual-export via ENABLE_OTEL_METRICS alongside Prometheus
- Remove OpenTracing bridge (OTLP_USE_OPENTRACING_BRIDGE now ignored with warning)
- TracerProvider and MeterProvider registered for graceful shutdown
- New public API: SetOTELOptions(), SetupOTELMetrics(), OTELMeterProvider()
- Legacy fallback via OTEL_USE_LEGACY_INSTRUMENTATION=true
Roadmap items: 8.1, 8.3