第 13 章 Red Hat Process Automation Manager Kogito Operator 与 Prometheus 和 Grafana 进行交互
Red Hat Process Automation Manager 中的 Red Hat build of Kogito 提供了一个 monitoring-prometheus-addon
附加组件,它为 Kogito 微服务的红帽构建启用 Prometheus 指标监控,并生成使用附加组件导出的默认指标的 Grafana 仪表板。RHPAM Kogito Operator 使用 Prometheus Operator 来提取 Prometheus 中的指标。由于这个依赖项,Prometheus Operator 必须安装在与项目相同的命名空间中。
如果要为 Kogito 微服务的红帽构建启用 Prometheus 指标监控,请将以下内容添加到项目中的 pom.xml
文件中,具体取决于您使用的框架:
Prometheus Red Hat build of 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 的 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
标签是部署的红帽构建 Kogito 微服务的名称。您必须根据相关的红帽构建 Kogito 微服务来设置 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