Discourse Prometheus

||||
-|-|
:discourse2: | الملخص | Discourse Prometheus هو المُصدِّر الرسمي لـ Prometheus المخصّص لـ Discourse
:hammer_and_wrench: | رابط المستودع | https://github.com/discourse/discourse-prometheus
:open_book: | دليل التثبيت | كيفية تثبيت الإضافات في Discourse

تجمع إضافة Discourse Prometheus المقاييس الرئيسية من Discourse وتكشف عنها في المسار /metrics لكي تتمكن Prometheus من استهلاكها.

يمكن استخدام هذه المقاييس لرسم بياني لمختلف البيانات مثل:

الزمن الوسيط (Median) والمئين التاسع والتسعون (99th percentile) لصفحات المواضيع/الفئات/الأعلى والأحدث. تقسيم زمن التنفيذ بين SQL/Redis والتطبيق (App).

تتبع عرض الصفحات

تتبع الأخطاء

تتبع مساحة كائنات Ruby بما في ذلك معدل التخصيص، والكتل (heaps)، وغيرها.

إحصائيات ذاكرة V8 المستضافة

طابور المهام المجدولة ومدد تنفيذ مهام Sidekiq وتنفيذها.

لمشاهدة قائمة كاملة بالمقاييس المتاحة، قم بتثبيت الإضافة وقم بزيارة SITENAME/metrics بصفتك مشرفاً.

منذ البداية، نسمح للمسار metrics للمشرفين وعناوين IP الخاصة.


Discourse Prometheus ذكي بما يكفي لتجميع البيانات لجميع عمليات unicorn الشوكة (forked) وعرضها كمقاييس متماسكة في نقطة نهاية واحدة. نستخدمها داخلياً لمتابعة مواقعنا.

لوحة معلومات نموذجية في:


الإعداد العالمي لـ Discourse المسمى prometheus_trusted_ip_allowlist_regex (env: DISCOURSE_PROMETHEUS_TRUSTED_IP_ALLOWLIST_REGEX) يسمح بتعيين عناوين IP الموثوقة لـ Prometheus. يقبل الإعداد التعبير النمطي (regular expression) لتعيين نطاقات IP متقدمة. هذا مفيد في الحالات التي يكون فيها عنوان IP لـ Prometheus ديناميكياً.

51 إعجابًا
Install Prometheus plugin + Prometheus on your server
Add more metrics to Discourse Prometheus
Prometheus exporter problem with SecureRandom (multisite?)
Webhook for Discourse Uptime Monitoring?
Best configurations for speeding up standalone discourse
Huge increase in Redis use after changing hosts
Prometheus scrape job cannot reach the metrics
Prometheus pluging Cross-Origin Request
How to avoid upstream timeouts?
Staging instance on same Production instance Docker Server?
A lot of CPU cores or fast cores?
Memory creep in last couple of updates
What's the correct REGEX for the allowlist in app.yml?
Tracking discourse usage by hour?
Discourse disk space limits per user?
Admin Reporting & Analysis: Incremental Changes
Out of memory errors with custom plugin
Postgres connection error on 'bundle exec rails c'
Getting extreme load warning while server resources are not being used
Real-time updating of topics freezes under high activity
Docker image update: Redis 6 and 25% smaller image size
Real-time updating of topics freezes under high activity
Real-time updating of topics freezes under high activity
What happens next?
High load due to peak anonymous sessions, increase unicorn workers?
Opinions on AWS vs DO Page Speed / Performance
Can I ignore some user agents?
Extreme Load Error After Upgrading to 3.3.0.beta3-dev Yesterday (on Prem)
Multiple Discourse Instances with WordPress, Ghost and subfolder support
Display community health stats on lemon (lemon = RPi + Pimoroni Unicorn Hat HD)

أقوم حاليًا بإدارة discourse على Kubernetes، وأعمل على العديد من جرابات التطبيق و sidekiq. لديّ بعض الأسئلة بخصوص المكون الإضافي:

  1. هل يجمع المكون الإضافي المقاييس من جميع جرابات التطبيق؟ أفترض أنه يجمع المقاييس لعمليات unicorn التي تعمل على مثيل/جراب واحد.
  2. أنا مهتم بالسبب وراء ملاحظة التوقيتات لبعض إجراءات المتحكم فقط. هذا الاستعلام متعلق بالكود الموجود في discourse-prometheus/lib/collector.rb at main · discourse/discourse-prometheus · GitHub.

مرحباً،

أين يمكنني العثور على الإعداد prometheus_trusted_ip_allowlist_regex؟ :crying_cat_face:

أنا أستخدم Discourse v3.4.0.beta3-dev

يجب عليك تعيين DISCOURSE_PROMETHEUS_TRUSTED_IP_ALLOWIST_REGEX في app.yml.

إعجاب واحد (1)

لست متأكدًا مما يحدث ولكن هذه التكاملات لم تعد تعمل. لم أتمكن من عرض أي شيء في لوحة المعلومات في Grafana… يعرض /metrics شيئًا ما ولكن أي شيء بعد ذلك لا يعمل حقًا.

العديد من الأخطاء مثل الخطأ أدناه

بدأت GET "/metrics/api/v1/label/instance/values?limit=40000&start=1760980620&end=1760982480&match[]=discourse_page_views" من 16.63.57.20 في 2025-10-20 17:47:07 +0000
بدأت GET "/metrics/api/v1/label/job/values?limit=40000&start=1760980620&end=1760982480&match[]=discourse_page_views%7B%7D" من 16.63.57.20 في 2025-10-20 17:47:07 +0000
  تم عرض التخطيط layouts/no_ember.html.erb (المدة: 21.1 مللي ثانية | GC: 0.0 مللي ثانية)
  تم عرض التخطيط layouts/no_ember.html.erb (المدة: 26.0 مللي ثانية | GC: 0.0 مللي ثانية)
بدأت POST "/metrics/api/v1/query_range" من 16.63.57.20 في 2025-10-20 17:47:07 +0000
بدأت POST "/metrics/api/v1/query_range" من 16.63.57.20 في 2025-10-20 17:47:07 +0000
بدأت POST "/metrics/api/v1/query_range" من 16.63.57.20 في 2025-10-20 17:47:07 +0000
بدأت POST "/metrics/api/v1/query_range" من 16.63.57.20 في 2025-10-20 17:47:07 +0000
بدأت POST "/metrics/api/v1/query_range" من 16.63.57.20 في 2025-10-20 17:47:07 +0000
  تم عرض التخطيط layouts/no_ember.html.erb (المدة: 19.8 مللي ثانية | GC: 0.0 مللي ثانية)
  تم عرض التخطيط layouts/no_ember.html.erb (المدة: 28.2 مللي ثانية | GC: 0.0 مللي ثانية)
  تم عرض التخطيط layouts/no_ember.html.erb (المدة: 34.6 مللي ثانية | GC: 0.0 مللي ثانية)
  تم عرض التخطيط layouts/no_ember.html.erb (المدة: 44.4 مللي ثانية | GC: 0.0 مللي ثانية)
  تم عرض التخطيط layouts/no_ember.html.erb (المدة: 41.7 مللي ثانية | GC: 0.0 مللي ثانية)
بدأت POST "/metrics/api/v1/query_range" من 16.63.57.20 في 2025-10-20 17:47:07 +0000
بدأت POST "/metrics/api/v1/query_range" من 16.63.57.20 في 2025-10-20 17:47:08 +0000
بدأت POST "/metrics/api/v1/query_range" من 16.63.57.20 في 2025-10-20 17:47:08 +0000
بدأت POST "/metrics/api/v1/query_range" من 16.63.57.20 في 2025-10-20 17:47:08 +0000
  تم عرض التخطيط layouts/no_ember.html.erb (المدة: 23.6 مللي ثانية | GC: 0.0 مللي ثانية)
  تم عرض التخطيط layouts/no_ember.html.erb (المدة: 24.9 مللي ثانية | GC: 0.0 مللي ثانية)
  تم عرض التخطيط layouts/no_ember.html.erb (المدة: 19.9 مللي ثانية | GC: 0.0 مللي ثانية)
  تم عرض التخطيط layouts/no_ember.html.erb (المدة: 21.6 مللي ثانية | GC: 0.0 مللي ثانية)
بدأت GET "/metrics/api/v1/label/job/values?limit=40000&start=1760980620&end=1760982480&match[]=discourse_page_views%7B%7D" من 16.63.57.20 في 2025-10-20 17:47:37 +0000
بدأت GET "/metrics/api/v1/label/instance/values?limit=40000&start=1760980620&end=1760982480&match[]=discourse_page_views" من 16.63.57.20 في 2025-10-20 17:47:37 +0000
  تم عرض التخطيط layouts/no_ember.html.erb (المدة: 19.5 مللي ثانية | GC: 0.0 مللي ثانية)
  تم عرض التخطيط layouts/no_ember.html.erb (المدة: 20.9 مللي ثانية | GC: 0.0 مللي ثانية)
بدأت POST "/metrics/api/v1/query_range" من 16.63.57.20 في 2025-10-20 17:47:37 +0000
بدأت POST "/metrics/api/v1/query_range" من 16.63.57.20 في 2025-10-20 17:47:37 +0000
بدأت POST "/metrics/api/v1/query_range" من 16.63.57.20 في 2025-10-20 17:47:37 +0000
بدأت POST "/metrics/api/v1/query_range" من 16.63.57.20 في 2025-10-20 17:47:37 +0000
بدأت POST "/metrics/api/v1/query_range" من 16.63.57.20 في 2025-10-20 17:47:37 +0000
  تم عرض التخطيط layouts/no_ember.html.erb (المدة: 22.4 مللي ثانية | GC: 0.0 مللي ثانية)
  تم عرض التخطيط layouts/no_ember.html.erb (المدة: 22.0 مللي ثانية | GC: 0.0 مللي ثانية)
  تم عرض التخطيط layouts/no_ember.html.erb (المدة: 40.0 مللي ثانية | GC: 0.0 مللي ثانية)
  تم عرض التخطيط layouts/no_ember.html.erb (المدة: 37.0 مللي ثانية | GC: 0.0 مللي ثانية)
  تم عرض التخطيط layouts/no_ember.html.erb (المدة: 24.8 مللي ثانية | GC: 1.6 مللي ثانية)

أعيد نشر هذا لأنني وجدت حلاً نجح معي Discourse Prometheus 404 metrics for Grafana - #2 by DevTeVe