- ClickHouse
- HyperDX
- collector OpenTelemetry (OTel) (exposant OTLP sur les ports
4317et4318) - MongoDB (pour la persistance de l’état de l’application)
Convient pour
- Démos
- Tests locaux de la stack complète
Étapes de déploiement
Déployer avec Docker
La commande suivante exécute un collector OpenTelemetry (sur les ports 4317 et 4318) ainsi que l’interface HyperDX (sur le port 8080).Mise à jour du nom de l’imageLes images ClickStack sont désormais publiées sous
clickhouse/clickstack-* (auparavant docker.hyperdx.io/hyperdx/*).Accéder à l’interface HyperDX
Accédez à http://localhost:8080 pour ouvrir l’interface HyperDX.Créez un utilisateur en indiquant un nom d’utilisateur et un mot de passe conformes aux exigences.Lorsque vous cliquez surCreate, des sources de données sont créées pour l’instance ClickHouse intégrée.Pour voir un exemple utilisant une autre instance ClickHouse, consultez « Using ClickHouse Cloud ».Ingérer des données
Pour ingérer des données, consultez « Ingesting data ».Persistance des données et des paramètres
/data/db, /var/lib/clickhouse et /var/log/clickhouse-server. Par exemple :
Déploiement en production
- Stockage non persistant : Toutes les données sont stockées à l’aide du système de fichiers overlay natif de Docker. Cette configuration n’offre pas de performances suffisantes à grande échelle, et les données seront perdues si le conteneur est supprimé ou redémarré, sauf si les utilisateurs montent les chemins de fichiers requis.
- Absence d’isolation des composants : Tous les composants s’exécutent dans un seul conteneur Docker. Cela empêche une mise à l’échelle et une supervision indépendantes, et les limites
cgroups’appliquent globalement à l’ensemble des processus. Par conséquent, les composants peuvent se retrouver en concurrence pour le CPU et la mémoire.
Personnaliser les ports
docker run pour rediriger les ports appropriés et définir quelques variables d’environnement.
Pour personnaliser les ports OpenTelemetry, il suffit de modifier les options de redirection de port. Par exemple, remplacez -p 4318:4318 par -p 4999:4318 pour définir le port HTTP OpenTelemetry sur 4999.
Utilisation de ClickHouse Cloud
CLICKHOUSE_ENDPOINT, CLICKHOUSE_USER et CLICKHOUSE_PASSWORD.
Par exemple :
CLICKHOUSE_ENDPOINT doit être l’endpoint HTTPS de ClickHouse Cloud, avec le port 8443, par exemple https://mxl4k3ul6a.us-east-2.aws.clickhouse.com:8443
Après vous être connecté à l’interface HyperDX, accédez à Team Settings et créez une connexion à votre service ClickHouse Cloud, puis créez les sources requises.
Configuration du collecteur OpenTelemetry
Choix du schéma : Map vs JSON
Map(LowCardinality(String), String). Il s’agit du schéma recommandé pour les charges de travail d’observabilité. Associé à la sérialisation de map compartimentée et à des index textuels sur les clés et les valeurs de la map, il permet des recherches sélectives sans la surcharge d’ingestion par clé propre aux sous-colonnes JSON dynamiques.
Un schéma de type JSON est disponible en bêta pour évaluation sur des charges de travail avec un ensemble réduit et stable de clés d’attributs. Il n’est pas recommandé par défaut. Consultez Map vs JSON type pour la comparaison complète et les variables d’environnement requises pour activer la prise en charge de JSON.