.NET
1. Install
Section titled “1. Install”Run this in your project directory:
dotnet add package OpenTelemetry.Extensions.Hostingdotnet add package OpenTelemetry.Exporter.OpenTelemetryProtocoldotnet add package OpenTelemetry.Instrumentation.AspNetCore2. Configure
Section titled “2. Configure”Add this to Program.cs, before builder.Build():
builder.Services.AddOpenTelemetry() .WithTracing(tracing => tracing.AddAspNetCoreInstrumentation()) .WithMetrics(metrics => metrics.AddAspNetCoreInstrumentation().AddMeter("checkout")) .WithLogging() .UseOtlpExporter();Then set these where your app runs. Replace YOUR_INGEST_KEY with your key and checkout with your service name.
export OTEL_SERVICE_NAME=checkoutexport OTEL_RESOURCE_ATTRIBUTES=deployment.environment.name=productionexport OTEL_EXPORTER_OTLP_ENDPOINT=https://otlp.siteqwality.comexport OTEL_EXPORTER_OTLP_HEADERS=Authorization=YOUR_INGEST_KEYexport OTEL_EXPORTER_OTLP_PROTOCOL=http/protobuf3. Start your app
Section titled “3. Start your app”Start it as usual, for example with dotnet run. Requests to your app are now traced automatically.
4. Send a log
Section titled “4. Send a log”Keep using ILogger. Its records arrive as logs, linked to the trace of the request that wrote them:
logger.LogInformation("order placed, orderId={OrderId}", 42);5. Record a metric (optional)
Section titled “5. Record a metric (optional)”var orders = new Meter("checkout").CreateCounter<long>("orders.placed");
orders.Add(1);Meters are sent when their name is added with AddMeter, as checkout is in step 2.
See your data
Section titled “See your data”Open Logs, Traces or Metrics. New data usually shows up within a minute, and a page that says it is waiting for data switches to your data on its own.
The code on this page comes from a runnable example that is checked against our ingest rules every month.
Nothing arriving? Check that the key is an ingest key for this account, that your account has early access, and the status codes in Ingest routes and limits.