儀錶板設定
儀錶板會在啟動時設定。 設定包括前端和 OpenTelemetry 通訊協定 (OTLP) 位址、資源服務端點、驗證、遙測限制等等。
當儀錶板以 .NET.NET Aspire 應用程式主機項目啟動時,會自動設定為顯示應用程式的資源和遙測。 在 獨立模式中啟動儀錶板時,提供組態。
提供組態的方式有很多:
- 命令行自變數。
- 環境變數。
:
分隔符應取代為環境變數名稱中的雙底線(__
)。 - 選擇性 JSON 組態檔。
DOTNET_DASHBOARD_CONFIG_FILE_PATH
設定可用來指定 JSON 組態檔。
請考慮下列範例,示範如何從 Docker 容器啟動時設定儀錶板:
docker run --rm -it -p 18888:18888 -p 4317:18889 -d --name aspire-dashboard \
-e DASHBOARD__TELEMETRYLIMITS__MAXLOGCOUNT='1000' \
-e DASHBOARD__TELEMETRYLIMITS__MAXTRACECOUNT='1000' \
-e DASHBOARD__TELEMETRYLIMITS__MAXMETRICSCOUNT='1000' \
mcr.microsoft.com/dotnet/aspire-dashboard:9.0
或者,您可以使用使用 DOTNET_DASHBOARD_CONFIG_FILE_PATH
指定的 JSON 組態檔來設定這些相同的值:
{
"Dashboard": {
"TelemetryLimits": {
"MaxLogCount": 1000,
"MaxTraceCount": 1000,
"MaxMetricsCount": 1000
}
}
}
重要
儀錶板會顯示資源的相關信息,包括其設定、主控台記錄和深入遙測。
儀錶板中顯示的數據可能十分敏感。 例如,環境變數中的秘密,以及遙測中的敏感數據。 請務必小心設定儀錶板以保護存取。
如需詳細資訊,請參閱 儀錶板安全性。
注意
此頁面所述的組態適用於獨立儀錶板。 若要設定
一般設定
選擇 | 預設值 | 描述 |
---|---|---|
ASPNETCORE_URLS |
http://localhost:18888 |
提供儀錶板前端的一或多個 HTTP 端點。 前端端點可用來在瀏覽器中檢視儀錶板。 當儀錶板由 .NET.NET Aspire 應用程式裝載時,此位址會受到 HTTPS 保護。 建議使用 HTTPS 保護儀錶板。 |
DOTNET_DASHBOARD_OTLP_ENDPOINT_URL |
http://localhost:18889 |
OTLP/gRPC 端點。 此端點會裝載 OTLP 服務,並使用 gRPC 接收遙測。 當儀錶板由 .NET.NET Aspire 應用程式裝載時,此位址會受到 HTTPS 保護。 建議使用 HTTPS 保護儀錶板。 |
DOTNET_DASHBOARD_OTLP_HTTP_ENDPOINT_URL |
http://localhost:18890 |
OTLP/HTTP 端點。 此端點會裝載 OTLP 服務,並使用 Protobuf over HTTP 接收遙測。 當 .NET.NET Aspire 應用程式啟動儀錶板時,預設不會設定 OTLP/HTTP 端點。 若要使用應用程式主機設定 OTLP/HTTP 端點,請在 launchSettings 中設定 DOTNET_DASHBOARD_OTLP_HTTP_ENDPOINT_URL env var 值。json。 建議使用 HTTPS 保護儀錶板。 |
DOTNET_DASHBOARD_UNSECURED_ALLOW_ANONYMOUS |
false |
將儀錶板設定為不使用驗證並接受匿名存取。 此設定是設定 Dashboard:Frontend:AuthMode 和 Dashboard:Otlp:AuthMode Unsecured 的快捷方式。 |
DOTNET_DASHBOARD_CONFIG_FILE_PATH |
null |
JSON 組態檔的路徑。 如果儀錶板正在 Docker 容器中執行,則這是掛接磁碟區中組態檔的路徑。 這個值是選擇性的。 |
DOTNET_RESOURCE_SERVICE_ENDPOINT_URL |
null |
儀錶板連線至其數據的 gRPC 端點。 如果未指定此值,儀錶板會顯示遙測數據,但沒有資源清單或主控台記錄。 此設定是 Dashboard:ResourceServiceClient:Url 的快捷方式。 |
前端驗證
儀錶板前端端點驗證已設定為 Dashboard:Frontend:AuthMode
。 前端可以使用 OpenID Connect (OIDC) 或瀏覽器令牌驗證來保護。
瀏覽器令牌驗證的運作方式是要求令牌的前端。 令牌可以在UI中輸入,或以查詢字串值的形式提供給登入頁面。 例如,https://localhost:1234/login?t=TheToken
。 成功驗證令牌時,驗證 cookie 會保存至瀏覽器,並將瀏覽器重新導向至應用程式。
選擇 | 預設值 | 描述 |
---|---|---|
Dashboard:Frontend:AuthMode |
BrowserToken |
可以設定為 BrowserToken 、OpenIdConnect 或 Unsecured 。
Unsecured 應該只在本機開發期間使用。 在公開或其他設定中裝載儀錶板時,不建議這麼做。 |
Dashboard:Frontend:BrowserToken |
null |
指定瀏覽器令牌。 如果未指定瀏覽器令牌,則儀錶板會產生一個。 想要使用瀏覽器令牌驗證自動登入的工具可以指定令牌,並使用查詢字串中的令牌開啟瀏覽器。 每次啟動儀錶板時,都應該產生新的令牌。 |
Dashboard:Frontend:OpenIdConnect:NameClaimType |
name |
指定一或多個宣告類型,這些宣告類型應該用來顯示已驗證使用者的完整名稱。 可以是單一宣告類型或以逗號分隔的宣告類型清單。 |
Dashboard:Frontend:OpenIdConnect:UsernameClaimType |
preferred_username |
指定一或多個宣告類型,這些宣告類型應該用來顯示已驗證的用戶名稱。 可以是單一宣告類型或以逗號分隔的宣告類型清單。 |
Dashboard:Frontend:OpenIdConnect:RequiredClaimType |
null |
指定授權用戶必須存在的宣告。 授權失敗,而不需要此宣告。 這個值是選擇性的。 |
Dashboard:Frontend:OpenIdConnect:RequiredClaimValue |
null |
指定必要宣告的值。 只有在同時指定 Dashboard:Frontend:OpenIdConnect:RequireClaimType 時才使用。 這個值是選擇性的。 |
Authentication:Schemes:OpenIdConnect:Authority |
null |
識別提供者的 URL(IdP)。 |
Authentication:Schemes:OpenIdConnect:ClientId |
null |
信賴憑證者 (RP) 的身分識別。 |
Authentication:Schemes:OpenIdConnect:ClientSecret |
null |
只有真正的 RP 才能知道的秘密。 |
OpenIdConnectOptions 的其他屬性 | null |
組態區段內的值 Authentication:Schemes:OpenIdConnect:* 系結至 OpenIdConnectOptions ,例如 Scope 。 |
注意
使用 OpenIdConnect
作為終止 SSL 之反向 Proxy 後方的驗證模式時,可能需要額外的設定。 檢查您是否需要將 ASPNETCORE_FORWARDEDHEADERS_ENABLED
設定為 true
。
如需詳細資訊,請參閱 設定 ASP.NET Core 以使用 Proxy 伺服器和負載平衡器。
OTLP 驗證
OTLP 端點驗證是使用 Dashboard:Otlp:AuthMode
來設定。 OTLP 端點可以使用 API 金鑰或 client 憑證 驗證來保護。
API 金鑰驗證的運作方式是要求每個 OTLP 要求都有有效的 x-otlp-api-key
標頭值。 它必須符合主要或次要金鑰。
選擇 | 預設值 | 描述 |
---|---|---|
Dashboard:Otlp:AuthMode |
Unsecured |
可以設定為 ApiKey 、Certificate 或 Unsecured 。
Unsecured 應該只在本機開發期間使用。 在公開或其他設定中裝載儀錶板時,不建議這麼做。 |
Dashboard:Otlp:PrimaryApiKey |
null |
指定主要 API 金鑰。 API 金鑰可以是任何文字,但建議使用至少 128 位的 entropy 值。 如果驗證模式是 API 金鑰,則需要此值。 |
Dashboard:Otlp:SecondaryApiKey |
null |
指定次要 API 金鑰。 API 金鑰可以是任何文字,但建議使用至少 128 位的 entropy 值。 這個值是選擇性的。 如果指定了第二個 API 金鑰,則傳入 x-otlp-api-key 標頭值可以符合主要或次要密鑰。 |
OTLP CORS
跨原始來源資源分享 (CORS) 可以設定為允許瀏覽器應用程式將遙測傳送至儀錶板。
根據預設,瀏覽器應用程式會限制進行跨網域 API 呼叫。 這會影響將遙測傳送至儀錶板,因為儀錶板和瀏覽器應用程式一律位於不同的網域上。 若要設定 CORS,請使用 Dashboard:Otlp:Cors
區段,並指定允許的來源和標頭:
{
"Dashboard": {
"Otlp": {
"Cors": {
"AllowedOrigins": "http://localhost:5000,https://localhost:5001"
}
}
}
}
請考慮下列組態選項:
選擇 | 預設值 | 描述 |
---|---|---|
Dashboard:Otlp:Cors:AllowedOrigins |
null |
指定 CORS 的允許來源。 這是逗號分隔的字串,可包含 * 通配符以允許任何網域。 這個選項是選擇性的,可以使用 DASHBOARD__OTLP__CORS__ALLOWEDORIGINS 環境變數來設定。 |
Dashboard:Otlp:Cors:AllowedHeaders |
null |
以逗號分隔的字串,表示 CORS 的允許標頭。 此設定是選擇性的,而且可以使用 DASHBOARD__OTLP__CORS__ALLOWEDHEADERS 環境變數來設定。 |
注意
儀錶板僅支持傳送遙測的
資源
儀錶板會連線到資源服務,以載入和顯示資源資訊。 client 是在儀錶板中設定,以瞭解如何連線到服務。
資源服務 client 驗證是使用 Dashboard:ResourceServiceClient:AuthMode
來設定。
client 可以設定為支援 API 金鑰或 client 憑證驗證。
選擇 | 預設值 | 描述 |
---|---|---|
Dashboard:ResourceServiceClient:Url |
null |
儀錶板連線至其數據的 gRPC 端點。 如果未指定此值,儀錶板會顯示遙測數據,但沒有資源清單或主控台記錄。 |
Dashboard:ResourceServiceClient:AuthMode |
null |
可以設定為 ApiKey 、Certificate 或 Unsecured 。
Unsecured 應該只在本機開發期間使用。 在公開或其他設定中裝載儀錶板時,不建議這麼做。 如果指定資源服務 URL,則需要此值。 |
Dashboard:ResourceServiceClient:ApiKey |
null |
要傳送至 x-resource-service-api-key 標頭中資源服務的 API。 如果驗證模式是 API 金鑰,則需要此值。 |
Dashboard:ResourceServiceClient:ClientCertificate:Source |
null |
可以設定為 File 或 KeyStore 。 如果驗證模式 client 憑證,則需要此值。 |
Dashboard:ResourceServiceClient:ClientCertificate:FilePath |
null |
憑證檔案路徑。 如果來源 File ,則需要這個值。 |
Dashboard:ResourceServiceClient:ClientCertificate:Password |
null |
憑證檔案的密碼。 這個值是選擇性的。 |
Dashboard:ResourceServiceClient:ClientCertificate:Subject |
null |
憑證主體。 如果來源 KeyStore ,則需要這個值。 |
Dashboard:ResourceServiceClient:ClientCertificate:Store |
My |
憑證 StoreName。 |
Dashboard:ResourceServiceClient:ClientCertificate:Location |
CurrentUser |
憑證 StoreLocation。 |
遙測限制
遙測會儲存在記憶體中。 為了避免記憶體使用量過多,儀錶板有儲存遙測計數和大小的限制。 達到計數限制時,會新增新的遙測,並移除最舊的遙測。 達到大小限制時,數據會截斷為限制。
遙測限制會根據遙測類型而有不同的範圍:
-
MaxLogCount
和MaxTraceCount
會跨資源分享。 例如,MaxLogCount
值為5,000的儀錶板會設定儀錶板,以儲存所有資源的最多5,000個記錄專案。 -
MaxMetricsCount
是每個資源。 例如,MaxMetricsCount
值為10,000的儀錶板會設定每個資源最多10,000個計量數據點。
選擇 | 預設值 | 描述 |
---|---|---|
Dashboard:TelemetryLimits:MaxLogCount |
10,000 | 記錄項目數目上限。 限制會跨資源分享。 |
Dashboard:TelemetryLimits:MaxTraceCount |
10,000 | 記錄追蹤的最大數目。 限制會跨資源分享。 |
Dashboard:TelemetryLimits:MaxMetricsCount |
50,000 | 計量數據點的最大數目。 限制是每個資源。 |
Dashboard:TelemetryLimits:MaxAttributeCount |
128 | 遙測上的屬性數目上限。 |
Dashboard:TelemetryLimits:MaxAttributeLength |
null |
屬性的最大長度。 |
Dashboard:TelemetryLimits:MaxSpanEventCount |
null |
span 屬性上的事件數目上限。 |
其他
選擇 | 預設值 | 描述 |
---|---|---|
Dashboard:ApplicationName |
Aspire |
要顯示在 UI 中的應用程式名稱。 只有在未指定任何資源服務 URL 時,才適用此專案。 當資源服務存在時,服務會指定應用程式名稱。 |
後續步驟
執行 .NET.NET Aspire 儀錶板 的安全性考慮