Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

Query insights لـ Postgres

Beta

يلتقط Query Insights بيانات القياس عن بُعد على مستوى كل عبارة من مثيل ClickHouse Managed Postgres لديك، ويُرتِّب كل نمط استعلام حسب مدى تأثيره، بحيث يمكنك الانتقال من "قيمة p99 ترتفع تدريجيًا" إلى "هذا النمط يُفرِّغ البيانات إلى القرص" من دون مغادرة Cloud Console.

تأتي البيانات من pg_stat_ch، وهي إضافة Postgres مفتوحة المصدر تبث العدادات على مستوى كل عبارة إلى ClickHouse Cloud. تُطبَّع بيانات القياس عن بُعد داخل Postgres قبل أن تغادر قاعدة البيانات — تُزال القيم الحرفية وتُستبدل بعلامات نائبة، بحيث لا تدخل القيم الدقيقة التي تستعلم عنها مطلقًا إلى دفق بيانات القياس عن بُعد.

افتح Query insights

افتح مثيل ClickHouse Managed Postgres الخاص بك في Cloud Console وانقر على Query insights في الشريط الجانبي الأيسر. تنقسم الصفحة إلى أربعة أقسام، بالترتيب الذي ستستخدمها به فعليًا:

  • قسم نظرة عامة يوفّر ملخصًا لحالة قاعدة البيانات في شاشة واحدة.
  • جدول الأنماط البطيئة يرتّب كل نمط استعلام شغّلته قاعدة البيانات لديك، ومفرزًا وفقًا لما تشتبه فيه.
  • لوحة الاستعلامات الحديثة تسرد عمليات التنفيذ الفردية بترتيب زمني عكسي.
  • لوحة اللوحة الجانبية للتفاصيل تجمع كل Counter لنمط واحد.

استخدم selector Time period في الأعلى للتبديل بين آخر 15 دقيقة، أو الساعة الماضية، أو اليوم الماضي، أو الأسبوع الماضي، أو الشهر الماضي. ويُضبط حجم فترات aggregation تلقائيًا — فترات مدتها دقيقة واحدة لآخر 15 دقيقة أو الساعة الماضية، و5 دقائق لليوم الماضي، وساعة واحدة للأسبوع الماضي أو الشهر الماضي — بحيث تظل charts سريعة الاستجابة.

نظرة عامة

تعرض صفحة النظرة العامة شبكة 3×2 من ست لوحات:

اللوحة ما الذي تعرضه
الاستعلامات / ثانية حجم الاستعلامات محسوبًا كمعدل عبر النافذة المحددة.
زمن استجابة الاستعلام متوسط وp50 وp95 وp99 في مخطط واحد، بحيث يمكنك رؤية متى يتباعد الذيل عن الوسيط.
تفصيل العمليات مخطط دائري حلقي يوضح مزيج عمليات SELECT وINSERT وUPDATE وغيرها من العمليات التي يتكوّن منها حمل العمل لديك فعليًا.
الصفوف المُعادة / المتأثرة إجمالي الصفوف التي عالجها حمل العمل خلال النافذة.
نسبة إصابة المخزن المؤقت مخطط دائري حلقي يوضح الكتل المشتركة المصابة مقابل الكتل المشتركة المقروءة، مع إجمالي وقت CPU في وسيلة الإيضاح.
الأخطاء إجمالي عدد الأخطاء، موزعًا بمرور الوقت.

تُظهر لك شاشة واحدة ما إذا كانت قاعدة البيانات سليمة. ويكون للمثيل السليم نمط مألوف — نسبة إصابة المخزن المؤقت في أواخر التسعينات، وحجم الاستعلامات يتماشى مع حركة مرور التطبيق، ومعدل الأخطاء ثابت أو صفري، وقيَم زمن الاستجابة المئينية تتعقّب بعضها بعضًا عن كثب.

نظرة عامة على Query Insights تعرض بطاقات الإحصاءات الست: الاستعلامات في الثانية، والنسب المئينية لزمن استجابة الاستعلام، ومخططًا دائريًا حلقيًا لتفصيل العمليات، ومخططًا مساحيًا للصفوف المُعادة، ومخططًا دائريًا حلقيًا لنسبة إصابة المخزن المؤقت عند 95.2 بالمئة، ومخططًا عموديًا للأخطاء

الأنماط البطيئة

عندما يشير قسم "نظرة عامة" إلى وجود مشكلة، يكون جدول الأنماط هو المكان الذي يبدأ منه التحقيق. صف واحد لكل نمط استعلام مُطبَّع، بعد تجريد القيم الحرفية بحيث تُجمَّع عمليات تنفيذ العبارة نفسها في الصف نفسه.

جدول الأنماط البطيئة للاستعلامات يعرض صفًا واحدًا لكل استعلام مُطبَّع، مع أعمدة قاعدة البيانات، والمستخدم، والعملية، والاستدعاءات، والأخطاء، ومتوسط زمن الاستجابة، وP95، وأقصى زمن استجابة، وإجمالي وقت التشغيل، والصفوف المُعادة، وإصابة ذاكرة التخزين المؤقت

رتّب بحسب ما تشكّ فيه

يُفرَز الجدول افتراضيًا حسب إجمالي زمن التشغيل ترتيبًا تنازليًا — وعندما تفرزه بهذه الطريقة، يكون النمط الأعلى عادةً هو الإجابة عن سؤال "ما الذي يكلّفني أكثر؟" وقد لا يكون هذا هو أبطأ نمط بحد ذاته. فقد يكون استعلام يُشغَّل ثمانية ملايين مرة يوميًا بزمن اثني عشر ميلي ثانية أهم من استعلام آخر شُغِّل مرة واحدة واستغرق ثلاث ثوانٍ.

يمنحك كل فرز منظورًا مختلفًا:

  • إجمالي زمن التشغيل — حيث قضت قاعدة البيانات أكبر قدر من الوقت الفعلي.
  • وقت CPU — الأنماط كثيفة المعالجة.
  • الاستدعاءات — الأنماط عالية التكرار.
  • الأخطاء — الإخفاقات المتكررة.
  • متوسط / P50 / P95 / P99 / الحد الأقصى لزمن الاستجابة — القيم الشاذة، بحسب النسبة المئوية.
  • الصفوف المُعادة، الكتل المقروءة، الكتل المخدَّمة من الذاكرة المؤقتة، بايتات WAL — الأنماط التي حرّكت أكبر قدر من البيانات عبر المحرك، أو الذاكرة المؤقتة، أو سجل الكتابة المسبقة.

انقر زر الأعمدة لإظهار أعمدة إضافية أو إخفائها. يعرض جدول الأنماط 19 عمودًا إجمالًا، بما في ذلك تفصيل النِّسَب المئوية، ونسبة إصابة الذاكرة المؤقتة، ووقت CPU لكل نمط.

تضييق نطاق الجدول

صفِّ الجدول بحسب الجزء من عبء العمل الذي تُحقّق فيه:

  • قاعدة البيانات
  • المستخدم
  • العملية (SELECT, INSERT, UPDATE, DELETE, …)
  • التطبيقapplication_name من سلسلة الاتصال

"أرِني فقط ما الذي تفعله خدمة orders على قاعدة البيانات sales" تصبح قائمتَي اختيار منسدلتين. وتُملأ قيم التصفية تلقائيًا استنادًا إلى ما شغّله مثيلك فعليًا.

الاستعلامات الحديثة

أسفل جدول الأنماط، تعرض لوحة الاستعلامات الحديثة عمليات التنفيذ الفردية بترتيب زمني عكسي — صفًا واحدًا لكل تعليمة مُنفَّذة، وليس صفًا واحدًا لكل نمط. استخدمها عندما تريد تدفق الأحداث الخام بدلًا من عرض مُجمَّع، على سبيل المثال للتحقق سريعًا من أن الإصلاح دخل حيّز التنفيذ أو للعثور على اللحظة الدقيقة التي ظهر فيها الخطأ.

جدول الاستعلامات الحديثة مع قوائم منسدلة للتصفية بحسب قاعدة البيانات والمستخدم والعملية والتطبيق، وأعمدة للوقت والعملية والاستعلام والمدة والصفوف وقاعدة البيانات والمستخدم والكتل المقروءة

الأعمدة الافتراضية هي الوقت، والعملية، والاستعلام، والمدة، والصفوف، وقاعدة البيانات، والمستخدم، والكتل المقروءة. افتح منتقي الأعمدة لعرض التطبيق وBlks hit وCPU user وCPU sys وPID. يقبل الجدول فلاتر قاعدة البيانات والمستخدم والعملية والتطبيق نفسها كما في جدول الأنماط، ويمكن فرزه حسب الوقت، والمدة، والصفوف، والكتل المقروءة، ووقت CPU.

انقر على أي صف لفتح لوحة التفاصيل الجانبية نفسها كما في جدول الأنماط، على أن تكون مقتصرة على نمط عملية التنفيذ المفردة تلك.

اللوحة الجانبية للتفاصيل

انقر على أي صف في جدول الأنماط أو الاستعلامات الأخيرة، فتُفتح اللوحة الجانبية لتفاصيل الاستعلام على اليمين. تعرض اللوحة جميع عمليات تنفيذ هذا النمط ضمن النطاق الزمني المحدد، وتُجمِّع العدادات التي توضّح سبب بطئه.

تتألف اللوحة من عرض واحد قابل للتمرير يضم خمسة أقسام:

  • نمط الاستعلام — ‏SQL المُطبَّع مع استبدال القيم الحرفية بـ $1، $2، … وزر للنسخ إلى الحافظة.
  • الاستخدام المُجمَّع للموارد — شبكة من 13 بطاقة إحصائية تغطي إجمالي الاستدعاءات، ومتوسط/‏P95/‏P99/الحد الأقصى لزمن الاستجابة، وإجمالي زمن التشغيل، والصفوف المُعادة، ونسبة إصابة الذاكرة المؤقتة، والكتل المقروءة، والكتل المخدَّمة من الذاكرة المؤقتة، ووقت CPU، وبايتات WAL، والأخطاء.
  • سياق الاستعلام — قاعدة البيانات، والمستخدم، والعملية، والتطبيق الذي صدر عنه هذا النمط.
  • التنفيذات البارزة — الأخطاء، وعمليات التشغيل البطيئة بشكل غير معتاد، والتنفيذات ذات النتائج الكبيرة، وتظهر قبل القائمة الكاملة للتنفيذات الأخيرة.
  • التنفيذات الأخيرة — عمليات التشغيل الفردية للنمط نفسه، مع عدادات لكل تنفيذ.
اللوحة الجانبية لتفاصيل الاستعلام تعرض مقطع شيفرة نمط الاستعلام وشبكة الاستخدام المُجمَّع للموارد التي تضم ثلاث عشرة بطاقة إحصائية، بما في ذلك إجمالي الاستدعاءات، والنسب المئوية لزمن الاستجابة، وإجمالي زمن التشغيل، والصفوف المُعادة، ونسبة إصابة الذاكرة المؤقتة، والكتل المقروءة، والكتل المخدَّمة من الذاكرة المؤقتة، ووقت CPU، وبايتات WAL، والأخطاء
متابعة اللوحة الجانبية لتفاصيل الاستعلام، وتعرض قسم سياق الاستعلام الذي يتضمن قاعدة البيانات والمستخدم والعملية والتطبيق، وبطاقة للتنفيذات الأخيرة تتضمن الطابع الزمني، وحالة OK، ودور الخادم، ومعرّف المضيف، وعدادات لكل تنفيذ للمدة، والصفوف، وإصابات ذاكرة التخزين المؤقت، وCPU، والكتل المشتركة المقروءة، والكتل المشتركة المخدَّمة من الذاكرة المؤقتة

العدادات لكل تنفيذ

وسّع تنفيذًا حديثًا وستحصل على العدادات التي توضّح بدقة أين استُهلك الوقت:

  • الكتل المشتركة — يظهر دائمًا كلٌّ من القراءة والإصابات؛ وتظهر الكتابة والتعليم كمتّسخة عندما لا تكون القيم صفرية.
  • عمليات الكتل المحلية والمؤقتة — تشير قيم عمليات الكتل المؤقتة غير الصفرية إلى أن عملية sort أو hash قد نُقلت إلى القرص.
  • وقت القراءة / الكتابة — وقت I/O، منفصلًا عن وقت CPU.
  • وقت CPU — وقت المستخدم ووقت النظام، كلٌّ على حدة.
  • العاملون المتوازيون — العدد المخطَّط له مقابل العدد الذي أُطلق فعليًا.
  • JIT — إجمالي وقت تجميع JIT وعدد الدوال.
  • WAL — عدد البايتات وعدد السجلات.

كل ما تحتاج إليه لتشخيص نمط بطيء موجود في مكان واحد، وعلى شاشة واحدة.

واجهة برمجة تطبيقات Query insights

تتوفر بيانات القياس عن بُعد نفسها أيضًا برمجيًا من خلال ClickHouse Cloud OpenAPI. ويقابل جدول الأنماط البطيئة نقطة النهاية list slow query patterns ، كما تقابل اللوحة الجانبية للتفاصيل نقطة النهاية get slow query pattern التي تُرجع المقاييس المجمّعة لنمط واحد، إلى جانب عملية التنفيذ الأخيرة.

آلية العمل

تُطبَّع في Postgres قبل الإرسال عبر الشبكة

يعترض pg_stat_ch مرحلة التحليل النحوي والدلالي، ويستبدل كل قيمة حرفية بعنصر نائب ($1, $2, …)، ويخزّن النمط الناتج مؤقتًا في ذاكرة LRU خاصة بكل backend ومفهرسة بواسطة queryid. وعندما ينتهي المنفّذ من تنفيذ التعليمة، يكون ذلك النمط المخزَّن مؤقتًا هو ما يُرفق بالحدث. ولا تغادر التعليمة الفعلية مع القيم قاعدة البيانات مطلقًا.

من دون إعاقة قاعدة البيانات

يضيف المُنتِج عبئًا إضافيًا يقارب 3% لكل تعليمة SQL. ويستخدم مسار الإدراج في الطابور قفل try-lock غير حاجب على مخزن مؤقت دائري في الذاكرة المشتركة. وعند ارتفاع الحمل، يُسقِط الامتداد الأحداث ويعتمد على عدّاد بدلًا من فرض ضغط رجعي على Postgres.

أحداث أولية، لا بيانات مجمّعة

يُصدر pg_stat_ch حدثًا أوليًا واحدًا لكل تعليمة مُنفَّذة (على المستوى الأعلى والمتداخلة)، مع مراعاة أخذ العينات. وكل مئين وترتيب وتفصيل في واجهة المستخدم هو استعلام في ClickHouse على تدفّق الأحداث نفسه.

نفس المحرك الذي يستخدمه عملاؤنا

الواجهة الخلفية لـ Insights هي ClickHouse Cloud. تنتج بيانات القياس عن بُعد لكل استعلام من مثيل Postgres كثيف الحمل ملايين الصفوف يوميًا؛ ويجعل الضغط العمودي الاحتفاظ بأشهر من تفاصيل كل تنفيذ منخفض التكلفة، كما تُبقي عمليات التجميع التي تستغرق أقل من ثانية عبر مليارات الصفوف واجهة المستخدم تفاعلية أثناء تحليل بيانات أسبوع أو شهر.

مفتوح المصدر

pg_stat_ch مرخّص بموجب Apache 2.0. شغِّله مع أي Postgres، وأرسل البيانات إلى أي ClickHouse. الكود المصدري وتقارير المشكلات متاحة على github.com/clickhouse/pg_stat_ch.

Navigation