我正在学习 OpenTelemetry,我想知道 dotnet-monitor 如何与 OpenTelemetry (Meter) 连接。这些东西是否以某种方式连接起来,或者 dotnet-monitor 只是不使用 OpenTelemetry 标准(API、SDK 和出口商)的自定义 MS 工具。
问问题
119 次
1 回答
1
如果您在计算机上运行 dotnet-monitor,它会以 Prometheus 格式公开 dotnet 指标,这意味着您可以设置 OpenTelemetry 收集器来抓取这些指标
例如在 OpenTelemetry-collector-contrib 配置中
receivers:
prometheus_exec:
exec: dotnet monitor collect
port: 52325
请注意,要运行 dotnet-monitor,您需要在路径中创建一个 setting.json:
$XDG_CONFIG_HOME/dotnet-monitor/settings.json
如果 $XDG_CONFIG_HOME 未定义,则在此路径中创建文件:
$HOME/.config/dotnet-monitor/settings.json
如果您想通过其 PID 识别进程,请将其写入 settings.json(将值更改为您的 PID):
{
"DefaultProcess": {
"Filters": [{
"Key": "ProcessId",
"Value": "1"
}]
}
}
如果您想通过名称来识别进程,请将其写入 settings.json(将 Value 更改为您的进程名称):
{
"DefaultProcess": {
"Filters": [{
"Key": "ProcessName",
"Value": "iisexpress"
}]
},
}
在我的示例中,我使用了以下配置:
{
"DefaultProcess": {
"Filters": [{
"Key": "ProcessId",
"Value": "1"
}]
},
"Metrics": {
"Providers": [
{
"ProviderName": "System.Net.Http"
},
{
"ProviderName": "Microsoft-AspNetCore-Server-Kestrel"
}
]
}
}
于 2022-01-13T23:12:32.570 回答