2024-02-27 05:38:02 -06:00
|
|
|
package pluginconfig
|
2023-04-05 07:40:08 -05:00
|
|
|
|
|
|
|
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) {
|
2024-03-21 11:06:32 -05:00
|
|
|
tracingCfg, err := tracing.ParseTracingConfig(grafanaCfg)
|
2023-04-05 07:40:08 -05:00
|
|
|
if err != nil {
|
|
|
|
return pCfg.Tracing{}, fmt.Errorf("parse settings: %w", err)
|
|
|
|
}
|
2024-03-21 11:06:32 -05:00
|
|
|
if !tracingCfg.OTelExporterEnabled() {
|
2023-04-05 07:40:08 -05:00
|
|
|
return pCfg.Tracing{}, nil
|
|
|
|
}
|
|
|
|
return pCfg.Tracing{
|
|
|
|
OpenTelemetry: pCfg.OpenTelemetryCfg{
|
2024-03-21 11:06:32 -05:00
|
|
|
Address: tracingCfg.Address,
|
|
|
|
Propagation: tracingCfg.Propagation,
|
|
|
|
Sampler: tracingCfg.Sampler,
|
|
|
|
SamplerParam: tracingCfg.SamplerParam,
|
|
|
|
SamplerRemoteURL: tracingCfg.SamplerRemoteURL,
|
2023-04-05 07:40:08 -05:00
|
|
|
},
|
|
|
|
}, nil
|
|
|
|
}
|