Consegui fazer isso funcionar. Meus problemas foram:
- Minha instância redireciona para
https - A configuração padrão do grafana para
alloyestava tentando alcançar localhost:80 (se você não sabe,alloyé um servidor semelhante ao prometheus que o grafana inicia e lê/metricspara expô-los ao grafana)
Esta é a aparência da minha configuração, caso ajude alguém
... removi a parte que é gerada automaticamente ao instalar o alloy ...
discovery.relabel "metrics_integrations_integrations_discourse" {
targets = [{
__address__ = "your.domain.com", # <--- ESTA É UMA MUDANÇA QUE FIZ
__scheme__ = "https", # <--- ESTA É UMA MUDANÇA QUE FIZ
}]
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 # <--- ESTA É UMA MUDANÇA QUE FIZ
}
}
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"
}
}
Com isso, o grafana começou a receber dados…
Não se esqueça de definir DISCOURSE_PROMETHEUS_TRUSTED_IP_ALLOWLIST_REGEX
Procurei os IPs do grafana e adicionei todos em uma linha longa, pode haver uma maneira melhor ou mais inteligente, mas não consegui encontrar, rsrs
Aqui está um exemplo de como adicionar vários IPs
DISCOURSE_PROMETHEUS_TRUSTED_IP_ALLOWLIST_REGEX: "^(localhost|127\\.0\\.0\\.1|::1)$"