Il job di scrape di Prometheus non riesce a raggiungere le metriche

Ciò che Jay intendeva qui è che devi usare il nome host configurato (DISCOURSE_HOSTNAME nella definizione del tuo file .yml del container) anziché qualsiasi nome host che per caso risolva all’IP corretto.

Questo è deliberato, in modo che tu non possa facilmente fare il reverse proxy di un’istanza pubblica da qualsiasi luogo, e in modo che venga accettato solo il nome host configurato:

$ curl -I https://try.discourse.org/about.json
HTTP/2 200
server: nginx
date: Mon, 15 May 2023 16:25:05 GMT
content-type: application/json; charset=utf-8
[...]

# quanto segue è equivalente alla creazione di un record DNS su
# try.somebogusreverseproxy.com che punta allo stesso indirizzo IP di try.discourse.org,
# e quindi alla richiesta di https://try.somebogusreverseproxy.com/about.json
$ curl -H 'Host: try.somebogusreverseproxy.com' -I https://try.discourse.org/about.json
HTTP/2 404
cache-control: no-cache
content-length: 1427
content-type: text/html
cdck-proxy-id: app-router-tiehunter02.sea1
cdck-proxy-id: app-balancer-tieinterceptor1b.sea1

Al contrario, se provi questo:

curl -H 'Host: YOUR_CONFIGURED_HOSTNAME' -I https://discourse_app/metrics

dovrebbe funzionare, ma è un hack. L’aspettativa è che tu imposti il DNS come richiesto in modo che Discourse possa essere raggiunto al suo nome host configurato in modo trasparente:

curl -I https://YOUR_CONFIGURED_HOSTNAME/metrics

Come farlo dipende molto dai tuoi requisiti, ma l’opzione più semplice è impostare un alias in /etc/hosts da dove provengono le tue richieste HTTP.

3 Mi Piace