ClickStack یک پلتفرم Observability در سطح تولید (Production-grade) است که بر پایه ClickHouse ساخته شده و چهار حوزه کلیدی لاگها (Logs)، ردیابیها (Traces)، متریکها (Metrics) و جلسات (Sessions) را در یک راهکار واحد و یکپارچه ترکیب میکند. هدف اصلی آن سادهسازی پایش و اشکالزدایی سیستمهای پیچیده است؛ بهطوری که توسعهدهندگان و تیمهای SRE بتوانند مشکلات را بهصورت سرتاسری (End-to-End) بدون نیاز به جابهجایی بین ابزارهای مختلف یا همبستگی دستی دادهها بر اساس تایماستمپ یا Correlation ID بررسی کنند.
ایده اصلی
در قلب ClickStack یک ایده ساده اما قدرتمند وجود دارد: تمام دادههای Observability باید به شکل رویدادهای غنی و گسترده (Wide, Rich Events) ذخیره شوند. این رویدادها بر اساس نوع داده (لاگ، متریک، تریس و سشن) در جداول ClickHouse نگهداری میشوند، اما همچنان در سطح پایگاه داده قابل کوئری و همبستهسازی متقابل هستند.
ویژگیها
جستجو و همبستگی بین لاگها، متریکها، تریسها و سشنها در یک محیط واحد
کارایی بسیار بالا در پردازش دادههای پرکاردینالیتی به کمک معماری ستونی ClickHouse
پشتیبانی بومی از JSON برای انعطافپذیری در طرحواره (Schema Evolution)
داشبوردهای سریع و آماده برای دادههای حجیم بدون نیاز به زبان پرسوجوی پیچیده
جستجوی متنی کامل و Syntax ساده برای فیلتر (SQL اختیاری)
امکان مانیتورینگ زنده (Live tail) برای لاگها و تریسها
پشتیبانی کامل از OpenTelemetry برای جمعآوری دادهها
تحلیل روندها، تشخیص انحرافات و شناسایی الگوهای لاگ
اجزای اصلی ClickStack
HyperDX UI: رابط کاربری تحت وب برای جستجو، داشبوردها، هشدارها و تحلیل دادهها.
OpenTelemetry Collector: جمعآوریکننده داده با طرحواره پیشنهادی، بهینهسازیشده برای ClickHouse.
ClickHouse: موتور تحلیلی سریع برای ذخیره و پردازش دادهها در مقیاس بالا. (در معماری کامل، MongoDB نیز برای ذخیره تنظیمات، داشبوردها و حسابهای کاربری استفاده میشود.)
اصول طراحی
راهاندازی سریع و آسان: در چند دقیقه روی هر ClickHouse قابل راهاندازی است.
انعطافپذیر و کاربرپسند: هم SQL و هم Lucene-style Query را پشتیبانی میکند.
Observability سرتاسری: پوشش کامل از سشنهای کاربر تا متریکهای زیرساخت و تریسهای توزیعشده.
بهرهبرداری کامل از ClickHouse: سرعت بالا در جستجو و تجمیع دادهها در مقیاس بزرگ.
OpenTelemetry-native: جمعآوری داده از طریق OTel Collector بهصورت پیشفرض.
متنباز و قابل سفارشیسازی کامل: هر جزء را میتوان بهصورت مستقل یا مجتمع در محیطهای مختلف مستقر کرد.
HyperDX UI → رابط کاربری برای جستجو، داشبوردها، هشدارها و بررسی دادهها.
OpenTelemetry Collector → جمعآوریکننده دادههای لاگ، متریک و تریس و ارسال آنها به ClickHouse.
ClickHouse → پایگاه داده تحلیلی سریع برای ذخیرهسازی و پردازش دادههای Observability.
(در معماری کامل، MongoDB هم برای ذخیره تنظیمات و داشبوردها بهکار میرود.)
روشهای نصب و استقرار
۱. استقرار محلی (Local Deployment)
سادهترین روش، استفاده از ایمیج all-in-one است که تمام اجزای اصلی (UI، OTel Collector و ClickHouse) را در یک کانتینر ارائه میدهد. این روش برای آزمایش سریع، توسعه محلی یا دمو مناسب است.
docker run -p 8080:8080 -p 4317:4317 -p 4318:4318 \
docker.hyperdx.io/hyperdx/hyperdx-all-in-one
پورت ۸۰۸۰ → رابط کاربری HyperDX
پورتهای ۴۳۱۷ و ۴۳۱۸ → برای دریافت دادههای OpenTelemetry