why OpenTelemetry is not creating an Activity?

40 views Asked by At

below is my sample code to setup tracing using OpenTelemetry:

public static class CustomTraces {

    public static readonly ActivitySource Default = new ActivitySource("Service");

}
public class Startup
{
    public Startup(IConfiguration configuration)
    {
        Configuration = configuration;
    }

    public IConfiguration Configuration { get; }


    public void ConfigureServices(IServiceCollection services)
    {
        services
            .AddOpenTelemetry()
            .ConfigureResource(builder => builder.AddService("My Service").Build()
            )
            .WithTracing(builder =>
            {
                builder
                    .AddHttpClientInstrumentation()
                    .AddAspNetCoreInstrumentation()
                    .AddSource(CustomTraces.Default.Name)
                    .AddJaegerExporter()
                    .AddConsoleExporter();
            });
           
        services.AddControllers();
    }

    // ...
}
[ApiController]
[Route("")]
public class PingController : ControllerBase
{
    [HttpGet("ping")]
    public Task<IActionResult> Ping()
    {
        using (var activity = CustomTraces.Default.StartActivity("BuildPingResult"))
        {
            // <---------------activity is null here, why
            // ...
        }
        return Ok(
            new { Status = "ok" }
        );
    }
}

I tried to create an Activity instance from the ActivitySource by calling var activity = CustomTraces.Default.StartActivity("BuildPingResult") inside the controller, but CustomTraces.Default.StartActivity("BuildPingResult") return null.

but I followed the OpenTelemetry guide to setup the project, where did I go wrong?

0

There are 0 answers