更新时间:2025-10-27 GMT+08:00
分享

.Net语言接入

限制条件

使用.NET SDK 8及以上版本。

环境准备

  1. 准备插件/工具:.NET SDK 8
  2. 安装,命令如下:
    sudo apt-get update &&  sudo apt-get install -y dotnet-sdk-8.0
  3. 环境验证,命令如下:
    dotnet --version

示例demo

  1. 初始化应用,命令如下:
    dotnet new web
  2. 替换当前目录下的Program.cs文件,内容如下:
    using System.Globalization;
    
    var builder = WebApplication.CreateBuilder(args);
    var app = builder.Build();
    var logger = app.Logger;
    
    int RollDice()
    {
        return Random.Shared.Next(1, 7);
    }
    
    string HandleRollDice(string? player)
    {
        var result = RollDice();
        if (string.IsNullOrEmpty(player))
        {
            logger.LogInformation("Anonymous player is rolling the dice: {result}", result);
        }
        else
        {
            logger.LogInformation("{player} is rolling the dice: {result}", player, result);
        }
        return result.ToString(CultureInfo.InvariantCulture);
    }
    
    app.MapGet("/rolldice/{player?}", HandleRollDice);
    app.Run();
  3. 替换Properties目录下的launchSettings.json文件,内容如下:
    {
      "$schema": "http://json.schemastore.org/launchsettings.json",
      "profiles": {
        "http": {
          "commandName": "Project",
          "dotnetRunMessages": true,
          "launchBrowser": true,
          "applicationUrl": "http://localhost:8080",
          "environmentVariables": {
            "ASPNETCORE_ENVIRONMENT": "Development"
          }
        }
      }
    }
  4. 在包含Program.cs 的目录下构建并运行,命令如下:
    dotnet build 
    dotnet run 
    curl  http://localhost:8080/rolldice

无侵入式接入

  1. 登录APM控制台
  2. 单击左侧,选择“管理与监管 > 应用性能管理 APM”,进入APM服务页面。
  3. 在左侧导航栏中选择“应用监控 > 应用列表”。
  4. 单击“接入应用”,进入接入应用页面。
  5. 选择“区域”和“应用”。单击“创建应用”,弹出“创建应用”弹窗,可以具体操作参见创建应用
  6. “接入方式”选择OpenTelemetry。
  7. “服务端语言”选择.Net。
  8. 数据接入,相关参数与操作步骤如下。

    表1 参数说明

    参数

    说明

    是否必填

    应用名称

    应用显示的名称。一个应用代表一个逻辑单元,是一个全局概念,各个region都可以看到相同的应用信息,比如一个租户下面比较独立的功能模块可以定义为一个应用。

    必填

    组件名称

    组件名称,代表一个组件,需要使用英文字符开头。同一个应用下,组件名称不能重复。一个组件可以包含多个环境。不能重复,如果要重复,使用instanceName区分。

    必填

    环境名称

    环境名称,代表一个应用在一个地方的部署。一个应用程序根据配置不同可以部署多个环境,比如测试环境,现网环境。每个环境都在一个region部署,具有唯一的region属性。该参数可以为空,代表默认环境。

    选填

    1. 安装自动埋点依赖,命令如下:
      curl -L -O https://github.com/open-telemetry/opentelemetry-dotnet-instrumentation/releases/latest/download/otel-dotnet-auto-install.sh 
      chmod +x otel-dotnet-auto-install.sh 
      ./otel-dotnet-auto-install.sh
    2. 添加环境变量,命令如下:
      export OTEL_TRACES_EXPORTER=otlp \
        OTEL_EXPORTER_OTLP_PROTOCOL=grpc \
        OTEL_METRICS_EXPORTER=none \
        OTEL_LOGS_EXPORTER=none \
        OTEL_SERVICE_NAME=<应用.组件.环境> \
        OTEL_EXPORTER_OTLP_ENDPOINT=<endpoint> \
        OTEL_EXPORTER_OTLP_HEADERS="Authentication=<token> "
      
      . $HOME/.otel-dotnet-auto/instrument.sh
    3. 运行,命令如下:
      dotnet run &
      curl  http://localhost:8080/rolldice
    4. 在APM控制台链路追踪中查看应用的监控数据。详细操作参见指标

相关文档