Start Debugging

O dashboard do Aspire 13.6 guarda suas últimas dez execuções no SQLite

O Aspire 13.6.0 torna o dashboard persistente: snapshots de recursos e telemetria vão para um banco de dados SQLite, o AppHost mantém até dez execuções por aplicação e as execuções concluídas ficam disponíveis somente para leitura. Veja como funcionam os modos Run, Resume e None e como configurar o dashboard standalone.

O Aspire 13.6.0 foi lançado em 29 de setembro de 2026, e a mudança que você vai notar primeiro é que o dashboard não esquece mais tudo quando você para o AppHost. Até a 13.5, o dashboard mantinha a telemetria em memória: se você apertasse Ctrl+C depois de reproduzir um bug, o trace que você queria já era. Na 13.6 o dashboard armazena snapshots de recursos e telemetria em um banco de dados SQLite versionado, e um seletor no cabeçalho permite alternar entre a execução atual e as anteriores.

O que o AppHost faz por padrão

Quando o dashboard é iniciado por um AppHost, ele usa a persistência Run sem nenhuma configuração. Cada aspire run vira uma entrada separada, e até dez execuções por aplicação são mantidas. As execuções concluídas são somente leitura, então você pode abrir a execução de antes da sua correção e comparar recursos, logs estruturados, traces e métricas com os da execução atual, lado a lado.

Nada muda no código do seu AppHost. Este é o mesmo arquivo que você tinha ontem:

var builder = DistributedApplication.CreateBuilder(args);

var cache = builder.AddRedis("cache");

builder.AddProject<Projects.Api>("api")
       .WithReference(cache);

builder.Build().Run();

Por padrão, os dados ficam em <ASPIRE_HOME>/dashboard, particionados pelo nome da aplicação.

Buffers maiores, mas ainda limitados

A mesma versão aumenta os limites padrão de mensagens de log do console, logs estruturados e traces para 100.000 cada. Continuam sendo buffers circulares, não um arquivo morto: quando um limite é excedido, as entradas mais antigas são descartadas. Se você precisar de mais ou menos, as configurações existentes continuam valendo, por exemplo Dashboard:TelemetryLimits:MaxLogCount, Dashboard:TelemetryLimits:MaxTraceCount e Dashboard:Frontend:MaxConsoleLogCount, ou as variáveis de ambiente no estilo DASHBOARD__TELEMETRYLIMITS__MAXLOGCOUNT.

Dashboard standalone: None, Run, Resume

O dashboard standalone mantém o comportamento antigo por padrão: persistência None, com um banco de dados temporário que é apagado quando o dashboard para. Para manter os dados entre reinicializações, use Resume com um nome de aplicação estável:

aspire dashboard run --application-name my-app --persistence Resume

Em um contêiner, monte o diretório de dados em um volume e passe os mesmos três valores sempre:

docker run --rm -it -p 18888:18888 -p 4317:18889 \
  -v aspire-dashboard-data:/data \
  -e ASPIRE_DASHBOARD_DATA_DIRECTORY=/data \
  -e ASPIRE_DASHBOARD_APPLICATION_NAME=my-app \
  -e ASPIRE_DASHBOARD_PERSISTENCE_MODE=Resume \
  mcr.microsoft.com/dotnet/aspire-dashboard:latest

Se o nome da aplicação, o diretório ou o modo mudarem entre reinicializações, você recebe um banco de dados novo em vez do seu histórico. O nome da aplicação também define o escopo dos nomes dos cookies de autenticação e antiforgery do dashboard, então escolha um por app e mantenha-o.

Trate o banco de dados como um segredo

As notas de versão são diretas sobre isso: o arquivo SQLite pode conter valores sensíveis de recursos e de telemetria, e não tem camada própria de criptografia ou autorização. No Unix, as permissões do arquivo são restritas ao proprietário; no Windows, as ACLs não são definidas para você. As variáveis de ambiente que você injeta nos recursos, as connection strings nos snapshots de recursos e tudo o que seu app registra em log agora ficam no disco depois que a execução termina. Não monte esse volume em nenhum lugar compartilhado e não faça commit de ASPIRE_HOME em uma imagem de dev container.

O próprio dashboard também mudou por dentro: agora ele é distribuído com Native AOT e migrou para o Fluent UI v5, com uma barra de navegação recolhível. Os terminais pertencentes ao AppHost agora abrem em um dock do dashboard, ampliando o trabalho com WithTerminal da 13.5, e a 13.6 acrescenta clientes de banco de dados opcionais com WithRepl() por cima. A lista completa, incluindo as breaking changes, está em What’s new in Aspire 13.6.

Comments

Sign in with GitHub to comment. Reactions and replies thread back to the comments repo.

< Voltar