Codebase
Navigate the Codebase using the tree view. Use the filters to highlight where various files are grouped to aid understanding.
Getting Started Commands
Project Structure
Below is a short description of the key directories of the project to aid you when understanding where key files are located.
build/ - This directory contains the build scripts and configurations for the OpenTelemetry.dotnet project. It includes files for building the project in different environments, creating rulesets for code analysis, and running tests. (Source: )
CONTRIBUTING.md - This file provides guidelines for contributing to the OpenTelemetry.dotnet project. (Source: )
docs/ - This directory contains the documentation for the OpenTelemetry.dotnet project. It includes subdirectories for diagnostics, logs, metrics, resources, and trace, as well as the main documentation file (README.md). (Source: )
examples/ - This directory contains example projects that demonstrate how to use the OpenTelemetry.dotnet library. It includes subdirectories for ASP.NET Core, Console, GrpcService, MicroserviceExample, and others. (Source: )
LICENSE.TXT - This file contains the license information for the OpenTelemetry.dotnet project. (Source: )
NuGet.config - This file contains the configuration settings for the NuGet package manager. (Source: )
OpenTelemetry.proj and OpenTelemetry.sln - These files are the project and solution files for the OpenTelemetry.dotnet library. (Source: )
README.md - This file provides an introduction to the OpenTelemetry.dotnet project and its usage. (Source: )
src/ - This directory contains the source code for the OpenTelemetry.dotnet project. It includes the main OpenTelemetry namespace, as well as subdirectories for OpenTelemetry.Api, OpenTelemetry.Api.ProviderBuilderExtensions, and other namespaces. (Source: )
test/ - This directory contains the test projects for the OpenTelemetry.dotnet library. It includes subdirectories for Benchmarks, OpenTelemetry.Api.ProviderBuilderExtensions.Tests, OpenTelemetry.Api.Tests, and others. (Source: )
VERSIONING.md - This file provides information on the versioning scheme used by the OpenTelemetry.dotnet project. (Source: )
Entrypoints
Below are files we identified as entrypoints for to the codebase. This is where the application starts and a good place to start when learning.
Autoconfiguration.cs - This file contains the implementation of OpenTelemetry's automatic configuration for .NET applications. It sets up the necessary dependencies and initializes the OpenTelemetry SDK with default exporters and collectors.
Exporters.cs - This file contains the implementation of various exporters for sending collected data to different backends, such as Jaeger, Zipkin, Prometheus, and OpenTelemetry Collector.
Instrumentation.cs - This file includes various instrumentation modules for different libraries and frameworks in .NET. These modules automatically intercept and instrument calls to the targeted libraries to inject OpenTelemetry tracing and metrics.
Metrics.cs - This file includes the implementation of OpenTelemetry's metrics functionality for .NET. It provides classes for creating and managing meters, as well as methods for recording and aggregating metric data.
OpenTelemetry.cs - This file is the entry point for the OpenTelemetry library in .NET. It provides the main classes and interfaces for creating and configuring OpenTelemetry tracers, meters, and exporters.
Readme.md - This file is the project's readme, which provides an introduction to OpenTelemetry for .NET, installation instructions, and usage examples.
Tests.cs - This file includes various unit tests for the OpenTelemetry library in .NET. These tests ensure the correctness and functionality of the library's features.
Tracing.cs - This file contains the implementation of OpenTelemetry's tracing functionality for .NET. It includes classes for creating and managing tracers, as well as methods for recording spans and propagating contexts.
Version.cs - This file contains the version information for the OpenTelemetry library in .NET. It includes the major, minor, and patch numbers, as well as the build and revision numbers.