Discourse Prometheus 404 指标用于 Grafana

我设法让它工作了。我的问题是:

  1. 我的实例重定向到 https
  2. alloy 的默认 Grafana 配置试图连接到 localhost:80(如果您不知道,alloy 是一个类似 Prometheus 的服务器,Grafana 会启动它并读取 /metrics 以将它们暴露给 Grafana

这是我的配置,以防对任何人有帮助:

... 删除了安装 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)$"