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 |
DOTNET_DASHBOARD_OTLP_HTTP_ENDPOINT_URL |
http://localhost:18890 |
Endpoint OTLP/HTTP 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
eMaxTraceCount
vengono condivisi tra le risorse. Ad esempio, un valore diMaxLogCount
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 diMaxMetricsCount
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. |