Discourse Prometheus 404 メトリクスを Grafana で表示

これで動作するようになりました。私の問題は次のとおりでした。

  1. インスタンスが https にリダイレクトされる
  2. alloy のデフォルトの Grafana 設定が localhost:80 に接続しようとしていた(ご存知ない場合、alloy は Grafana がスピンアップし、Grafana に公開するために /metrics を読み取る Prometheus ライクなサーバーです)

これは、誰かの役に立つかもしれない私の設定の外観です。

... alloy をインストールするときに自動生成される部分を削除しました ...

discovery.relabel "metrics_integrations_integrations_discourse" {
	targets = [{
		__address__ = "your.domain.com", # <--- ここを変更しました
		__scheme__  = "https", # <--- ここを変更しました
	}]

	rule {
		target_label = "instance"
		replacement  = constants.hostname
	}
}

prometheus.scrape "metrics_integrations_integrations_discourse" {
	targets    = discovery.relabel.metrics_integrations_integrations_discourse.output
	forward_to = [prometheus.relabel.metrics_integrations_integrations_discourse.receiver]
	job_name   = "integrations/discourse"

	tls_config {
		insecure_skip_verify = true # <--- ここを変更しました
	}
}

prometheus.relabel "metrics_integrations_integrations_discourse" {
	forward_to = [prometheus.remote_write.metrics_service.receiver]

	rule {
		source_labels = ["__name__"]
		regex         = "up|discourse_active_app_reqs|discourse_http_duration_seconds|discourse_http_requests|discourse_page_views|discourse_queued_app_reqs|discourse_rss|discourse_scheduled_job_count|discourse_scheduled_job_duration_seconds|discourse_sidekiq_job_count|discourse_sidekiq_job_duration_seconds|discourse_sidekiq_jobs_enqueued|discourse_v8_used_heap_size"
		action        = "keep"
	}
}

これで Grafana はデータを受信し始めました…

DISCOURSE_PROMETHEUS_TRUSTED_IP_ALLOWLIST_REGEX を設定することを忘れないでください。

Grafana の IP を検索してすべて追加しましたが、長くて一行になってしまいました。もっと良い、または賢い方法があるかもしれませんが、見つけられませんでした(笑)。

複数の IP を追加する例を次に示します。

DISCOURSE_PROMETHEUS_TRUSTED_IP_ALLOWLIST_REGEX: "^(localhost|127\\.0\\.0\\.1|::1)$"