{"id":13457909,"url":"https://github.com/open-telemetry/opentelemetry-dotnet","last_synced_at":"2025-04-25T14:49:50.083Z","repository":{"id":37612047,"uuid":"185478059","full_name":"open-telemetry/opentelemetry-dotnet","owner":"open-telemetry","description":"The OpenTelemetry .NET Client","archived":false,"fork":false,"pushed_at":"2025-04-24T04:34:16.000Z","size":17001,"stargazers_count":3443,"open_issues_count":203,"forks_count":819,"subscribers_count":70,"default_branch":"main","last_synced_at":"2025-04-24T08:56:00.324Z","etag":null,"topics":["asp-net","asp-net-core","distributed-tracing","ilogger","iloggerprovider","instrumentation-libraries","logging","metrics","netcore","opentelemetry","otlp","telemetry"],"latest_commit_sha":null,"homepage":"https://opentelemetry.io","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/open-telemetry.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.TXT","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2019-05-07T21:05:33.000Z","updated_at":"2025-04-24T04:34:18.000Z","dependencies_parsed_at":"2024-04-16T21:48:01.442Z","dependency_job_id":"6955e85a-d303-4dce-8e6d-bab02c5029c6","html_url":"https://github.com/open-telemetry/opentelemetry-dotnet","commit_stats":{"total_commits":3077,"total_committers":196,"mean_commits":"15.698979591836734","dds":0.831979200519987,"last_synced_commit":"c1a1931319281197598d009ed531475e5a914de1"},"previous_names":[],"tags_count":125,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-telemetry%2Fopentelemetry-dotnet","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-telemetry%2Fopentelemetry-dotnet/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-telemetry%2Fopentelemetry-dotnet/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-telemetry%2Fopentelemetry-dotnet/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/open-telemetry","download_url":"https://codeload.github.com/open-telemetry/opentelemetry-dotnet/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250838766,"owners_count":21495815,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["asp-net","asp-net-core","distributed-tracing","ilogger","iloggerprovider","instrumentation-libraries","logging","metrics","netcore","opentelemetry","otlp","telemetry"],"created_at":"2024-07-31T09:00:39.394Z","updated_at":"2025-04-25T14:49:50.053Z","avatar_url":"https://github.com/open-telemetry.png","language":"C#","funding_links":[],"categories":["C\\#","others","C#","后端开发框架及项目","C# #"],"sub_categories":["后端项目_其他"],"readme":"# OpenTelemetry .NET\n\n[![Slack](https://img.shields.io/badge/slack-@cncf/otel/dotnet-brightgreen.svg?logo=slack)](https://cloud-native.slack.com/archives/C01N3BC2W7Q)\n[![codecov.io](https://codecov.io/gh/open-telemetry/opentelemetry-dotnet/branch/main/graphs/badge.svg?)](https://codecov.io/gh/open-telemetry/opentelemetry-dotnet/)\n[![Nuget](https://img.shields.io/nuget/v/OpenTelemetry.svg)](https://www.nuget.org/profiles/OpenTelemetry)\n[![NuGet](https://img.shields.io/nuget/dt/OpenTelemetry.svg)](https://www.nuget.org/profiles/OpenTelemetry)\n[![Build](https://github.com/open-telemetry/opentelemetry-dotnet/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/open-telemetry/opentelemetry-dotnet/actions/workflows/ci.yml)\n\nThe .NET [OpenTelemetry](https://opentelemetry.io/) implementation.\n\n\u003cdetails\u003e\n\u003csummary\u003eTable of Contents\u003c/summary\u003e\n\n* [Supported .NET versions](#supported-net-versions)\n* [Project status](#project-status)\n* [Getting started](#getting-started)\n  * [Getting started with Logging](#getting-started-with-logging)\n  * [Getting started with Metrics](#getting-started-with-metrics)\n  * [Getting started with Tracing](#getting-started-with-tracing)\n* [Repository structure](#repository-structure)\n* [Troubleshooting](#troubleshooting)\n* [Extensibility](#extensibility)\n* [Releases](#releases)\n* [Contributing](#contributing)\n* [References](#references)\n\n\u003c/details\u003e\n\n## Supported .NET versions\n\nPackages shipped from this repository generally support all the officially\nsupported versions of [.NET](https://dotnet.microsoft.com/download/dotnet) and\n[.NET Framework](https://dotnet.microsoft.com/download/dotnet-framework) (an\nolder Windows-based .NET implementation), except `.NET Framework 3.5`.\nAny exceptions to this are noted in the individual `README.md`\nfiles.\n\n## Project status\n\n**Stable** across all 3 signals (`Logs`, `Metrics`, and `Traces`).\n\n\u003e [!CAUTION]\n\u003e Certain components, marked as\n[pre-release](https://github.com/open-telemetry/opentelemetry-dotnet/blob/main/VERSIONING.md#pre-releases),\nare still work in progress and can undergo breaking changes before stable\nrelease. Check the individual `README.md` file for each component to understand its\ncurrent state.\n\nTo understand which portions of the [OpenTelemetry\nSpecification](https://github.com/open-telemetry/opentelemetry-specification)\nhave been implemented in OpenTelemetry .NET see: [Spec Compliance\nMatrix](https://github.com/open-telemetry/opentelemetry-specification/blob/main/spec-compliance-matrix.md).\n\n## Getting started\n\nIf you are new here, please read the getting started docs:\n\n### Getting started with Logging\n\nIf you are new to\n[logging](https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/logs/README.md),\nit is recommended to first follow the [getting started in 5 minutes - ASP.NET\nCore Application](./docs/logs/getting-started-aspnetcore/README.md) guide or\nthe [getting started in 5 minutes - Console\nApplication](./docs/logs/getting-started-console/README.md) guide to get up\nand running.\n\nFor general information and best practices see: [OpenTelemetry .NET\nLogs](./docs/logs/README.md). For a more detailed explanation of SDK logging\nfeatures see: [Customizing OpenTelemetry .NET SDK for\nLogs](./docs/logs/customizing-the-sdk/README.md).\n\n### Getting started with Metrics\n\nIf you are new to\n[metrics](https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/metrics/README.md),\nit is recommended to first follow the [getting started in 5 minutes - ASP.NET\nCore Application](./docs/metrics/getting-started-aspnetcore/README.md) guide\nor the [getting started in 5 minutes - Console\nApplication](./docs/metrics/getting-started-console/README.md) guide to get\nup and running.\n\nFor general information and best practices see: [OpenTelemetry .NET\nMetrics](./docs/metrics/README.md). For a more detailed explanation of SDK\nmetric features see: [Customizing OpenTelemetry .NET SDK for\nMetrics](./docs/metrics/customizing-the-sdk/README.md).\n\n### Getting started with Tracing\n\nIf you are new to\n[traces](https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/trace/README.md),\nit is recommended to first follow the [getting started in 5 minutes - ASP.NET\nCore Application](./docs/trace/getting-started-aspnetcore/README.md) guide\nor the [getting started in 5 minutes - Console\nApplication](./docs/trace/getting-started-console/README.md) guide to get up\nand running.\n\nFor general information and best practices see: [OpenTelemetry .NET\nTraces](./docs/trace/README.md). For a more detailed explanation of SDK tracing\nfeatures see: [Customizing OpenTelemetry .NET SDK for\nTracing](./docs/trace/customizing-the-sdk/README.md).\n\n## Repository structure\n\nThis repository includes only what is defined in the [OpenTelemetry\nSpecification](https://github.com/open-telemetry/opentelemetry-specification)\nand is shipped as separate packages through\n[NuGet](https://www.nuget.org/profiles/OpenTelemetry). Each component has an\nindividual `README.md` and `CHANGELOG.md` file which covers the instructions on\nhow to install and get started, and details about the individual changes made\n(respectively). To find all the available components, please take a look at the\n`src` folder.\n\nHere are the most commonly used components:\n\n* [OpenTelemetry API](./src/OpenTelemetry.Api/README.md)\n* [OpenTelemetry SDK](./src/OpenTelemetry/README.md)\n* [OpenTelemetry Hosting\n  Extensions](./src/OpenTelemetry.Extensions.Hosting/README.md)\n\nHere are the [exporter\nlibraries](https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/glossary.md#exporter-library):\n\n* [Console](./src/OpenTelemetry.Exporter.Console/README.md)\n* [In-memory](./src/OpenTelemetry.Exporter.InMemory/README.md)\n* [OTLP](./src/OpenTelemetry.Exporter.OpenTelemetryProtocol/README.md)\n  (OpenTelemetry Protocol)\n* [Prometheus AspNetCore](./src/OpenTelemetry.Exporter.Prometheus.AspNetCore/README.md)\n* [Prometheus HttpListener](./src/OpenTelemetry.Exporter.Prometheus.HttpListener/README.md)\n* [Zipkin](./src/OpenTelemetry.Exporter.Zipkin/README.md)\n\nAdditional packages including [instrumentation\nlibraries](https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/glossary.md#instrumentation-library),\nexporters, resource detectors, and extensions can be found in the\n[opentelemetry-dotnet-contrib\nrepository](https://github.com/open-telemetry/opentelemetry-dotnet-contrib)\nand/or the [OpenTelemetry\nregistry](https://opentelemetry.io/ecosystem/registry/?language=dotnet).\n\n## Troubleshooting\n\nFor general instructions see:\n[Troubleshooting](./src/OpenTelemetry/README.md#troubleshooting). Additionally\n`README.md` files for individual components may contain more detailed\ntroubleshooting information.\n\n## Extensibility\n\nOpenTelemetry .NET is designed to be extensible. Here are the most common\nextension scenarios:\n\n* Building a custom [instrumentation\n  library](./docs/trace/extending-the-sdk/README.md#instrumentation-library).\n* Building a custom exporter for\n  [logs](./docs/logs/extending-the-sdk/README.md#exporter),\n  [metrics](./docs/metrics/extending-the-sdk/README.md#exporter), and\n  [traces](./docs/trace/extending-the-sdk/README.md#exporter).\n* Building a custom processor for\n  [logs](./docs/logs/extending-the-sdk/README.md#processor) and\n  [traces](./docs/trace/extending-the-sdk/README.md#processor).\n* Building a custom sampler for\n  [traces](./docs/trace/extending-the-sdk/README.md#sampler).\n\n## Releases\n\nFor details about upcoming planned releases see:\n[Milestones](https://github.com/open-telemetry/opentelemetry-dotnet/milestones).\nThe dates and features described in issues and milestones are estimates and\nsubject to change.\n\nFor highlights and annoucements for stable releases see: [Release\nNotes](./RELEASENOTES.md).\n\nTo access packages, source code, and/or view a list of changes for all\ncomponents in a release see:\n[Releases](https://github.com/open-telemetry/opentelemetry-dotnet/releases).\n\nNightly builds from this repo are published to [MyGet](https://www.myget.org),\nand can be installed using the\n`https://www.myget.org/F/opentelemetry/api/v3/index.json` source.\n\n### Digital signing\n\nStarting with the `1.10.0` release the DLLs included in the packages pushed to\nNuGet are digitally signed using [Sigstore](https://www.sigstore.dev/). Within\neach NuGet package the digital signature and its corresponding certificate file\nare placed alongside the shipped DLL(s) in the `/lib` folder. When a project\ntargets multiple frameworks each target outputs a dedicated DLL and signing\nartifacts into a sub folder based on the\n[TFM](https://learn.microsoft.com/dotnet/standard/frameworks).\n\nThe digitial signature and certificate files share the same name prefix as the\nDLL to ensure easy identification and association.\n\nTo verify the integrity of a DLL inside a NuGet package use the\n[cosign](https://github.com/sigstore/cosign) tool from Sigstore:\n\n```bash\ncosign verify-blob \\\n    --signature OpenTelemetry.dll-keyless.sig \\\n    --certificate OpenTelemetry.dll-keyless.pem.cer \\\n    --certificate-identity \"https://github.com/open-telemetry/opentelemetry-dotnet/.github/workflows/publish-packages-1.0.yml@refs/tags/core-1.10.0-rc.1\" \\\n    --certificate-oidc-issuer \"https://token.actions.githubusercontent.com\" \\\n    OpenTelemetry.dll\n```\n\n\u003e [!NOTE]\n\u003e A successful verification outputs `Verify OK`.\n\nFor more verification options please refer to the [cosign\ndocumentation](https://github.com/sigstore/cosign/blob/main/doc/cosign_verify-blob.md).\n\n## Contributing\n\nFor information about contributing to the project see:\n[CONTRIBUTING.md](CONTRIBUTING.md).\n\nWe meet weekly on Tuesdays, and the time of the meeting alternates between 9AM\nPT and 4PM PT. The meeting is subject to change depending on contributors'\navailability. Check the [OpenTelemetry community\ncalendar](https://github.com/open-telemetry/community?tab=readme-ov-file#calendar)\nfor specific dates and for Zoom meeting links.\n\nMeeting notes are available as a public [Google\ndoc](https://docs.google.com/document/d/1yjjD6aBcLxlRazYrawukDgrhZMObwHARJbB9glWdHj8/edit?usp=sharing).\nIf you have trouble accessing the doc, please get in touch on\n[Slack](https://cloud-native.slack.com/archives/C01N3BC2W7Q).\n\nThe meeting is open for all to join. We invite everyone to join our meeting,\nregardless of your experience level. Whether you're a seasoned OpenTelemetry\ndeveloper, just starting your journey, or simply curious about the work we do,\nyou're more than welcome to participate!\n\n[Maintainers](https://github.com/open-telemetry/community/blob/main/guides/contributor/membership.md#maintainer)\n([@open-telemetry/dotnet-maintainers](https://github.com/orgs/open-telemetry/teams/dotnet-maintainers)):\n\n* [Alan West](https://github.com/alanwest), New Relic\n* [Rajkumar Rangaraj](https://github.com/rajkumar-rangaraj), Microsoft\n\n[Emeritus Maintainers](https://github.com/open-telemetry/community/blob/main/guides/contributor/membership.md#emeritus-maintainerapprovertriager):\n\n* [Mike Goldsmith](https://github.com/MikeGoldsmith)\n* [Sergey Kanzhelev](https://github.com/SergeyKanzhelev)\n* [Utkarsh Umesan Pillai](https://github.com/utpilla)\n\n[Approvers](https://github.com/open-telemetry/community/blob/main/guides/contributor/membership.md#approver)\n([@open-telemetry/dotnet-approvers](https://github.com/orgs/open-telemetry/teams/dotnet-approvers)):\n\n* [Cijo Thomas](https://github.com/cijothomas), Microsoft\n* [Mikel Blanchard](https://github.com/CodeBlanch), Microsoft\n* [Piotr Kie\u0026#x142;kowicz](https://github.com/Kielek), Splunk\n\n[Emeritus Approvers](https://github.com/open-telemetry/community/blob/main/guides/contributor/membership.md#emeritus-maintainerapprovertriager):\n\n* [Bruno Garcia](https://github.com/bruno-garcia)\n* [Eddy Nakamura](https://github.com/eddynaka)\n* [Liudmila Molkova](https://github.com/lmolkova)\n* [Paulo Janotti](https://github.com/pjanotti)\n* [Reiley Yang](https://github.com/reyang)\n* [Robert Paj\u0026#x105;k](https://github.com/pellared)\n* [Vishwesh Bankwar](https://github.com/vishweshbankwar)\n\n[Triagers](https://github.com/open-telemetry/community/blob/main/guides/contributor/membership.md#triager)\n([@open-telemetry/dotnet-triagers](https://github.com/orgs/open-telemetry/teams/dotnet-triagers)):\n\n* [Martin Thwaites](https://github.com/martinjt), Honeycomb\n* [Timothy \"Mothra\" Lee](https://github.com/TimothyMothra), Microsoft\n\n[Emeritus Triagers](https://github.com/open-telemetry/community/blob/main/guides/contributor/membership.md#emeritus-maintainerapprovertriager):\n\n* [Victor Lu](https://github.com/victlu)\n\n### Thanks to all the people who have contributed\n\n[![contributors](https://contributors-img.web.app/image?repo=open-telemetry/opentelemetry-dotnet)](https://github.com/open-telemetry/opentelemetry-dotnet/graphs/contributors)\n\n## References\n\n* [OpenTelemetry Project](https://opentelemetry.io/)\n* [OpenTelemetry Specification](https://github.com/open-telemetry/opentelemetry-specification)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopen-telemetry%2Fopentelemetry-dotnet","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fopen-telemetry%2Fopentelemetry-dotnet","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopen-telemetry%2Fopentelemetry-dotnet/lists"}