Skip to content

Commit ed4d13f

Browse files
authored
Merge pull request #72 from nenoNaninu/f/attribute_connectionid
add connectionId attribute
2 parents 8aa64bd + 90f9f83 commit ed4d13f

File tree

2 files changed

+9
-4
lines changed

2 files changed

+9
-4
lines changed

src/AspNetCore.SignalR.OpenTelemetry/HubInstrumentationFilter.cs

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -39,10 +39,11 @@ public HubInstrumentationFilter(ILoggerFactory loggerFactory, IOptions<HubInstru
3939

4040
var hubName = invocationContext.Hub.GetType().Name;
4141
var methodName = invocationContext.HubMethodName;
42+
var connectionId = invocationContext.Context.ConnectionId;
4243
var address = invocationContext.Context.GetHttpContext()?.Request.Host.Value;
4344

4445
using var scope = HubLogger.BeginHubMethodInvocationScope(_logger, hubName, methodName);
45-
using var activity = HubActivitySource.StartInvocationActivity(hubName, methodName, address);
46+
using var activity = HubActivitySource.StartInvocationActivity(hubName, methodName, connectionId, address);
4647

4748
try
4849
{
@@ -79,10 +80,11 @@ public HubInstrumentationFilter(ILoggerFactory loggerFactory, IOptions<HubInstru
7980
public async Task OnConnectedAsync(HubLifetimeContext context, Func<HubLifetimeContext, Task> next)
8081
{
8182
var hubName = context.Hub.GetType().Name;
83+
var connectionId = context.Context.ConnectionId;
8284
var address = context.Context.GetHttpContext()?.Request.Host.Value;
8385

8486
using var scope = HubLogger.BeginHubMethodInvocationScope(_logger, hubName, nameof(OnConnectedAsync));
85-
using var activity = HubActivitySource.StartInvocationActivity(hubName, nameof(OnConnectedAsync), address);
87+
using var activity = HubActivitySource.StartInvocationActivity(hubName, nameof(OnConnectedAsync), connectionId, address);
8688

8789
try
8890
{
@@ -114,10 +116,11 @@ public async Task OnDisconnectedAsync(
114116
Func<HubLifetimeContext, Exception?, Task> next)
115117
{
116118
var hubName = context.Hub.GetType().Name;
119+
var connectionId = context.Context.ConnectionId;
117120
var address = context.Context.GetHttpContext()?.Request.Host.Value;
118121

119122
using var scope = HubLogger.BeginHubMethodInvocationScope(_logger, hubName, nameof(OnDisconnectedAsync));
120-
using var activity = HubActivitySource.StartInvocationActivity(hubName, nameof(OnDisconnectedAsync), address);
123+
using var activity = HubActivitySource.StartInvocationActivity(hubName, nameof(OnDisconnectedAsync), connectionId, address);
121124

122125
try
123126
{

src/AspNetCore.SignalR.OpenTelemetry/Internal/HubActivitySource.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ internal static class HubActivitySource
1010

1111
private static readonly ActivitySource ActivitySource = new(Name, typeof(HubActivitySource).Assembly.GetPackageVersion());
1212

13-
internal static Activity? StartInvocationActivity(string hubName, string methodName, string? address)
13+
internal static Activity? StartInvocationActivity(string hubName, string methodName, string connectionId, string? address)
1414
{
1515
// https://github.com/open-telemetry/semantic-conventions/blob/v1.25.0/docs/rpc/rpc-spans.md#span-name
1616
var activity = ActivitySource.CreateActivity($"{hubName}/{methodName}", ActivityKind.Server);
@@ -28,6 +28,8 @@ internal static class HubActivitySource
2828
activity.SetTag("rpc.service", hubName);
2929
activity.SetTag("rpc.method", methodName);
3030

31+
activity.SetTag("signalr.connection.id", connectionId);
32+
3133
if (!string.IsNullOrEmpty(address))
3234
{
3335
activity.SetTag("server.address", address);

0 commit comments

Comments
 (0)