.Net语言接入
限制条件
使用.NET SDK 8及以上版本。
环境准备
- 准备插件/工具:.NET SDK 8
- 安装,命令如下:
sudo apt-get update && sudo apt-get install -y dotnet-sdk-8.0
- 环境验证,命令如下:
dotnet --version
示例demo
- 初始化应用,命令如下:
dotnet new web
- 替换当前目录下的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(); - 替换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" } } } } - 在包含Program.cs 的目录下构建并运行,命令如下:
dotnet build dotnet run curl http://localhost:8080/rolldice
无侵入式接入
- 登录APM控制台。
- 单击左侧
,选择“管理与监管 > 应用性能管理 APM”,进入APM服务页面。 - 在左侧导航栏中选择“应用监控 > 应用列表”。
- 单击“接入应用”,进入接入应用页面。
- 选择“区域”和“应用”。单击“创建应用”,弹出“创建应用”弹窗,可以具体操作参见创建应用。
- “接入方式”选择OpenTelemetry。
- “服务端语言”选择.Net。
- 数据接入,相关参数与操作步骤如下。
表1 参数说明 参数
说明
是否必填
应用名称
应用显示的名称。一个应用代表一个逻辑单元,是一个全局概念,各个region都可以看到相同的应用信息,比如一个租户下面比较独立的功能模块可以定义为一个应用。
必填
组件名称
组件名称,代表一个组件,需要使用英文字符开头。同一个应用下,组件名称不能重复。一个组件可以包含多个环境。不能重复,如果要重复,使用instanceName区分。
必填
环境名称
环境名称,代表一个应用在一个地方的部署。一个应用程序根据配置不同可以部署多个环境,比如测试环境,现网环境。每个环境都在一个region部署,具有唯一的region属性。该参数可以为空,代表默认环境。
选填
- 安装自动埋点依赖,命令如下:
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
- 添加环境变量,命令如下:
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
- 运行,命令如下:
dotnet run & curl http://localhost:8080/rolldice
- 在APM控制台链路追踪中查看应用的监控数据。详细操作参见指标。
- 安装自动埋点依赖,命令如下: