ClickStack – die Open-Source-Alternative zu Datadog, gebaut mit ClickHouse und HyperDX
(clickhouse.com)- ClickStack ist eine Open-Source-Observability-Plattform auf Basis von ClickHouse und HyperDX, die Logs, Metriken, Traces und Session-Replays an einem Ort integriert verarbeitet
- Suche und Visualisierung von Logs und Traces werden auf einem ClickHouse-Cluster einfach und schnell unterstützt; jedes Schema kann ohne zusätzliche Arbeit angewendet werden
- Sie bietet intuitive Suche, ereignisbasierte Alarme und Dashboard-Funktionen, damit Engineers Probleme schnell erkennen und darauf reagieren können
- Der OpenTelemetry-Standard wird nativ unterstützt, zusammen mit SDK-Integrationen für verschiedene Sprachen und Plattformen
- Im Vergleich zu bestehenden kommerziellen Lösungen ist sie günstiger und einfacher zu konfigurieren; statt umständlich zwischen mehreren Observability-Tools zu wechseln, lässt sich der gesamte Ablauf auf einer Plattform abwickeln
Hauptfunktionen
- Korrelationsanalyse und Suche für Logs, Metriken, Session-Replays und Traces lassen sich an einem Ort durchführen
- Nutzt bestehende ClickHouse-Schemata unverändert und bietet eine schemaunabhängige Struktur
- Dank hoher Suchgeschwindigkeit und optimierter Visualisierung auch für große Datenmengen geeignet
- Unterstützt sowohl Volltext- als auch Attributsuche; SQL ist optional
- Analyse von Ereignistrends sowie einfache Alarmkonfiguration und Dashboard-Erstellung sind möglich
- Unterstützung für native JSON-String-Abfragen
- Mit Echtzeit-Logs und Trace-Tail-Funktion lassen sich die neuesten Ereignisse prüfen
- OpenTelemetry-Integration und Unterstützung für **APM-(Performance-Monitoring-)**Umgebungen
Bereitstellung und Einstieg
- Das ClickStack-Paket kann ClickHouse, HyperDX, den OpenTelemetry Collector und MongoDB für eine integrierte Bereitstellung enthalten
- Die HyperDX-UI ist über den Browser erreichbar
- Es kann auch mit ClickHouse Cloud verbunden werden und lässt sich leicht in verschiedenen Umgebungen bereitstellen
Anwendungsinstrumentierung und Integration
Um mit HyperDX Daten zu Logs, Metriken, Traces und Session-Replays zu erfassen, muss die Anwendung Telemetriedaten an HyperDX senden
- SDKs und Integrationsoptionen: SDKs für Browser, Node.js, Python und weitere Sprachen/Umgebungen ermöglichen eine einfache Anbindung
- Unterstützung des OpenTelemetry-Standards: kompatibel mit Kubernetes, JavaScript, Python, Java, Go, Ruby, PHP, .NET, Elixir, Rust und weiteren Sprachen und Laufzeitumgebungen
- Der OpenTelemetry Collector ist standardmäßig unter
http://localhost:4318erreichbar
So kann man beitragen
- Community-Beiträge in vielerlei Form sind willkommen, etwa durch PRs, das Einreichen von Issues, die Verbesserung der Dokumentation, Abstimmungen zu offenen Issues oder das Teilen neuer Use Cases
Entwicklungsziel und Philosophie
Das Ziel des HyperDX-Teams ist es, allen Engineers zu ermöglichen, Telemetriedaten aus Produktionsumgebungen zu nutzen, um Probleme schnell zu lösen
Wichtige bisherige Probleme:
- Observability-Tools für den Betrieb sind teuer, und die Kosten steigen mit wachsender Datenmenge stark an
- Konfiguration und Nutzung sind schwierig und erfordern SREs sowie Fachleute
- Logs, Session-Replays, APM und andere Funktionen sind getrennt, was die Verknüpfung von Informationen umständlich macht
Um diese Grenzen zu überwinden, werden ClickStack und HyperDX als Open Source bereitgestellt
- HyperDX wurde von ClickHouse übernommen
1 Kommentare
Hacker-News-Kommentare
Die Frage, warum ein eigenes Frontend gebaut wurde statt des bereits vorhandenen Grafana
DataDog sei teuer, deshalb wirke HyperDX wirklich attraktiv; geteilt wurde außerdem, dass das eigene Produkt LogLayer(https://loglayer.dev) ein strukturierter Logger für TypeScript sei, der Logs an verschiedene Logger und Cloud-Dienste (u. a. DataDog) senden könne. Es wurde die Meinung geteilt, dass gerade eine Integration für HyperDX entwickelt werde und bald veröffentlicht werden solle; außerdem der Wunsch, im Abschnitt „integrations“ der eigenen Website einen Link zur Dokumentation zur Anbindung von HyperDX und LogLayer hinzuzufügen. Dazu wurde der zugehörige PR-Link geteilt(https://github.com/hyperdxio/hyperdx-js/pull/184)
Es wurde geteilt, dass HyperDX bereits in echter Produktion eingesetzt werde und man mit der Integration in ClickHouse sowie der Kosteneffizienz sehr zufrieden sei; gefragt wurde, ob für HyperDX eine Migration zu ClickStack vorbereitet werden müsse
Geteilt wurde die Einschätzung, dass Tracing und Logging in OTel in Ordnung seien, die Metrics-Funktion von OTel aber als zu komplex entworfen wirke. Gefragt wurde, ob ClickStack statsd-Daten ingestieren könne, insbesondere mit Datadogs Tagging-Erweiterungen, ob es integriertes Service-Tagging und Verknüpfungen zwischen Traces/Logs/Metriken gebe, ob die UI Links zu verwandten Daten biete, warum das Elixir-SDK die
hyperdx-Bibliothek nutze und ob Notebooks auf der Roadmap stündenDie Einschätzung, dass HyperDX Signoz ähnele, da es ebenfalls auf ClickHouse basiere und Open-Source- sowie Cloud-Versionen anbiete, verbunden mit der Frage nach den Unterschieden; außerdem die Beobachtung, dass auch die UI ähnlich wirke
Es werde nach einer neuen Logging-Lösung als Ersatz für Kibana gesucht, und da die Erfahrungen mit ClickHouse gut seien, bestehe Interesse an der UI von HyperDX. Die aktuelle Log-Pipeline laufe mit Vector auf Kubernetes, Vector unterstütze einen OTel sink (Beta), und bei JSON-Daten werde überlegt, was der beste Weg für den Log-Transport sei. Betont wurde außerdem eine große Umgebung mit TB-skaligen Datenmengen und hohem Durchsatz
Die Frage nach den Unterschieden zwischen Signoz und HyperDX (oder ClickHouse), mit der Beobachtung, dass beide aus YC stammen und ClickHouse nutzen
Nach der Registrierung sei in der UI das Widget „Was this search result helpful?“ schon vor der ersten Suche sichtbar gewesen, was die UX verwirrend gemacht habe. Außerdem wurde ein Bug gefunden: Klickt man auf Hide, erscheint ein Feedback-Button, und wenn man diesen erneut anklickt, kehrt alles in den ursprünglichen Zustand zurück. Insgesamt wurde kritisiert, dass die Schrift monospace und zudem klein sei und dass kräftiges Weiß sowie helles Grün schlecht mit dem dunklen Hintergrund harmonierten. Auch ein Wechsel auf Systemschriftarten habe wenig verbessert, weshalb ein traditionellerer UI-Stil empfohlen wurde. Als Feedback wurde geteilt, dass das schwer lesbare Design vom Einsatz abhalte
Die Frage, ob ClickHouse das einzige stateful Element in diesem Stack sei, sowie Interesse an der Kompatibilität mit Rotel, einem in Rust geschriebenen OTEL collector(https://github.com/streamfold/rotel); außerdem der Hinweis, dass Datadog einen selbst entwickelten Ersatz für den OTEL collector mit besserer Performance habe