共用方式為


儀錶板設定

儀錶板會在啟動時設定。 設定包括前端和 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:AuthModeDashboard:Otlp:AuthModeUnsecured的快捷方式。
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 可以設定為 BrowserTokenOpenIdConnectUnsecuredUnsecured 應該只在本機開發期間使用。 在公開或其他設定中裝載儀錶板時,不建議這麼做。
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 可以設定為 ApiKeyCertificateUnsecuredUnsecured 應該只在本機開發期間使用。 在公開或其他設定中裝載儀錶板時,不建議這麼做。
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 環境變數來設定。

注意

儀錶板僅支持傳送遙測的 方法,而且不允許設定CORS (允許的方法。

資源

儀錶板會連線到資源服務,以載入和顯示資源資訊。 client 是在儀錶板中設定,以瞭解如何連線到服務。

資源服務 client 驗證是使用 Dashboard:ResourceServiceClient:AuthMode來設定。 client 可以設定為支援 API 金鑰或 client 憑證驗證。

選擇 預設值 描述
Dashboard:ResourceServiceClient:Url null 儀錶板連線至其數據的 gRPC 端點。 如果未指定此值,儀錶板會顯示遙測數據,但沒有資源清單或主控台記錄。
Dashboard:ResourceServiceClient:AuthMode null 可以設定為 ApiKeyCertificateUnsecuredUnsecured 應該只在本機開發期間使用。 在公開或其他設定中裝載儀錶板時,不建議這麼做。 如果指定資源服務 URL,則需要此值。
Dashboard:ResourceServiceClient:ApiKey null 要傳送至 x-resource-service-api-key 標頭中資源服務的 API。 如果驗證模式是 API 金鑰,則需要此值。
Dashboard:ResourceServiceClient:ClientCertificate:Source null 可以設定為 FileKeyStore。 如果驗證模式 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

遙測限制

遙測會儲存在記憶體中。 為了避免記憶體使用量過多,儀錶板有儲存遙測計數和大小的限制。 達到計數限制時,會新增新的遙測,並移除最舊的遙測。 達到大小限制時,數據會截斷為限制。

遙測限制會根據遙測類型而有不同的範圍:

  • MaxLogCountMaxTraceCount 會跨資源分享。 例如,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 時,才適用此專案。 當資源服務存在時,服務會指定應用程式名稱。

後續步驟