- لوحة معلومات أخرى، لعرض مركّز لذلك العنصر وحده، مثل لوحة معلومات تفصيلية لكل خدمة، أو
- الأحداث الأساسية في Search، للسجل أو التتبع الكامنة وراء الصف.
افحص خدمة في لوحة المعلومات الخاصة بها
Service Detail.
أنشئ لوحة المعلومات التفصيلية
أنشئ لوحة معلومات باسمService Detail وأضف عامل تصفية مخصص بالتعبير ServiceName على مصدر التتبعات لديك. يعيد عامل التصفية على مستوى لوحة المعلومات ضبط نطاق كل بطاقة على خدمة واحدة، لذلك لا تحتاج البطاقات نفسها إلى تضمين خدمة ثابتة في استعلاماتها. أضف العروض التي تريدها لكل خدمة: مؤشرات RED الأساسية (الطلبات، والأخطاء، ومدة P95)، ومخطط النسب المئوية لزمن الاستجابة (P50 وP95 وP99)، ومعدل الطلبات بمرور الوقت، وتقسيمًا بحسب نقطة النهاية مجمّعًا حسب SpanName.احفظ لوحة المعلومات هذه أولًا حتى تتمكن من تحديدها كهدف في الخطوة التالية.أنشئ حصر الخدمات
على لوحة معلومات نظرة عامة، أضف بطاقة Table على مصدر التتبعات لديك مجمّعة حسبServiceName. أضف إليها أعمدة RED التي تقيّم كل خدمة، بحيث تكون كل واحدة منها سلسلة باسم مستعار:Requests: عدد spans (المعدل).Errors: عدد spans ذات حالة خطأ.P95 Duration: النسبة المئوية الخامسة والتسعون منDuration. اضبط تنسيق الأرقام في العمود على مدة بحيث تُعرض مثل288ms، لا كقيمة خام بالنانوثانية.
Requests ترتيبًا تنازليًا بحيث تظهر أكثر الخدمات نشاطًا في الأعلى. هذا الجدول هو الفهرس: صف واحد لكل خدمة، مع تقييمها وفق RED.اربط إجراء النقر على الصف
في جدول الحصر، افتح Row Click Action، وحدد Dashboard، ثم اخترService Detail من قائمة لوحات المعلومات. يؤدي اختيار لوحة المعلومات مباشرةً إلى تثبيتها حسب المعرّف ID. ويستمر الرابط في العمل إذا أُعيدت تسمية لوحة المعلومات لاحقًا، كما يظل صالحًا عند تصدير لوحة المعلومات واستيرادها. (اترك خيار Template للحالات التي تريد فيها اختيار لوحة معلومات مختلفة لكل صف؛ انظر إعداد إجراء للنقر على الصف.)ولأن Service Detail يعرّف عامل تصفية مخصصًا باسم ServiceName، فإن اللوحة الجانبية تملأ مسبقًا عامل تصفية فارغًا لهذا التعبير. املأ القالب الخاص به:- Expression:
ServiceName(معبأ بالفعل) - Template:
{{ServiceName}}
ServiceName في لوحة المعلومات.انقر على صف
يكشف تمرير المؤشر فوق صف عن رابط على الحافة اليمنى للجدول، مع تلميح يصف الإجراء (Open dashboard "Service Detail"). ويؤدي النقر على الصف إلى فتح لوحة معلومات Service Detail مع ضبط عامل التصفية Service على القيمة التي نُقر عليها، بحيث يُعاد ضبط نطاق كل بطاقة (مؤشرات RED الأساسية، والنسب المئوية لزمن الاستجابة، والتقسيم بحسب نقطة النهاية) على تلك الخدمة وحدها بنقرة واحدة.الانتقال من خدمة إلى التتبعات الخاصة بها
وجّه النقر على الصف إلى Search
في جدول الحصر، افتح Row Click Action واختر Search. اختر مصدر التتبعات لديك (لا تظهر إلا مصادر السجلات والتتبعات). أضف عامل تصفية واحدًا:- Expression:
ServiceName - Template:
{{ServiceName}}
انقر على صف
يؤدي النقر على صف خدمة الآن إلى فتح صفحة Search لهذا المصدر الخاص بالتتبعات، مع تصفيتها إلىServiceName = <service>، بحيث تصل إلى spans الخاصة بتلك الخدمة فقط ضمن النطاق الزمني نفسه.SpanName) أو حسب attribute لنقطة نهاية بدلًا من ServiceName، ثم استخدم قالب عامل التصفية من ذلك العمود، وعندها يفتح كل نقر على صف الأحداث الخاصة بتلك العملية أو نقطة النهاية فقط. للاطلاع على group-by على attribute من نوع map، راجع ملاحظة alias ضمن Validation and limitations.
إعداد إجراء النقر على الصف
Row Click Action: Default أو Row Click Action: Search أو Row Click Action: Dashboard. انقر عليه لفتح الدرج.
يوفّر الدرج ثلاثة إجراءات:
- Default: السلوك المضمّن. يؤدي النقر على صف إلى فتح صفحة Search، مع تصفيتها وفق قيم أعمدة group-by في الصف والنطاق الزمني المحدد. وهذا ما يحدث عند عدم ضبط إجراء مخصص.
- Search: يرسل النقر إلى صفحة Search لمصدر تختاره.
- Dashboard: يرسل النقر إلى لوحة معلومات أخرى يملكها فريقك.
- Destination: اختر مصدرًا أو لوحة معلومات محددة، أو اختر Template وأدخل قالب Handlebars يُطابَق بالاسم مع مصدر أو لوحة معلومات متاحة. يؤدّي اختيار هدف محدد إلى تثبيته بالمعرّف. ويُفضَّل ذلك عند استخدام وجهة ثابتة واحدة، إذ يظل صالحًا بعد إعادة التسمية وتصدير لوحة المعلومات واستيرادها، كما يملأ مسبقًا — في حالة لوحة المعلومات — عوامل التصفية المعلنة في الوجهة. استخدم Template عندما ينبغي أن تختلف الوجهة حسب الصف، بالإشارة إلى عمود من الصف لاختيارها (مثل
Errors-{{ServiceName}}). - Filters: انقر Add filter وقدّم Expression (عمودًا أو تعبيرًا في الوجهة، مثل
ServiceName) وTemplate لقيمته (مثل{{ServiceName}}). تشير القوالب إلى أعمدة الصف المنقور باستخدام{{columnName}}(راجع الملاحظة أدناه لمعرفة الأعمدة المتاحة). يُحوَّل كل عامل تصفية إلى شرطexpression IN (value)في الوجهة، وتُدمج عوامل التصفية التي تشترك في التعبير نفسه. وعندما تكون الوجهة لوحة معلومات، يملأ الدرج مسبقًا عامل تصفية فارغًا واحدًا لكل عامل تصفية كانت لوحة المعلومات تلك قد أعلنته بالفعل، بحيث لا يتبقى عليك سوى تعبئة القوالب. - WHERE (اختياري): قالب Handlebars يُعرَض داخل عامل التصفية العام للوجهة، بالإضافة إلى شروط عوامل التصفية لكل عنصر أعلاه. اضبط لغة الاستعلام الخاصة به على SQL أو Lucene لكي تتمكن الوجهة من تفسيره. على سبيل المثال، يقيّد قالب SQL
ServiceName = '{{ServiceName}}'الوجهة بخدمة الصف المنقور.
تشير القوالب إلى أعمدة الجدوليُفسَّر قالب
{{...}} استنادًا إلى أعمدة بطاقة الجدول نفسها: أعمدة group-by وكل سلسلة بحسب اسمها أو اسمها المستعار، تمامًا كما تظهر في الجدول. وهو لا يرى أعمدة المصدر الأساسي التي لا يحددها الجدول. يجب أن تكون القيمة عمودًا في الجدول حتى تُنقل عبر النقر، لذا فإن {{ServiceName}} يعمل لأن ServiceName هو عمود group-by في الجدول، ويُشار إلى العمود ذي الاسم المستعار باستخدام اسمه المستعار. وتؤدي الإشارة إلى اسم غير موجود في الجدول إلى فشل النقر مع Row has no column '<name>'.كيفية حلّ الوجهة وعوامل التصفية
- الوجهة. يؤدي اختيار source أو dashboard معيَّنَين إلى تثبيتهما بحسب المعرّف. أمّا هدف Template فيُعرَض استنادًا إلى الصف الذي تم النقر عليه، ثم تُجرى مطابقته بالاسم مع مصادر فريقك أو لوحات المعلومات لديه. ويجب أن يكون الاسم فريدًا حتى يمكن حلّه: فإذا اشترك مصدران أو لوحتا معلومات في الاسم المعروض نفسه، فلن يتمكّن الرابط من الحل إلى أحدهما. كما يفشل الحل أيضًا إذا كان الاسم المعروض فارغًا أو إذا لم توجد له أي مطابقة.
- عوامل التصفية. يُعرَض كل قالب تصفية استنادًا إلى الصف، ثم يتحوّل إلى شرط
expression IN (value)في الوجهة. يفتح إجراءSearchالمسار/searchضمن نطاق المصدر المختار، بينما يفتح إجراءDashboardلوحة المعلومات تلك. وفي كلتا الحالتين، يُنقَل النطاق الزمني للصف الذي تم النقر عليه.
تتطلّب أهداف لوحات المعلومات تعريف عامل تصفية مطابقلا يُطبَّق عامل التصفية المنقول إلى لوحة المعلومات إلا إذا كانت لوحة المعلومات الوجهة تتضمّن custom filter على المستوى الأعلى يطابق تعبيره Expression الخاص بعامل التصفية. وإذا لم يطابقه أي عامل تصفية مُعلَن، فستُسقَط تلك القيمة عند النقر، وتُفتح الوجهة من دون تصفية لهذا التعبير. ولهذا يملأ وضع لوحة المعلومات مسبقًا عوامل التصفية المُعلَنة في الوجهة: طابِق التعبير، وستُملأ القائمة المنسدلة للوجهة تلقائيًا بقيمة الصف الذي تم النقر عليه.
التحقّق والقيود
- بطاقات الجدول فقط. يظهر زر إجراء النقر على الصف في بطاقات الجدول فقط، سواء في جدول أداة إنشاء المخططات أو جدول مستند إلى SQL. أما أنواع البطاقات الأخرى، فلا تتضمن إجراءً للنقر على الصف.
- يجب أن تكون أهداف Search مصادر سجلات أو تتبّع. لا تُعرض مصادر المقاييس والجلسات، إذ لا يمكن عرضها في صفحة Search.
- يجب أن تكون أسماء القوالب فريدة. يُحدَّد هدف القالب بالاسم، لذلك لا يمكن استخدام مصدرين أو لوحتي معلومات بالاسم نفسه كهدف للقالب.
- تحتاج أهداف لوحة المعلومات إلى مرشّح مُعلن مطابق لكي تسري القيمة المنقولة (راجع الملاحظة أعلاه).
- تحتاج أعمدة group-by في التعبيرات إلى alias. يؤدّي إجراء group-by على تعبير، مثل سمة map
SpanAttributes['http.route']، إلى إنشاء عمود ناتج يكون اسمه هو التعبير الخام نفسه، وهو اسم غير عملي عند الإشارة إليه في قالب. امنح العمود alias في أداة إنشاء المخططات: أضفAS <alias>بعد التعبير في حقل الإدخال Group By (على سبيل المثالSpanAttributes['http.route'] AS Route)، ثم استخدم{{Route}}في القالب. وبالمثل، تأخذ السلاسل المجمّعة alias من حقل Alias الخاص بها. أما group-by على column عادي مثلServiceName، فلديه اسم واضح أصلًا ولا يحتاج إلى alias.