diff --git a/CHANGELOG.md b/CHANGELOG.md index 239b982117..f410d6ae2e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,7 +1,7 @@ # Changelog ## VNext - +- [Add RoleName as a header with Ping Reuests to QuickPulse.](https://github.com/microsoft/ApplicationInsights-dotnet/pull/2113) ## Version 2.16.0 - [QuickPulseTelemetryModule and MonitoringDataPoint have a new Cloud Role Name field for sending with ping and post requests to QuickPulse Service.](https://github.com/microsoft/ApplicationInsights-dotnet/pull/2100) diff --git a/WEB/Src/PerformanceCollector/Perf.Shared.NetFull/Implementation/QuickPulse/QuickPulseServiceClient.cs b/WEB/Src/PerformanceCollector/Perf.Shared.NetFull/Implementation/QuickPulse/QuickPulseServiceClient.cs index 1f63e26b01..50f4132779 100644 --- a/WEB/Src/PerformanceCollector/Perf.Shared.NetFull/Implementation/QuickPulse/QuickPulseServiceClient.cs +++ b/WEB/Src/PerformanceCollector/Perf.Shared.NetFull/Implementation/QuickPulse/QuickPulseServiceClient.cs @@ -354,6 +354,7 @@ private void AddHeaders(HttpWebRequest request, bool includeIdentityHeaders, str request.Headers.Add(QuickPulseConstants.XMsQpsInstanceNameHeaderName, this.instanceName); request.Headers.Add(QuickPulseConstants.XMsQpsStreamIdHeaderName, this.streamId); request.Headers.Add(QuickPulseConstants.XMsQpsMachineNameHeaderName, this.machineName); + request.Headers.Add(QuickPulseConstants.XMsQpsRoleNameHeaderName, this.roleName); request.Headers.Add(QuickPulseConstants.XMsQpsInvariantVersionHeaderName, MonitoringDataPoint.CurrentInvariantVersion.ToString(CultureInfo.InvariantCulture)); } diff --git a/WEB/Src/PerformanceCollector/Perf.Shared.NetStandard/Implementation/QuickPulse/QuickPulseServiceClient.cs b/WEB/Src/PerformanceCollector/Perf.Shared.NetStandard/Implementation/QuickPulse/QuickPulseServiceClient.cs index d64c7dfd0c..811f65553b 100644 --- a/WEB/Src/PerformanceCollector/Perf.Shared.NetStandard/Implementation/QuickPulse/QuickPulseServiceClient.cs +++ b/WEB/Src/PerformanceCollector/Perf.Shared.NetStandard/Implementation/QuickPulse/QuickPulseServiceClient.cs @@ -383,6 +383,7 @@ private void AddHeaders(HttpRequestMessage request, bool includeIdentityHeaders, request.Headers.TryAddWithoutValidation(QuickPulseConstants.XMsQpsInstanceNameHeaderName, this.instanceName); request.Headers.TryAddWithoutValidation(QuickPulseConstants.XMsQpsStreamIdHeaderName, this.streamId); request.Headers.TryAddWithoutValidation(QuickPulseConstants.XMsQpsMachineNameHeaderName, this.machineName); + request.Headers.TryAddWithoutValidation(QuickPulseConstants.XMsQpsRoleNameHeaderName, this.roleName); request.Headers.TryAddWithoutValidation(QuickPulseConstants.XMsQpsInvariantVersionHeaderName, MonitoringDataPoint.CurrentInvariantVersion.ToString(CultureInfo.InvariantCulture)); } diff --git a/WEB/Src/PerformanceCollector/Perf.Tests/QuickPulse/QuickPulseServiceClientTests.cs b/WEB/Src/PerformanceCollector/Perf.Tests/QuickPulse/QuickPulseServiceClientTests.cs index 1b95f133a4..09a0946484 100644 --- a/WEB/Src/PerformanceCollector/Perf.Tests/QuickPulse/QuickPulseServiceClientTests.cs +++ b/WEB/Src/PerformanceCollector/Perf.Tests/QuickPulse/QuickPulseServiceClientTests.cs @@ -1305,14 +1305,15 @@ public void QuickPulseServiceClientSubmitsRoleAndInstanceNameToServiceWithSubmit } [TestMethod] - public void QuickPulseServiceClientSubmitsStreamIdToServiceWithPing() + public void QuickPulseServiceClientSubmitsStreamIdAndRoleNameToServiceWithPing() { // ARRANGE var streamId = "this stream"; + var roleName = "Role-Name-1"; var serviceClient = new QuickPulseServiceClient( this.TestContext.Properties[ServiceEndpointPropertyName] as Uri, string.Empty, - string.Empty, + roleName, streamId, string.Empty, string.Empty, @@ -1331,6 +1332,7 @@ public void QuickPulseServiceClientSubmitsStreamIdToServiceWithPing() Assert.AreEqual(1, this.pings.Count); Assert.AreEqual(streamId, this.pings[0].Item1.StreamId); Assert.AreEqual(streamId, this.pings[0].Item3.StreamId); + Assert.AreEqual(roleName, this.pings[0].Item1.RoleName); } [TestMethod] @@ -2115,6 +2117,7 @@ private void ProcessRequest(HttpListener listener, AutoResetEvent ev) var invariantVersion = context.Request.Headers[QuickPulseConstants.XMsQpsInvariantVersionHeaderName]; var streamId = context.Request.Headers[QuickPulseConstants.XMsQpsStreamIdHeaderName]; + var roleName = context.Request.Headers[QuickPulseConstants.XMsQpsRoleNameHeaderName]; var collectionConfigurationETag = context.Request.Headers[QuickPulseConstants.XMsQpsConfigurationETagHeaderName]; @@ -2125,6 +2128,7 @@ private void ProcessRequest(HttpListener listener, AutoResetEvent ev) TransmissionTime = new DateTimeOffset(transmissionTime, TimeSpan.Zero), InstanceName = instanceName, MachineName = machineName, + RoleName = roleName, InvariantVersion = int.Parse(invariantVersion, CultureInfo.InvariantCulture), StreamId = streamId }, @@ -2204,6 +2208,8 @@ private class PingHeaders public int InvariantVersion { get; set; } public string StreamId { get; set; } + + public string RoleName { get; set; } } } } \ No newline at end of file diff --git a/WEB/Src/PerformanceCollector/PerformanceCollector/Implementation/QuickPulse/QuickPulseConstants.cs b/WEB/Src/PerformanceCollector/PerformanceCollector/Implementation/QuickPulse/QuickPulseConstants.cs index 7dabd41faa..f084789d76 100644 --- a/WEB/Src/PerformanceCollector/PerformanceCollector/Implementation/QuickPulse/QuickPulseConstants.cs +++ b/WEB/Src/PerformanceCollector/PerformanceCollector/Implementation/QuickPulse/QuickPulseConstants.cs @@ -35,6 +35,11 @@ internal static class QuickPulseConstants /// internal const string XMsQpsMachineNameHeaderName = "x-ms-qps-machine-name"; + /// + /// Role name header. + /// + internal const string XMsQpsRoleNameHeaderName = "x-ms-qps-role-name"; + /// /// Invariant version header. ///