ClickStack – une alternative open source à Datadog construite avec ClickHouse et HyperDX
(clickhouse.com)- ClickStack est une plateforme d’observabilité open source basée sur ClickHouse et HyperDX, qui unifie en un seul endroit les logs, métriques, traces et session replay
- La recherche et la visualisation des logs et des traces sont prises en charge facilement et rapidement sur un cluster ClickHouse, avec prise en charge de n’importe quel schéma sans travail supplémentaire
- Elle propose une recherche intuitive, des alertes basées sur les événements et des tableaux de bord pour permettre aux ingénieurs d’identifier et de traiter rapidement les problèmes
- Prise en charge native du standard OpenTelemetry, avec intégration SDK pour de nombreux langages et plateformes
- Par rapport aux solutions commerciales existantes, elle est moins coûteuse et plus simple à configurer, et permet d’effectuer tout le workflow sur une seule plateforme sans avoir à naviguer entre plusieurs outils d’observabilité
Fonctionnalités principales
- Possibilité d’effectuer en un seul endroit l’analyse de corrélation et la recherche sur les logs, métriques, session replay et traces
- Réutilise tel quel le schéma existant de ClickHouse, avec une architecture indépendante du schéma
- Adaptée aux grands volumes de données grâce à une recherche rapide et à une visualisation optimisée
- Prise en charge à la fois de la recherche plein texte et par attributs, avec utilisation de SQL en option
- Analyse des évolutions d’événements, configuration simple des alertes et création de tableaux de bord
- Prise en charge des requêtes en chaînes JSON natives
- Possibilité de consulter les événements les plus récents grâce aux fonctions de tail en temps réel des logs et des traces
- Intégration OpenTelemetry et prise en charge d’un environnement APM (monitoring des performances)
Déploiement et prise en main
- Le package ClickStack permet un déploiement unifié incluant ClickHouse, HyperDX, OpenTelemetry Collector et MongoDB
- L’interface HyperDX est accessible depuis le navigateur
- Il peut aussi s’intégrer à un environnement ClickHouse Cloud et se déployer facilement dans différents contextes
Instrumentation et intégration des applications
Pour collecter avec HyperDX les données de logs, métriques, traces et session replay, l’application doit envoyer ses données de télémétrie à HyperDX
- SDK et options d’intégration disponibles : des SDK pour navigateur, Node.js, Python et d’autres langages/environnements permettent une intégration facile
- Prise en charge du standard OpenTelemetry : compatibilité avec Kubernetes, JavaScript, Python, Java, Go, Ruby, PHP, .NET, Elixir, Rust et divers runtimes
- Le collecteur OpenTelemetry est accessible par défaut à l’adresse
http://localhost:4318
Comment contribuer
- Les contributions de la communauté sont bienvenues sous diverses formes : soumission de PR, ouverture d’issues, amélioration de la documentation, vote sur les issues ouvertes, proposition de nouveaux cas d’usage, etc.
Motivation et philosophie du projet
L’objectif de l’équipe HyperDX est de permettre à tous les ingénieurs de résoudre rapidement les problèmes en exploitant la télémétrie des environnements de production
Principaux problèmes existants :
- Les outils d’observabilité en production sont coûteux, avec des dépenses qui augmentent à mesure que les volumes de données s’étendent
- La configuration et l’utilisation sont complexes, ce qui nécessite des SRE et des spécialistes
- Les différentes fonctions comme les logs, le session replay ou l’APM sont séparées, ce qui complique le rapprochement des informations
Pour surmonter ces limites, ClickStack et HyperDX sont proposés en open source
- HyperDX a été acquis par ClickHouse
1 commentaires
Réactions sur Hacker News
Interrogation sur le choix de créer un frontend sur mesure au lieu d’utiliser Grafana, qui existe déjà
Partage du fait que les prix de DataDog sont élevés, ce qui rend HyperDX vraiment attractif ; LogLayer (https://loglayer.dev), qu’il exploite, est un logger structuré pour TypeScript capable d’envoyer des logs vers plusieurs types de loggers et services cloud (dont DataDog). Il indique développer une intégration pour HyperDX, avec une sortie prévue prochainement, souhaite ajouter sur son site un lien vers la documentation d’intégration HyperDX dans la section « integrations », et partage la PR associée (https://github.com/hyperdxio/hyperdx-js/pull/184)
Utilisation réelle de HyperDX en production, avec une forte satisfaction concernant l’intégration avec ClickHouse et l’efficacité en termes de coûts ; question sur la nécessité de préparer une migration de HyperDX vers ClickStack
Partage du sentiment que les traces et logs d’OTel sont corrects, mais que la fonctionnalité de métriques OTel semble conçue de manière trop complexe ; questions sur la capacité de ClickStack à ingérer des données statsd (notamment avec les extensions de tags de Datadog), sur la corrélation et le lien de tags de service entre traces/logs/métriques, sur l’existence de liens de données associées dans l’UI, sur la raison pour laquelle le SDK Elixir utilise la bibliothèque hyperdx, et sur la présence de la fonctionnalité Notebooks dans la roadmap
Avis selon lequel HyperDX ressemble à Signoz, notamment parce qu’il est lui aussi basé sur ClickHouse et propose des versions open source et cloud, avec une curiosité sur les différences ; observation également que l’UI semble similaire
Recherche d’une nouvelle solution de logging pour remplacer Kibana, avec un intérêt pour l’UI de HyperDX en raison d’une bonne expérience avec ClickHouse ; partage d’un pipeline de logs actuel basé sur Vector sur Kubernetes, Vector prenant en charge un sink OTel (bêta), et réflexion sur la meilleure manière d’envoyer les logs lorsque les données sont en JSON ; insistance sur un environnement à très gros volume, de l’ordre du téraoctet, et à hautes performances
Question sur les différences entre Signoz et HyperDX (ou ClickHouse), avec observation que les deux viennent de YC et utilisent ClickHouse
Après inscription, partage d’une expérience UX jugée déroutante : le widget « Was this search result helpful? » s’affichait dans l’UI avant même toute recherche ; découverte d’un bug où cliquer sur Hide fait apparaître le bouton de feedback, puis cliquer de nouveau sur ce feedback rétablit l’état initial ; critique générale sur une police globalement monospace et trop petite, ainsi que sur l’association de blanc gras et de vert clair avec le fond sombre, jugée peu harmonieuse ; constat que même le passage à une police système n’améliore pas beaucoup la situation, avec recommandation d’un style d’UI plus traditionnel ; retour indiquant que ce design difficile à lire donne hésitation à utiliser le produit
Question sur le fait de savoir si ClickHouse est l’unique composant stateful de cette stack ; intérêt pour la compatibilité avec Rotel, un collector OTEL en Rust (https://github.com/streamfold/rotel) ; mention que Datadog dispose de son propre remplaçant du collector OTEL, développé en interne et plus performant