第13章 Red Hat Process Automation Manager Kogito Operator と Prometheus および Grafana との対話

Red Hat Process Automation Manager の Red Hat ビルドの Kogito は、Red Hat ビルドの Kogito マイクロサービスの Prometheus メトリクス監視を有効にする monitoring-prometheus-addon アドオンを提供し、アドオンによってエクスポートされたデフォルトのメトリクスを使用する Grafana ダッシュボードを生成します。RHPAM Kogito Operator は Prometheus Operator を使用して、Prometheus からスクレープするプロジェクトからメトリクスを公開します。この依存関係により、Prometheus Operator はプロジェクトと同じ namespace にインストールする必要があります。

Red Hat ビルドの Kogito マイクロサービスの Prometheus メトリクス監視を有効にする場合は、使用するフレームワークに応じて、プロジェクトの pom.xml ファイルに以下の依存関係を追加します。

Prometheus Red Hat ビルドの Quarkus アドオンの依存関係

<dependency>
      <groupId>org.kie.kogito</groupId>
      <artifactId>monitoring-prometheus-quarkus-addon</artifactId>
</dependency>

Prometheus Spring Boot アドオンの依存関係

<dependency>
      <groupId>org.kie.kogito</groupId>
      <artifactId>monitoring-prometheus-springboot-addon</artifactId>
</dependency>

monitoring-prometheus-addon アドオンを使用し、Prometheus Operator がインストールされている Red Hat ビルドの Kogito マイクロサービスをデプロイする場合、Red Hat Process Automation Manager Kogito Operator は ServiceMonitor カスタムリソースを作成し、以下の例のように Prometheus のメトリクスを公開します。

Prometheus の ServiceMonitor リソースの例

apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
  labels:
    app: onboarding-service
  name: onboarding-service
  namespace: kogito
spec:
  endpoints:
  - path: /metrics
    targetPort: 8080
    scheme: http
  namespaceSelector:
    matchNames:
    - kogito
  selector:
    matchLabels:
      app: onboarding-service

Prometheus Operator によって管理される Prometheus カスタムリソースを手作業で設定し、ServiceMonitor リソースを選択する必要があります。

Prometheus リソースの例

apiVersion: monitoring.coreos.com/v1
kind: Prometheus
metadata:
  name: prometheus
spec:
  serviceAccountName: prometheus
  serviceMonitorSelector:
    matchLabels:
      app: dmn-drools-quarkus-metrics-service

ServiceMonitor リソースで Prometheus リソースを設定した後に、Prometheus Web コンソールの Targets ページで Prometheus によってスクレープされたエンドポイントを表示できます。Red Hat Process Automation Manager サービスが公開するメトリクスが Graph ビューに表示されます。

RHPAM Kogito Operator は、アドオンによって生成された Grafana ダッシュボードごとに、Grafana Operator によって定義される GrafanaDashboard カスタムリソースも作成します。ダッシュボードの app ラベルは、デプロイされた Red Hat ビルドの Kogito マイクロサービスの名前です。Kogito マイクロサービスの関連する Red Hat ビルドに従い、Grafana カスタムリソースの dashboardLabelSelector プロパティーを設定する必要があります。

Grafana リソースの例

apiVersion: integreatly.org/v1alpha1
kind: Grafana
metadata:
  name: example-grafana
spec:
  ingress:
    enabled: true
  config:
    auth:
      disable_signout_menu: true
    auth.anonymous:
      enabled: true
    log:
      level: warn
      mode: console
    security:
      admin_password: secret
      admin_user: root
  dashboardLabelSelector:
    - matchExpressions:
        - key: app
          operator: In
          values:
            - my-kogito-application