Dionaea
Analytics de produto que só captura o que você declara.
Dionaea é um motor de analytics de produto open source, escrito em Rust. Todo evento precisa seguir um schema declarado por você: o que não está no schema é descartado na entrada, então conteúdo de usuário nunca é coletado por construção. Roda como um único binário sobre o ClickHouse.
[events.checkout_started.fields.items]
kind = "count"
max = 1000
required = true
[events.checkout_started.fields.coupon]
kind = "text"
max = 32
[events.checkout_started.fields.region]
kind = "enum"
values = ["us-east", "eu-west"]
[traits.plan]
kind = "enum"
values = ["free", "pro"] [events.checkout_started.fields.items]
kind = "count"
max = 1000
required = true
[events.checkout_started.fields.coupon]
kind = "text"
max = 32
[events.checkout_started.fields.region]
kind = "enum"
values = ["us-east", "eu-west"]
[traits.plan]
kind = "enum"
values = ["free", "pro"] Schema declarado
Cada site declara em um arquivo TOML os eventos e os traços de identidade que aceita. Eventos fora do schema são descartados e campos não declarados são removidos.
dionaea schema check schema.toml
dionaea schema diff old.toml new.toml
dionaea schema json-schema > dionaea-schema.json Schema como código
O CLI valida o arquivo apontando problemas com arquivo, linha e coluna, e compara duas versões indicando se uma mudança quebra compatibilidade. Também gera um JSON Schema para autocompletar no editor.
O que ele faz
- Telas, toques e ciclo de vida do aplicativo são eventos de primeira classe.
- Sessões, erros com stack, issues e saúde de releases, incluindo sessões sem falha.
- Medições e amostragem de performance.
- Apaga um usuário de todas as tabelas, sob demanda.
- Retenção configurável e uma API com papéis (viewer, admin e owner) e tokens de leitura por site.
- Um único binário, sobre o ClickHouse.
Onde estamos hoje: Está em desenvolvimento inicial: ainda não há versão utilizável e nenhum pacote publicado. O formato de eventos e a API são rascunhos e só serão declarados estáveis na primeira versão.
Perguntas frequentes
Ainda não. Está em desenvolvimento inicial e não há versão utilizável. Hoje é possível acompanhar o código no GitHub.
Código aberto desde o início
O código está disponível sob a Apache License 2.0.