Files
Andreas GerstmayrandGitHub 3d5a966c8b Support exporting internal Tempo traces via OTLP exporter when use_otel_tracer is enabled. (#4028)
* 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]>
2024-08-29 15:06:40 -04:00

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
})
}