Partilhar via


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 OTLP/gRPC. Este ponto de extremidade hospeda um serviço OTLP e recebe telemetria usando gRPC. 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_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 e MaxTraceCount são partilhados entre recursos. Por exemplo, um valor de MaxLogCount 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 de MaxMetricsCount 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.

Próximos passos