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 クライアントの動作管理が容易になります。
機能とバグ修正の詳細については、完全な変更履歴 を参照してください。