mirror of
https://github.com/hanzoai/traces.git
synced 2026-11-03 04:05:45 +00:00
* Support exporting internal Tempo traces via OTLP exporter when `use_otel_tracer` is enabled. Example environment variables to configure OTLP export: ``` OTEL_TRACES_EXPORTER=otlp OTEL_EXPORTER_OTLP_ENDPOINT=http://agent:4318 ``` Signed-off-by: Andreas Gerstmayr <[email protected]> * fix lint errors Signed-off-by: Andreas Gerstmayr <[email protected]> --------- Signed-off-by: Andreas Gerstmayr <[email protected]>
48 lines
1.1 KiB
Go
48 lines
1.1 KiB
Go
// Copyright The OpenTelemetry Authors
|
|
// SPDX-License-Identifier: Apache-2.0
|
|
|
|
package prometheus // import "go.opentelemetry.io/contrib/bridges/prometheus"
|
|
|
|
import (
|
|
"github.com/prometheus/client_golang/prometheus"
|
|
)
|
|
|
|
// config contains options for the producer.
|
|
type config struct {
|
|
gatherers []prometheus.Gatherer
|
|
}
|
|
|
|
// newConfig creates a validated config configured with options.
|
|
func newConfig(opts ...Option) config {
|
|
cfg := config{}
|
|
for _, opt := range opts {
|
|
cfg = opt.apply(cfg)
|
|
}
|
|
|
|
if len(cfg.gatherers) == 0 {
|
|
cfg.gatherers = []prometheus.Gatherer{prometheus.DefaultGatherer}
|
|
}
|
|
|
|
return cfg
|
|
}
|
|
|
|
// Option sets producer option values.
|
|
type Option interface {
|
|
apply(config) config
|
|
}
|
|
|
|
type optionFunc func(config) config
|
|
|
|
func (fn optionFunc) apply(cfg config) config {
|
|
return fn(cfg)
|
|
}
|
|
|
|
// WithGatherer configures which prometheus Gatherer the Bridge will gather
|
|
// from. If no registerer is used the prometheus DefaultGatherer is used.
|
|
func WithGatherer(gatherer prometheus.Gatherer) Option {
|
|
return optionFunc(func(cfg config) config {
|
|
cfg.gatherers = append(cfg.gatherers, gatherer)
|
|
return cfg
|
|
})
|
|
}
|