Skip to content

Commit ca431f8

Browse files
committed
enrichments: handle gen_ai.provider.name too
Same enrichment as the previous gen_ai.system
1 parent ccc2bee commit ca431f8

File tree

2 files changed

+25
-1
lines changed

2 files changed

+25
-1
lines changed

enrichments/trace/internal/elastic/span.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ import (
3737
"go.opentelemetry.io/collector/pdata/ptrace"
3838
semconv25 "go.opentelemetry.io/otel/semconv/v1.25.0"
3939
semconv27 "go.opentelemetry.io/otel/semconv/v1.27.0"
40+
semconv37 "go.opentelemetry.io/otel/semconv/v1.37.0"
4041
tracepb "go.opentelemetry.io/proto/otlp/trace/v1"
4142
"google.golang.org/grpc/codes"
4243
)
@@ -192,7 +193,7 @@ func (s *spanEnrichmentContext) Enrich(
192193
case string(semconv25.DBSystemKey):
193194
s.isDB = true
194195
s.dbSystem = v.Str()
195-
case string(semconv27.GenAISystemKey):
196+
case string(semconv27.GenAISystemKey), string(semconv37.GenAIProviderName):
196197
s.isGenAi = true
197198
s.genAiSystem = v.Str()
198199
case string(semconv27.UserAgentOriginalKey):

enrichments/trace/internal/elastic/span_test.go

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ import (
3434
"go.opentelemetry.io/collector/pdata/ptrace"
3535
semconv25 "go.opentelemetry.io/otel/semconv/v1.25.0"
3636
semconv27 "go.opentelemetry.io/otel/semconv/v1.27.0"
37+
semconv37 "go.opentelemetry.io/otel/semconv/v1.37.0"
3738
tracepb "go.opentelemetry.io/proto/otlp/trace/v1"
3839
"google.golang.org/grpc/codes"
3940
)
@@ -1259,6 +1260,28 @@ func TestElasticSpanEnrich(t *testing.T) {
12591260
elasticattr.SuccessCount: int64(1),
12601261
},
12611262
},
1263+
{
1264+
name: "genai_with_provider_name",
1265+
input: func() ptrace.Span {
1266+
span := getElasticSpan()
1267+
span.SetName("testspan")
1268+
span.SetSpanID([8]byte{1})
1269+
span.Attributes().PutStr(string(semconv37.GenAIProviderNameKey), "openai")
1270+
return span
1271+
}(),
1272+
config: config.Enabled().Span,
1273+
enrichedAttrs: map[string]any{
1274+
elasticattr.TimestampUs: startTs.AsTime().UnixMicro(),
1275+
elasticattr.SpanName: "testspan",
1276+
elasticattr.ProcessorEvent: "span",
1277+
elasticattr.SpanRepresentativeCount: float64(1),
1278+
elasticattr.SpanType: "genai",
1279+
elasticattr.SpanSubtype: "openai",
1280+
elasticattr.SpanDurationUs: expectedDuration.Microseconds(),
1281+
elasticattr.EventOutcome: "success",
1282+
elasticattr.SuccessCount: int64(1),
1283+
},
1284+
},
12621285
{
12631286
name: "rpc_span_with_only_rpc_sevice_attr",
12641287
input: func() ptrace.Span {

0 commit comments

Comments
 (0)