使用.NET Aspire Dashboard

.Net Aspire 已经进入GA,很快就出正式版本了。

其中Dashboard深受开发者的喜欢,最初只是在开发阶段提供应用数据遥测功能,但由于深受喜欢,现在也添加了更多的功能。

今天我尝试使用 Dashboard 的独立部署方式,并接入应用,以浏览实时的应用遥测数据。

使用docker 镜像部署独立的Dashboard

当你准备好配置文件后,直接执行如下命令即可:

docker run --rm -it -p 18888:18888 -p 4317:18889 -d --name aspire-dashboard -e DOTNET_DASHBOARD_CONFIG_FILE_PATH='/etc/aspire/config.json' -v ~/aspire:/etc/aspire mcr.microsoft.com/dotnet/aspire-dashboard:8.0.0

以上命令,使用环境变量DOTNET_DASHBOARD_CONFIG_FILE_PATH来告诉容器运行时去哪里寻找配置文件。

~/aspire是宿主机目录,/etc/aspire是容器内目录,我们做了一个映射。

配置Dashboard

我们在~/aspire目录下创建config.json文件,内容如下:

{
  "Dashboard": {
    "TelemetryLimits": {
      "MaxLogCount": 2000,
      "MaxTraceCount": 1000,
      "MaxMetricsCount": 1000
    },
    "Frontend": {
      "AuthMode":"BrowserToken",
      "BrowserToken":""
    },
    "Otel": {
      "AuthMode": "ApiKey",
      "PrimaryApiKey": ""
    }
  }
}

具体参数参考微软官方文档.

这里我就讲两个重点配置:

opt.Endpoint = new Uri("http://localhost:4317");
opt.Headers = "x-otlp-api-key=PrimaryApiKey";

其中optOtlpExporterOptions类。

详细内容可参考官方文档.

Tip

如果你的配置项不多,或不喜欢使用配置文件,可以都使用环境变量的方式传入各个参数,具体参数参考官方文档。

问题

如果你无法正常拉取微软官方的镜像,请尝试修改dns,如在/etc/resolv.conf中添加:

nameserver 8.8.8.8
nameserver 8.8.4.4

使用nslookup 命令验证dns

nslookup mcr.microsoft.com