独立运行仪表板
更新: 2026-10-16 15:20:09 字数: 0 字 时长: 0 分钟
独立仪表板(Standalone dashboard)是一个纯粹的 OTLP 查看器:不需要 Aspire AppHost,任何配置了 OpenTelemetry 导出的应用都可以把遥测发过来。这一点对 Python、Node.js 等非 .NET 应用尤其有用。
启动
bash
aspire dashboard run启动后:
| 用途 | 地址 |
|---|---|
| 仪表板 UI | http://localhost:18888 |
| OTLP(gRPC) | http://localhost:4317 |
| OTLP(HTTP) | http://localhost:4318 |
请使用带令牌的登录地址
保持认证开启,并使用 CLI 打印出来的完整登录地址(形如 http://localhost:18888/login?t=<token>)。裸地址通常无法直接登录。
让应用发送遥测
.NET
csharp
builder.Services.AddOpenTelemetry()
.WithTracing(tracing => tracing.AddAspNetCoreInstrumentation())
.UseOtlpExporter();或通过环境变量:
bash
OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4318Node.js
bash
npm install @opentelemetry/sdk-node @opentelemetry/exporter-trace-otlp-httpbash
OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4318
OTEL_SERVICE_NAME=my-node-app
node --require ./instrumentation.js app.jsPython
bash
pip install opentelemetry-sdk opentelemetry-exporter-otlpbash
OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4318
OTEL_SERVICE_NAME=my-python-app
python app.py用 CLI 查询遥测
独立模式下,需要把 CLI 指向仪表板地址:
bash
aspire otel logs --dashboard-url "http://localhost:18888/login?t=<token>"
aspire otel traces --dashboard-url "http://localhost:18888/login?t=<token>"
aspire otel spans --dashboard-url "http://localhost:18888/login?t=<token>"加 --format Json 可获得结构化输出。
独立模式的限制
| 能力 | 随 AppHost 运行 | 独立模式 |
|---|---|---|
| 接收并查看 OTLP 遥测 | ✅ | ✅ |
| 资源生命周期控制(启停) | ✅ | ❌ |
| 资源环境变量与配置查看 | ✅ | ❌ |
| 资源终端 | ✅ | ❌ |
为什么会这样?
独立模式没有 AppHost 提供的资源服务,因此不知道「有哪些资源、它们的状态如何」。它只能显示应用主动发送过来的遥测数据。
典型使用场景
- 非 .NET 团队:只想用一个统一的 OTel 查看器,不引入完整 Aspire 编排。
- 部署后观察:把生产/预发环境的 OTLP 端点指向一个独立仪表板实例,临时查看问题。
- 本地混合调试:既有 Aspire 项目,也有独立运行的脚本。
排查建议
收不到任何遥测
- 确认应用真的配置了 OTLP 导出器(只装 SDK 不会自动导出)。
- 确认端点拼写与端口正确(HTTP 用 4318,gRPC 用 4317)。
- 若仪表板不在本机,检查防火墙与
Dashboard:Otlp:Cors配置。 - HTTPS 场景可能需要配置
Dashboard:Otlp:AllowedCertificates。
浏览器打开是白屏或要求登录
使用 CLI 打印出来的完整登录地址(含 ?t=<token>)。令牌只在本机有效,不要提交到版本库或贴到公开渠道。





