Prometheus: Trikčių šalinimas
Klaidos, su kuriomis galite susidurti naudojant Prometheus
👋 Sveiki atvykę į Stackhero dokumentaciją!
Stackhero siūlo paruoštą naudoti Prometheus cloud sprendimą, kuris suteikia daugybę privalumų, įskaitant:
- Įtrauktas
Alert Manager, skirtas siųsti įspėjimus įSlack,Mattermost,PagerDutyir kt.- Skirtas el. pašto serveris, skirtas siųsti neribotus el. pašto įspėjimus.
BlackboxskirtasHTTP,ICMP,TCPir kitų protokolų tikrinimui.- Lengvas konfigūravimas su internetiniu konfigūracijos failų redaktoriumi.
- Paprasti atnaujinimai vienu paspaudimu.
- Optimali veikla ir tvirta sauga, užtikrinama privačios ir dedikuotos VM.
Taupykite laiką ir supaprastinkite savo gyvenimą: tereikia 5 minučių, kad išbandytumėte Stackhero Prometheus cloud hosting sprendimą!
Klaidos sprendimas "received unsupported Content-Type "..." and no fallback_scrape_protocol specified for target"
Su Prometheus v3 išleidimu, dabar būtina, kad tiksliniai serveriai įtrauktų Content-Type antraštę savo atsakymuose, kad informuotų Prometheus apie atsakyme esančių metrikų protokolą. Tai veikia tokius įrankius kaip Node Exporter, kurie dabar turi atsakyti į Prometheus HTTP užklausas su tinkama Content-Type antrašte. Daugiau informacijos galite rasti Prometheus dokumentacijoje.
Jei šis reikalavimas nėra įvykdytas, galite susidurti su tokia klaidos žinute:
received unsupported Content-Type "application/octet-stream" and no fallback_scrape_protocol specified for target
Štai keletas būdų, kaip galite išspręsti šią problemą:
1. Atnaujinkite savo tikslinius serverius
Jei dirbate su tokiu tiksliniu serveriu kaip Node Exporter, apsvarstykite galimybę jį atnaujinti į naujausią versiją. Naujausi atnaujinimai paprastai užtikrina, kad Content-Type antraštė būtų tinkamai apibrėžta, kas turėtų išspręsti klaidą Prometheus.
2. Nustatykite Content-Type antraštę savo tiksliniams serveriams
Jei turite pritaikytus tikslinius serverius, tokius kaip API maršrutas, kurį sukūrėte Prometheus metrikoms grąžinti, galite tiesiogiai nustatyti Content-Type antraštę atsakyme.
Pavyzdžiui, jei naudojate HapiJS, vietoj to, kad grąžintumėte savo metrikas taip:
return metrics
Galite nustatyti Content-Type antraštę taip:
return h.response(metrics).type('text/plain;version=0.0.4');
Štai palaikomos Content-Type antraštės, atsižvelgiant į metrikų protokolą, kurį grąžinate:
- PrometheusProto:
application/vnd.google.protobuf;proto=io.prometheus.client.MetricFamily;encoding=delimited - PrometheusText 0.0.4:
text/plain;version=0.0.4 - PrometheusText 1.0.0:
text/plain;version=1.0.0;escaping=allow-utf-8 - OpenMetricsText 0.0.1:
application/openmetrics-text;version=0.0.1 - OpenMetricsText 1.0.0:
application/openmetrics-text;version=1.0.0
3. Nustatykite atsarginį protokolą
Taip pat galite nustatyti atsarginį protokolą savo prometheus.yml konfigūracijos faile. Šis protokolas bus naudojamas, jei tikslinis serveris nenurodo Content-Type antraštės.
Štai pavyzdys:
- job_name: "my-job"
# [...]
fallback_scrape_protocol: PrometheusText0.0.4
Palaikomos vertės yra PrometheusProto, PrometheusText0.0.4, PrometheusText1.0.0, OpenMetricsText0.0.1, ir OpenMetricsText1.0.0.