Skip to content

Commit 7f20a52

Browse files
stephentoubjeffhandley
authored andcommitted
Fix name of genai input/output tokens tag (#6494)
1 parent 2f2a3fd commit 7f20a52

File tree

8 files changed

+21
-16
lines changed

8 files changed

+21
-16
lines changed

src/Libraries/Microsoft.Extensions.AI/ChatCompletion/FunctionInvokingChatClient.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -422,12 +422,12 @@ private static void AddUsageTags(Activity? activity, UsageDetails? usage)
422422
{
423423
if (usage.InputTokenCount is long inputTokens)
424424
{
425-
_ = activity.AddTag(OpenTelemetryConsts.GenAI.Response.InputTokens, (int)inputTokens);
425+
_ = activity.AddTag(OpenTelemetryConsts.GenAI.Usage.InputTokens, (int)inputTokens);
426426
}
427427

428428
if (usage.OutputTokenCount is long outputTokens)
429429
{
430-
_ = activity.AddTag(OpenTelemetryConsts.GenAI.Response.OutputTokens, (int)outputTokens);
430+
_ = activity.AddTag(OpenTelemetryConsts.GenAI.Usage.OutputTokens, (int)outputTokens);
431431
}
432432
}
433433
}
@@ -795,7 +795,7 @@ FunctionResultContent CreateFunctionResultContent(FunctionInvocationResult resul
795795
_ = Throw.IfNull(context);
796796

797797
using Activity? activity = _activitySource?.StartActivity(
798-
$"execute_tool {context.Function.Name}",
798+
$"{OpenTelemetryConsts.GenAI.ExecuteTool} {context.Function.Name}",
799799
ActivityKind.Internal,
800800
default(ActivityContext),
801801
[

src/Libraries/Microsoft.Extensions.AI/ChatCompletion/OpenTelemetryChatClient.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -400,12 +400,12 @@ private void TraceResponse(
400400

401401
if (response.Usage?.InputTokenCount is long inputTokens)
402402
{
403-
_ = activity.AddTag(OpenTelemetryConsts.GenAI.Response.InputTokens, (int)inputTokens);
403+
_ = activity.AddTag(OpenTelemetryConsts.GenAI.Usage.InputTokens, (int)inputTokens);
404404
}
405405

406406
if (response.Usage?.OutputTokenCount is long outputTokens)
407407
{
408-
_ = activity.AddTag(OpenTelemetryConsts.GenAI.Response.OutputTokens, (int)outputTokens);
408+
_ = activity.AddTag(OpenTelemetryConsts.GenAI.Usage.OutputTokens, (int)outputTokens);
409409
}
410410

411411
if (_system is not null)

src/Libraries/Microsoft.Extensions.AI/Embeddings/OpenTelemetryEmbeddingGenerator.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -249,7 +249,7 @@ private void TraceResponse(
249249

250250
if (inputTokens.HasValue)
251251
{
252-
_ = activity.AddTag(OpenTelemetryConsts.GenAI.Response.InputTokens, inputTokens);
252+
_ = activity.AddTag(OpenTelemetryConsts.GenAI.Usage.InputTokens, inputTokens);
253253
}
254254

255255
if (responseModelId is not null)

src/Libraries/Microsoft.Extensions.AI/OpenTelemetryConsts.cs

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ public static class GenAI
3131

3232
public const string Chat = "chat";
3333
public const string Embeddings = "embeddings";
34+
public const string ExecuteTool = "execute_tool";
3435

3536
public static class Assistant
3637
{
@@ -89,9 +90,7 @@ public static class Response
8990
{
9091
public const string FinishReasons = "gen_ai.response.finish_reasons";
9192
public const string Id = "gen_ai.response.id";
92-
public const string InputTokens = "gen_ai.response.input_tokens";
9393
public const string Model = "gen_ai.response.model";
94-
public const string OutputTokens = "gen_ai.response.output_tokens";
9594

9695
public static string PerProvider(string providerName, string parameterName) => $"gen_ai.{providerName}.response.{parameterName}";
9796
}
@@ -118,6 +117,12 @@ public static class Call
118117
}
119118
}
120119

120+
public static class Usage
121+
{
122+
public const string InputTokens = "gen_ai.usage.input_tokens";
123+
public const string OutputTokens = "gen_ai.usage.output_tokens";
124+
}
125+
121126
public static class User
122127
{
123128
public const string Message = "gen_ai.user.message";

test/Libraries/Microsoft.Extensions.AI.Integration.Tests/ChatClientIntegrationTests.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -342,8 +342,8 @@ private static void AssertUsageAgainstActivities(ChatResponse response, List<Act
342342
// across all consituent calls, which means our final answer will be double.
343343
if (response.Usage is { } finalUsage)
344344
{
345-
var totalInputTokens = activities.Sum(a => (int?)a.GetTagItem("gen_ai.response.input_tokens")!);
346-
var totalOutputTokens = activities.Sum(a => (int?)a.GetTagItem("gen_ai.response.output_tokens")!);
345+
var totalInputTokens = activities.Sum(a => (int?)a.GetTagItem("gen_ai.usage.input_tokens")!);
346+
var totalOutputTokens = activities.Sum(a => (int?)a.GetTagItem("gen_ai.usage.output_tokens")!);
347347
Assert.Equal(totalInputTokens, finalUsage.InputTokenCount * 2);
348348
Assert.Equal(totalOutputTokens, finalUsage.OutputTokenCount * 2);
349349
}
@@ -785,8 +785,8 @@ public virtual async Task OpenTelemetry_CanEmitTracesAndMetrics()
785785
Assert.Equal(chatClient.GetService<ChatClientMetadata>()?.ProviderUri?.Port, (int)activity.GetTagItem("server.port")!);
786786
Assert.NotNull(activity.Id);
787787
Assert.NotEmpty(activity.Id);
788-
Assert.NotEqual(0, (int)activity.GetTagItem("gen_ai.response.input_tokens")!);
789-
Assert.NotEqual(0, (int)activity.GetTagItem("gen_ai.response.output_tokens")!);
788+
Assert.NotEqual(0, (int)activity.GetTagItem("gen_ai.usage.input_tokens")!);
789+
Assert.NotEqual(0, (int)activity.GetTagItem("gen_ai.usage.output_tokens")!);
790790

791791
Assert.True(activity.Duration.TotalMilliseconds > 0);
792792
}

test/Libraries/Microsoft.Extensions.AI.Integration.Tests/EmbeddingGeneratorIntegrationTests.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,7 @@ public virtual async Task OpenTelemetry_CanEmitTracesAndMetrics()
128128
Assert.Equal(embeddingGenerator.GetService<EmbeddingGeneratorMetadata>()?.ProviderUri?.Port, (int)activity.GetTagItem("server.port")!);
129129
Assert.NotNull(activity.Id);
130130
Assert.NotEmpty(activity.Id);
131-
Assert.NotEqual(0, (int)activity.GetTagItem("gen_ai.response.input_tokens")!);
131+
Assert.NotEqual(0, (int)activity.GetTagItem("gen_ai.usage.input_tokens")!);
132132

133133
Assert.True(activity.Duration.TotalMilliseconds > 0);
134134
}

test/Libraries/Microsoft.Extensions.AI.Tests/ChatCompletion/OpenTelemetryChatClientTests.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -171,8 +171,8 @@ async static IAsyncEnumerable<ChatResponseUpdate> CallbackAsync(
171171

172172
Assert.Equal("id123", activity.GetTagItem("gen_ai.response.id"));
173173
Assert.Equal("""["stop"]""", activity.GetTagItem("gen_ai.response.finish_reasons"));
174-
Assert.Equal(10, activity.GetTagItem("gen_ai.response.input_tokens"));
175-
Assert.Equal(20, activity.GetTagItem("gen_ai.response.output_tokens"));
174+
Assert.Equal(10, activity.GetTagItem("gen_ai.usage.input_tokens"));
175+
Assert.Equal(20, activity.GetTagItem("gen_ai.usage.output_tokens"));
176176
Assert.Equal(enableSensitiveData ? "abcdefgh" : null, activity.GetTagItem("gen_ai.testservice.response.system_fingerprint"));
177177
Assert.Equal(enableSensitiveData ? "value2" : null, activity.GetTagItem("gen_ai.testservice.response.and_something_else"));
178178

test/Libraries/Microsoft.Extensions.AI.Tests/Embeddings/OpenTelemetryEmbeddingGeneratorTests.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ public async Task ExpectedInformationLogged_Async(string? perRequestModelId, boo
8989
Assert.Equal(enableSensitiveData ? "value1" : null, activity.GetTagItem("gen_ai.testservice.request.service_tier"));
9090
Assert.Equal(enableSensitiveData ? "value2" : null, activity.GetTagItem("gen_ai.testservice.request.something_else"));
9191

92-
Assert.Equal(10, activity.GetTagItem("gen_ai.response.input_tokens"));
92+
Assert.Equal(10, activity.GetTagItem("gen_ai.usage.input_tokens"));
9393
Assert.Equal(enableSensitiveData ? "abcdefgh" : null, activity.GetTagItem("gen_ai.testservice.response.system_fingerprint"));
9494
Assert.Equal(enableSensitiveData ? "value3" : null, activity.GetTagItem("gen_ai.testservice.response.and_something_else"));
9595

0 commit comments

Comments
 (0)