13.3. カスタムのメトリクスを使用した Decision Server の Prometheus メトリクスモニターリングの拡張
Decision Server インスタンスが Prometheus メトリクスモニターリングを使用するように設定後に、ビジネス要件に合わせてカスタムのメトリクスを使用するように、Decision Server の Prometheus 機能を拡張できます。Prometheus は、Decision Server が Prometheus に公開するデフォルトのメトリクスと、カスタムのメトリクスを収集して、保存します。
たとえば、以下の手順では、Prometheus で収集して保存するように、カスタムの Decision Model and Notation (DMN) メトリックを定義します。
前提条件
- Prometheus メトリクスモニターリングが、Decision Server インスタンス用に設定されている。オンプレミスの Decision Server での Prometheus 設定は、「Decision Server のモニターリングを行う Prometheus メトリクスの設定」 を参照してください。Red Hat OpenShift Container Platform の Decision Server を使用した Prometheus 設定に関する詳細は、「Red Hat OpenShift Container Platform の Decision Server の Prometheus メトリクスモニターリングの設定」 を参照してください。
手順
空の Maven プロジェクトを作成して、以下のパッケージタイプと依存関係を、プロジェクトの
pom.xmlファイルに定義します。サンプルプロジェクトの pom.xml ファイルの例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の例にあるように、カスタムの Prometheus メトリクスを定義する、カスタムのリスナークラスの一部として、
org.kie.server.services.prometheus.PrometheusMetricsProviderインターフェイスを実装します。カスタムのリスナークラス内の
DMNRuntimeEventListenerリスナーの実装例Copy to Clipboard Copied! Toggle word wrap Toggle overflow PrometheusMetricsProviderインターフェイスには、Prometheus メトリクス収集に必要なリスナーが含まれます。このインターフェイスは、プロジェクトのpom.xmlファイルで宣言したkie-server-services-prometheus依存関係に組み込まれます。以下の例では、
ExampleCustomPrometheusMetricListenerクラスは、(PrometheusMetricsProviderインターフェイスからの)DMNRuntimeEventListenerリスナーを実装し、Prometheus で収集、保存するカスタムの DMN メトリクスを定義します。以下の例にあるように、
PrometheusMetricsProviderインターフェイスとカスタムのリスナーを関連付ける、カスタムのメトリクスプロバイダーの一部としてPrometheusMetricsProviderインターフェイスを実装します。カスタムメトリクスプロバイダークラスの
PrometheusMetricsProviderインターフェイスの実装例Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の例では、
MyPrometheusMetricsProviderクラスはPrometheusMetricsProviderインターフェイスを実装し、このクラスには、カスタムのExampleCustomPrometheusMetricListenerリスナークラスが含まれます。-
新規メトリクスプロバイダーを Decision Server で検出できるようにするには、Maven プロジェクトに
META-INF/services/org.kie.server.services.prometheus.PrometheusMetricsProviderファイルを作成して、このファイル内にPrometheusMetricsProvider実装クラスの完全修飾クラス名を追加します。以下の例では、このファイルにorg.kie.server.ext.prometheus.MyPrometheusMetricsProviderの 1 行が含まれています。 -
プロジェクトを構築して、作成された JAR ファイルをプロジェクトの
~/kie-server.war/WEB-INF/libディレクトリーにコピーします。たとえば、Red Hat JBoss EAP ではこのディレクトリーへのパスはEAP_HOME/standalone/deployments/kie-server.war/WEB-INF/libです。 Decision Server を起動して、実行中の Decision Server に構築したプロジェクトをデプロイします。プロジェクトは、Business Central インターフェイスまたは Decision Server REST API (
http://SERVER:PORT/kie-server/services/rest/server/containers/{containerId}へのPUT要求) を使用してデプロイできます。実行中の Decision Server にプロジェクトをデプロイした後に、Prometheus はメトリクスの収集を開始し、Decision Server はメトリクスを REST API エンドポイント
http://HOST:PORT/SERVER/services/rest/metrics(または Spring Boot ではhttp://HOST:PORT/rest/metrics) に公開します。