OpenTelemetry .NET
The .NET OpenTelemetry implementation.
Table of Contents
Supported .NET versions
Packages shipped from this repository generally support all the officially
supported versions of .NET and
.NET Framework (an
older Windows-based .NET implementation), except .NET Framework 3.5.
Any exceptions to this are noted in the individual README.md
files.
Project status
Stable across all 3 signals (Logs, Metrics, and Traces).
[!CAUTION] Certain components, marked as pre-release, are still work in progress and can undergo breaking changes before stable release. Check the individual
README.mdfile for each component to understand its current state.
To understand which portions of the OpenTelemetry Specification have been implemented in OpenTelemetry .NET see: Spec Compliance Matrix.
Getting started
If you are new here, please read the getting started docs:
Getting started with Logging
If you are new to logging, it is recommended to first follow the getting started in 5 minutes - ASP.NET Core Application guide or the getting started in 5 minutes - Console Application guide to get up and running.
For general information and best practices see: OpenTelemetry .NET Logs. For a more detailed explanation of SDK logging features see: Customizing OpenTelemetry .NET SDK for Logs.
Getting started with Metrics
If you are new to metrics, it is recommended to first follow the getting started in 5 minutes - ASP.NET Core Application guide or the getting started in 5 minutes - Console Application guide to get up and running.
For general information and best practices see: OpenTelemetry .NET Metrics. For a more detailed explanation of SDK metric features see: Customizing OpenTelemetry .NET SDK for Metrics.
Getting started with Tracing
If you are new to traces, it is recommended to first follow the getting started in 5 minutes - ASP.NET Core Application guide or the getting started in 5 minutes - Console Application guide to get up and running.
For general information and best practices see: OpenTelemetry .NET Traces. For a more detailed explanation of SDK tracing features see: Customizing OpenTelemetry .NET SDK for Tracing.
Repository structure
This repository includes only what is defined in the OpenTelemetry
Specification
and is shipped as separate packages through
NuGet. Each component has an
individual README.md and CHANGELOG.md file which covers the instructions on
how to install and get started, and details about the individual changes made
(respectively). To find all the available components, please take a look at the
src folder.
Here are the most commonly used components:
Here are the exporter libraries:
- Console
- In-memory
- OTLP (OpenTelemetry Protocol)
- Prometheus AspNetCore
- Prometheus HttpListener
- Zipkin (Deprecated)
Additional packages including instrumentation libraries, exporters, resource detectors, and extensions can be found in the opentelemetry-dotnet-contrib repository and/or the OpenTelemetry registry.
Troubleshooting
For general instructions see:
Troubleshooting. Additionally
README.md files for individual components may contain more detailed
troubleshooting information.
Extensibility
OpenTelemetry .NET is designed to be extensible. Here are the most common extension scenarios:
- Building a custom instrumentation library.
- Building a custom exporter for logs, metrics, and traces.
- Building a custom processor for logs and traces.
- Building a custom sampler for traces.
Releases
For details about upcoming planned releases see: Milestones. The dates and features described in issues and milestones are estimates and subject to change.
For highlights and announcements for stable releases see: Release Notes.
To access packages, source code, and/or view a list of changes for all components in a release see: Releases.
Nightly builds from th