Prometheus 2.43 がリリースされました。いくつかのエキサイティングな機能と拡張が搭載されています。重要な改善点の1つは、ラベルに新しいデータ構造を使用するstringlabels
リリースです。このブログ記事では、2.43リリースとstringlabels
最適化に関するよくある質問にお答えします。
stringlabels
リリースとは何ですか?
stringlabels
リリースは、ラベルに新しいデータ構造を使用するPrometheus 2.43バージョンです。すべてのラベル/値を単一の文字列に格納することで、ヒープサイズが小さくなり、ほとんどの場合で高速化されます。これらの最適化はデフォルトのバイナリには含まれておらず、Goタグstringlabels
を使用してPrometheusをコンパイルする必要があります。
なぜ切り替え可能な機能フラグにしなかったのですか?
機能フラグの使用も検討しましたが、メモリオーバーヘッドが価値に見合わないと判断しました。そのため、本番環境でのテストや効果測定に関心のある方のために、これらの最適化を施した別のリリースを提供することにしました。
これらの最適化はいつ一般的に利用可能になりますか?
これらの最適化は、次期Prometheus 2.44リリースでデフォルトで利用可能になります。
2.43リリースを入手するにはどうすればよいですか?
Prometheus 2.43 リリースは、Prometheusの公式GitHubリリースページで入手でき、ユーザーはそこから直接バイナリファイルをダウンロードできます。さらに、コンテナの使用を好むユーザー向けに、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
とするために、プラス記号をダッシュ(-)に置き換えました。これにより、DockerタグはPrometheus Operatorなどのダウンストリームプロジェクトのセマンティックバージョニングチェックに合格することができます。
Prometheus 2.43リリースにおけるその他の注目すべき機能は何ですか?
stringlabels
最適化の他にも、Prometheus 2.43リリースにはいくつかの新機能と拡張機能が搭載されています。主な追加機能としては、以下のようなものがあります。
- 異なるファイルからスクレイプ設定を含めるための
scrape_config_files
のサポートを追加しました。これにより、設定の管理と整理が容易になります。 - HTTPクライアントに、プロキシされたリクエストからURLを除外するための
no_proxy
と、環境変数からプロキシを読み取るためのproxy_from_environment
の2つの新しい設定オプションが含まれるようになりました。これらの機能により、さまざまな環境でのHTTPクライアントの動作管理が容易になります。
機能とバグ修正の詳細については、完全な変更履歴をご覧ください。