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.
///