ویرگول
ورودثبت نام
hamed sahami
hamed sahamihttps://www.linkedin.com/in/hamedsahami/
hamed sahami
hamed sahami
خواندن ۱ دقیقه·۱ سال پیش

کلیک استک (ClickStack)

کلیک استک (ClickStack) یک پلتفرم مشاهده‌پذیری (observability) در سطح تولید است که بر پایه پایگاه داده کلیک هاوس (ClickHouse) ساخته شده است. این پلتفرم برای نظارت و اشکال‌زدایی سیستم‌های پیچیده طراحی شده و هدف آن متحد کردن لاگ‌ها (logs)، تریس‌ها (traces)، متریک‌ها (metrics) و نشست‌ها (sessions) در یک راه‌حل واحد و با عملکرد بالا است.

در اینجا تعریف و جزئیات کامل کلیک استک بر اساس منابع ارائه شده آمده است:

۱. ماهیت و فلسفه اصلی کلیک استک

کلیک استک توسعه‌دهندگان و مهندسان قابلیت اطمینان سایت (SREs) را قادر می‌سازد تا مسائل را به صورت سرتاسری پیگیری کنند، بدون اینکه نیاز به جابجایی بین ابزارها یا اتصال دستی داده‌ها با استفاده از برچسب‌های زمانی یا شناسه‌های همبستگی (correlation IDs) داشته باشند.

ایده محوری: ایده اصلی کلیک استک ساده اما قدرتمند است: تمام داده‌های مشاهده‌پذیری باید به صورت رویدادهای عریض و غنی(wide, rich events) جذب شوند. این رویدادها بر اساس نوع داده—مانند لاگ‌ها، تریس‌ها، متریک‌ها و نشست‌ها—در جداول کلیک هاوس ذخیره می‌شوند، اما در سطح پایگاه داده کاملاً قابل جستجو و همبستگی متقابل (cross-correlatable) باقی می‌مانند.

عملکرد و معماری کلیک هاوس: کلیک استک به گونه‌ای طراحی شده است که با استفاده از معماری ستون‌محور (column-oriented architecture)، پشتیبانی بومی از JSON و موتور اجرای کاملاً موازی کلیک هاوس، حجم کار با کاردینالیتی بالا (high-cardinality workloads) را به طور موثر مدیریت کند. این قابلیت‌ها امکان جستجوی زیر ثانیه‌ای در مجموعه‌ داده‌های عظیم، تجميع سریع در محدوده‌های زمانی وسیع، و بازرسی عمیق تریس‌های فردی را فراهم می‌کند.

کلیک هاوس برای داده‌های مشاهده‌پذیری مناسب است زیرا:

  • در داده‌های با کاردینالیتی بالا عالی عمل می‌کند.

  • داده‌ها را به طور موثر فشرده می‌کند.

  • از SQL آشنا استفاده می‌کند.

  • از JSON بومی پشتیبانی می‌کند، که به آن امکان می‌دهد داده‌های نیمه‌ساختاریافته‌ای که اغلب در مشاهده‌پذیری دیده می‌شوند را مدیریت کند. JSON در قالبی فشرده و ستونی ذخیره می‌شود، که تکامل طرحواره (schema evolution) را بدون نیاز به مداخله دستی یا تعریف قبلی ممکن می‌سازد.


۲. اجزاء اصلی (Components)

کلیک استک از سه جزء اصلی تشکیل شده است که می‌توانند به صورت مستقل یا با هم مستقر شوند:

  1. رابط کاربری HyperDX (HyperDX UI):

    • این یک فرانت‌اند هدفمند است که برای کاوش و بصری‌سازی داده‌های مشاهده‌پذیری ساخته شده است.

    • از هر دو سینتکس‌های سبک لوچین (Lucene-style) و SQL پشتیبانی می‌کند، به کاربران اجازه می‌دهد رابط جستجویی متناسب با گردش کار خود انتخاب کنند.

    • امکانات دیگری مانند داشبوردهای تعاملی، هشداردهی، و کاوش تریس را ارائه می‌دهد.

    • یک نسخه میزبانی شده در مرورگر از HyperDX UI نیز موجود است که کاربران را قادر می‌سازد بدون زیرساخت اضافی به استقرارهای موجود کلیک هاوس متصل شوند.

  2. جمع‌آورنده OpenTelemetry (OpenTelemetry collector):

    • این یک جمع‌آورنده سفارشی و از پیش تنظیم شده است که با یک طرحواره مشخص (opinionated schema) برای لاگ‌ها، تریس‌ها و متریک‌ها ارائه می‌شود.

    • این جمع‌آورنده پروتکل‌های OpenTelemetry را دریافت می‌کند و داده‌ها را مستقیماً به کلیک هاوس با استفاده از درج‌های دسته‌ای کارآمد (efficient batched inserts) می‌نویسد.

    • کلیک استک از OpenTelemetry پشتیبانی بومی دارد.

    • این جزء به عنوان یک دروازه (gateway) عمل می‌کند و در عین حال که بومی OpenTelemetry است، انحصاری آن نیست. کاربران پیشرفته می‌توانند داده‌ها را مستقیماً با استفاده از فرمت‌های فایل بومی، پایپ‌لاین‌های سفارشی، یا ابزارهای شخص ثالث مانند Vector به کلیک هاوس وارد کنند.

  3. کلیک هاوس (ClickHouse):

    • پایگاه داده تحلیلی با عملکرد بالا است که به عنوان مخزن مرکزی داده‌ها برای رویدادهای عریض عمل می‌کند.

    • با بهره‌گیری از موتور ستونی خود و پشتیبانی بومی از JSON، قدرت جستجو، فیلترگذاری و تجميع سریع را در مقیاس فراهم می‌کند.

جزء کمکی: علاوه بر این سه جزء اصلی، کلیک استک از یک پایگاه داده MongoDB برای ذخیره وضعیت برنامه (application state)، مانند داشبوردها، حساب‌های کاربری و تنظیمات پیکربندی، استفاده می‌کند.


۳. اصول و ویژگی‌های کلیدی

اصول طراحی (Principles):

  • نصب آسان در عرض چند دقیقه: کلیک استک با هر نمونه و طرحواره کلیک هاوس کار می‌کند و حداقل پیکربندی را نیاز دارد.

  • کاربرپسند و هدفمند: رابط کاربری HyperDX به طور خاص برای مشاهده‌پذیری بهینه‌سازی شده است تا تیم‌ها بتوانند به سرعت علل ریشه‌ای را شناسایی کنند.

  • مشاهده‌پذیری سرتاسری (End-to-end observability): دید کامل پشته، از نشست‌های کاربری فرانت‌اند تا متریک‌های زیرساخت بک‌اند، لاگ‌های برنامه و تریس‌های توزیع شده را فراهم می‌کند. این دیدگاه یکپارچه امکان همبستگی و تحلیل عمیق در کل سیستم را می‌دهد.

  • ساخته شده برای کلیک هاوس: هر لایه از پشته برای استفاده کامل از قابلیت‌های کلیک هاوس طراحی شده است.

  • بومی OpenTelemetry: تمامی داده‌ها از طریق یک نقطه پایانی جمع‌آورنده OpenTelemetry جذب می‌شوند.

  • متن‌باز و کاملاً قابل تنظیم: کلیک استک کاملاً متن‌باز (Open source) بوده و می‌تواند در هر مکانی مستقر شود. اجزای آن قابل مقیاس‌بندی مستقل هستند تا نیازهای جذب، جستجو یا ذخیره‌سازی را برآورده کنند.

ویژگی‌های کلیدی (Features):

کلیک استک شامل چندین ویژگی اصلی است که برای اشکال‌زدایی و تحلیل علت ریشه‌ای طراحی شده‌اند:

  • همبستگی و جستجو: امکان همبستگی و جستجوی لاگ‌ها، متریک‌ها، بازپخش نشست‌ها (session replays) و تریس‌ها، همه در یک مکان.

  • جستجوی سریع: جستجوها و بصری‌سازی‌های فوق‌العاده سریع بهینه شده برای کلیک هاوس.

  • جستجوی بصری: سینتکس جستجوی بصری برای متن کامل و جستجوی ویژگی‌ها (مثلاً level:err)، با SQL به عنوان یک گزینه.

  • تشخیص الگو و ناهنجاری: تجزیه و تحلیل روند ناهنجاری‌ها با دلتاهای رویداد (event deltas) و تشخیص الگوی لاگ.

  • پشتیبانی از JSON: جستجوی رشته بومی JSON.

  • پوشش جامع: نظارت بر سلامت و عملکرد از درخواست‌های HTTP تا جستجوهای پایگاه داده (APM).

  • Live Tail: امکان مشاهده لحظه‌ای لاگ‌ها و تریس‌ها برای دریافت تازه‌ترین رویدادها.

  • هشدارها: تنظیم هشدارها تنها با چند کلیک.

۱
۰
hamed sahami
hamed sahami
https://www.linkedin.com/in/hamedsahami/
شاید از این پست‌ها خوشتان بیاید