Prometheus: Problemen oplossen
Fouten die u kunt tegenkomen met Prometheus
👋 Welkom bij de Stackhero-documentatie!
Stackhero biedt een volledig beheerd Prometheus cloud platform, ontworpen voor betrouwbaarheid en eenvoud:
Alert Manageris geïntegreerd, zodat u waarschuwingen direct kunt doorsturen naarSlack,Mattermost,PagerDutyen andere populaire bestemmingen.- Een dedicated mailserver stelt u in staat om onbeperkt e-mailwaarschuwingen te versturen zonder extra configuratie.
Blackboxis inbegrepen, waarmee uHTTP,ICMP,TCPen andere protocollen kunt monitoren voor uitgebreide controle.- Configureer uw instance snel via de online configuratiebestand-editor. Handmatig YAML beheren is niet nodig.
- Voer updates uit met één klik. Stackhero verzorgt het upgradeproces voor u, waardoor downtime en handmatige acties tot een minimum worden beperkt.
- Hoge prestaties en sterke beveiliging zijn standaard, dankzij uw eigen privé en dedicated infrastructuur.
Binnen ongeveer 5 minuten operationeel. Stackhero regelt de installatie, zodat u zich kunt richten op monitoring in plaats van onderhoud. Probeer Prometheus cloud hosting op Stackhero en optimaliseer uw monitoring- en alertingprocessen.
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.