Prometheus 2.43 String Labels 最適化に関する FAQ

2023年3月21日筆者: Julien Pivotto (@roidelapluie)

Prometheus 2.43 がリリースされ、エキサイティングな機能と機能強化がもたらされました。重要な改善点の1つは、新しいラベルデータ構造を使用する stringlabels リリースです。このブログ投稿では、2.43 リリースと stringlabels 最適化に関するよくある質問にお答えします。

stringlabels リリースとは何ですか?

stringlabels リリースは、新しいラベルデータ構造を使用する Prometheus 2.43 のバージョンです。すべてのラベル/値を単一の文字列に格納するため、ヒープサイズが小さくなり、ほとんどの場合で速度が向上します。これらの最適化はデフォルトのバイナリには含まれておらず、Go タグ stringlabels を使用して Prometheus をコンパイルする必要があります。

トグルできる機能フラグを採用しなかったのはなぜですか?

機能フラグの使用も検討しましたが、メモリオーバーヘッドが大きすぎると判断しました。そのため、テストと本番環境での効果測定に関心のある方向けに、これらの最適化を含む別のリリースを提供することにしました。

これらの最適化はいつ一般利用可能になりますか?

これらの最適化は、今後の Prometheus 2.44 リリースでデフォルトで利用可能になります。

2.43 リリースを入手するにはどうすればよいですか?

公式 Prometheus GitHub リリース ページで Prometheus 2.43 リリース を入手でき、そこからバイナリファイルを直接ダウンロードできます。また、コンテナを使用したいユーザー向けに Docker イメージも利用可能です。

stringlabels 最適化は、これらのデフォルトのバイナリには含まれていません。この最適化を使用するには、2.43.0+stringlabels リリース バイナリ、または v2.43.0-stringlabels タグの Docker イメージ をダウンロードする必要があります。

リリースが v2.43.0+stringlabels で、Docker タグが v2.43.0-stringlabels なのはなぜですか?

セマンティックバージョニングでは、プラス記号 (+) はビルドメタデータを表すために使用されます。したがって、stringlabels 最適化を含む Prometheus 2.43 リリースは、実験的な stringlabels 機能が含まれていることを示すために 2.43.0+stringlabels と名付けられています。ただし、Docker タグではプラス記号を使用できません。そのため、Docker タグ v2.43.0-stringlabels を作成するために、プラス記号をダッシュ (-) に置き換えました。これにより、Prometheus Operator などの下流プロジェクトのセマンティックバージョニングチェックを通過させることができます。

Prometheus 2.43 リリースで他に注目すべき機能は何ですか?

stringlabels 最適化以外にも、Prometheus 2.43 リリースにはいくつかの新機能と機能強化が含まれています。主な追加機能の一部は次のとおりです。

  • 異なるファイルからスクレイプ設定をインクルードするために scrape_config_files のサポートを追加しました。これにより、設定の管理と整理が容易になります。
  • HTTP クライアントには、プロキシされたリクエストから URL を除外する no_proxy と、環境変数からプロキシを読み取る proxy_from_environment の2つの新しい設定オプションが含まれています。これらの機能により、さまざまな環境での HTTP クライアントの動作管理が容易になります。

機能とバグ修正の詳細については、完全な変更履歴 を参照してください。