تقرير لوحة التحكم - مشاهدات الصفحة الموحدة مع كشف المتصفح

هذا هو إصدار SQL من تقرير لوحة المعلومات لعرض الصفحات المجمعة مع اكتشاف المتصفح.

يوفر تقرير مستكشف البيانات هذا عرضًا لعدد مرات مشاهدة الصفحات اليومية مع اكتشاف المتصفح خلال نطاق تاريخ محدد. يتم تصنيف عدد مرات مشاهدة الصفحات إلى أربعة أنواع:

  • متصفح مسجل الدخول
  • متصفح مجهول
  • زاحف معروف
  • مشاهدات صفحات أخرى
-- [params]
-- date :start_date
-- date :end_date

SELECT
  ar.date::date AS "date",
  SUM(CASE WHEN ar.req_type = 15 THEN count ELSE 0 END) AS "Logged In Browser",
  SUM(CASE WHEN ar.req_type = 13 THEN count ELSE 0 END) AS "Anonymous Browser",
  SUM(CASE WHEN ar.req_type = 6 THEN count ELSE 0 END) AS "Known Crawler",
  SUM(
    CASE WHEN ar.req_type = 8 THEN count
        WHEN ar.req_type = 7 THEN count
        WHEN ar.req_type = 13 THEN -count
        WHEN ar.req_type = 15 THEN -count
        ELSE 0
    END
  ) AS "Other pageviews"
FROM
  application_requests ar
WHERE
  ar.date::date >= :start_date
  AND ar.date <= :end_date
GROUP BY
  ar.date
ORDER BY
  ar.date ASC

شرح استعلام SQL

  • المعلمات:
    • :start_date - تاريخ البدء للتقرير.
    • :end_date - تاريخ الانتهاء للتقرير.
    • تقبل كلتا معلمتي التاريخ تنسيق التاريخ YYYY-MM-DD.
  • عبارة SELECT:
    • ar.date::date AS "date": يحول حقل date إلى نوع التاريخ ويسميه “date”.
    • SUM(CASE WHEN ar.req_type = 15 THEN count ELSE 0 END) AS "Logged In Browser": يجمع الأعداد حيث req_type هو 15، ويسمي النتيجة “Logged In Browser”.
    • SUM(CASE WHEN ar.req_type = 13 THEN count ELSE 0 END) AS "Anonymous Browser": يجمع الأعداد حيث req_type هو 13، ويسمي النتيجة “Anonymous Browser”.
    • SUM(CASE WHEN ar.req_type = 6 THEN count ELSE 0 END) AS "Known Crawler": يجمع الأعداد حيث req_type هو 6، ويسمي النتيجة “Known Crawler”.
    • SUM(CASE WHEN ar.req_type = 8 THEN count WHEN ar.req_type = 7 THEN count WHEN ar.req_type = 13 THEN -count WHEN ar.req_type = 15 THEN -count ELSE 0 END) AS "Other pageviews": يجمع الأعداد لأنواع أخرى من الطلبات، ويضبط الأعداد لـ req_type 13 و 15 عن طريق طرحها، ويسمي النتيجة “Other pageviews”.
  • عبارة FROM:
    • FROM application_requests ar: يحدد جدول application_requests كمصدر للبيانات، ويطلق عليه اسم مستعار ar.
  • عبارة WHERE:
    • ar.date::date >= :start_date AND ar.date <= :end_date: يقوم بتصفية السجلات لتضمين السجلات التي يقع فيها date ضمن النطاق المحدد :start_date و :end_date فقط.
  • عبارة GROUP BY:
    • GROUP BY ar.date: يجمع النتائج حسب حقل date لتجميع الأعداد لكل يوم.
  • عبارة ORDER BY:
    • ORDER BY ar.date ASC: يرتب النتائج بترتيب تصاعدي حسب حقل date.

نتائج

ستوفر نتائج هذا الاستعلام تفصيلاً يوميًا لعدد مرات مشاهدة الصفحات مصنفة حسب نوع المتصفح أو الزاحف. سيحتوي كل صف في مجموعة النتائج على:

  • date: التاريخ المحدد.
  • Logged In Browser: العدد الإجمالي لمشاهدات الصفحات من المستخدمين المسجلين الدخول.
  • Anonymous Browser: العدد الإجمالي لمشاهدات الصفحات من المستخدمين المجهولين.
  • Known Crawler: العدد الإجمالي لمشاهدات الصفحات من الزواحف المعروفة.
  • Other pageviews: العدد الإجمالي لأنواع أخرى من مشاهدات الصفحات.

نتائج مثال

date Logged In Browser Anonymous Browser Known Crawler Other pageviews
2024-05-02 1238 1085 2727 3983
2024-05-03 1039 1068 5718 3958
2024-05-04 572 628 3847 3761
2024-05-05 447 551 2093 3773
إعجابَين (2)

غريب. أحصل على صفر لكلا المتصفحين. يتم احتساب الروبوتات فقط.

هل يظهر تقرير لوحة المعلومات الخاص بـ “طرق عرض الصفحات المجمعة مع اكتشاف المتصفح” الروبوتات فقط؟

تقصد ذلك التجريبي؟ إنه يعمل ويظهر كل شيء بشكل جيد.

تمت إضافة هذا التقرير في https://github.com/discourse/discourse/commit/2f2da7274732cba30d03b6c5c3a4194652cb6783 في 25 أبريل 2024، ولن يعرض نتائج لعروض المتصفح المسجل دخوله أو المتصفح المجهول قبل هذا التاريخ.

إذا كانت النتائج مفقودة لعروض المتصفح المسجل دخوله أو المتصفح المجهول بعد 25 أبريل 2024، فستحتاج إلى تحديث مثيل Discourse الخاص بك إلى أحدث إصدار.

تساءلت لماذا لم يعرض مقتطف SQL طرق عرض المستخدمين، فقط الروبوتات. ثم جربت يونيو. بالإضافة إلى ذلك، نعم، تم ترقية نسختي ثلاث مرات في الأسبوع :winking_face_with_tongue:

(تبًا لوحات المفاتيح الافتراضية هذه… سهلة جدًا لمس الأماكن الخاطئة :smirking_face: :man_facepalming:)

لكنني أعدت البناء بدون مستكشف البيانات وبعد ذلك مباشرة معه، وجاءت الأرقام.

لذلك، سيبقى هذا كحالة أخرى من المنطقة الشفق، أعتقد. هل يمكن أن تكون مشكلة تخزين مؤقت مع SQL ممكنة :flushed_face: