Analytics & Dashboards
Transforme dados indexados da Solana em insights de produto e negócios com views materializadas, camadas de métricas e ferramentas de dashboard.
Receita
Cartão de receita de referência rápida - pronto para copiar e colar.
CREATE MATERIALIZED VIEW daily_volume AS
SELECT date_trunc('day', ts) AS day, SUM(amount_usd) AS volume
FROM swaps
GROUP BY 1;
REFRESH MATERIALIZED VIEW CONCURRENTLY daily_volume;Quando usar isso:
- Dashboards executivos para TVL, volume e usuários ativos.
- Monitoramento do operador de picos de uso de programas.
- Experimentos de crescimento medindo conversão após ações on-chain.
- Dashboards de fraude/risco sobre padrões de fluxo anormais.
Exemplo de Trabalho
-- Tabelas de métricas principais preenchidas pelo indexador
SELECT
program_id,
COUNT(DISTINCT user_wallet) AS dau,
SUM(fee_lamports) / 1e9 AS fees_sol
FROM events
WHERE slot >= (SELECT max(slot) - 216000 FROM events) -- Janela aproximada de ~24h
GROUP BY program_id;Conecte Metabase, Grafana ou Hex a uma réplica somente leitura:
# Fonte de dados postgres do Grafana -> painéis de dashboard em daily_volumeO que isso demonstra:
- Agregações executadas no warehouse/Postgres, não em aplicativos móveis via RPC.
- Colunas
slotoublock_timepermitem métricas de janela de tempo. - Views materializadas são atualizadas em agendamento para carregamentos rápidos de dashboard.
Mergulho Profundo
Como Funciona
- O indexador normaliza eventos da chain em tabelas de fatos (
swaps,mints,votes). - Tabelas de dimensão contêm decimais de mint, símbolos e metadados do programa.
- Ferramentas de BI consultam a réplica do DB com credenciais somente leitura.
- Definições de métricas documentadas para evitar "duas verdades" entre equipes.
Exemplos de Métricas
| Métrica | Definição | Armadilha |
|---|---|---|
| DAU | Signatários distintos por dia | Inclui bots |
| Volume | Soma do valor nominal de negociação em USD | Precisa de um oráculo de preço no momento |
| Retenção | Carteiras ativas na semana N | A chave de coorte é a carteira |
| Receita | Taxas do protocolo em SOL | Conversão de decimal |
Notas do bash
# Trabalho de atualização noturna (cron)
psql $DATABASE_URL -c "REFRESH MATERIALIZED VIEW CONCURRENTLY daily_volume;"Armadilhas
- Consultar a chain via RPC para gráficos - lento e com limite de taxa. Correção: indexar primeiro, dashboard depois.
- Volume em USD sem preço histórico - gráficos enganosos. Correção: armazenar o preço do oráculo no momento do bloco.
- Tráfego de bots infla o DAU - métricas de vaidade. Correção: filtros heurísticos ou coortes rotuladas.
- Expectativas em tempo real em ETL em lote - dashboards atrasados em minutos. Correção: SLAs no monitoramento do trabalho de atualização.
- PII em dashboards de carteira - políticas de privacidade. Correção: agregar apenas chaves públicas; governança sobre exportações.
Alternativas
| Alternativa | Usar Quando | Não Usar Quando |
|---|---|---|
| Comunidade Dune/Flipside | Estatísticas públicas do protocolo | Programa privado não lançado |
| ClickHouse em tempo real | Bilhões de linhas | MVP pequeno |
| SQL em Notebook | Pesquisa ad-hoc | Dashboards voltados para o cliente |
| UI de analytics do provedor | Lançamento rápido | Definições de métricas personalizadas |
FAQs
Postgres vs warehouse?
Comece com Postgres; migre para BigQuery/ClickHouse quando as consultas excederem a escala de minutos na réplica.
Quão atualizados os dados devem ser?
Dependente do produto - 1-5 min de atraso comum para atualização em lote; sub-minuto requer agregações de stream.
O @solana/kit pode potencializar dashboards?
Não - dashboards leem sua API de banco de dados, não JSON-RPC diretamente.
O que monitorar operacionalmente?
Slots de atraso do indexador, duração da atualização, crescimento da contagem de linhas, latência p95 da API.
Como definir TVL?
Documente a fonte do preço do token e quais contas contam como bloqueadas - ambíguo entre protocolos.
Métricas de NFT comprimidos?
Use tabelas indexadas por DAS ou exportações de provedores para contagens de mint de cNFT.
Controle de acesso?
Funções de DB somente leitura por dashboard; sem credenciais de escrita de produção em ferramentas de BI.
Testando SQL de métricas?
Testes de snapshot em um conjunto de dados fixo com agregações esperadas.
Picos de sazonalidade?
Pré-agregar antes dos eventos de mint; escalar a frequência de atualização temporariamente.
Link para build do indexer?
Veja Construindo um Indexador para o pipeline upstream.
Relacionados
- Construindo um Indexador - fonte de dados
- Noções Básicas de Indexação - por que não RPC
- Melhores Práticas de RPC - evite analytics via RPC
- Melhores Práticas de Indexação - higiene do pipeline
Versões da Stack: Esta página foi escrita para Agave 4.1.1, Solana CLI 3.0.10, Anchor 0.32.1, anchor-lang 0.32.1, Rust 1.91.1, @solana/kit 7.0.0, Surfpool 0.12.0, e LiteSVM 0.6.x.