Condividi tramite


Configurazione del dashboard

Il dashboard viene configurato all'avvio. La configurazione include indirizzi front-end e OpenTelemetry Protocol (OTLP), l'endpoint del servizio risorse, l'autenticazione, i limiti di telemetria e altro ancora.

Quando il dashboard viene avviato con il progetto host dell'app .NET.NET Aspire, viene configurato automaticamente per visualizzare le risorse e i dati di telemetria dell'app. La configurazione viene fornita quando si avvia il dashboard in modalità autonoma .

Esistono molti modi per fornire la configurazione:

  • Argomenti della riga di comando.
  • Variabili di ambiente. Il delimitatore : deve essere sostituito con doppio carattere di sottolineatura (__) nei nomi delle variabili di ambiente.
  • Facoltativo JSON file di configurazione. L'impostazione DOTNET_DASHBOARD_CONFIG_FILE_PATH può essere usata per specificare un file di configurazione JSON.

Si consideri l'esempio seguente, che illustra come configurare il dashboard all'avvio da un contenitore 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

In alternativa, è possibile configurare questi stessi valori usando un file di configurazione JSON specificato usando DOTNET_DASHBOARD_CONFIG_FILE_PATH:

{
  "Dashboard": {
    "TelemetryLimits": {
      "MaxLogCount": 1000,
      "MaxTraceCount": 1000,
      "MaxMetricsCount": 1000
    }
  }
}

Importante

Il dashboard visualizza informazioni sulle risorse, tra cui la configurazione, i log della console e i dati di telemetria approfonditi.

I dati visualizzati nel dashboard possono essere sensibili. Ad esempio, i segreti nelle variabili di ambiente e i dati di runtime sensibili nei dati di telemetria. Prestare attenzione a configurare il dashboard per proteggere l'accesso.

Per altre informazioni, vedere dashboard security.

Nota

La configurazione descritta in questa pagina è relativa al dashboard autonomo. Per configurare un progetto host dell'app .NET.NET Aspire, vedere configurazione dell'host dell'app .

Configurazione comune

Opzione Valore predefinito Descrizione
ASPNETCORE_URLS http://localhost:18888 Uno o più endpoint HTTP tramite cui viene gestito il front-end del dashboard. L'endpoint front-end viene usato per visualizzare il dashboard in un browser. Quando il dashboard viene avviato dall'host dell'app .NET.NET Aspire questo indirizzo è protetto con HTTPS. È consigliabile proteggere il dashboard con HTTPS.
DOTNET_DASHBOARD_OTLP_ENDPOINT_URL http://localhost:18889 Endpoint OTLP/gRPC . Questo endpoint ospita un servizio OTLP e riceve i dati di telemetria usando gRPC. Quando il dashboard viene avviato dall'host dell'app .NET.NET Aspire questo indirizzo è protetto con HTTPS. È consigliabile proteggere il dashboard con HTTPS.
DOTNET_DASHBOARD_OTLP_HTTP_ENDPOINT_URL http://localhost:18890 Endpoint OTLP/HTTP . Questo endpoint ospita un servizio OTLP e riceve i dati di telemetria usando Protobuf su HTTP. Quando il dashboard viene avviato dall'app .NET.NET Aspire host, l'endpoint OTLP/HTTP non è configurato per impostazione predefinita. Per configurare un endpoint OTLP/HTTP con l'host dell'app, impostare un valore var DOTNET_DASHBOARD_OTLP_HTTP_ENDPOINT_URL env in launchSettings.json. È consigliabile proteggere il dashboard con HTTPS.
DOTNET_DASHBOARD_UNSECURED_ALLOW_ANONYMOUS false Configura il dashboard per non usare l'autenticazione e accetta l'accesso anonimo. Questa impostazione è un collegamento alla configurazione di Dashboard:Frontend:AuthMode e Dashboard:Otlp:AuthMode per Unsecured.
DOTNET_DASHBOARD_CONFIG_FILE_PATH null Percorso di un file di configurazione JSON. Se il dashboard viene eseguito in un contenitore Docker, questo è il percorso del file di configurazione in un volume montato. Questo valore è facoltativo.
DOTNET_RESOURCE_SERVICE_ENDPOINT_URL null Endpoint gRPC a cui si connette il dashboard per i dati. Se questo valore non è specificato, il dashboard mostra i dati di telemetria, ma nessun elenco di risorse o log della console. Questa impostazione è un collegamento per Dashboard:ResourceServiceClient:Url.

Autenticazione front-end

L'autenticazione dell'endpoint front-end del dashboard è configurata con Dashboard:Frontend:AuthMode. Il front-end può essere protetto con OpenID Connect (OIDC) o l'autenticazione del token del browser.

L'autenticazione del token del browser funziona dal front-end che richiede un token. Il token può essere immesso nell'interfaccia utente o fornito come valore della stringa di query nella pagina di accesso. Ad esempio, https://localhost:1234/login?t=TheToken. Quando il token viene autenticato correttamente, un cookie di autenticazione viene salvato in modo permanente nel browser e il browser viene reindirizzato all'app.

Opzione Valore predefinito Descrizione
Dashboard:Frontend:AuthMode BrowserToken Può essere impostato su BrowserToken, OpenIdConnect o Unsecured. Unsecured devono essere usati solo durante lo sviluppo locale. Non è consigliabile quando si ospita il dashboard pubblicamente o in altre impostazioni.
Dashboard:Frontend:BrowserToken null Specifica il token del browser. Se il token del browser non è specificato, il dashboard ne genera uno. Gli strumenti che vogliono automatizzare l'accesso con l'autenticazione del token del browser possono specificare un token e aprire un browser con il token nella stringa di query. Ogni volta che viene avviato il dashboard, deve essere generato un nuovo token.
Dashboard:Frontend:OpenIdConnect:NameClaimType name Specifica uno o più tipi di attestazione che devono essere usati per visualizzare il nome completo dell'utente autenticato. Può essere un singolo tipo di attestazione o un elenco delimitato da virgole di tipi di attestazione.
Dashboard:Frontend:OpenIdConnect:UsernameClaimType preferred_username Specifica uno o più tipi di attestazione che devono essere usati per visualizzare il nome utente dell'utente autenticato. Può essere un singolo tipo di attestazione o un elenco delimitato da virgole di tipi di attestazione.
Dashboard:Frontend:OpenIdConnect:RequiredClaimType null Specifica l'attestazione che deve essere presente per gli utenti autorizzati. L'autorizzazione non riesce senza questa attestazione. Questo valore è facoltativo.
Dashboard:Frontend:OpenIdConnect:RequiredClaimValue null Specifica il valore dell'attestazione richiesta. Utilizzato solo se viene specificato Dashboard:Frontend:OpenIdConnect:RequireClaimType. Questo valore è facoltativo.
Authentication:Schemes:OpenIdConnect:Authority null URL del provider di identità (IdP).
Authentication:Schemes:OpenIdConnect:ClientId null Identità della relying party (RP).
Authentication:Schemes:OpenIdConnect:ClientSecret null Segreto che solo il vero rpo saprebbe.
Altre proprietà di OpenIdConnectOptions null I valori all'interno della sezione di configurazione Authentication:Schemes:OpenIdConnect:* sono associati a OpenIdConnectOptions, ad esempio Scope.

Nota

È possibile che sia necessaria una configurazione aggiuntiva quando si usa OpenIdConnect come modalità di autenticazione dietro un proxy inverso che termina SSL. Controllare se è necessario impostare ASPNETCORE_FORWARDEDHEADERS_ENABLED su true.

Per altre informazioni, vedere Configurare ASP.NET Core per l'uso con server proxy e servizi di bilanciamento del carico.

Autenticazione OTLP

L'autenticazione dell'endpoint OTLP è configurata con Dashboard:Otlp:AuthMode. L'endpoint OTLP può essere protetto con una chiave API o certificato client l'autenticazione.

L'autenticazione della chiave API funziona richiedendo a ogni richiesta OTLP di avere un valore di intestazione x-otlp-api-key valido. Deve corrispondere alla chiave primaria o secondaria.

Opzione Valore predefinito Descrizione
Dashboard:Otlp:AuthMode Unsecured Può essere impostato su ApiKey, Certificate o Unsecured. Unsecured devono essere usati solo durante lo sviluppo locale. Non è consigliabile quando si ospita il dashboard pubblicamente o in altre impostazioni.
Dashboard:Otlp:PrimaryApiKey null Specifica la chiave API primaria. La chiave API può essere qualsiasi testo, ma è consigliabile un valore con almeno 128 bit di entropia. Questo valore è obbligatorio se la modalità di autenticazione è chiave API.
Dashboard:Otlp:SecondaryApiKey null Specifica la chiave API secondaria. La chiave API può essere qualsiasi testo, ma è consigliabile un valore con almeno 128 bit di entropia. Questo valore è facoltativo. Se viene specificata una seconda chiave API, il valore dell'intestazione x-otlp-api-key in ingresso può corrispondere alla chiave primaria o secondaria.

OTLP CORS

La condivisione di risorse tra le origini (CORS) può essere configurata per consentire alle app del browser di inviare dati di telemetria al dashboard.

Per impostazione predefinita, le app browser non possono effettuare chiamate API tra domini. Ciò influisce sull'invio dei dati di telemetria al dashboard perché il dashboard e l'app del browser si trovano sempre in domini diversi. Per configurare CORS, usare la sezione Dashboard:Otlp:Cors e specificare le origini e le intestazioni consentite:

{
  "Dashboard": {
    "Otlp": {
      "Cors": {
        "AllowedOrigins": "http://localhost:5000,https://localhost:5001"
      }
    }
  }
}

Considerare le opzioni di configurazione seguenti:

Opzione Valore predefinito Descrizione
Dashboard:Otlp:Cors:AllowedOrigins null Specifica le origini consentite per CORS. Si tratta di una stringa delimitata da virgole e può includere il carattere jolly * per consentire qualsiasi dominio. Questa opzione è facoltativa e può essere impostata usando la variabile di ambiente DASHBOARD__OTLP__CORS__ALLOWEDORIGINS.
Dashboard:Otlp:Cors:AllowedHeaders null Stringa delimitata da virgole che rappresenta le intestazioni consentite per CORS. Questa impostazione è facoltativa e può essere impostata usando la variabile di ambiente DASHBOARD__OTLP__CORS__ALLOWEDHEADERS.

Nota

Il dashboard supporta solo il metodo POST per l'invio di dati di telemetria e non consente la configurazione dei metodi consentiti (Access-Control-Allow-Methods) per CORS.

Risorse

Il dashboard si connette a un servizio risorse per caricare e visualizzare le informazioni sulle risorse. Il client viene configurato nel dashboard per la connessione al servizio.

L'autenticazione client del servizio risorse è configurata con Dashboard:ResourceServiceClient:AuthMode. Il client può essere configurato per supportare la chiave API o l'autenticazione del certificato client.

Opzione Valore predefinito Descrizione
Dashboard:ResourceServiceClient:Url null Endpoint gRPC a cui si connette il dashboard per i dati. Se questo valore non è specificato, il dashboard mostra i dati di telemetria, ma nessun elenco di risorse o log della console.
Dashboard:ResourceServiceClient:AuthMode null Può essere impostato su ApiKey, Certificate o Unsecured. Unsecured devono essere usati solo durante lo sviluppo locale. Non è consigliabile quando si ospita il dashboard pubblicamente o in altre impostazioni. Questo valore è obbligatorio se viene specificato un URL del servizio risorse.
Dashboard:ResourceServiceClient:ApiKey null API da inviare al servizio risorse nell'intestazione x-resource-service-api-key. Questo valore è obbligatorio se la modalità di autenticazione è chiave API.
Dashboard:ResourceServiceClient:ClientCertificate:Source null Può essere impostato su File o KeyStore. Questo valore è obbligatorio se la modalità di autenticazione è il certificato client.
Dashboard:ResourceServiceClient:ClientCertificate:FilePath null Percorso del file del certificato. Questo valore è obbligatorio se l'origine è File.
Dashboard:ResourceServiceClient:ClientCertificate:Password null Password per il file di certificato. Questo valore è facoltativo.
Dashboard:ResourceServiceClient:ClientCertificate:Subject null Oggetto del certificato. Questo valore è obbligatorio se l'origine è KeyStore.
Dashboard:ResourceServiceClient:ClientCertificate:Store My Certificato StoreName.
Dashboard:ResourceServiceClient:ClientCertificate:Location CurrentUser Certificato StoreLocation.

Limiti di telemetria

I dati di telemetria vengono archiviati in memoria. Per evitare un utilizzo eccessivo della memoria, il dashboard presenta limiti per il conteggio e le dimensioni dei dati di telemetria archiviati. Quando viene raggiunto un limite di conteggio, vengono aggiunti nuovi dati di telemetria e i dati di telemetria meno recenti vengono rimossi. Quando viene raggiunto un limite di dimensioni, i dati vengono troncati al limite.

I limiti di telemetria hanno ambiti diversi a seconda del tipo di telemetria:

  • MaxLogCount e MaxTraceCount vengono condivisi tra le risorse. Ad esempio, un valore di MaxLogCount pari a 5.000 configura il dashboard per archiviare fino a 5.000 voci di log totali per tutte le risorse.
  • MaxMetricsCount è per risorsa. Ad esempio, un valore di MaxMetricsCount pari a 10.000 configura il dashboard per archiviare fino a 10.000 punti dati delle metriche per risorsa.
Opzione Valore predefinito Descrizione
Dashboard:TelemetryLimits:MaxLogCount 10,000 Numero massimo di voci di log. Il limite viene condiviso tra le risorse.
Dashboard:TelemetryLimits:MaxTraceCount 10,000 Numero massimo di tracce di log. Il limite viene condiviso tra le risorse.
Dashboard:TelemetryLimits:MaxMetricsCount 50,000 Numero massimo di punti dati delle metriche. Il limite è per risorsa.
Dashboard:TelemetryLimits:MaxAttributeCount 128 Numero massimo di attributi sui dati di telemetria.
Dashboard:TelemetryLimits:MaxAttributeLength null Lunghezza massima degli attributi.
Dashboard:TelemetryLimits:MaxSpanEventCount null Numero massimo di eventi sugli attributi span.

Altro

Opzione Valore predefinito Descrizione
Dashboard:ApplicationName Aspire Nome dell'applicazione da visualizzare nell'interfaccia utente. Questo vale solo quando non viene specificato alcun URL del servizio risorse. Quando esiste un servizio di risorse, il servizio specifica il nome dell'applicazione.

Passaggi successivi