OpenTelemetry .NET distro for Uptrace
This document explains how to configure OpenTelemetry .NET SDK to export spans and metrics to Uptrace using OTLP/gRPC.
To learn about OpenTelemetry API, see OpenTelemetry .NET Tracing API and OpenTelemetry .NET Metrics API.
OpenTelemetry .NET
To install uptrace-dotnet:
dotnet add package Uptrace.OpenTelemetry --prerelease
Configuration
You can configure Uptrace client using a DSN (Data Source Name, e.g. https://<token>@uptrace.dev/<project_id>
) from the project settings page.
using System;
using System.Diagnostics;
using OpenTelemetry;
using OpenTelemetry.Trace;
using OpenTelemetry.Resources;
using Uptrace.OpenTelemetry;
var serviceName = "myservice";
var serviceVersion = "1.0.0";
var openTelemetry = Sdk.CreateTracerProviderBuilder()
.AddSource("*") // subscribe to all activity sources
.SetResourceBuilder(
ResourceBuilder
.CreateDefault()
.AddEnvironmentVariableDetector()
.AddTelemetrySdk()
.AddService(serviceName: serviceName, serviceVersion: serviceVersion)
)
// copy your project DSN here or use UPTRACE_DSN env var
//.AddUptrace("https://<token>@uptrace.dev/<project_id>")
.AddUptrace()
.Build();
You can also use environment variables to configure the client:
Env var | Description |
---|---|
UPTRACE_DSN | A data source that is used to connect to uptrace.dev. For example, https://<token>@uptrace.dev/<project_id> . |
OTEL_RESOURCE_ATTRIBUTES | Key-value pairs to be used as resource attributes. For example, service.name=myservice,service.version=1.0.0 . |
OTEL_PROPAGATORS | Propagators to be used as a comma separated list. The default is tracecontext,baggage . |
Getting started
Install OpenTelemetry distro, generate your first trace, and click the link in your terminal to open Uptrace. All it takes is a minute of your time.
Step 0. Create an Uptrace project to obtain a DSN (connection string), for example,
https://<token>@uptrace.dev/<project_id>
.Step 1. Clone the basic example:
git clone https://github.com/uptrace/uptrace-dotnet/tree/master/example/basic
cd example/basic
- Step 2. Run the example to get a link for the generated trace:
$ UPTRACE_DSN="https://<token>@uptrace.dev/<project_id>" dotnet run
https://uptrace.dev/traces/<trace_id>
- Step 3. Follow the link to view the trace:
What's next?
- Browse more examples
- Look for instrumentations.
- Learn about Tracing API and Metrics API to create your own instrumentations.