إنشاء التصورات
GROUP BY — إذ تحدد المقاييس المطلوب تجميعها عبر الأبعاد المحددة.
على سبيل المثال، يمكنك رسم عدد الأخطاء (count()) مجمّعًا حسب اسم الخدمة.
في الأمثلة أدناه، نستخدم مجموعة البيانات البعيدة المتاحة على sql.clickhouse.com، والمشروحة في دليل “Remote Demo Dataset”. ويمكنك أيضًا إعادة تنفيذ هذه الأمثلة بزيارة play-clickstack.clickhouse.com.
الانتقال إلى Chart Explorer
حدّدChart Explorer من القائمة اليسرى.إنشاء تصور
في المثال أدناه، نرسم متوسط مدة الطلب عبر الزمن لكل اسم خدمة. ويتطلب ذلك من المستخدم تحديد مقياس وعمود (يمكن أن يكون تعبير SQL) وحقل تجميع.حدّد نوع التصورLine/Bar من القائمة العلوية، ثم مجموعة البيانات Traces (أو Demo Traces إذا كنت تستخدم play-clickstack.clickhouse.com). أكمل القيم التالية:- Metric:
Average - Column:
Duration/1000 - Where:
<empty> - Group By:
ServiceName - Alias:
Average Time
WHERE أو صياغة Lucene، كما يمكنك تحديد النطاق الزمني الذي ينبغي تصور الأحداث خلاله. كما يدعم النظام أيضًا سلاسل متعددة.على سبيل المثال، صفِّ حسب الخدمة frontend بإضافة عامل التصفية ServiceName:"frontend". ثم أضف سلسلة ثانية لعدد الأحداث عبر الزمن بالاسم المستعار Count بالنقر على Add Series.لإنشاء سلسلة مشابهة لسلسلة موجودة، يمكنك تكرارها بدلًا من البدء من الصفر. انقر على أيقونة النسخ (Duplicate series) في صف السلسلة لإدراج نسخة مباشرة أسفلها. تحتفظ النسخة بإعدادات السلسلة الأصلية، مثل المقياس والعمود وعامل التصفية. بعد ذلك، لا تغيّر إلا الحقول المختلفة (مثل التجميع) وتمنح النسخة اسمًا مستعارًا خاصًا بها. يتوفر التكرار في أي موضع يدعم سلاسل متعددة. ويكون مخفيًا لأنواع التصور التي تسمح بسلسلة واحدة فقط، مثل Number وPie وHeatmap.لإنشاء سلسلة مشابهة لسلسلة موجودة، يمكنك تكرارها بدلًا من البدء من الصفر. انقر على أيقونة النسخ (Duplicate series) في صف السلسلة لإدراج نسخة مباشرة أسفلها. تحتفظ النسخة بإعدادات السلسلة الأصلية، مثل المقياس والعمود وعامل التصفية. بعد ذلك، لا تغيّر إلا الحقول المختلفة (مثل التجميع) وتمنح النسخة اسمًا مستعارًا خاصًا بها. يتوفر التكرار في أي موضع يدعم سلاسل متعددة. ويكون مخفيًا لأنواع التصور التي تسمح بسلسلة واحدة فقط، مثل Number وPie وHeatmap.يمكن إنشاء التصورات من أي مصدر بيانات — مقاييس أو تتبعات أو سجلات. ويتعامل ClickStack مع جميع هذه الأنواع على أنها wide events. ويمكن تمثيل أي عمود رقمي على مخطط عبر الزمن، كما يمكن استخدام الأعمدة النصية أو التاريخية أو الرقمية في عمليات التجميع.يتيح هذا النهج الموحّد إنشاء لوحات معلومات عبر أنواع telemetry باستخدام نموذج متّسق ومرن.
إنشاء لوحات المعلومات
انتقل إلى لوحات المعلومات
اخترDashboards من القائمة الجانبية اليسرى، ثم انقر على New Dashboard لإنشاء لوحة معلومات مؤقتة أو محفوظة.أنشئ تصورًا — متوسط وقت الطلب حسب الخدمة
اخترAdd New Tile لفتح لوحة إنشاء التصور.اختر نوع التصور Line/Bar من القائمة العلوية، ثم مجموعة البيانات Traces (أو Demo Traces إذا كنت تستخدم play-clickstack.clickhouse.com). ثم أكمل القيم التالية لإنشاء مخطط يعرض متوسط مدة الطلب بمرور الوقت لكل اسم خدمة:- اسم المخطط:
Average duration by service - المقياس:
Average - العمود:
Duration/1000 - Where:
<empty> - التجميع حسب:
ServiceName - الاسم المستعار:
Average Time
Save.عدّل حجم التصور ليشغل كامل عرض لوحة المعلومات.أنشئ تصورًا – الأحداث بمرور الوقت حسب الخدمة
حدِّدAdd New Tile لفتح لوحة إنشاء التصور.حدِّد Line/Bar كـ visualization type من القائمة العلوية، ثم مجموعة البيانات Logs (أو Demo Logs إذا كنت تستخدم play-clickstack.clickhouse.com). أكمل القيم التالية لإنشاء مخطط يوضّح عدد الأحداث بمرور الوقت لكل اسم خدمة:- Chart Name:
Event count by service - Metric:
Count of Events - Where:
<empty> - Group By:
ServiceName - Alias:
Count of events
Save.غيّر حجم التصور ليشغل العرض الكامل للوحة المعلومات.أضف بطاقة heatmap لمدة الـ span
تعرض بطاقات Heatmap عدد الأحداث التي تقع ضمن كل حاوية (وقت، قيمة) على هيئة شبكة ملوّنة. استخدم heatmap عندما تريد رؤية شكل التوزيع عبر الزمن، لا الاكتفاء بالمتوسط أو بقيمة مئينية واحدة. تكشف heatmap الخاصة بالكمون أنماط المدة ثنائية القمة، وتجمّعات الذيل البطيء، أو الاتساعات المفاجئة التي قد يُخفيها مخطط خطي عند الاكتفاء بالمتوسط.لإضافة بطاقة heatmap:- حدِّد
Add New Tile. - اختر نوع التصور
Heatmapمن القائمة العلوية. لا تعرض القائمة المنسدلة لمصدر البيانات إلا المصادر التي يكون نوع المصدر فيهاTraces. وتُستبعَد مصادر logs وmetrics وsession، لأن heatmaps تحتاج إلى عمود لمدة الـ span لا توفره إلا مصادر traces. - اختر أيًّا من مصادر traces لديك بالاسم. الاسم بحد ذاته اعتباطي، والمهم هو النوع فقط.
- القيمة:
Duration Expressionالخاص بالمصدر، بعد تحجيمه إلى وحدة العرض الحالية (على سبيل المثال(Duration)/1e6لتحويل مدة الـ span لكل حدث من نانوثانية إلى ميلي ثانية) - العدد:
count()
- عيّن اسمًا للمخطط، واستخدم
Whereلقصر heatmap على service معيّنة أو مجموعة من العمليات التي تريد مراقبة أدائها. - اضبط النطاق الزمني ليتوافق مع الفترة محل الاهتمام. تكشف النطاقات الأوسع تحولات التوزيع وأنماط الكمون ثنائية القمة التي قد تخفيها النوافذ الأقصر.
Run لمعاينة المخطط، ثم Save.تُعرَض البطاقة المحفوظة كـ heatmap على لوحة المعلومات. مرّر المؤشر فوق أي خلية لرؤية حدود الحاوية وعدد الأحداث.الانتقال التفصيلي إلى Event Deltas
انقر على أي خلية في بطاقة heatmap المعروضة لفتح إجراء View in Event Deltas.يؤدي تحديده إلى فتح عرض Event Deltas مع تمرير مصدر بيانات البطاقة وعبارةWhere والنطاق الزمني. ومن هناك يمكنك فحص التوزيع نفسه بصورة تفاعلية، والتقسيم حسب attribute لمعرفة ما الذي يجعل spans البطيئة مختلفة عن السريعة، وفحص spans الفردية وراء أي خلية، من دون إعادة بناء الاستعلام يدويًا.تصفية لوحة المعلومات
يمكن تطبيق عوامل تصفية Lucene أو SQL، إلى جانب النطاق الزمني، على مستوى لوحة المعلومات، وستُطبَّق تلقائيًا على جميع التصورات.للتوضيح، طبّق عامل تصفية Lucene ServiceName:"frontend" على لوحة المعلومات، وعدّل النافذة الزمنية لتشمل آخر 3 ساعات. لاحظ كيف تعرض التصورات الآن بيانات خدمة frontend فقط.سيُحفَظ dashboard تلقائيًا. لتعيين اسم dashboard، حدِّد العنوان وعدِّله قبل النقر على Save Name.لوحات المعلومات - تحرير التصورات
لوحة المعلومات - العرض والبحث
لوحات المعلومات - الوسوم
- التنظيم: تظهر الوسوم في الشريط الجانبي الأيسر، حيث تُجمَّع لوحات المعلومات وعمليات البحث المحفوظة وفقًا للوسوم المخصَّصة لها
- وسوم متعددة: يمكنك إضافة وسم واحد أو أكثر إلى العنصر نفسه لتحسين التصنيف
- الإنشاء التلقائي: إذا أضفت وسمًا غير موجود بعد، فسيُنشأ تلقائيًا
- سهولة الإدارة: يمكنك إضافة الوسوم أو إزالتها في أي وقت لتعديل بنية التنظيم لديك
فلاتر مخصصة
افتح مربع حوار Edit Filters
افتح لوحة معلومات محفوظة، ثم حدّد Edit Filters من شريط الأدوات.أضف فلترًا جديدًا
انقر على Add new filter. اضبط الفلتر بإدخال Name، وتحديد Data source، وإدخال Filter expression — وهو عمود أو تعبير SQL تُستخدم قيمه المميزة لتعبئة القائمة المنسدلة. ثم انقر على Save filter.على سبيل المثال، لإضافة فلتر خدمة لبيانات التتبّع، استخدمServiceName كتعبير للتصفية مع مصدر البيانات Traces. ويُعد “Dropdown values filter” اختياريًا، ويوفّر طريقة لتقييد القيم التي تظهر في القائمة المنسدلة.تعرض النافذة المنبثقة Filters جميع الفلاتر المُعدّة للوحة المعلومات. ومن هنا يمكنك تعديل الفلاتر الحالية أو حذفها، أو إضافة فلاتر أخرى.استخدم الفلتر
أغلق النافذة المنبثقة Filters. سيظهر الفلتر المنسدل الجديد أسفل شريط البحث. انقر عليه لعرض القيم المتاحة، ثم اختر واحدة لتصفية جميع التصورات في لوحة المعلومات.(اختياري) احفظ قيم الفلتر كإعداد افتراضي
للاحتفاظ باختيار الفلتر بوصفه الإعداد الافتراضي للوحة المعلومات، اختر Save Query & Filters as Default من قائمة لوحة المعلومات. ستُفتح لوحة المعلومات دائمًا مع تطبيق الفلاتر المحددة. ولإعادة التعيين، حدّد Remove Default Query & Filters من القائمة نفسها.تتوفر الفلاتر المنسدلة المخصصة في لوحات المعلومات المحفوظة. وللاطلاع على مثال عملي لهذا النمط، راجع لوحة معلومات Kubernetes، التي توفّر فلاتر منسدلة مضمّنة لكل من Pod وDeployment واسم العقدة وNamespace وCluster.
التعمّق إلى Search
- عرض جميع الأحداث — ينقلك إلى صفحة Search لعرض جميع الأحداث ضمن النافذة الزمنية المحددة.
- التصفية حسب المجموعة — ينقلك إلى صفحة Search بعد تطبيق تصفية على سلسلة محددة.
إعدادات مسبقة
لوحة معلومات ClickHouse
وصول مطلوب إلى جداول النظامتستعلم لوحة المعلومات هذه من جداول النظام في ClickHouse لعرض المقاييس الرئيسية. وتلزم امتيازات الوصول التالية:
GRANT SHOW COLUMNS, SELECT(CurrentMetric_MemoryTracking, CurrentMetric_S3Requests, ProfileEvent_OSCPUVirtualTimeMicroseconds, ProfileEvent_OSReadChars, ProfileEvent_OSWriteChars, ProfileEvent_S3GetObject, ProfileEvent_S3ListObjects, ProfileEvent_S3PutObject, ProfileEvent_S3UploadPart, event_time) ON system.metric_logGRANT SHOW COLUMNS, SELECT(active, database, partition, rows, table) ON system.partsGRANT SHOW COLUMNS, SELECT(event_date, event_time, memory_usage, normalized_query_hash, query, query_duration_ms, query_kind, read_rows, tables, type, written_bytes, written_rows) ON system.query_logGRANT SHOW COLUMNS, SELECT(event_date, event_time, hostname, metric, value) ON system.transposed_metric_log