Compartilhar via


Configuração do painel

O painel é configurado quando ele é iniciado. A configuração inclui endereços OTLP (front-end e protocolo de OpenTelemetry), ponto de extremidade do serviço de recurso, 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 em modo autônomo.

Há várias maneiras de fornecer configuração:

  • Argumentos de linha de comando.
  • Variáveis de ambiente. O delimitador : deve ser substituído por sublinhado duplo (__) em nomes de variáveis de ambiente.
  • Arquivo de configuração de JSON opcional. A configuração de 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 de 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 de console e telemetria detalhada.

Os dados exibidos no painel podem ser confidenciais. Por exemplo, segredos em variáveis de ambiente e dados confidenciais de runtime na telemetria. Deve-se tomar cuidado para configurar o painel para proteger o acesso.

Para obter mais informações, consulte de segurança do painel.

Nota

A configuração descrita nesta página é para o painel autônomo. Para configurar um projeto de host de aplicativo , consultede configuração do host do aplicativo .

Configuração comum

Opção Valor padrão Descrição
ASPNETCORE_URLS http://localhost:18888 Um ou mais pontos de extremidade HTTP por meio dos quais o front-end do painel é atendido. O ponto de extremidade de front-end é 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. É recomendável proteger o painel com HTTPS.
DOTNET_DASHBOARD_OTLP_ENDPOINT_URL http://localhost:18889 O ponto de extremidade OTLP/gRPC . Esse 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. É recomendável proteger o painel com HTTPS.
DOTNET_DASHBOARD_OTLP_HTTP_ENDPOINT_URL http://localhost:18890 O ponto de extremidade OTLP/HTTP . Esse ponto de extremidade hospeda um serviço OTLP e recebe telemetria usando o Protobuf via HTTP. Quando o painel é iniciado pelo .NET.NET Aspire aplicativo hospeda 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 env var DOTNET_DASHBOARD_OTLP_HTTP_ENDPOINT_URL em launchSettings.json. É recomendável proteger o painel com HTTPS.
DOTNET_DASHBOARD_UNSECURED_ALLOW_ANONYMOUS false Configura o painel para não usar a 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 será o caminho para o arquivo de configuração em um volume montado. Esse 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 do ponto de extremidade de front-end do painel é configurada com Dashboard:Frontend:AuthMode. O front-end pode ser protegido com o OpenID Connect (OIDC) ou a autenticação de token do navegador.

A autenticação de token do navegador funciona pelo front-end solicitando 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 autenticação cookie é 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 usado durante o desenvolvimento local. Não é recomendável 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 logon 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 sempre que o painel for 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 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:RequiredClaimType null Especifica a declaração que deve estar presente para usuários autorizados. A autorização falha sem essa declaração. Esse valor é opcional.
Dashboard:Frontend:OpenIdConnect:RequiredClaimValue null Especifica o valor da declaração necessária. Usado somente se Dashboard:Frontend:OpenIdConnect:RequireClaimType também for especificado. Esse valor é opcional.
Authentication:Schemes:OpenIdConnect:Authority null URL para o IdP (provedor de identidade).
Authentication:Schemes:OpenIdConnect:ClientId null Identidade da terceira parte confiável (RP).
Authentication:Schemes:OpenIdConnect:ClientSecret null Um segredo que só o RP real saberia.
Outras propriedades do OpenIdConnectOptions null Os valores dentro da seção de configuração Authentication:Schemes:OpenIdConnect:* são associados a OpenIdConnectOptions, como Scope.

Nota

Uma configuração adicional pode ser necessária ao usar OpenIdConnect como modo de autenticação por trás de um proxy reverso que encerra o SSL. Verifique se você precisa 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 do ponto de extremidade OTLP é configurada com Dashboard:Otlp:AuthMode. O ponto de extremidade OTLP pode ser protegido com uma chave de API ou client autenticação certificado.

A autenticação de chave de API funciona exigindo que cada solicitação OTLP tenha um valor de cabeçalho de 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 usado durante o desenvolvimento local. Não é recomendável hospedar o painel publicamente ou em outras configurações.
Dashboard:Otlp:PrimaryApiKey null Especifica a chave de API primária. A chave de API pode ser qualquer texto, mas é recomendável um valor com pelo menos 128 bits de entropia. Esse valor será necessário se o modo de autenticação for a chave de API.
Dashboard:Otlp:SecondaryApiKey null Especifica a chave de API secundária. A chave de API pode ser qualquer texto, mas é recomendável um valor com pelo menos 128 bits de entropia. Esse valor é opcional. Se uma segunda chave de API for especificada, o valor de cabeçalho x-otlp-api-key de entrada poderá corresponder à chave primária ou secundária.

OTLP CORS

O CORS (compartilhamento de recursos entre origens) pode ser configurado para permitir que aplicativos de navegador enviem telemetria para o painel.

Por padrão, os aplicativos do navegador são impedidos de fazer chamadas à 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. Essa 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.

Nota

O painel dá suporte apenas ao 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 recurso para carregar e exibir informações de recursos. O client está configurado no painel para saber como se conectar ao serviço.

O serviço de recurso client autenticação é configurado com Dashboard:ResourceServiceClient:AuthMode. O client pode ser configurado para dar suporte à chave de API ou à 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 usado durante o desenvolvimento local. Não é recomendável hospedar o painel publicamente ou em outras configurações. Esse valor será necessário se uma URL do serviço de recurso for especificada.
Dashboard:ResourceServiceClient:ApiKey null A API a ser enviada para o serviço de recursos no cabeçalho x-resource-service-api-key. Esse valor será necessário se o modo de autenticação for a chave de API.
Dashboard:ResourceServiceClient:ClientCertificate:Source null Pode ser definido como File ou KeyStore. Esse valor será necessário se o modo de autenticação for client certificado.
Dashboard:ResourceServiceClient:ClientCertificate:FilePath null O caminho do arquivo de certificado. Esse valor será necessário se a origem for File.
Dashboard:ResourceServiceClient:ClientCertificate:Password null A senha do arquivo de certificado. Esse valor é opcional.
Dashboard:ResourceServiceClient:ClientCertificate:Subject null O assunto do certificado. Esse valor será 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 no tamanho da telemetria armazenada. Quando um limite de contagem é atingido, a 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 compartilhados 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 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 de métrica. 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 de intervalo.

Outro

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 do serviço de recurso é especificada. Quando um serviço de recurso existe, o serviço especifica o nome do aplicativo.

Próximas etapas

considerações de segurança para executar o painel de .NET.NET Aspire