implement econet exporter
Build and Publish / go-binaries (push) Has been skipped
Build and Publish / container-images (push) Has been skipped
Build and Publish / helm-release (push) Successful in 19s
Build and Publish / check-chart (push) Successful in 52s

This commit is contained in:
2026-07-04 17:22:31 -04:00
parent 8198e8cfee
commit b2ec72352a
44 changed files with 2226 additions and 1281 deletions
+41
View File
@@ -0,0 +1,41 @@
package econetmetrics
import "go.opentelemetry.io/otel/metric"
// gaugeBuilder creates observable gauges, accumulating them for a single
// RegisterCallback and short-circuiting on the first creation error.
//
// Units are intentionally baked into the metric names (Prometheus idiom)
// rather than set via metric.WithUnit — the OTEL→Prometheus exporter would
// otherwise append a second unit suffix (e.g. econet_setpoint_fahrenheit_F).
type gaugeBuilder struct {
m metric.Meter
obs []metric.Observable
err error
}
func (b *gaugeBuilder) i64(name, desc string) metric.Int64ObservableGauge {
if b.err != nil {
return nil
}
g, err := b.m.Int64ObservableGauge(name, metric.WithDescription(desc))
if err != nil {
b.err = err
return nil
}
b.obs = append(b.obs, g)
return g
}
func (b *gaugeBuilder) f64(name, desc string) metric.Float64ObservableGauge {
if b.err != nil {
return nil
}
g, err := b.m.Float64ObservableGauge(name, metric.WithDescription(desc))
if err != nil {
b.err = err
return nil
}
b.obs = append(b.obs, g)
return g
}