back to all blogsすべてのブログ投稿を表示

24.0.0.7 での MicroProfile Metrics の機能強化と新しいトレーニング・コース

image of author image of author
David Mueller and 高宮 裕子 (翻訳) 2024年7月16日
他言語版へのリンク: English ,

24.0.0.7 リリースには、MicroProfile 3.0 および 4.0 のヒストグラムとタイマー メトリックの機能強化が含まれています。また、Open Liberty を使用したクラウド ネイティブ Java アプリケーション開発の基本を学習できる、新しい初心者レベルのトレーニング コースも利用可能になりました。

In Open Liberty 24.0.0.7:

24.0.0.7 で修正されたバグの一覧は こちら です。

24.0.0.7 を使用してアプリを開発および実行する

Mavenを使用している場合は、pom.xml ファイルに以下を含めます。

<plugin>
    <groupId>io.openliberty.tools</groupId>
    <artifactId>liberty-maven-plugin</artifactId>
    <version>3.10.3</version>
</plugin>

または、Gradle の場合は、build.gradle ファイルに次の内容を含めます。

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'io.openliberty.tools:liberty-gradle-plugin:3.8.3'
    }
}
apply plugin: 'liberty'

または、コンテナ イメージ を使用している場合:

FROM icr.io/appcafe/open-liberty

または、ダウンロード・ページをご覧ください。

IntelliJ IDEAVisual Studio Code、または Eclipse IDEを使用している場合は、オープンソースの Liberty 開発者ツール を活用して、IDE 内から効果的な開発、テスト、デバッグ、アプリケーション管理を行うこともできます。

Ask a question on Stack Overflow

MicroProfile 3.0 および 4.0 でのヒストグラムとタイマー メトリックの強化

このリリースでは、ヒストグラムとタイマー メトリックによって追跡および出力される統計を構成するために使用される MicroProfile 3.0 および 4.0 の MicroProfile Config プロパティが導入されています。これらの変更は、MicroProfile Metrics 5.1 ですでに利用可能です。

以前の MicroProfile Metrics 3.0 および 4.0 リリースでは、ヒストグラムとタイマー メトリックは次の値のみを追跡していました。

  • 記録された最小/最大値

  • すべての値の合計

  • 記録された値の数

  • 50 パーセンタイル、75 パーセンタイル、95 パーセンタイル、98 パーセンタイル、99 パーセンタイル、99.9 パーセンタイルの静的なセット

これらの値は、Prometheus 形式で /metrics エンドポイントに出力されます。

新しいプロパティでは、ヒストグラムとタイマー メトリックのパーセンタイルのカスタム セットとヒストグラム バケットのカスタム セットを定義できます。その他の新しい構成プロパティでは、バケット セットの上限と下限を定義するプロパティを含む、ヒストグラム バケットのデフォルト セットを有効にすることができます。

これらのプロパティを使用すると、次の構文を使用するセミコロンで区切られた値定義のリストを定義できます。

<metric name>=<value-1>[,<value-2>...<value-n>]

一部のプロパティは、特定のメトリック名に対して複数の値を受け入れることができますが、他のプロパティは単一の値のみを受け入れることができます。

メトリック名の末尾にアスタリスク (*) をワイルドカードとして使用できます。

プロパティ

説明

mp.metrics.distribution.percentiles

追跡および出力するために、ヒストグラムとタイマーのメトリックを一致させるためのパーセンタイルのカスタム セットを定義します。メトリック名の組み合わせに対して整数値と小数値のセットを受け入れます。メトリック名の組み合わせに値が指定されていない場合は、パーセンタイル出力を無効にするために使用できます。

mp.metrics.distribution.histogram.buckets

追跡および出力するヒストグラム メトリックを一致させるための (累積) ヒストグラム バケットのカスタム セットを定義します。メトリック名のペアリングには整数値と小数値のセットを受け入れます。

mp.metrics.distribution.timer.buckets

追跡および出力の対象となるタイマー メトリックを一致させるための (累積) ヒストグラム バケットのカスタム セットを定義します。メトリック名のペアリングには、時間単位 (たとえば、mssm、または h) が追加された 10 進数値のセットを受け入れます。

mp.metrics.distribution.percentiles-histogram.enabled

一致するヒストグラムまたはタイマー メトリックを構成して、監視ツールによるパーセンタイル構成を可能にするための大規模なデフォルト ヒストグラム バケット セットを提供します。メトリック名のペアリングには true/false 値を受け入れます。

mp.metrics.distribution.histogram.max-value

タイマーに対してパーセンタイル ヒストグラムが有効になっている場合、このプロパティは報告されるバケットの上限を定義します。メトリック名のペアリングには、単一の整数または小数値を受け入れます。

mp.metrics.distribution.histogram.min-value

タイマーに対してパーセンタイル ヒストグラムが有効になっている場合、このプロパティは報告されるバケットの下限を定義します。メトリック名のペアリングには、単一の整数または小数値を受け入れます。

mp.metrics.distribution.timer.max-value

ヒストグラムに対してパーセンタイル ヒストグラムが有効になっている場合、このプロパティは報告されるバケットの上限を定義します。メトリック名のペアには、時間単位 (たとえば、mssm、または h) が追加された単一の 10 進数値を受け入れます。

mp.metrics.distribution.timer.min-value

ヒストグラムに対してパーセンタイル ヒストグラムが有効になっている場合、このプロパティは報告されるバケットの下限を定義します。メトリック名のペアには、時間単位 (たとえば、mssm、または h) が追加された単一の 10 進数値を受け入れます。

次の例のように、mp.metrics.distribution.percentiles プロパティを定義できます。

mp.metrics.distribution.percentiles=alpha.timer=0.5,0.7,0.75,0.8;alpha.histogram=0.8,0.85,0.9,0.99;delta.*=

このプロパティは、50 パーセンタイル値、70 パーセンタイル値、75 パーセンタイル値、80 パーセンタイル値を追跡して出力するための alpha.timer タイマー メトリックを作成します。alpha.histogram ヒストグラム メトリックは、80 パーセンタイル値、85 パーセンタイル値、90 パーセンタイル値、99 パーセンタイル値を出力します。delta.* と一致するヒストグラムまたはタイマー メトリックのパーセンタイルは無効になります。

この例を拡張し、mp.metrics.distribution.timer.buckets プロパティを使用して alpha.timer タイマー メトリックのヒストグラム バケットを定義します。

mp.metrics.distribution.timer.buckets=alpha.timer=100ms,200ms,1s

この設定は、メトリック ランタイムに、0 ~ 100 ミリ秒、0 ~ 200 ミリ秒、0 ~ 1 秒の範囲内の継続時間を追跡してカウントを出力するように指示します。この出力は、ヒストグラム バケットが 累積 方式で動作しているためです。

/metrics REST エンドポイントの alpha.timer メトリックに対応する Prometheus 出力は、次の例のようになります。

# TYPE application_alpha_timer_mean_seconds gauge
application_alpha_timer_mean_seconds 2.9700022497975187
# TYPE application_alpha_timer_max_seconds gauge
application_alpha_timer_max_seconds 5.0
# TYPE application_alpha_timer_min_seconds gauge
application_alpha_timer_min_seconds 1.0
# TYPE application_alpha_timer_stddev_seconds gauge
application_alpha_timer_stddev_seconds 1.9997750210918204
# TYPE alpha_timer_seconds histogram (1)
application_alpha_timer_seconds_bucket{le="0.1"} 0.0 (2)
application_alpha_timer_seconds_bucket{le="0.2"} 0.0 (2)
application_alpha_timer_seconds_bucket{le="1.0"} 1.0 (2)
application_alpha_timer_seconds_bucket{le="+Inf"} 2.0 (2) (3)
application_alpha_timer_seconds_count 2
application_alpha_timer_seconds_sum 6.0
application_alpha_timer_seconds{quantile="0.5"} 1.0
application_alpha_timer_seconds{quantile="0.7"} 5.0
application_alpha_timer_seconds{quantile="0.75"} 5.0
application_alpha_timer_seconds{quantile="0.8"} 5.0
1 Prometheus メトリック タイプは histogram です。このタイプでは、分位数/パーセンタイルとバケットの両方が表されます。
2 le タグは 未満 を表し、秒に変換される定義されたバケット用です。
3 Prometheus では、+Inf バケットがすべてのヒットをカウントする必要があります。

新しい「クラウドネイティブ Java アプリケーション開発の基礎」コースで、Open Liberty を使用したアプリケーション開発を学ぶことができます

このコースでは、Open Libertyを使用して基本的なクラウドネイティブJavaアプリケーションを作成するための基本的なスキルと技術を学びます。RESTアプリケーション、コンテキストと依存性の注入(CDI)、アプリケーション構成の外部化などについて学ぶことができます。最終クイズ(20の選択問題)で80%以上のスコアを獲得すると、Liberty Developer Essentials バッジをCredlyから受け取ることができます。

Open Liberty 24.0.0.7 を今すぐ入手

Open Liberty 24.0.0.7は、Maven, Gradle, Docker, and as a downloadable archiveのリンクから試していただけます。