Skip to content

Commit 801a18f

Browse files
committed
track AI usage
1 parent 559badc commit 801a18f

4 files changed

Lines changed: 28 additions & 0 deletions

File tree

src/Microsoft.Extensions.Configuration.AzureAppConfiguration/AzureAppConfigurationProvider.cs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1396,6 +1396,15 @@ private void EnsureAssemblyInspected()
13961396

13971397
_requestTracingOptions.AspireComponentVersion = TracingUtils.GetAssemblyVersion(RequestTracingConstants.AspireComponentAssemblyName);
13981398

1399+
foreach (string assemblyName in RequestTracingConstants.AzureAIAssemblyNames)
1400+
{
1401+
if (TracingUtils.GetAssemblyVersion(assemblyName) != null)
1402+
{
1403+
_requestTracingOptions.IsAzureAIProjects = true;
1404+
break;
1405+
}
1406+
}
1407+
13991408
if (TracingUtils.GetAssemblyVersion(RequestTracingConstants.SignalRAssemblyName) != null)
14001409
{
14011410
_requestTracingOptions.IsSignalRUsed = true;

src/Microsoft.Extensions.Configuration.AzureAppConfiguration/Constants/RequestTracingConstants.cs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ internal class RequestTracingConstants
3333
public const string LoadBalancingEnabledTag = "LB";
3434
public const string AIConfigurationTag = "AI";
3535
public const string AIChatCompletionConfigurationTag = "AICC";
36+
public const string AIProjectsTag = "AzureAIProjects";
3637
public const string SnapshotReferenceTag = "SnapshotRef";
3738
public const string SignalRUsedTag = "SignalR";
3839
public const string FailoverRequestTag = "Failover";
@@ -57,6 +58,14 @@ internal class RequestTracingConstants
5758
public const string AspireComponentAssemblyName = "Aspire.Microsoft.Extensions.Configuration.AzureAppConfiguration";
5859
public const string SignalRAssemblyName = "Microsoft.AspNetCore.SignalR";
5960

61+
public static readonly string[] AzureAIAssemblyNames = new string[]
62+
{
63+
"Azure.AI.Projects",
64+
"Azure.AI.Inference",
65+
"Azure.AI.OpenAI",
66+
"Azure.AI.Projects.OpenAI"
67+
};
68+
6069
public const string Delimiter = "+";
6170

6271
public const string AIMimeProfile = "https://azconfig.io/mime-profiles/ai";

src/Microsoft.Extensions.Configuration.AzureAppConfiguration/RequestTracingOptions.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,11 @@ internal class RequestTracingOptions
5656
/// </summary>
5757
public string AspireComponentVersion { get; set; }
5858

59+
/// <summary>
60+
/// Flag to indicate whether Azure AI SDK is present in the application.
61+
/// </summary>
62+
public bool IsAzureAIProjects { get; set; } = false;
63+
5964
/// <summary>
6065
/// Flag to indicate whether Microsoft.AspNetCore.SignalR assembly is present in the application.
6166
/// </summary>

src/Microsoft.Extensions.Configuration.AzureAppConfiguration/TracingUtils.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -211,6 +211,11 @@ private static string CreateCorrelationContextHeader(RequestType requestType, Re
211211
correlationContextTags.Add(RequestTracingConstants.PushRefreshTag);
212212
}
213213

214+
if (requestTracingOptions.IsAzureAIProjects)
215+
{
216+
correlationContextTags.Add(RequestTracingConstants.AIProjectsTag);
217+
}
218+
214219
var sb = new StringBuilder();
215220

216221
foreach (KeyValuePair<string, string> kvp in correlationContextKeyValues)

0 commit comments

Comments
 (0)