Prometheus: トラブルシューティング
Prometheusで遭遇する可能性のあるエラー
👋 Stackheroドキュメントへようこそ!
Stackheroは、信頼性とシンプルさを重視したフルマネージドのPrometheusクラウドプラットフォームを提供しています:
Alert Managerが標準搭載されており、Slack、Mattermost、PagerDutyなどの主要なサービスへ直接アラートをルーティングできます。- 専用のメールサーバーにより、追加設定なしで無制限のメールアラートを送信可能です。
Blackboxが含まれており、HTTP、ICMP、TCPなど様々なプロトコルの監視が可能です。- オンライン設定ファイルエディタでインスタンスを迅速に設定できます。YAMLを手動で管理する必要はありません。
- ワンクリックでアップデートを適用可能。Stackheroがアップグレードプロセスを自動で管理し、ダウンタイムや手動作業を最小限に抑えます。
- 専用のプライベートインフラストラクチャによる高いパフォーマンスと強固なセキュリティを実現しています。
約5分で導入完了。Stackheroがセットアップを担当するため、運用ではなく監視に集中できます。PrometheusクラウドホスティングをStackheroでぜひお試しください。監視・アラート運用を効率化します。
エラーの解決 "received unsupported Content-Type "..." and no fallback_scrape_protocol specified for target"
Prometheus v3のリリースにより、ターゲットサーバーはレスポンスにContent-Typeヘッダーを含めて、返信に含まれるメトリクスのプロトコルをPrometheusに通知する必要があります。これはNode Exporterのようなツールに影響し、適切なContent-TypeでPrometheusのHTTPリクエストに応答する必要があります。詳細については、Prometheusのドキュメントを確認してください。
この要件が満たされない場合、次のようなエラーメッセージが表示されることがあります。
received unsupported Content-Type "application/octet-stream" and no fallback_scrape_protocol specified for target
この問題を解決する方法はいくつかあります。
1. ターゲットサーバーを更新する
Node Exporterのようなターゲットサーバーを使用している場合、最新バージョンに更新することを検討してください。最近の更新では通常、Content-Typeヘッダーが正しく定義されており、Prometheusのエラーを解決するはずです。
2. ターゲットサーバーのContent-Typeヘッダーを定義する
カスタムターゲットサーバー、例えばPrometheusメトリクスを返すために開発したAPIルートの場合、レスポンスに直接Content-Typeヘッダーを設定できます。
例えば、HapiJSを使用している場合、メトリクスを次のように返す代わりに:
return metrics
次のようにContent-Typeヘッダーを設定できます。
return h.response(metrics).type('text/plain;version=0.0.4');
返すメトリクスのプロトコルに基づくサポートされているContent-Typeヘッダーは以下の通りです。
- 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. フォールバックプロトコルを定義する
ターゲットサーバーがContent-Typeヘッダーを指定しない場合に使用されるフォールバックプロトコルをprometheus.ymlの設定ファイルで定義することもできます。
例は以下の通りです。
- job_name: "my-job"
# [...]
fallback_scrape_protocol: PrometheusText0.0.4
サポートされている値はPrometheusProto、PrometheusText0.0.4、PrometheusText1.0.0、OpenMetricsText0.0.1、およびOpenMetricsText1.0.0です。