uptrace-dotnet is an OpenTelemetry distribution configured to export traces, metrics, and logs to Uptrace.
Install uptrace-dotnet:
dotnet add package Uptrace.OpenTelemetryYou 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.
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.
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.
To collect telemetry about runtime behavior, install OpenTelemetry.Instrumentation.Runtime:
dotnet add package OpenTelemetry.Instrumentation.RuntimeAnd enable the instrumentation:
using var meterProvider = Sdk.CreateMeterProviderBuilder()
.AddRuntimeInstrumentation()
.AddUptrace()
.Build();