Advanced scenarios

TODO

Conditionally enabling signals

TODO

Native AOT support

Console applications using Microsoft.Extensions.DependencyInjection

using Microsoft.Extensions.DependencyInjection;
using OpenTelemetry;
using OpenTelemetry.Logs;
using OpenTelemetry.Metrics;
using OpenTelemetry.Resources;
using OpenTelemetry.Trace;
using System.Diagnostics;

const string activitySourceName = "MyAppSource";

var services = new ServiceCollection();

var otelBuilder = services.AddElasticOpenTelemetry();

otelBuilder
    .ConfigureResource(r => r.AddService("ConsoleAppService"))
    .WithTracing(t => t.AddSource(activitySourceName));

var sp = services.BuildServiceProvider();

sp.GetService<TracerProvider>();
sp.GetService<MeterProvider>();
sp.GetService<LoggerProvider>();

var activitySource = new ActivitySource(activitySourceName);

using (var activity = activitySource.StartActivity("DoingStuff"))
{
    // Simulated workload
    await Task.Delay(100);
}

Console.ReadKey();