Aspire Dashboard — 本地 OTel 後端
Aspire Dashboard — 本地 OTel 後端
什麼是 Aspire Dashboard
Aspire Dashboard 是 .NET Aspire 生態系的一個獨立 UI 工具,用於視覺化 OpenTelemetry 資料(Traces、Logs、Metrics)。雖然源自 .NET 生態,但它接收標準 OTLP 協定,任何語言的應用程式都可以把遙測資料送進來。
選擇原因
- 零安裝:一行 docker run,即可啟動完整 UI
- 輕量:比完整 Jaeger + 儲存後端的 stack 簡單很多
- UI 完整:Traces waterfall、Log viewer、關聯查詢一應俱全
- 接受 OTLP:標準協定,不綁定語言或框架
docker-compose 設定
1 | services: |
啟動後:
- Web UI:http://localhost:18888
- OTLP 接收端:http://localhost:4318
⚠️ 關鍵坑:HTTP/1.1 vs gRPC Port
Aspire Dashboard 預設開兩個 OTLP port:
| Port(容器內) | 協定 | 說明 |
|---|---|---|
| 18889 | gRPC(HTTP/2) | 預設 OTLP/gRPC |
| 18890 | HTTP/1.1 | OTLP/HTTP |
Go 的 otlploghttp / otlptracehttp 使用 HTTP/1.1,不是 gRPC。
因此必須把容器的 18890(HTTP/1.1)對應到主機的 4318,而不是 18889(gRPC)。
錯誤設定(送到 gRPC port)→ 連線失敗或無資料:
1 | ports: |
正確設定:
1 | environment: |
應用程式設定
環境變數指定 OTLP 端點(ADK / OTel SDK 都會讀取):
1 | OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4318 |
或在程式碼中指定:
1 | // Go with otlptracehttp |
本部落格所有文章除特別聲明外,均採用CC BY-NC-SA 4.0 授權協議。轉載請註明來源 Kenny's Blog!