Prometheus 3.0 ベータ版リリース

Prometheusチームは、Prometheusバージョン3.0ベータ版のリリースを発表できることを誇りに思います!こちらからダウンロードできます。ベータ版リリースの慣例として、重要な本番システムにPrometheus 3.0ベータ版をインストールすることは推奨しませんが、すべての方にテストしてバグを見つけていただきたいと考えています。

一般的に、唯一の破壊的な変更点は、非推奨の機能フラグの削除です。Prometheusチームは、後方互換性を確保し、既存のインストールを壊さないように尽力しました。そのため、以下で説明するすべての新機能は、既存の機能の上に構築されています。ほとんどのユーザーは、設定を変更することなく、Prometheus 3.0をそのまま試すことができるはずです。

新機能

Prometheus 2.0のリリースから7年間で7500件以上のコミットがあり、個々の新機能や修正点をすべて列挙するには多すぎますが、注目すべき大きな輝かしい変更点と破壊的な変更点がいくつかあります。コミュニティの皆様には、これらを試して、見つかった問題を報告していただく必要があります。フィードバックを多くいただければ、最終的な3.0リリースの安定性を高めることができます。

新しいUI

Prometheus 3.0のハイライトの1つは、デフォルトで有効になっている真新しいUIです。

New UI query page

UIは完全に書き直され、煩雑さが軽減され、よりモダンなルックアンドフィールになり、PromLensスタイルのツリービューなどの新機能が追加され、よりモダンな技術スタックを使用することで今後のメンテナンスが容易になります。

新しいUIの全般的な詳細については、PromLabsブログのJuliusによる詳細な記事をご覧ください。ユーザーは、old-ui機能フラグを使用することで、一時的に古いUIを有効にすることができます。新しいUIはまだ十分にテストされていないため、バグが存在する可能性も非常に高いです。バグが見つかった場合は、GitHubで報告してください。

リモートライト2.0

リモートライト2.0は、メタデータ、例、作成タイムスタンプ、ネイティブヒストグラムなど、多くの新しい要素のネイティブサポートを追加することで、以前のプロトコルバージョンを反復処理します。また、文字列のインターン化を使用して、圧縮および解凍時のペイロードサイズとCPU使用率を削減します。詳細はこちらをご覧ください。

OpenTelemetryサポート

Prometheusは、OpenTelemetryメトリクスのデフォルトの選択肢となることを目指しており、3.0には、OpenTelemetryメトリクスデータのストレージバックエンドとしてさらに優れたものにするためのいくつかの大きな新機能が含まれています。

UTF-8

デフォルトでは、Prometheusは、バージョン2.xと同様に、メトリック名、ラベル名、およびラベル値にすべての有効なUTF-8文字を使用することを許可します。

ユーザーは、メトリクスプロデューサーがUTF-8名を渡すように設定されていることを確認する必要があります。いずれかの側がUTF-8をサポートしていない場合、メトリック名は従来のアンダースコア置換メソッドを使用してエスケープされます。PromQLクエリは、UTF-8メトリクスを取得するために新しい引用符構文で記述することも、ユーザーが__name__ラベル名を手動で指定することもできます。

すべての言語バインディングがUTF-8をサポートするように更新されたわけではありませんが、主要なGoライブラリは更新されています。

OTLP Ingestion

Prometheusは、OTLPメトリクスのネイティブリシーバーとして設定でき、/api/v1/otlp/v1/metricsエンドポイントでOTLPメトリクスを受信できます。

ネイティブヒストグラム

ネイティブヒストグラムは、従来のヒストグラムよりも効率が高く、コストが低いPrometheusメトリクスタイプです。データセットに基づいてバケット境界を選択(および更新)する必要がある代わりに、ネイティブヒストグラムは指数関数的成長に基づいて事前設定されたバケット境界を持ちます。

ネイティブヒストグラムはまだ実験段階であり、デフォルトでは有効になっていません。--enable-feature=native-histogramsを渡すことで有効にすることができます。テキスト形式やアクセサー関数/演算子など、ネイティブヒストグラムの一部の側面はまだ活発に設計されています。

その他の破壊的な変更点

次の機能フラグは削除され、デフォルトで有効になっています。これらのフラグへの参照は設定から削除する必要があり、バージョン3.0以降のPrometheusでは無視されます。

  • promql-at-modifier
  • promql-negative-offset
  • remote-write-receiver
  • no-scrape-default-port
  • new-service-discovery-manager

範囲選択は左開右閉になり、意図したよりも多くのポイントが操作に含まれるまれなケースが回避されます。

エージェントモードは安定しており、機能フラグの代わりに独自の設定フラグがあります。