8000 Use ResourceAttributes instead of GlobalAttributes · traefik/traefik@b74767b · GitHub
[go: up one dir, main page]

Skip to content

Commit

Permalink
Use ResourceAttributes instead of GlobalAttributes
Browse files Browse the repository at this point in the history
  • Loading branch information
bruno-de-queiroz authored Feb 6, 2025
1 parent da2278b commit b74767b
Show file tree
Hide file tree
Showing 3 changed files with 19 additions and 6 deletions.
4 changes: 2 additions & 2 deletions pkg/tracing/tracing.go
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ import (

// Backend is an abstraction for tracking backend (OpenTelemetry, ...).
type Backend interface {
Setup(serviceName string, sampleRate float64, globalAttributes map[string]string) (trace.Tracer, io.Closer, error)
Setup(serviceName string, sampleRate float64, resourceAttributes map[string]string) (trace.Tracer, io.Closer, error)
}

// NewTracing Creates a Tracing.
Expand All @@ -44,7 +44,7 @@ func NewTracing(conf *static.Tracing) (*Tracer, io.Closer, error) {

otel.SetTextMapPropagator(autoprop.NewTextMapPropagator())

tr, closer, err := backend.Setup(conf.ServiceName, conf.SampleRate, conf.GlobalAttributes)
tr, closer, err := backend.Setup(conf.ServiceName, conf.SampleRate, conf.ResourceAttributes)
if err != nil {
return nil, nil, err
}
Expand Down
17 changes: 15 additions & 2 deletions pkg/tracing/tracing_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,7 @@ func TestTracing(t *testing.T) {
desc string
propagators string
headers map[string]string
resourceAttributes map[string]string
wantServiceHeadersFn func(t *testing.T, headers http.Header)
assertFn func(*testing.T, string)
}{
Expand All @@ -85,6 +86,17 @@ func TestTracing(t *testing.T) {
assert.Regexp(t, `({"key":"service.version","value":{"stringValue":"dev"}})`, trace)
},
},
{
desc: "resource attributes must be propagated",
resourceAttributes: map[string]string{
"service.environment": "custom",
},
assertFn: func(t *testing.T, trace string) {
t.Helper()

assert.Regexp(t, `({"key":"service.environment","value":{"stringValue":"custom"}})`, trace)
},
},
{
desc: "TraceContext propagation",
propagators: "tracecontext",
Expand Down Expand Up @@ -328,8 +340,9 @@ func TestTracing(t *testing.T) {
})

tracingConfig := &static.Tracing{
ServiceName: "traefik",
SampleRate: 1.0,
ServiceName: "traefik",
SampleRate: 1.0,
ResourceAttributes: test.resourceAttributes,
OTLP: &types.OTelTracing{
HTTP: &types.OTelHTTP{
Endpoint: collector.URL,
Expand Down
4 changes: 2 additions & 2 deletions pkg/types/tracing.go
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ func (c *OTelTracing) SetDefaults() {
}

// Setup sets up the tracer.
func (c *OTelTracing) Setup(serviceName string, sampleRate float64, globalAttributes map[string]string) (trace.Tracer, io.Closer, error) {
func (c *OTelTracing) Setup(serviceName string, sampleRate float64, resourceAttributes map[string]string) (trace.Tracer, io.Closer, error) {
var (
err error
exporter *otlptrace.Exporter
Expand All @@ -55,7 +55,7 @@ func (c *OTelTracing) Setup(serviceName string, sampleRate float64, globalAttrib
semconv.ServiceVersionKey.String(version.Version),
}

for k, v := range globalAttributes {
for k, v := range resourceAttributes {
attr = append(attr, attribute.String(k, v))
}

Expand Down

0 comments on commit b74767b

Please sign in to comment.
0