diff --git a/CHANGELOG.md b/CHANGELOG.md index 091538213..9bc71ef15 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,7 +5,7 @@ - Add automatic retry on gateway timeout in `GrpcDurableTaskClient.WaitForInstanceCompletionAsync` in ([#412](https://github.com/microsoft/durabletask-dotnet/pull/412)) - Add specific logging for NotFound error on worker connection by @halspang in ([#413](https://github.com/microsoft/durabletask-dotnet/pull/413)) - Add user agent header to gRPC called in ([#417](https://github.com/microsoft/durabletask-dotnet/pull/417)) - +- Enrich User-Agent Header in gRPC Metadata to indicate Client or Worker as caller ([#421](https://github.com/microsoft/durabletask-dotnet/pull/421)) ## v1.10.0 - Update DurableTask.Core to v3.1.0 and Bump version to v1.10.0 by @nytian in ([#411](https://github.com/microsoft/durabletask-dotnet/pull/411)) diff --git a/src/Client/AzureManaged/DurableTaskSchedulerClientOptions.cs b/src/Client/AzureManaged/DurableTaskSchedulerClientOptions.cs index 352d04aad..41eacc663 100644 --- a/src/Client/AzureManaged/DurableTaskSchedulerClientOptions.cs +++ b/src/Client/AzureManaged/DurableTaskSchedulerClientOptions.cs @@ -7,6 +7,7 @@ using Grpc.Core; using Grpc.Net.Client; using Microsoft.DurableTask; +using Microsoft.DurableTask.Client; namespace Microsoft.DurableTask; @@ -98,7 +99,7 @@ this.Credential is not null metadata.Add("taskhub", taskHubName); // Add user agent header with durabletask-dotnet and DLL version from util - metadata.Add("user-agent", $"{DurableTaskUserAgentUtil.GetUserAgent()}"); + metadata.Add("user-agent", $"{DurableTaskUserAgentUtil.GetUserAgent(nameof(DurableTaskClient))}"); if (cache == null) { return; diff --git a/src/Shared/AzureManaged/DurableTaskVersionUtil.cs b/src/Shared/AzureManaged/DurableTaskVersionUtil.cs index 174333d42..7ad3bc47c 100644 --- a/src/Shared/AzureManaged/DurableTaskVersionUtil.cs +++ b/src/Shared/AzureManaged/DurableTaskVersionUtil.cs @@ -21,11 +21,12 @@ public static class DurableTaskUserAgentUtil static readonly string PackageVersion = FileVersionInfo.GetVersionInfo(typeof(DurableTaskUserAgentUtil).Assembly.Location).FileVersion; /// - /// Generates the user agent string for the Durable Task SDK based on a fixed name and the package version. + /// Generates the user agent string for the Durable Task SDK based on a fixed name, the package version, and the caller type. /// + /// The type of caller (Client or Worker). /// The user agent string. - public static string GetUserAgent() + public static string GetUserAgent(string callerType) { - return $"{SdkName}/{PackageVersion?.ToString() ?? "unknown"}"; + return $"{SdkName}/{PackageVersion?.ToString() ?? "unknown"} ({callerType})"; } } \ No newline at end of file diff --git a/src/Worker/AzureManaged/DurableTaskSchedulerWorkerOptions.cs b/src/Worker/AzureManaged/DurableTaskSchedulerWorkerOptions.cs index c789e0a19..e435e54e5 100644 --- a/src/Worker/AzureManaged/DurableTaskSchedulerWorkerOptions.cs +++ b/src/Worker/AzureManaged/DurableTaskSchedulerWorkerOptions.cs @@ -7,6 +7,7 @@ using Grpc.Core; using Grpc.Net.Client; using Microsoft.DurableTask; +using Microsoft.DurableTask.Worker.Hosting; namespace Microsoft.DurableTask; @@ -103,7 +104,7 @@ this.Credential is not null { metadata.Add("taskhub", taskHubName); // Add user agent header with durabletask-dotnet and DLL version from util - metadata.Add("user-agent", $"{DurableTaskUserAgentUtil.GetUserAgent()}"); + metadata.Add("user-agent", $"{DurableTaskUserAgentUtil.GetUserAgent(nameof(DurableTaskWorker))}"); metadata.Add("workerid", this.WorkerId); if (cache == null) {