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.

Acompanhar no GitHub
schema.toml TOML
[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"]
Um schema de exemplo. O que não está declarado aqui não é coletado.
schema.toml TOML
[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"]
Tipos de campo como contagem, texto limitado, enumeração e duração.

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.

terminal Shell
dionaea schema check schema.toml
dionaea schema diff old.toml new.toml
dionaea schema json-schema > dionaea-schema.json
Comandos que já funcionam sobre arquivos locais.

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.

Explorar o código