Skip to content

Commit 4b9a28a

Browse files
authored
Enhance Traces with pod information (#4898)
* Enhance Tracing Signed-off-by: Alan Protasio <approtas@amazon.com> * changelog Signed-off-by: Alan Protasio <approtas@amazon.com> * lint Signed-off-by: Alan Protasio <approtas@amazon.com> * go mod vendor Signed-off-by: Alan Protasio <approtas@amazon.com> * removing k8s detector + allowing extra detectors Signed-off-by: Alan Protasio <approtas@amazon.com> Signed-off-by: Alan Protasio <approtas@amazon.com>
1 parent b9c320f commit 4b9a28a

File tree

9 files changed

+26
-2868
lines changed

9 files changed

+26
-2868
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@
4848
* [ENHANCEMENT] Ingester: Prevent ingesters to become unhealthy during wall replay. #4847
4949
* [ENHANCEMENT] Compactor: Introduced visit marker file for blocks so blocks are under compaction will not be picked up by another compactor. #4805
5050
* [ENHANCEMENT] Distributor: Add label name to labelValueTooLongError. #4855
51+
* [ENHANCEMENT] Enhance traces with hostname information. #4898
5152
* [FEATURE] Compactor: Added `-compactor.block-files-concurrency` allowing to configure number of go routines for download/upload block files during compaction. #4784
5253
* [FEATURE] Compactor: Added -compactor.blocks-fetch-concurrency` allowing to configure number of go routines for blocks during compaction. #4787
5354
* [FEATURE] Compactor: Added configurations for Azure MSI in blocks-storage, ruler-storage and alertmanager-storage. #4818

pkg/tracing/tracing.go

Lines changed: 25 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ import (
2121
"go.opentelemetry.io/otel/propagation"
2222
"go.opentelemetry.io/otel/sdk/resource"
2323
sdktrace "go.opentelemetry.io/otel/sdk/trace"
24-
semconv "go.opentelemetry.io/otel/semconv/v1.10.0"
24+
semconv "go.opentelemetry.io/otel/semconv/v1.12.0"
2525

2626
"github.com/cortexproject/cortex/pkg/tracing/migration"
2727
"github.com/cortexproject/cortex/pkg/tracing/sampler"
@@ -40,11 +40,12 @@ type Config struct {
4040
}
4141

4242
type Otel struct {
43-
OltpEndpoint string `yaml:"oltp_endpoint" json:"oltp_endpoint"`
44-
ExporterType string `yaml:"exporter_type" json:"exporter_type"`
45-
SampleRatio float64 `yaml:"sample_ratio" json:"sample_ratio"`
46-
TLSEnabled bool `yaml:"tls_enabled"`
47-
TLS tls.ClientConfig `yaml:"tls"`
43+
OltpEndpoint string `yaml:"oltp_endpoint" json:"oltp_endpoint"`
44+
ExporterType string `yaml:"exporter_type" json:"exporter_type"`
45+
SampleRatio float64 `yaml:"sample_ratio" json:"sample_ratio"`
46+
TLSEnabled bool `yaml:"tls_enabled"`
47+
TLS tls.ClientConfig `yaml:"tls"`
48+
ExtraDetectors []resource.Detector `yaml:"-"`
4849
}
4950

5051
// RegisterFlags registers flag.
@@ -103,7 +104,13 @@ func SetupTracing(ctx context.Context, name string, c Config) (func(context.Cont
103104
return nil, fmt.Errorf("creating OTLP trace exporter: %w", err)
104105
}
105106

106-
tracerProvider := newTraceProvider(name, c, exporter)
107+
r, err := newResource(ctx, name, c.Otel.ExtraDetectors)
108+
109+
if err != nil {
110+
return nil, fmt.Errorf("creating tracing resource: %w", err)
111+
}
112+
113+
tracerProvider := newTraceProvider(r, c, exporter)
107114

108115
bridge, wrappedProvider := migration.NewCortexBridgeTracerWrapper(tracerProvider.Tracer("github.com/cortexproject/cortex/cmd/cortex"))
109116
bridge.SetTextMapPropagator(propagation.TraceContext{})
@@ -118,10 +125,10 @@ func SetupTracing(ctx context.Context, name string, c Config) (func(context.Cont
118125
}, nil
119126
}
120127

121-
func newTraceProvider(name string, c Config, exporter *otlptrace.Exporter) *sdktrace.TracerProvider {
128+
func newTraceProvider(r *resource.Resource, c Config, exporter *otlptrace.Exporter) *sdktrace.TracerProvider {
122129
options := []sdktrace.TracerProviderOption{
123130
sdktrace.WithBatcher(exporter),
124-
sdktrace.WithResource(newResource(name)),
131+
sdktrace.WithResource(r),
125132
}
126133

127134
switch strings.ToLower(c.Otel.ExporterType) {
@@ -135,9 +142,15 @@ func newTraceProvider(name string, c Config, exporter *otlptrace.Exporter) *sdkt
135142
return sdktrace.NewTracerProvider(options...)
136143
}
137144

138-
func newResource(target string) *resource.Resource {
139-
return resource.NewWithAttributes(
145+
func newResource(ctx context.Context, target string, detectors []resource.Detector) (*resource.Resource, error) {
146+
r, err := resource.New(ctx, resource.WithHost(), resource.WithDetectors(detectors...))
147+
148+
if err != nil {
149+
return nil, err
150+
}
151+
152+
return resource.Merge(r, resource.NewWithAttributes(
140153
semconv.SchemaURL,
141154
semconv.ServiceNameKey.String(target),
142-
)
155+
))
143156
}

vendor/go.opentelemetry.io/otel/semconv/v1.10.0/doc.go

Lines changed: 0 additions & 20 deletions
This file was deleted.

vendor/go.opentelemetry.io/otel/semconv/v1.10.0/exception.go

Lines changed: 0 additions & 20 deletions
This file was deleted.

vendor/go.opentelemetry.io/otel/semconv/v1.10.0/http.go

Lines changed: 0 additions & 114 deletions
This file was deleted.

0 commit comments

Comments
 (0)