Uptrace.OpenTelemetry 0.3.0
Uptrace for .NET
Introduction
uptrace-dotnet is an OpenTelemetry distribution configured to export traces, metrics, and logs to Uptrace.
Installation
Install uptrace-dotnet:
dotnet add package Uptrace.OpenTelemetry
Tracing
You can configure the Uptrace client using a DSN (Data Source Name, e.g.
https://<secret>@api.uptrace.dev?grpc=4317) from the project settings page.
using System;
using System.Diagnostics;
using OpenTelemetry;
using OpenTelemetry.Trace;
using OpenTelemetry.Resources;
using Uptrace.OpenTelemetry;
using var tracerProvider = Sdk.CreateTracerProviderBuilder()
.AddSource("*") // subscribe to all activity sources
.SetResourceBuilder(
ResourceBuilder
.CreateDefault()
.AddEnvironmentVariableDetector()
.AddService("myservice")
)
// copy your project DSN here or use UPTRACE_DSN env var
//.AddUptrace("https://<secret>@api.uptrace.dev?grpc=4317")
.AddUptrace()
.Build();
See the basic example to try OpenTelemetry and Uptrace.
Metrics
using System;
using System.Diagnostics;
using System.Diagnostics.Metrics;
using OpenTelemetry;
using OpenTelemetry.Metrics;
using OpenTelemetry.Resources;
using Uptrace.OpenTelemetry;
using var meterProvider = Sdk.CreateMeterProviderBuilder()
.AddMeter("MyMeter") // subscribe to all the meters you want
.AddMeter("*") // or subscribe to all meters
.SetResourceBuilder(
ResourceBuilder
.CreateDefault()
.AddEnvironmentVariableDetector()
.AddService(serviceName: "myservice", serviceVersion: "1.0.0")
)
// copy your project DSN here or use UPTRACE_DSN env var
.AddUptrace()
.Build();
See the metrics example to try OpenTelemetry and Uptrace.
Logs
using Microsoft.Extensions.Logging;
using OpenTelemetry.Logs;
using OpenTelemetry.Resources;
using Uptrace.OpenTelemetry;
using var loggerFactory = LoggerFactory.Create(builder =>
{
builder.AddOpenTelemetry(options =>
{
options.IncludeScopes = true;
options.ParseStateValues = true;
options.IncludeFormattedMessage = true;
options
.SetResourceBuilder(
ResourceBuilder
.CreateDefault()
.AddEnvironmentVariableDetector()
.AddService(serviceName: "myservice", serviceVersion: "1.0.0")
)
// copy your project DSN here or use UPTRACE_DSN env var
.AddUptrace();
});
});
var logger = loggerFactory.CreateLogger<Program>();
logger.LogInformation("Hello from {name} {price}.", "tomato", 2.99);
See the logs example to try OpenTelemetry and Uptrace.
Runtime metrics
To collect telemetry about runtime behavior, install OpenTelemetry.Instrumentation.Runtime:
dotnet add package OpenTelemetry.Instrumentation.Runtime
And enable the instrumentation:
using var meterProvider = Sdk.CreateMeterProviderBuilder()
.AddRuntimeInstrumentation()
.AddUptrace()
.Build();
Links
No packages depend on Uptrace.OpenTelemetry.
.NET 8.0
- OpenTelemetry.Exporter.OpenTelemetryProtocol (>= 1.16.0)
- OpenTelemetry.Extensions.AWS (>= 1.16.0)
.NET 10.0
- OpenTelemetry.Exporter.OpenTelemetryProtocol (>= 1.16.0)
- OpenTelemetry.Extensions.AWS (>= 1.16.0)