mirror of
https://github.com/grafana/grafana.git
synced 2025-09-27 16:14:26 +08:00
Prometheus: (Chore) Switch to sdk tracing from infra tracing (#76975)
This commit is contained in:
@ -87,7 +87,7 @@ func TestIntegrationPluginManager(t *testing.T) {
|
|||||||
idb := influxdb.ProvideService(hcp)
|
idb := influxdb.ProvideService(hcp)
|
||||||
lk := loki.ProvideService(hcp, features, tracer)
|
lk := loki.ProvideService(hcp, features, tracer)
|
||||||
otsdb := opentsdb.ProvideService(hcp)
|
otsdb := opentsdb.ProvideService(hcp)
|
||||||
pr := prometheus.ProvideService(hcp, cfg, features, tracer)
|
pr := prometheus.ProvideService(hcp, cfg, features)
|
||||||
tmpo := tempo.ProvideService(hcp)
|
tmpo := tempo.ProvideService(hcp)
|
||||||
td := testdatasource.ProvideService()
|
td := testdatasource.ProvideService()
|
||||||
pg := postgres.ProvideService(cfg)
|
pg := postgres.ProvideService(cfg)
|
||||||
|
@ -84,7 +84,7 @@ func Test_healthcheck(t *testing.T) {
|
|||||||
t.Run("should do a successful health check", func(t *testing.T) {
|
t.Run("should do a successful health check", func(t *testing.T) {
|
||||||
httpProvider := getMockProvider[*healthCheckSuccessRoundTripper]()
|
httpProvider := getMockProvider[*healthCheckSuccessRoundTripper]()
|
||||||
s := &Service{
|
s := &Service{
|
||||||
im: datasource.NewInstanceManager(newInstanceSettings(httpProvider, &setting.Cfg{}, &featuremgmt.FeatureManager{}, nil, backend.NewLoggerWith("logger", "test"))),
|
im: datasource.NewInstanceManager(newInstanceSettings(httpProvider, &setting.Cfg{}, &featuremgmt.FeatureManager{}, backend.NewLoggerWith("logger", "test"))),
|
||||||
}
|
}
|
||||||
|
|
||||||
req := &backend.CheckHealthRequest{
|
req := &backend.CheckHealthRequest{
|
||||||
@ -100,7 +100,7 @@ func Test_healthcheck(t *testing.T) {
|
|||||||
t.Run("should return an error for an unsuccessful health check", func(t *testing.T) {
|
t.Run("should return an error for an unsuccessful health check", func(t *testing.T) {
|
||||||
httpProvider := getMockProvider[*healthCheckFailRoundTripper]()
|
httpProvider := getMockProvider[*healthCheckFailRoundTripper]()
|
||||||
s := &Service{
|
s := &Service{
|
||||||
im: datasource.NewInstanceManager(newInstanceSettings(httpProvider, &setting.Cfg{}, &featuremgmt.FeatureManager{}, nil, backend.NewLoggerWith("logger", "test"))),
|
im: datasource.NewInstanceManager(newInstanceSettings(httpProvider, &setting.Cfg{}, &featuremgmt.FeatureManager{}, backend.NewLoggerWith("logger", "test"))),
|
||||||
}
|
}
|
||||||
|
|
||||||
req := &backend.CheckHealthRequest{
|
req := &backend.CheckHealthRequest{
|
||||||
|
@ -52,7 +52,7 @@ func Test_GetHeuristics(t *testing.T) {
|
|||||||
//httpProvider := getHeuristicsMockProvider(&rt)
|
//httpProvider := getHeuristicsMockProvider(&rt)
|
||||||
httpProvider := newHeuristicsSDKProvider(rt)
|
httpProvider := newHeuristicsSDKProvider(rt)
|
||||||
s := &Service{
|
s := &Service{
|
||||||
im: datasource.NewInstanceManager(newInstanceSettings(httpProvider, &setting.Cfg{}, &featuremgmt.FeatureManager{}, nil, backend.NewLoggerWith("logger", "test"))),
|
im: datasource.NewInstanceManager(newInstanceSettings(httpProvider, &setting.Cfg{}, &featuremgmt.FeatureManager{}, backend.NewLoggerWith("logger", "test"))),
|
||||||
}
|
}
|
||||||
|
|
||||||
req := HeuristicsRequest{
|
req := HeuristicsRequest{
|
||||||
@ -72,7 +72,7 @@ func Test_GetHeuristics(t *testing.T) {
|
|||||||
}
|
}
|
||||||
httpProvider := newHeuristicsSDKProvider(rt)
|
httpProvider := newHeuristicsSDKProvider(rt)
|
||||||
s := &Service{
|
s := &Service{
|
||||||
im: datasource.NewInstanceManager(newInstanceSettings(httpProvider, &setting.Cfg{}, &featuremgmt.FeatureManager{}, nil, backend.NewLoggerWith("logger", "test"))),
|
im: datasource.NewInstanceManager(newInstanceSettings(httpProvider, &setting.Cfg{}, &featuremgmt.FeatureManager{}, backend.NewLoggerWith("logger", "test"))),
|
||||||
}
|
}
|
||||||
|
|
||||||
req := HeuristicsRequest{
|
req := HeuristicsRequest{
|
||||||
|
@ -15,7 +15,6 @@ import (
|
|||||||
apiv1 "github.com/prometheus/client_golang/api/prometheus/v1"
|
apiv1 "github.com/prometheus/client_golang/api/prometheus/v1"
|
||||||
|
|
||||||
"github.com/grafana/grafana-plugin-sdk-go/backend/httpclient"
|
"github.com/grafana/grafana-plugin-sdk-go/backend/httpclient"
|
||||||
"github.com/grafana/grafana/pkg/infra/tracing"
|
|
||||||
"github.com/grafana/grafana/pkg/services/featuremgmt"
|
"github.com/grafana/grafana/pkg/services/featuremgmt"
|
||||||
"github.com/grafana/grafana/pkg/setting"
|
"github.com/grafana/grafana/pkg/setting"
|
||||||
"github.com/grafana/grafana/pkg/tsdb/prometheus/client"
|
"github.com/grafana/grafana/pkg/tsdb/prometheus/client"
|
||||||
@ -36,17 +35,17 @@ type instance struct {
|
|||||||
versionCache *cache.Cache
|
versionCache *cache.Cache
|
||||||
}
|
}
|
||||||
|
|
||||||
func ProvideService(httpClientProvider *httpclient.Provider, cfg *setting.Cfg, features featuremgmt.FeatureToggles, tracer tracing.Tracer) *Service {
|
func ProvideService(httpClientProvider *httpclient.Provider, cfg *setting.Cfg, features featuremgmt.FeatureToggles) *Service {
|
||||||
plog := backend.NewLoggerWith("logger", "tsdb.prometheus")
|
plog := backend.NewLoggerWith("logger", "tsdb.prometheus")
|
||||||
plog.Debug("Initializing")
|
plog.Debug("Initializing")
|
||||||
return &Service{
|
return &Service{
|
||||||
im: datasource.NewInstanceManager(newInstanceSettings(httpClientProvider, cfg, features, tracer, plog)),
|
im: datasource.NewInstanceManager(newInstanceSettings(httpClientProvider, cfg, features, plog)),
|
||||||
features: features,
|
features: features,
|
||||||
logger: plog,
|
logger: plog,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func newInstanceSettings(httpClientProvider *httpclient.Provider, cfg *setting.Cfg, features featuremgmt.FeatureToggles, tracer tracing.Tracer, log log.Logger) datasource.InstanceFactoryFunc {
|
func newInstanceSettings(httpClientProvider *httpclient.Provider, cfg *setting.Cfg, features featuremgmt.FeatureToggles, log log.Logger) datasource.InstanceFactoryFunc {
|
||||||
return func(ctx context.Context, settings backend.DataSourceInstanceSettings) (instancemgmt.Instance, error) {
|
return func(ctx context.Context, settings backend.DataSourceInstanceSettings) (instancemgmt.Instance, error) {
|
||||||
// Creates a http roundTripper.
|
// Creates a http roundTripper.
|
||||||
opts, err := client.CreateTransportOptions(ctx, settings, cfg, log)
|
opts, err := client.CreateTransportOptions(ctx, settings, cfg, log)
|
||||||
@ -59,7 +58,7 @@ func newInstanceSettings(httpClientProvider *httpclient.Provider, cfg *setting.C
|
|||||||
}
|
}
|
||||||
|
|
||||||
// New version using custom client and better response parsing
|
// New version using custom client and better response parsing
|
||||||
qd, err := querydata.New(httpClient, features, tracer, settings, log)
|
qd, err := querydata.New(httpClient, features, settings, log)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
@ -69,7 +69,7 @@ func TestService(t *testing.T) {
|
|||||||
f := &fakeHTTPClientProvider{}
|
f := &fakeHTTPClientProvider{}
|
||||||
httpProvider := getMockPromTestSDKProvider(f)
|
httpProvider := getMockPromTestSDKProvider(f)
|
||||||
service := &Service{
|
service := &Service{
|
||||||
im: datasource.NewInstanceManager(newInstanceSettings(httpProvider, &setting.Cfg{}, &featuremgmt.FeatureManager{}, nil, backend.NewLoggerWith("logger", "test"))),
|
im: datasource.NewInstanceManager(newInstanceSettings(httpProvider, &setting.Cfg{}, &featuremgmt.FeatureManager{}, backend.NewLoggerWith("logger", "test"))),
|
||||||
}
|
}
|
||||||
|
|
||||||
req := &backend.CallResourceRequest{
|
req := &backend.CallResourceRequest{
|
||||||
|
@ -10,9 +10,10 @@ import (
|
|||||||
"github.com/grafana/grafana-plugin-sdk-go/backend"
|
"github.com/grafana/grafana-plugin-sdk-go/backend"
|
||||||
"github.com/grafana/grafana-plugin-sdk-go/data"
|
"github.com/grafana/grafana-plugin-sdk-go/data"
|
||||||
"go.opentelemetry.io/otel/attribute"
|
"go.opentelemetry.io/otel/attribute"
|
||||||
|
"go.opentelemetry.io/otel/trace"
|
||||||
|
|
||||||
"github.com/grafana/grafana-plugin-sdk-go/backend/log"
|
"github.com/grafana/grafana-plugin-sdk-go/backend/log"
|
||||||
"github.com/grafana/grafana/pkg/infra/tracing"
|
"github.com/grafana/grafana-plugin-sdk-go/backend/tracing"
|
||||||
"github.com/grafana/grafana/pkg/services/featuremgmt"
|
"github.com/grafana/grafana/pkg/services/featuremgmt"
|
||||||
"github.com/grafana/grafana/pkg/tsdb/intervalv2"
|
"github.com/grafana/grafana/pkg/tsdb/intervalv2"
|
||||||
"github.com/grafana/grafana/pkg/tsdb/prometheus/client"
|
"github.com/grafana/grafana/pkg/tsdb/prometheus/client"
|
||||||
@ -36,7 +37,7 @@ type ExemplarEvent struct {
|
|||||||
// client.
|
// client.
|
||||||
type QueryData struct {
|
type QueryData struct {
|
||||||
intervalCalculator intervalv2.Calculator
|
intervalCalculator intervalv2.Calculator
|
||||||
tracer tracing.Tracer
|
tracer trace.Tracer
|
||||||
client *client.Client
|
client *client.Client
|
||||||
log log.Logger
|
log log.Logger
|
||||||
ID int64
|
ID int64
|
||||||
@ -49,7 +50,6 @@ type QueryData struct {
|
|||||||
func New(
|
func New(
|
||||||
httpClient *http.Client,
|
httpClient *http.Client,
|
||||||
features featuremgmt.FeatureToggles,
|
features featuremgmt.FeatureToggles,
|
||||||
tracer tracing.Tracer,
|
|
||||||
settings backend.DataSourceInstanceSettings,
|
settings backend.DataSourceInstanceSettings,
|
||||||
plog log.Logger,
|
plog log.Logger,
|
||||||
) (*QueryData, error) {
|
) (*QueryData, error) {
|
||||||
@ -75,7 +75,7 @@ func New(
|
|||||||
|
|
||||||
return &QueryData{
|
return &QueryData{
|
||||||
intervalCalculator: intervalv2.NewCalculator(),
|
intervalCalculator: intervalv2.NewCalculator(),
|
||||||
tracer: tracer,
|
tracer: tracing.DefaultTracer(),
|
||||||
log: plog,
|
log: plog,
|
||||||
client: promClient,
|
client: promClient,
|
||||||
TimeInterval: timeInterval,
|
TimeInterval: timeInterval,
|
||||||
|
@ -23,7 +23,6 @@ import (
|
|||||||
"github.com/grafana/grafana-plugin-sdk-go/backend/httpclient"
|
"github.com/grafana/grafana-plugin-sdk-go/backend/httpclient"
|
||||||
"github.com/grafana/grafana-plugin-sdk-go/backend/log"
|
"github.com/grafana/grafana-plugin-sdk-go/backend/log"
|
||||||
"github.com/grafana/grafana-plugin-sdk-go/data"
|
"github.com/grafana/grafana-plugin-sdk-go/data"
|
||||||
"github.com/grafana/grafana/pkg/infra/tracing"
|
|
||||||
"github.com/grafana/grafana/pkg/setting"
|
"github.com/grafana/grafana/pkg/setting"
|
||||||
"github.com/grafana/grafana/pkg/tsdb/prometheus/client"
|
"github.com/grafana/grafana/pkg/tsdb/prometheus/client"
|
||||||
"github.com/grafana/grafana/pkg/tsdb/prometheus/models"
|
"github.com/grafana/grafana/pkg/tsdb/prometheus/models"
|
||||||
@ -427,7 +426,6 @@ type testContext struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func setup() (*testContext, error) {
|
func setup() (*testContext, error) {
|
||||||
tracer := tracing.InitializeTracerForTest()
|
|
||||||
httpProvider := &fakeHttpClientProvider{
|
httpProvider := &fakeHttpClientProvider{
|
||||||
opts: httpclient.Options{
|
opts: httpclient.Options{
|
||||||
Timeouts: &httpclient.DefaultTimeoutOptions,
|
Timeouts: &httpclient.DefaultTimeoutOptions,
|
||||||
@ -454,7 +452,7 @@ func setup() (*testContext, error) {
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
queryData, _ := querydata.New(httpClient, features, tracer, settings, log.New())
|
queryData, _ := querydata.New(httpClient, features, settings, log.New())
|
||||||
|
|
||||||
return &testContext{
|
return &testContext{
|
||||||
httpProvider: httpProvider,
|
httpProvider: httpProvider,
|
||||||
|
@ -8,8 +8,6 @@ import (
|
|||||||
"github.com/grafana/grafana-plugin-sdk-go/backend"
|
"github.com/grafana/grafana-plugin-sdk-go/backend"
|
||||||
"go.opentelemetry.io/otel/attribute"
|
"go.opentelemetry.io/otel/attribute"
|
||||||
"go.opentelemetry.io/otel/trace"
|
"go.opentelemetry.io/otel/trace"
|
||||||
|
|
||||||
"github.com/grafana/grafana/pkg/infra/tracing"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
// GetJsonData just gets the json in easier to work with type. It's used on multiple places which isn't super effective
|
// GetJsonData just gets the json in easier to work with type. It's used on multiple places which isn't super effective
|
||||||
@ -24,7 +22,7 @@ func GetJsonData(settings backend.DataSourceInstanceSettings) (map[string]any, e
|
|||||||
}
|
}
|
||||||
|
|
||||||
// StartTrace setups a trace but does not panic if tracer is nil which helps with testing
|
// StartTrace setups a trace but does not panic if tracer is nil which helps with testing
|
||||||
func StartTrace(ctx context.Context, tracer tracing.Tracer, name string, attributes ...attribute.KeyValue) (context.Context, func()) {
|
func StartTrace(ctx context.Context, tracer trace.Tracer, name string, attributes ...attribute.KeyValue) (context.Context, func()) {
|
||||||
if tracer == nil {
|
if tracer == nil {
|
||||||
return ctx, func() {}
|
return ctx, func() {}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user