Grafana용 Discourse Prometheus 404 메트릭

드디어 이 문제를 해결했습니다. 제 문제는 다음과 같았습니다:

  1. 제 인스턴스가 https로 리다이렉트되고 있습니다.
  2. alloy의 기본 grafana 설정이 localhost:80에 접근하려고 하고 있었습니다. (alloy가 무엇인지 모른다면, grafana가 실행하여 /metrics를 읽어 grafana에 노출하는 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)$