Open
Description
I'm using opentracing-csharp-netcore in an ASP.NET Core (3.1) application that receives SignalR requests via WebSockets.
In my Startup.ConfigureServices()
method I setup OpenTracing as follows:
services.AddOpenTracingCoreServices(otBuilder =>
{
otBuilder.AddAspNetCore()
.ConfigureAspNetCore(options =>
{
var ignoredRequestPaths = tracingOptions.IgnoredRequestPaths;
options.Hosting.IgnorePatterns.Add(ctx => (ignoredRequestPaths != null) ? ignoredRequestPaths.Contains(ctx.Request.Path) : false);
// options.Hosting.OnError = (span, exception, context) => {} -- this is only thrown when there is an unhandled exception, not when an HTTP error is purposefully returned by a controller
// This sets the main-level Span Operation Name which normally has a less than useful value in my experience.
options.Hosting.OperationNameResolver = (httpContext) =>
{
return httpContext.Request.Path.Value;
};
})
.AddCoreFx()
.AddEntityFrameworkCore()
.AddLoggerProvider();
});
Unfortunately, what I am finding is that SignalR via WebSockets requests received do not cause a Span to be created. Meanwhile, regular HTTP web requests work fine.
Is there some limitation to DiagnosticListeners that don't support SignalR over Web Sockets or does opentracing-csharp-netcore just not support listening for Web Socket events?
Sorry I am not an expert in the terminology for SignalR over Web Sockets or the inner workings of opentracing-charp-netcore but hopefully I got my question across despite that.