Prometheus: Trikčių šalinimas
Klaidos, su kuriomis galite susidurti naudojant Prometheus
👋 Sveiki atvykę į Stackhero dokumentaciją!
Stackhero siūlo visiškai valdomą Prometheus cloud platformą, sukurtą patikimumui ir paprastumui:
Alert Manageryra integruotas, todėl galite nukreipti įspėjimus tiesiai įSlack,Mattermost,PagerDutyir kitas populiarias sistemas.- Dedikuotas el. pašto serveris leidžia siųsti neribotą kiekį el. pašto įspėjimų be papildomo konfigūravimo.
- Įtraukta
Blackboxfunkcija, leidžianti tikrintiHTTP,ICMP,TCPir kitus protokolus išsamiai stebėsenai.- Greitai konfigūruokite savo instanciją naudodamiesi internetiniu konfigūracijos failo redaktoriumi. Nereikia rankiniu būdu tvarkyti YAML.
- Atnaujinimus pritaikykite vienu paspaudimu. Stackhero pasirūpina visais atnaujinimo procesais, sumažindama prastovas ir rankinį įsikišimą.
- Aukštas našumas ir stipri sauga užtikrinami dėl privačios, dedikuotos infrastruktūros.
Pradėkite naudotis vos per 5 minutes. Stackhero pasirūpina diegimu, kad galėtumėte susitelkti į stebėseną, o ne priežiūrą. Išbandykite Prometheus cloud hosting Stackhero platformoje ir supaprastinkite savo stebėsenos bei įspėjimų procesus.
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.