Micrometerメトリクス
このガイドでは、QuarkusアプリケーションがランタイムメトリクスとアプリケーションメトリクスのためにMicrometerメトリクスライブラリを利用する方法を説明します。
このガイドで説明されているアプリケーション固有のメトリクスとは別に、Quarkusのさまざまなエクステンションによって公開されているビルトインメトリクスを利用することもできます。これらについては、ビルトインメトリクスをサポートしている各エクステンションのガイドで説明します。
Micrometerは、Quarkusのメトリクスとして推奨されるアプローチです。 |
前提条件
このガイドを完成させるには、以下が必要です:
-
約15分
-
IDE
-
JDK 11+ がインストールされ、
JAVA_HOME
が適切に設定されていること -
Apache Maven 3.9.1
-
使用したい場合は、 Quarkus CLI
-
ネイティブ実行可能ファイルをビルドしたい場合、MandrelまたはGraalVM(あるいはネイティブなコンテナビルドを使用する場合はDocker)をインストールし、 適切に設定していること
アーキテクチャ
Micrometerは、メトリクスの登録メカニズムを提供するコアライブラリと、メトリクスのコアタイプ(カウンター、ゲージ、タイマー、ディストリビューション・サマリーなど)を定義しています。これらのコアタイプは、さまざまなバックエンド監視システムに適応できる抽象化レイヤーを提供します。要するに、アプリケーション(またはライブラリ)は、 Counter
, Gauge
, Timer
, または DistributionSummary
を MeterRegistry
と共に register
することができます。その後、Micrometerはその登録を1つまたは複数の実装に委ね、各実装は関連する監視スタックの独自の考慮事項を処理します。
Micrometerでは、登録されたメーターと、さまざまなバックエンドレジストリで使用されている規約との間の翻訳に、命名規則を使用しています。たとえば、メーターの名前は、ドットでセグメントを区切って作成し、命名する必要があります。 a.name.like.this
。その後、Micrometerはその名前を、選択したレジストリが好むフォーマットに変換します。Prometheusではアンダースコアを使用しているため、Prometheus形式のメトリクス出力では前の名前が a_name_like_this
と表示されます。
ソリューション
次のセクションで紹介する手順に沿って、ステップを踏んでアプリを作成することをお勧めします。ただし、完成した例にそのまま進んでも構いません。
-
Gitレポジトリをクローンするか
git clone https://github.com/quarkusio/quarkus-quickstarts.git
、 -
アーカイブ をダウンロードします。
ソリューションは micrometer-quickstart
ディレクトリ にあります。
Mavenプロジェクトの作成
Quarkus MicrometerエクステンションはMicrometer 自身と同様に構成されています。quarkus-micrometer
はコア micrometer サポートとランタイム統合を提供し、その他のQuarkus、Quarkiverse エクステンションは特定のモニタリングシステムをサポートするための追加の依存関係や要件を提供します。
この例では、Prometheus のレジストリを使用します。
まず、新しいプロジェクトが必要です。以下のコマンドで新規プロジェクトを作成します。
このコマンドは、 micrometer-registry-prometheus
エクステンションを依存関係としてインポートする Maven プロジェクトを生成します。このエクステンションは、 micrometer
エクステンションだけでなく、 Prometheus をサポートするために必要な追加のライブラリ依存関係もロードします。
すでにQuarkusプロジェクトが設定されている場合は、プロジェクトのベースディレクトリーで以下のコマンドを実行することで、プロジェクトに micrometer-registry-prometheus
エクステンションを追加することができます。
quarkus extension add 'micrometer-registry-prometheus'
./mvnw quarkus:add-extension -Dextensions='micrometer-registry-prometheus'
./gradlew addExtension --extensions='micrometer-registry-prometheus'
これにより、 pom.xml
に以下が追加されます:
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-micrometer-registry-prometheus</artifactId>
</dependency>
implementation("io.quarkus:quarkus-micrometer-registry-prometheus")
アプリケーションの作成
Micrometerは、独自のカスタムメトリクスを構築するためのAPIを提供しています。モニタリング・システムでサポートされている最も一般的なメーターのタイプは、ゲージ、カウンター、サマリーです。以下のセクションでは、エンドポイントの例を構築し、これらの基本的なメータタイプを使用してエンドポイントの動作を観察します。
メーターを登録するには、Micrometerエクステンションによって設定され維持されている MeterRegistry
への参照が必要です。 MeterRegistry
は、次のようにしてアプリケーションに注入することができます。
package org.acme.micrometer;
import io.micrometer.core.instrument.MeterRegistry;
import jakarta.ws.rs.GET;
import jakarta.ws.rs.Path;
import jakarta.ws.rs.Produces;
@Path("/example")
@Produces("text/plain")
public class ExampleResource {
private final MeterRegistry registry;
ExampleResource(MeterRegistry registry) {
this.registry = registry;
}
}
Micrometerは、一意のメトリック識別子およびタグの組み合わせと、特定のメーターインスタンスとの間の内部マッピングを維持しています。 register
や counter
や他のメソッドを使用してカウンターを増加させたり値を記録したりしても、識別子とタグ/ラベル値の組み合わせがこれまでにないものでない限り、メーターの新しいインスタンスは作成されません。
ゲージ
ゲージは、車のスピードメーターのように、時間の経過とともに増えたり減ったりする値を測定するものです。ゲージは、キャッシュやコレクションの統計情報を監視する際に便利です。次の簡単な例では、リストのサイズを監視しています。
LinkedList<Long> list = new LinkedList<>();
// Update the constructor to create the gauge
ExampleResource(MeterRegistry registry) {
this.registry = registry;
registry.gaugeCollectionSize("example.list.size", Tags.empty(), list);
}
@GET
@Path("gauge/{number}")
public Long checkListSize(long number) {
if (number == 2 || number % 2 == 0) {
// add even numbers to the list
list.add(number);
} else {
// remove items from the list for odd numbers
try {
number = list.removeFirst();
} catch (NoSuchElementException nse) {
number = 0;
}
}
return number;
}
なお、偶数はリストに追加され、奇数はリストから要素を削除します。
アプリケーションを開発モードで起動します。
quarkus dev
./mvnw quarkus:dev
./gradlew --console=plain quarkusDev
次に、以下のシーケンスを試して、プレーンテキストの出力で example_list_size
を確認してください。
curl http://localhost:8080/example/gauge/1
curl http://localhost:8080/example/gauge/2
curl http://localhost:8080/example/gauge/4
curl http://localhost:8080/q/metrics
curl http://localhost:8080/example/gauge/6
curl http://localhost:8080/example/gauge/5
curl http://localhost:8080/example/gauge/7
curl http://localhost:8080/q/metrics
ゲージは設定されるのではなくサンプリングされることに注意してください。ゲージに関連付けられた値が測定間でどのように変化したかについての記録はありません。 この例では、Prometheusエンドポイントにアクセスしたときにリストのサイズが計測されます。
Micrometerには、ゲージを作成するための追加のメカニズムがいくつかあります。なお、Micrometer はデフォルトでは、観測するオブジェクトへの強い参照を作成しません。レジストリによっては、ごみ収集されたオブジェクトを観測するゲージを完全に省略したり、観測値として NaN
(not a number) を使用したりしています。
どんなときにゲージを使うべきでしょうか?他のものが使えない場合に限ります。カウンターが使えるものでゲージを使ってはいけません。ゲージはカウンターよりも使いにくい場合があります。測定しているものが数えられる場合(値が常に増加するため)は、代わりにカウンターを使用してください。
マネジメントインターフェース
デフォルトでは、メトリクスはメインの HTTP サーバーで公開されます。 |
カウンター
カウンタは、増加するだけの値を測定するために使用されます。以下の例では、ある数字が素数であるかどうかを調べる回数を数えます。
@GET
@Path("prime/{number}")
public String checkIfPrime(long number) {
if (number < 1) {
return "Only natural numbers can be prime numbers.";
}
if (number == 1 || number == 2 || number % 2 == 0) {
return number + " is not prime.";
}
if ( testPrimeNumber(number) ) {
return number + " is prime.";
} else {
return number + " is not prime.";
}
}
protected boolean testPrimeNumber(long number) {
// Count the number of times we test for a prime number
registry.counter("example.prime.number").increment();
for (int i = 3; i < Math.floor(Math.sqrt(number)) + 1; i = i + 2) {
if (number % i == 0) {
return false;
}
}
return true;
}
どのような値がチェックされたかを示すラベルやタグをカウンタに追加したくなるかもしれませんが、メトリック名( example.prime.number
)とラベル値のユニークな組み合わせは、それぞれユニークな時系列を生成することを覚えておいてください。ラベル値として無制限のデータセットを使用すると、新しい時系列の作成が指数関数的に増加する「カーディナリティ・エクスプロージョン(cardinality explosion)」が発生する可能性があります。
ラベルとタグは同じ意味で使われています。また、ドキュメントによっては、この文脈で「属性」が使われていることもあります。要するに、それぞれのラベルやタグ、属性は、単一の数値測定に関連する追加の情報を定義するもので、後に測定値を分類したり、グループ化したり、集約したりするのに役立ちます。Micrometer APIでは、この追加データを指定する仕組みとして、 |
しかし、もう少し情報を伝えるためのタグを追加することは可能です。コードを調整して、カウンターを動かし、追加の情報を伝えるタグを追加してみましょう。
@GET
@Path("prime/{number}")
public String checkIfPrime(long number) {
if (number < 1) {
registry.counter("example.prime.number", "type", "not-natural").increment();
return "Only natural numbers can be prime numbers.";
}
if (number == 1 ) {
registry.counter("example.prime.number", "type", "one").increment();
return number + " is not prime.";
}
if (number == 2 || number % 2 == 0) {
registry.counter("example.prime.number", "type", "even").increment();
return number + " is not prime.";
}
if ( testPrimeNumber(number) ) {
registry.counter("example.prime.number", "type", "prime").increment();
return number + " is prime.";
} else {
registry.counter("example.prime.number", "type", "not-prime").increment();
return number + " is not prime.";
}
}
protected boolean testPrimeNumber(long number) {
for (int i = 3; i < Math.floor(Math.sqrt(number)) + 1; i = i + 2) {
if (number % i == 0) {
return false;
}
}
return true;
}
このカウンタが出力するデータを見ると、負の数、1の数、偶数の数などがどれくらいの頻度でチェックされたかがわかります。次のシーケンスを試して、プレーンテキストの出力で example_prime_number_total
を探してみてください。なお、 _total
サフィックスは、元々指定されていたカウンタ名 example.prime.number
に Micrometer が Prometheus の命名規則を適用したときに付けられたものです。
Quarkusを開発モードで起動したままにしていない場合は、再度起動してください。
quarkus dev
./mvnw quarkus:dev
./gradlew --console=plain quarkusDev
そして、以下のシーケンスを実行します。
curl http://localhost:8080/example/prime/-1
curl http://localhost:8080/example/prime/0
curl http://localhost:8080/example/prime/1
curl http://localhost:8080/example/prime/2
curl http://localhost:8080/example/prime/3
curl http://localhost:8080/example/prime/15
curl http://localhost:8080/q/metrics
どんな時にカウンターを使うべきでしょうか?時間を計ることもまとめることもできないようなことをしているときだけです。カウンターはカウントを記録するだけなので、それだけで十分な場合もあります。しかし、値がどのように変化しているかをより深く理解したい場合は、タイマー(基本的な測定単位が時間の場合)やディストリビューション・サマリーの方が適切かもしれません。
サマリーとタイマー
Micrometerのタイマーとディストリビューション・サマリーは非常によく似ています。どちらも観測値を記録することができ、その値は他の記録された値と合算されて合計値として保存されます。また、Micrometerでは、記録された測定値の数を示すカウンタをインクリメントし、(減衰間隔内で)最大の観測値を追跡します。
ディストリビューション・サマリーは、 record
メソッドを呼び出して観測値を記録することで入力されます。一方、タイマーは、時間の扱いや持続時間の測定に特化した追加機能を提供します。例えば、タイマーを使って、Supplier関数の呼び出しをラップする record
メソッドの1つを使って、素数の計算にかかる時間を測定することができます。
protected boolean testPrimeNumber(long number) {
Timer timer = registry.timer("example.prime.number.test");
return timer.record(() -> {
for (int i = 3; i < Math.floor(Math.sqrt(number)) + 1; i = i + 2) {
if (number % i == 0) {
return false;
}
}
return true;
});
}
Micrometerは、このタイマーの測定値を出力する際に、Prometheus の規則を適用します。Prometheusでは、時間を秒単位で測定します。Micrometerは、測定された持続時間を秒に変換し、規約に従ってメトリック名に単位を含めます。プライムエンドポイントをさらに数回訪れた後、プレーンテキストの出力で次の3つのエントリを確認してください: example_prime_number_test_seconds_count
, example_prime_number_test_seconds_sum
, example_prime_number_test_seconds_max
。
Quarkusを開発モードで起動したままにしていない場合は、再度起動してください。
quarkus dev
./mvnw quarkus:dev
./gradlew --console=plain quarkusDev
そして、以下のシーケンスを実行します。
curl http://localhost:8080/example/prime/256
curl http://localhost:8080/q/metrics
curl http://localhost:8080/example/prime/7919
curl http://localhost:8080/q/metrics
タイマーとディストリビューションサマリーは、ヒストグラムデータ、事前に計算されたパーセンタイル、サービスレベル目標(SLO)の境界線など、追加の統計情報を出力するように設定できます。カウント、サム、ヒストグラムのデータは、ディメンション間(または一連のインスタンス間)で再集計できますが、事前に計算されたパーセンタイル値はできないことに注意してください。
自動生成されたメトリクスを確認する
メトリクスを表示するには、 curl localhost:8080/q/metrics/
を実行します。
Micrometerエクステンションは、HTTPサーバーのリクエストの時間を自動的に計測します。Prometheus のタイマーの命名規則に従い、 http_server_requests_seconds_count
、 http_server_requests_seconds_sum
、 http_server_requests_seconds_max
を参照してください。要求された URI、HTTP メソッド (GET、POST など)、ステータスコード (200、302、404 など)、そしてより一般的な結果フィールドのための次元ラベルが追加されました。
# HELP http_server_requests_seconds
# TYPE http_server_requests_seconds summary
http_server_requests_seconds_count{method="GET",outcome="SUCCESS",status="200",uri="/example/prime/{number}"} 1.0
http_server_requests_seconds_sum{method="GET",outcome="SUCCESS",status="200",uri="/example/prime/{number}"} 0.017385896
# HELP http_server_requests_seconds_max
# TYPE http_server_requests_seconds_max gauge
http_server_requests_seconds_max{method="GET",outcome="SUCCESS",status="200",uri="/example/prime/{number}"} 0.017385896
#
メトリクスは遅延的に表示され、何かがアクセスしようとするまでエンドポイントのデータが表示されないことが多いことに注意してください。
quarkus.micrometer.binder.http-server.ignore-patterns
プロパティを使用して、HTTP エンドポイントの測定を無効にすることができます。このプロパティには、無視すべきURIパスを特定する単純な正規表現のマッチパターンをコンマで区切ったリストを指定できます。例えば、 quarkus.micrometer.binder.http-server.ignore-patterns=/example/prime/[0-9]+
を設定すると、以下へのリクエストが無視されます。http://localhost:8080/example/prime/7919
へのリクエストは無視されます。http://localhost:8080/example/gauge/7919
へのリクエストは、依然として計測されます。
micrometerエクステンションでは、パスパラメータを含むURIをテンプレート化して表現することに最善の努力を払います。上の例を使うと、次のようなリクエストは http://localhost:8080/example/prime/7919
へのリクエストは、 http_server_requests_seconds_*
メトリクスの属性として、 uri=/example/prime/{number}
という値で表示されます。
正しいURLが特定できない場合は、 quarkus.micrometer.binder.http-server.match-patterns
プロパティを使用します。このプロパティには、単純な正規表現パターンと置換文字列の関連性を定義するコンマ区切りのリストを指定できます。例えば、 quarkus.micrometer.binder.http-server.match-patterns=/example/prime/[0-9]+=/example/{jellybeans}
を設定すると、要求された uri が /example/prime/[0-9]+
に一致した場合、uri 属性に /example/{jellybeans}
の値が使用されます。
デフォルトでは、メトリクスはPrometheusのフォーマット application/openmetrics-text
を使用してエクスポートされます。 Accept
リクエストヘッダを plain/text
( curl -H "Accept: plain/text" localhost:8080/q/metrics/
) に指定することで、以前のフォーマットに戻すことも可能です。
MeterFilter を使ってメトリクスを設定する
Micrometerは MeterFilter
インスタンスを使って、 MeterRegistry
インスタンスが出力するメトリクスをカスタマイズします。 Micrometer エクステンションは、 MeterFilter
のCDI Beanを検出して、 MeterRegistry
インスタンスを初期化するときにそれを使います。
@Singleton
public class CustomConfiguration {
@ConfigProperty(name = "deployment.env")
String deploymentEnv;
/** Define common tags that apply only to a Prometheus Registry */
@Produces
@Singleton
@MeterFilterConstraint(applyTo = PrometheusMeterRegistry.class)
public MeterFilter configurePrometheusRegistries() {
return MeterFilter.commonTags(Arrays.asList(
Tag.of("registry", "prometheus")));
}
/** Define common tags that apply globally */
@Produces
@Singleton
public MeterFilter configureAllRegistries() {
return MeterFilter.commonTags(Arrays.asList(
Tag.of("env", deploymentEnv)));
}
/** Enable histogram buckets for a specific timer */
@Produces
@Singleton
public MeterFilter enableHistogram() {
return new MeterFilter() {
@Override
public DistributionStatisticConfig configure(Meter.Id id, DistributionStatisticConfig config) {
if(id.getName().startsWith("myservice")) {
return DistributionStatisticConfig.builder()
.percentiles(0.5, 0.95) // median and 95th percentile, not aggregable
.percentilesHistogram(true) // histogram buckets (e.g. prometheus histogram_quantile)
.build()
.merge(config);
}
return config;
}
};
}
}
この例では、シングルトン CDI Beanは、2 つの異なる MeterFilter
Beanを生成します。1 つは Prometheus MeterRegistry
インスタンスのみに適用され ( @MeterFilterConstraint
修飾子を使用)、もう 1 つはすべての MeterRegistry
インスタンスに適用されます。アプリケーション設定プロパティーも注入され、タグ値として使用されます。MeterFiltersのその他の例は、次のリンクにあります:公式ドキュメント 。
Micrometerはアノテーションをサポートしていますか?
Micrometerでは、メソッドに追加できる2つのアノテーション、 @Counted
と @Timed
が定義されています。 @Timed
アノテーションは、メソッドの実行をラップし、アノテーション自体に定義されているタグに加えて、次のタグを出力します:class、method、exception("none "または検出された例外のシンプルなクラス名)。
意味のあるタグ値を動的に割り当てることができないため、アノテーションの使用には制限があります。また、RESTエンドポイント・メソッドやVert.x Routesなどの多くのメソッドは、最初から無設定でmicrometerエクステンションによってカウントされ、時間が計測されることに注意してください。
他のレジストリ実装の使用
Prometheusを使用していない場合は、いくつかの選択肢があります。いくつかのMicrometerのレジストリーの実装は、 Quarkiverseのエクステンション でラップされています。たとえば、Micrometer StackDriver MeterRegistryを使用するには、 quarkiverse-micrometer-registry-stackdriver
エクステンションを使用します。
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-micrometer-registry-stackdriver</artifactId>
</dependency>
implementation("io.quarkus:quarkus-micrometer-registry-stackdriver")
使用したい Micrometer レジストリに関連するエクステンションがまだない場合は、 quarkus-micrometer
エクステンションを使用して、パッケージ化された MeterRegistry の依存関係を直接取り込んでください。
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-micrometer</artifactId>
</dependency>
<dependency>
<groupId>com.acme</groupId>
<artifactId>custom-micrometer-registry</artifactId>
</dependency>
implementation("io.quarkus:quarkus-micrometer")
implementation("com.acme:custom-micrometer-registry")
次に、次のセクションで説明するように、MeterRegistry を設定して初期化するために、独自のプロバイダを指定する必要があります。
カスタマイズされたMeterRegistryの作成
必要に応じて、カスタム @Produces
メソッドを使用して、カスタマイズされた MeterRegistry
を作成して設定します。
以下の例では、StatsDで使用される行フォーマットをカスタマイズしています。
@Produces
@Singleton
public StatsdMeterRegistry createStatsdMeterRegistry(StatsdConfig statsdConfig, Clock clock) {
// define what to do with lines
Consumer<String> lineLogger = line -> logger.info(line);
// inject a configuration object, and then customize the line builder
return StatsdMeterRegistry.builder(statsdConfig)
.clock(clock)
.lineSink(lineLogger)
.build();
}
この例は、Micrometerのドキュメントにある以下の指示に対応しています: https://micrometer.io/docs/registry/statsD#_customizing_the_metrics_sink
このメソッドは、 MeterRegistry
の特定の型を @Singleton
として返すことに注意してください。レジストリーを設定するために必要な設定属性を注入するには、MicroProfile Configを使用します。 quarkiverse-micrometer-registry-statsd
のようなほとんどのMicrometerのレジストリーエクステンションでは、Quarkusの設定モデルと統合されたレジストリー固有の設定オブジェクトのプロデューサを定義しています。
MicroProfile Metrics API のサポート
アプリケーションで MicroProfile Metrics API を使用している場合、Micrometer エクステンションは、これらのメトリクスを Micrometer レジストリにマッピングするための適応レイヤーを作成します。2 つのシステム間の命名規則は異なるので、MP MetricsをMicrometerと一緒に使用した場合に出力されるメトリクスは変化します。MeterFilters を使用して名前やタグをダッシュボードが必要とするものに再マッピングすることができます。
@Produces
@Singleton
public MeterFilter renameApplicationMeters() {
final String targetMetric = MPResourceClass.class.getName() + ".mpAnnotatedMethodName";
return MeterFilter() {
@Override
public Meter.Id map(Meter.Id id) {
if (id.getName().equals(targetMetric)) {
// Drop the scope tag (MP Registry type: application, vendor, base)
List<Tag> tags = id.getTags().stream().filter(x -> !"scope".equals(x.getKey()))
.collect(Collectors.toList());
// rename the metric
return id.withName("my.metric.name").replaceTags(tags);
}
return id;
}
};
}
MicroProfile Metrics APIを必要とする場合は、ビルドファイルに以下の依存関係が存在することを確認してください。
<dependency>
<groupId>org.eclipse.microprofile.metrics</groupId>
<artifactId>microprofile-metrics-api</artifactId>
</dependency>
implementation("org.eclipse.microprofile.metrics:microprofile-metrics-api")
MP Metrics API互換性レイヤは、将来的には別のエクステンションに移される予定です。 |
マネジメントインターフェース
デフォルトでは、メトリックスはメインの HTTP サーバーで公開されます。アプリケーションの設定で quarkus.management.enabled=true
を設定することで、別のネットワーク・インターフェイスとポートで公開することができます。このプロパティは、ビルド時のプロパティであることに注意してください。実行時に値をオーバーライドすることはできません。
マネジメントネットワークインターフェイスとポートをカスタマイズせずにマネジメントインターフェイスを有効にした場合、メトリクスは以下のように公開されます: http://0.0.0.0:9000/q/metrics
。次を使用して、公開された各フォーマットのパスを設定することができます:
quarkus.micrometer.export.json.enabled=true # Enable json metrics
quarkus.micrometer.export.json.path=metrics/json
quarkus.micrometer.export.prometheus.path=metrics/prometheus
このような設定にすることで、json メトリクスが http://0.0.0.0:9000/q/metrics/json
で利用可能になります。prometheus メトリクスは、 http://0.0.0.0:9000/q/metrics/prometheus
で利用可能になります。
詳しくは、 マネジメントインターフェイスのリファレンス を参照してください。
設定リファレンス
ビルド時に固定される設定プロパティ - その他の設定プロパティは実行時にオーバーライド可能です。
型 |
デフォルト |
|
---|---|---|
Micrometer metrics support. Micrometer metrics support is enabled by default. Environment variable: |
boolean |
|
Micrometer MeterRegistry discovery. Micrometer MeterRegistry implementations discovered on the classpath will be enabled automatically by default. Environment variable: |
boolean |
|
Micrometer MeterBinder discovery. Micrometer MeterBinder implementations discovered on the classpath will be enabled automatically by default. Environment variable: |
boolean |
|
Outbound HTTP request metrics support.
Support for HTTP client metrics will be enabled if Micrometer support is enabled, the REST client feature is enabled, and either this value is true, or this value is unset and Environment variable: |
boolean |
|
Inbound HTTP metrics support.
Support for HTTP server metrics will be enabled if Micrometer support is enabled, an extension serving HTTP traffic is enabled, and either this value is true, or this value is unset and Environment variable: |
boolean |
|
Micrometer JVM metrics support.
Support for JVM metrics will be enabled if Micrometer support is enabled, and either this value is true, or this value is unset and Environment variable: |
boolean |
|
Kafka metrics support.
Support for Kafka metrics will be enabled if Micrometer support is enabled, the Kafka Consumer or Producer interface is on the classpath and either this value is true, or this value is unset and Environment variable: |
boolean |
|
Redis client metrics support.
Support for Redis metrics will be enabled if Micrometer support is enabled, the Quarkus Redis client extension is on the classpath and either this value is true, or this value is unset and Environment variable: |
boolean |
|
gRPC Server metrics support.
Support for gRPC server metrics will be enabled if Micrometer support is enabled, the gRPC server interfaces are on the classpath and either this value is true, or this value is unset and Environment variable: |
boolean |
|
gRPC Client metrics support.
Support for gRPC client metrics will be enabled if Micrometer support is enabled, the gRPC client interfaces are on the classpath and either this value is true, or this value is unset and Environment variable: |
boolean |
|
Eclipse MicroProfile Metrics support. Support for MicroProfile Metrics will be enabled if Micrometer support is enabled and the MicroProfile Metrics dependency is present:
The Micrometer extension currently provides a compatibility layer that supports the MP Metrics API, but metric names and recorded values will be different. Note that the MP Metrics compatibility layer will move to a different extension in the future. Environment variable: |
boolean |
|
Micrometer System metrics support.
Support for System metrics will be enabled if Micrometer support is enabled, and either this value is true, or this value is unset and Environment variable: |
boolean |
|
Vert.x metrics support.
Support for Vert.x metrics will be enabled if Micrometer support is enabled, Vert.x MetricsOptions is on the classpath and either this value is true, or this value is unset and Environment variable: |
boolean |
|
Support for export to JSON format. Off by default. Environment variable: |
boolean |
|
The path for the JSON metrics endpoint. The default value is Environment variable: |
string |
|
Statistics like max, percentiles, and histogram counts decay over time to give greater weight to recent samples. Samples are accumulated to such statistics in ring buffers which rotate after the expiry, with this buffer length. Environment variable: |
int |
|
Statistics like max, percentiles, and histogram counts decay over time to give greater weight to recent samples. Samples are accumulated to such statistics in ring buffers which rotate after this expiry, with a particular buffer length. Environment variable: |
|
|
Support for export to Prometheus.
Support for Prometheus will be enabled if Micrometer support is enabled, the PrometheusMeterRegistry is on the classpath and either this value is true, or this value is unset and Environment variable: |
boolean |
|
The path for the prometheus metrics endpoint (produces text/plain). The default value is
If the management interface is enabled, the value will be resolved as a path relative to
Environment variable: |
string |
|
By default, this extension will create a Prometheus MeterRegistry instance. Use this attribute to veto the creation of the default Prometheus MeterRegistry. Environment variable: |
boolean |
|
Comma-separated list of regular expressions used to specify uri labels in http metrics. Outbount HTTP client instrumentation will attempt to transform parameterized
resource paths, Patterns specified here will take precedence over those computed values. For example, if Environment variable: |
list of string |
|
Comma-separated list of regular expressions defining uri paths that should be ignored (not measured). Environment variable: |
list of string |
|
Maximum number of unique URI tag values allowed. After the max number of tag values is reached, metrics with additional tag values are denied by filter. Environment variable: |
int |
|
Comma-separated list of regular expressions used to specify uri labels in http metrics. Vertx instrumentation will attempt to transform parameterized
resource paths, Patterns specified here will take precedence over those computed values. For example, if Environment variable: |
list of string |
|
Comma-separated list of regular expressions defining uri paths that should be ignored (not measured). Environment variable: |
list of string |
|
Suppress non-application uris from metrics collection.
This will suppress all metrics for non-application endpoints using
Suppressing non-application uris is enabled by default. Environment variable: |
boolean |
|
Maximum number of unique URI tag values allowed. After the max number of tag values is reached, metrics with additional tag values are denied by filter. Environment variable: |
int |
|
Prometheus registry configuration properties. A property source for configuration of the Prometheus MeterRegistry, see https://micrometer.io/docs/registry/prometheus. Environment variable: |
|
期間フォーマットについて
期間のフォーマットは標準の 数値で始まる期間の値を指定することもできます。この場合、値が数値のみで構成されている場合、コンバーターは値を秒として扱います。そうでない場合は、 |