mirror of
https://github.com/grafana/grafana.git
synced 2025-02-16 18:34:52 -06:00
* Pass OTEL sampling config to plugins * fix capital letters * Do not pass sampler env vars if sampling is not configured * Add tests * PR review feedback * Simplify tracing env vars logic * Update test to reflect pkg/infra/tracing behaviour
31 lines
894 B
Go
31 lines
894 B
Go
package config
|
|
|
|
import (
|
|
"fmt"
|
|
|
|
"github.com/grafana/grafana/pkg/infra/tracing"
|
|
pCfg "github.com/grafana/grafana/pkg/plugins/config"
|
|
"github.com/grafana/grafana/pkg/setting"
|
|
)
|
|
|
|
// newTracingCfg creates a plugins tracing configuration based on the provided Grafana tracing config.
|
|
// If OpenTelemetry (OTLP) is disabled, a zero-value OpenTelemetryCfg is returned.
|
|
func newTracingCfg(grafanaCfg *setting.Cfg) (pCfg.Tracing, error) {
|
|
ots, err := tracing.ParseSettings(grafanaCfg)
|
|
if err != nil {
|
|
return pCfg.Tracing{}, fmt.Errorf("parse settings: %w", err)
|
|
}
|
|
if !ots.OTelExporterEnabled() {
|
|
return pCfg.Tracing{}, nil
|
|
}
|
|
return pCfg.Tracing{
|
|
OpenTelemetry: pCfg.OpenTelemetryCfg{
|
|
Address: ots.Address,
|
|
Propagation: ots.Propagation,
|
|
Sampler: ots.Sampler,
|
|
SamplerParam: ots.SamplerParam,
|
|
SamplerRemoteURL: ots.SamplerRemoteURL,
|
|
},
|
|
}, nil
|
|
}
|