首页
/ OpenTelemetry .NET 项目教程

OpenTelemetry .NET 项目教程

2026-01-17 09:12:15作者:邵娇湘

1. 项目的目录结构及介绍

OpenTelemetry .NET 项目的目录结构如下:

opentelemetry-dotnet/
├── src/
│   ├── OpenTelemetry/
│   ├── OpenTelemetry.Api/
│   ├── OpenTelemetry.Exporter.Console/
│   ├── OpenTelemetry.Exporter.OpenTelemetryProtocol/
│   ├── OpenTelemetry.Extensions.Hosting/
│   ├── OpenTelemetry.Instrumentation.AspNetCore/
│   ├── OpenTelemetry.Instrumentation.Http/
│   ├── OpenTelemetry.Instrumentation.SqlClient/
│   ├── OpenTelemetry.Instrumentation.StackExchangeRedis/
│   ├── OpenTelemetry.Shims.AspNet/
│   ├── OpenTelemetry.Shims.AspNetCore/
│   └── OpenTelemetry.Shims.DiagnosticSource/
├── test/
│   ├── OpenTelemetry.Tests/
│   ├── OpenTelemetry.Exporter.Console.Tests/
│   ├── OpenTelemetry.Exporter.OpenTelemetryProtocol.Tests/
│   ├── OpenTelemetry.Extensions.Hosting.Tests/
│   ├── OpenTelemetry.Instrumentation.AspNetCore.Tests/
│   ├── OpenTelemetry.Instrumentation.Http.Tests/
│   ├── OpenTelemetry.Instrumentation.SqlClient.Tests/
│   ├── OpenTelemetry.Instrumentation.StackExchangeRedis.Tests/
│   ├── OpenTelemetry.Shims.AspNet.Tests/
│   ├── OpenTelemetry.Shims.AspNetCore.Tests/
│   └── OpenTelemetry.Shims.DiagnosticSource.Tests/
├── examples/
│   ├── Console/
│   ├── AspNetCore/
│   └── Metrics/
├── docs/
│   ├── getting-started/
│   ├── logging/
│   ├── metrics/
│   └── traces/
├── .gitignore
├── .editorconfig
├── .gitattributes
├── LICENSE
├── README.md
└── global.json

目录结构介绍

  • src/:包含所有主要的源代码文件。
    • OpenTelemetry/:核心库。
    • OpenTelemetry.Api/:API 库。
    • OpenTelemetry.Exporter.*:各种导出器。
    • OpenTelemetry.Instrumentation.*:各种插桩库。
    • OpenTelemetry.Shims.*:兼容性库。
  • test/:包含所有测试文件。
  • examples/:包含示例应用程序。
  • docs/:包含文档文件。
  • 根目录下的文件:
    • .gitignore:Git 忽略文件。
    • .editorconfig:编辑器配置文件。
    • .gitattributes:Git 属性文件。
    • LICENSE:许可证文件。
    • README.md:项目介绍文件。
    • global.json:全局配置文件。

2. 项目的启动文件介绍

OpenTelemetry .NET 项目的启动文件通常位于 examples/ 目录下的示例应用程序中。以 examples/AspNetCore/ 为例,启动文件为 Program.csStartup.cs

Program.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Logging;

namespace Example.AspNetCore
{
    public class Program
    {
        public static void Main(string[] args)
        {
            CreateHostBuilder(args).Build().Run();
        }

        public static IHostBuilder CreateHostBuilder(string[] args) =>
            Host.CreateDefaultBuilder(args)
                .ConfigureWebHostDefaults(webBuilder =>
                {
                    webBuilder.UseStartup<Startup>();
                });
    }
}

Startup.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.HttpsPolicy;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
登录后查看全文
热门项目推荐
相关项目推荐