Prometheus: Problemen oplossen
Fouten die u kunt tegenkomen met Prometheus
👋 Welkom bij de Stackhero-documentatie!
Stackhero biedt een kant-en-klare Prometheus cloud oplossing die tal van voordelen biedt, waaronder:
Alert Managerinbegrepen om meldingen te sturen naarSlack,Mattermost,PagerDuty, enz.- Toegewijde e-mailserver om onbeperkte e-mailmeldingen te verzenden.
BlackboxomHTTP,ICMP,TCPen meer te testen.- Eenvoudige configuratie met online configuratiebestand editor.
- Moeiteloze updates met slechts één klik.
- Optimale prestaties en robuuste beveiliging aangedreven door een privé en toegewijde VM.
Bespaar tijd en vereenvoudig uw leven: het kost slechts 5 minuten om de Prometheus cloud hosting oplossing van Stackhero te proberen!
Het oplossen van de fout "received unsupported Content-Type "..." and no fallback_scrape_protocol specified for target"
Met de release van Prometheus v3 is het nu noodzakelijk dat doelservers de Content-Type header in hun antwoorden opnemen om Prometheus te informeren over het protocol van de meegeleverde statistieken. Dit beïnvloedt tools zoals Node Exporter, die nu moeten reageren op HTTP-verzoeken van Prometheus met de juiste Content-Type. Voor meer details kunt u de Prometheus documentatie raadplegen.
Als niet aan deze eis wordt voldaan, kunt u een foutmelding tegenkomen zoals deze:
received unsupported Content-Type "application/octet-stream" and no fallback_scrape_protocol specified for target
Hier zijn enkele manieren om dit probleem op te lossen:
1. Update uw doelservers
Als u werkt met een doelserver zoals Node Exporter, overweeg dan om deze bij te werken naar de nieuwste versie. Recente updates zorgen er doorgaans voor dat de Content-Type header correct is gedefinieerd, wat de fout in Prometheus zou moeten oplossen.
2. Definieer de Content-Type header voor uw doelservers
Voor aangepaste doelservers, zoals een API-route die u hebt ontwikkeld om Prometheus-statistieken te retourneren, kunt u de Content-Type header direct in de respons instellen.
Als u bijvoorbeeld HapiJS gebruikt, in plaats van uw statistieken als volgt te retourneren:
return metrics
Kunt u de Content-Type header als volgt instellen:
return h.response(metrics).type('text/plain;version=0.0.4');
Hier zijn de ondersteunde Content-Type headers op basis van het protocol van de statistieken die u retourneert:
- 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. Definieer een fallback-protocol
U kunt ook een fallback-protocol definiëren in uw prometheus.yml configuratiebestand. Dit protocol wordt gebruikt als de doelserver geen Content-Type header specificeert.
Hier is een voorbeeld:
- job_name: "my-job"
# [...]
fallback_scrape_protocol: PrometheusText0.0.4
Ondersteunde waarden zijn PrometheusProto, PrometheusText0.0.4, PrometheusText1.0.0, OpenMetricsText0.0.1, en OpenMetricsText1.0.0.