Aller au contenu principal

Architecture

avuru obs, c'est quelques composants, chacun avec un seul rôle. Cliquez sur un nœud pour ouvrir sa documentation.

Flux de données

  1. Chemin de la télémétrie — le sensor (eBPF + OTLP) envoie les signaux au gateway, qui les écrit dans ClickHouse.
  2. Chemin des requêtes — l'ui et les clients externes appellent l'API REST du hub, qui interroge ClickHouse en SQL.
  3. Chemin de la configuration — les agents et collecteurs s'enregistrent auprès du hub et reçoivent leur configuration à distance via OpAMP.
sensor DaemonSet (eBPF : flux · traces · RED · logs · profils)
│ OTLP

gateway (collecteur OTel minimal) ──► ClickHouse (tous les signaux)
▲ SQL
hub (Go : API REST/WS + OpAMP) ◄────────┘ ◄── UI (SPA statique, son pod)

Composants

ComposantChemin du repoStackResponsabilité
sensorsensor/DaemonSetagent eBPF + OBI + collecteur + profileur
gatewaygateway/OCB / OTeldistribution minimale du collecteur
hubhub/GoAPI REST/WS + plan de configuration OpAMP
uiui/Next.jsSPA statique, servie depuis son propre pod
stockageClickHouseun seul moteur pour tous les signaux

Pourquoi un seul moteur

Stocker traces, métriques, logs et profils dans le même cluster ClickHouse, c'est ce qui rend la corrélation inter-signaux peu coûteuse : trace_id et attributs de ressource partagés signifient qu'un pivot trace → logs → métriques → profil n'est qu'une requête de plus, pas un autre système.

Décisions de conception

Les décisions importantes sont consignées sous forme d' ADR (et d'Avuru Enhancement Proposals dans le repo moteur).