Configuração do painel
O painel é configurado quando é iniciado. A configuração inclui endereços front-end e OTLP (OpenTelemetry Protocol), o ponto de extremidade do serviço de recursos, autenticação, limites de telemetria e muito mais.
Quando o painel é iniciado com o projeto de host do aplicativo .NET.NET Aspire, ele é configurado automaticamente para exibir os recursos e a telemetria do aplicativo. A configuração é fornecida ao iniciar o painel no modo autônomo .
Há muitas maneiras de fornecer configuração:
- Argumentos de linha de comando.
- Variáveis de ambiente. O delimitador de
:
deve ser substituído por sublinhado duplo (__
) em nomes de variáveis de ambiente. - Arquivo de configuração JSON opcional. A configuração
DOTNET_DASHBOARD_CONFIG_FILE_PATH
pode ser usada para especificar um arquivo de configuração JSON.
Considere o exemplo a seguir, que mostra como configurar o painel quando iniciado a partir de um contêiner 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
Como alternativa, esses mesmos valores podem ser configurados usando um arquivo de configuração JSON especificado usando DOTNET_DASHBOARD_CONFIG_FILE_PATH
:
{
"Dashboard": {
"TelemetryLimits": {
"MaxLogCount": 1000,
"MaxTraceCount": 1000,
"MaxMetricsCount": 1000
}
}
}
Importante
O painel exibe informações sobre recursos, incluindo sua configuração, logs do console e telemetria detalhada.
Os dados exibidos no painel podem ser confidenciais. Por exemplo, segredos em variáveis de ambiente e dados confidenciais de tempo de execução em telemetria. Deve-se ter cuidado para configurar o painel para proteger o acesso.
Para obter mais informações, consulte de segurança do painel .
Observação
A configuração descrita nesta página é para o painel autônomo. Para configurar um projeto de host de aplicativo .NET.NET Aspire, consulte de configuração do host de aplicativo .
Configuração comum
Opção | Valor padrão | Descrição |
---|---|---|
ASPNETCORE_URLS |
http://localhost:18888 |
Um ou mais pontos de extremidade HTTP através dos quais o front-end do painel é servido. O ponto de extremidade frontend é usado para exibir o painel em um navegador. Quando o painel é iniciado pelo host do aplicativo .NET.NET Aspire, esse endereço é protegido com HTTPS. Recomenda-se proteger o painel com HTTPS. |
DOTNET_DASHBOARD_OTLP_ENDPOINT_URL |
http://localhost:18889 |
O ponto de extremidade |
DOTNET_DASHBOARD_OTLP_HTTP_ENDPOINT_URL |
http://localhost:18890 |
O OTLP/HTTP ponto de extremidade. Este ponto de extremidade hospeda um serviço OTLP e recebe telemetria usando Protobuf sobre HTTP. Quando o painel é iniciado pelo host do aplicativo .NET.NET Aspire, o ponto de extremidade OTLP/HTTP não é configurado por padrão. Para configurar um ponto de extremidade OTLP/HTTP com o host do aplicativo, defina um valor DOTNET_DASHBOARD_OTLP_HTTP_ENDPOINT_URL env var em launchSettings.json. Recomenda-se proteger o painel com HTTPS. |
DOTNET_DASHBOARD_UNSECURED_ALLOW_ANONYMOUS |
false |
Configura o painel para não usar autenticação e aceita acesso anônimo. Essa configuração é um atalho para configurar Dashboard:Frontend:AuthMode e Dashboard:Otlp:AuthMode para Unsecured . |
DOTNET_DASHBOARD_CONFIG_FILE_PATH |
null |
O caminho para um arquivo de configuração JSON. Se o painel estiver sendo executado em um contêiner de Docker, esse é o caminho para o arquivo de configuração em um volume montado. Este valor é opcional. |
DOTNET_RESOURCE_SERVICE_ENDPOINT_URL |
null |
O ponto de extremidade gRPC ao qual o painel se conecta para seus dados. Se esse valor não for especificado, o painel mostrará dados de telemetria, mas nenhuma lista de recursos ou logs de console. Essa configuração é um atalho para Dashboard:ResourceServiceClient:Url . |
Autenticação de front-end
A autenticação de ponto de extremidade de front-end do painel é configurada com Dashboard:Frontend:AuthMode
. O frontend pode ser protegido com OpenID Connect (OIDC) ou autenticação de token do navegador.
A autenticação de token do navegador funciona pelo frontend pedindo um token. O token pode ser inserido na interface do usuário ou fornecido como um valor de cadeia de caracteres de consulta para a página de logon. Por exemplo, https://localhost:1234/login?t=TheToken
. Quando o token é autenticado com êxito, uma cookie de autenticação é mantida no navegador e o navegador é redirecionado para o aplicativo.
Opção | Valor padrão | Descrição |
---|---|---|
Dashboard:Frontend:AuthMode |
BrowserToken |
Pode ser definido como BrowserToken , OpenIdConnect ou Unsecured .
Unsecured só deve ser utilizado durante o desenvolvimento local. Não é recomendado ao hospedar o painel publicamente ou em outras configurações. |
Dashboard:Frontend:BrowserToken |
null |
Especifica o token do navegador. Se o token do navegador não for especificado, o painel gerará um. As ferramentas que desejam automatizar o login com a autenticação de token do navegador podem especificar um token e abrir um navegador com o token na cadeia de caracteres de consulta. Um novo token deve ser gerado cada vez que o painel é iniciado. |
Dashboard:Frontend:OpenIdConnect:NameClaimType |
name |
Especifica um ou mais tipos de declaração que devem ser usados para exibir o nome completo do usuário autenticado. Pode ser um único tipo de declaração ou uma lista delimitada por vírgulas de tipos de declaração. |
Dashboard:Frontend:OpenIdConnect:UsernameClaimType |
preferred_username |
Especifica um ou mais tipos de declaração que devem ser usados para exibir o nome de usuário autenticado. Pode ser um único tipo de declaração ou uma lista delimitada por vírgulas de tipos de declaração. |
Dashboard:Frontend:OpenIdConnect:RequiredClaimType |
null |
Especifica a declaração que deve estar presente para usuários autorizados. A autorização falha sem esta reivindicação. Este valor é opcional. |
Dashboard:Frontend:OpenIdConnect:RequiredClaimValue |
null |
Especifica o valor da declaração necessária. Usado apenas se Dashboard:Frontend:OpenIdConnect:RequireClaimType também for especificado. Este valor é opcional. |
Authentication:Schemes:OpenIdConnect:Authority |
null |
URL para o provedor de identidade (IdP). |
Authentication:Schemes:OpenIdConnect:ClientId |
null |
Identidade da entidade confiadora (RP). |
Authentication:Schemes:OpenIdConnect:ClientSecret |
null |
Um segredo que só o verdadeiro RP saberia. |
Outras propriedades de OpenIdConnectOptions | null |
Os valores dentro da seção de configuração Authentication:Schemes:OpenIdConnect:* estão vinculados a OpenIdConnectOptions , como Scope . |
Observação
Configuração adicional pode ser necessária ao usar OpenIdConnect
como modo de autenticação atrás de um proxy reverso que encerra SSL. Verifique se precisa de ASPNETCORE_FORWARDEDHEADERS_ENABLED
para ser definido como true
.
Para obter mais informações, consulte Configurar ASP.NET Core para trabalhar com servidores proxy e balanceadores de carga.
Autenticação OTLP
A autenticação de ponto de extremidade OTLP é configurada com Dashboard:Otlp:AuthMode
. O ponto de extremidade OTLP pode ser protegido com uma chave de API ou client certificado autenticação.
A autenticação de chave de API funciona exigindo que cada solicitação OTLP tenha um valor de cabeçalho x-otlp-api-key
válido. Ele deve corresponder à chave primária ou secundária.
Opção | Valor padrão | Descrição |
---|---|---|
Dashboard:Otlp:AuthMode |
Unsecured |
Pode ser definido como ApiKey , Certificate ou Unsecured .
Unsecured só deve ser utilizado durante o desenvolvimento local. Não é recomendado ao hospedar o painel publicamente ou em outras configurações. |
Dashboard:Otlp:PrimaryApiKey |
null |
Especifica a chave de API primária. A chave da API pode ser qualquer texto, mas recomenda-se um valor com pelo menos 128 bits de entropia. Esse valor é necessário se o modo de autenticação for a chave da API. |
Dashboard:Otlp:SecondaryApiKey |
null |
Especifica a chave de API secundária. A chave da API pode ser qualquer texto, mas recomenda-se um valor com pelo menos 128 bits de entropia. Este valor é opcional. Se uma segunda chave de API for especificada, o valor do cabeçalho x-otlp-api-key de entrada poderá corresponder à chave primária ou secundária. |
OTLP CORS
O compartilhamento de recursos entre origens (CORS) pode ser configurado para permitir que os aplicativos do navegador enviem telemetria para o painel.
Por padrão, os aplicativos do navegador são impedidos de fazer chamadas de API entre domínios. Isso afeta o envio de telemetria para o painel porque o painel e o aplicativo do navegador estão sempre em domínios diferentes. Para configurar o CORS, use a seção Dashboard:Otlp:Cors
e especifique as origens e cabeçalhos permitidos:
{
"Dashboard": {
"Otlp": {
"Cors": {
"AllowedOrigins": "http://localhost:5000,https://localhost:5001"
}
}
}
}
Considere as seguintes opções de configuração:
Opção | Valor padrão | Descrição |
---|---|---|
Dashboard:Otlp:Cors:AllowedOrigins |
null |
Especifica as origens permitidas para CORS. É uma cadeia de caracteres delimitada por vírgulas e pode incluir o curinga * para permitir qualquer domínio. Esta opção é opcional e pode ser definida usando a variável de ambiente DASHBOARD__OTLP__CORS__ALLOWEDORIGINS . |
Dashboard:Otlp:Cors:AllowedHeaders |
null |
Uma cadeia de caracteres delimitada por vírgulas que representa os cabeçalhos permitidos para CORS. Essa configuração é opcional e pode ser definida usando a variável de ambiente DASHBOARD__OTLP__CORS__ALLOWEDHEADERS . |
Observação
O painel suporta apenas o método POST
para enviar telemetria e não permite a configuração dos métodos permitidos (Access-Control-Allow-Methods
) para CORS.
Recursos
O painel se conecta a um serviço de recursos para carregar e exibir informações de recursos. O client é configurado no painel para saber como se conectar ao serviço.
O serviço de recursos client autenticação é configurado com Dashboard:ResourceServiceClient:AuthMode
. O client pode ser configurado para suportar a chave de API ou a autenticação de certificado client.
Opção | Valor padrão | Descrição |
---|---|---|
Dashboard:ResourceServiceClient:Url |
null |
O ponto de extremidade gRPC ao qual o painel se conecta para seus dados. Se esse valor não for especificado, o painel mostrará dados de telemetria, mas nenhuma lista de recursos ou logs de console. |
Dashboard:ResourceServiceClient:AuthMode |
null |
Pode ser definido como ApiKey , Certificate ou Unsecured .
Unsecured só deve ser utilizado durante o desenvolvimento local. Não é recomendado ao hospedar o painel publicamente ou em outras configurações. Esse valor será necessário se uma URL de serviço de recurso for especificada. |
Dashboard:ResourceServiceClient:ApiKey |
null |
A API a ser enviada ao serviço de recursos no cabeçalho x-resource-service-api-key . Esse valor é necessário se o modo de autenticação for a chave da API. |
Dashboard:ResourceServiceClient:ClientCertificate:Source |
null |
Pode ser definido como File ou KeyStore . Esse valor é necessário se o modo de autenticação for client certificado. |
Dashboard:ResourceServiceClient:ClientCertificate:FilePath |
null |
O caminho do arquivo de certificado. Esse valor é necessário se a origem for File . |
Dashboard:ResourceServiceClient:ClientCertificate:Password |
null |
A senha para o arquivo de certificado. Este valor é opcional. |
Dashboard:ResourceServiceClient:ClientCertificate:Subject |
null |
O assunto do certificado. Esse valor é necessário se a origem for KeyStore . |
Dashboard:ResourceServiceClient:ClientCertificate:Store |
My |
O certificado StoreName. |
Dashboard:ResourceServiceClient:ClientCertificate:Location |
CurrentUser |
O certificado StoreLocation. |
Limites de telemetria
A telemetria é armazenada na memória. Para evitar o uso excessivo de memória, o painel tem limites na contagem e tamanho da telemetria armazenada. Quando um limite de contagem é atingido, uma nova telemetria é adicionada e a telemetria mais antiga é removida. Quando um limite de tamanho é atingido, os dados são truncados até o limite.
Os limites de telemetria têm escopos diferentes dependendo do tipo de telemetria:
-
MaxLogCount
eMaxTraceCount
são partilhados entre recursos. Por exemplo, um valor deMaxLogCount
de 5.000 configura o painel para armazenar até 5.000 entradas de log totais para todos os recursos. -
MaxMetricsCount
é por recurso. Por exemplo, um valor deMaxMetricsCount
de 10.000 configura o painel para armazenar até 10.000 pontos de dados de métricas por recurso.
Opção | Valor padrão | Descrição |
---|---|---|
Dashboard:TelemetryLimits:MaxLogCount |
10,000 | O número máximo de entradas de log. O limite é compartilhado entre recursos. |
Dashboard:TelemetryLimits:MaxTraceCount |
10,000 | O número máximo de rastreamentos de log. O limite é compartilhado entre recursos. |
Dashboard:TelemetryLimits:MaxMetricsCount |
50,000 | O número máximo de pontos de dados métricos. O limite é por recurso. |
Dashboard:TelemetryLimits:MaxAttributeCount |
128 | O número máximo de atributos na telemetria. |
Dashboard:TelemetryLimits:MaxAttributeLength |
null |
O comprimento máximo dos atributos. |
Dashboard:TelemetryLimits:MaxSpanEventCount |
null |
O número máximo de eventos em atributos span. |
Outros
Opção | Valor padrão | Descrição |
---|---|---|
Dashboard:ApplicationName |
Aspire |
O nome do aplicativo a ser exibido na interface do usuário. Isso se aplica somente quando nenhuma URL de serviço de recurso é especificada. Quando existe um serviço de recurso, o serviço especifica o nome do aplicativo. |