ディスコースプロメテウス

||||
-|-|
:discourse2: | 概要 | Discourse Prometheus は、Discourse 用の公式 Prometheus エクスポートラーです。
:hammer_and_wrench: | リポジトリリンク | https://github.com/discourse/discourse-prometheus
:open_book: | インストールガイド | Discourse でのプラグインのインストール方法

Discourse Prometheus プラグインは、Discourse から主要なメトリクスを収集し、/metrics パスで公開することで、Prometheus がそれらを消費できるようにします。

これらのメトリクスを使用して、以下のようなさまざまなデータをグラフ化できます:

トピック/カテゴリ/トップページおよび最新ページの中央値および 99 パーセンタイル時間。SQL/Redis とアプリケーション間の実行時間の内訳。

ページビューの追跡

エラーの追跡

Ruby オブジェクトスペースの追跡(割り当て率、ヒープなどを含む)。

ホストされた V8 のメモリ統計

スケジュール済みジョブキューと Sidekiq ジョブの実行時間と実行状況。

利用可能なメトリクスの完全なリストを確認するには、プラグインをインストールし、管理者として SITENAME/metrics にアクセスしてください。

デフォルトでは、metrics ルートは管理者とプライベート IP に対して許可されています。


Discourse Prometheus は、フォークされたすべての Unicorn プロセスのデータを統合し、単一のエンドポイントで一貫したメトリクスとして提示するのに十分なスマートさを持っています。私たちは社内のサイトを追跡するためにこれを使用しています。

サンプルダッシュボード:


Discourse のグローバル設定 prometheus_trusted_ip_allowlist_regex(環境変数: DISCOURSE_PROMETHEUS_TRUSTED_IP_ALLOWLIST_REGEX)を使用すると、Prometheus の信頼できる IP アドレスを設定できます。この設定は、高度な IP 範囲を設定するために正規表現を受け入れます。Prometheus の IP アドレスが動的である場合に便利です。

「いいね!」 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)

Kubernetes 上で Discourse を管理しており、複数の app および sidekiq ポッドで実行しています。このプラグインに関して、いくつか質問があります。

  1. このプラグインは、すべての app ポッドからメトリクスを収集しますか?単一のインスタンス/ポッドで実行されている 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 を使用しています。

app.ymlDISCOURSE_PROMETHEUS_TRUSTED_IP_ALLOWIST_REGEX を設定する必要があります。

「いいね!」 1

統合が機能しなくなりました。Grafana のダッシュボードに何も表示されません。/metrics は何かを返しますが、それ以降は何も機能しません。

以下のようなエラーが多く発生しています。

Started GET "/metrics/api/v1/label/instance/values?limit=40000&start=1760980620&end=1760982480&match[]=discourse_page_views" for 16.63.57.20 at 2025-10-20 17:47:07 +0000
Started GET "/metrics/api/v1/label/job/values?limit=40000&start=1760980620&end=1760982480&match[]=discourse_page_views%7B%7D" for 16.63.57.20 at 2025-10-20 17:47:07 +0000
  Rendered layout layouts/no_ember.html.erb (Duration: 21.1ms | GC: 0.0ms)
  Rendered layout layouts/no_ember.html.erb (Duration: 26.0ms | GC: 0.0ms)
Started POST "/metrics/api/v1/query_range" for 16.63.57.20 at 2025-10-20 17:47:07 +0000
Started POST "/metrics/api/v1/query_range" for 16.63.57.20 at 2025-10-20 17:47:07 +0000
Started POST "/metrics/api/v1/query_range" for 16.63.57.20 at 2025-10-20 17:47:07 +0000
Started POST "/metrics/api/v1/query_range" for 16.63.57.20 at 2025-10-20 17:47:07 +0000
Started POST "/metrics/api/v1/query_range" for 16.63.57.20 at 2025-10-20 17:47:07 +0000
  Rendered layout layouts/no_ember.html.erb (Duration: 19.8ms | GC: 0.0ms)
  Rendered layout layouts/no_ember.html.erb (Duration: 28.2ms | GC: 0.0ms)
  Rendered layout layouts/no_ember.html.erb (Duration: 34.6ms | GC: 0.0ms)
  Rendered layout layouts/no_ember.html.erb (Duration: 44.4ms | GC: 0.0ms)
  Rendered layout layouts/no_ember.html.erb (Duration: 41.7ms | GC: 0.0ms)
Started POST "/metrics/api/v1/query_range" for 16.63.57.20 at 2025-10-20 17:47:07 +0000
Started POST "/metrics/api/v1/query_range" for 16.63.57.20 at 2025-10-20 17:47:08 +0000
Started POST "/metrics/api/v1/query_range" for 16.63.57.20 at 2025-10-20 17:47:08 +0000
Started POST "/metrics/api/v1/query_range" for 16.63.57.20 at 2025-10-20 17:47:08 +0000
  Rendered layout layouts/no_ember.html.erb (Duration: 23.6ms | GC: 0.0ms)
  Rendered layout layouts/no_ember.html.erb (Duration: 24.9ms | GC: 0.0ms)
  Rendered layout layouts/no_ember.html.erb (Duration: 19.9ms | GC: 0.0ms)
  Rendered layout layouts/no_ember.html.erb (Duration: 21.6ms | GC: 0.0ms)
Started GET "/metrics/api/v1/label/job/values?limit=40000&start=1760980620&end=1760982480&match[]=discourse_page_views%7B%7D" for 16.63.57.20 at 2025-10-20 17:47:37 +0000
Started GET "/metrics/api/v1/label/instance/values?limit=40000&start=1760980620&end=1760982480&match[]=discourse_page_views" for 16.63.57.20 at 2025-10-20 17:47:37 +0000
  Rendered layout layouts/no_ember.html.erb (Duration: 19.5ms | GC: 0.0ms)
  Rendered layout layouts/no_ember.html.erb (Duration: 20.9ms | GC: 0.0ms)
Started POST "/metrics/api/v1/query_range" for 16.63.57.20 at 2025-10-20 17:47:37 +0000
Started POST "/metrics/api/v1/query_range" for 16.63.57.20 at 2025-10-20 17:47:37 +0000
Started POST "/metrics/api/v1/query_range" for 16.63.57.20 at 2025-10-20 17:47:37 +0000
Started POST "/metrics/api/v1/query_range" for 16.63.57.20 at 2025-10-20 17:47:37 +0000
Started POST "/metrics/api/v1/query_range" for 16.63.57.20 at 2025-10-20 17:47:37 +0000
  Rendered layout layouts/no_ember.html.erb (Duration: 22.4ms | GC: 0.0ms)
  Rendered layout layouts/no_ember.html.erb (Duration: 22.0ms | GC: 0.0ms)
  Rendered layout layouts/no_ember.html.erb (Duration: 40.0ms | GC: 0.0ms)
  Rendered layout layouts/no_ember.html.erb (Duration: 37.0ms | GC: 0.0ms)
  Rendered layout layouts/no_ember.html.erb (Duration: 24.8ms | GC: 1.6ms)

解決策が見つかったので、こちらにも投稿します Discourse Prometheus 404 metrics for Grafana - #2 by DevTeVe