第 13 章 Red Hat Process Automation Manager Kogito Operator 与 Prometheus 和 Grafana 进行交互
红帽在 Red Hat Decision Manager 中构建 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>
<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>
<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
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
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 提取的端点。红帽决策管理器服务公开的指标会出现在 Graph 视图中。
RHPAM Kogito Operator 还会为附加组件生成的每个 Grafana 仪表板创建一个 GrafanaDashboard
自定义资源。https://operatorhub.io/operator/grafana-operator仪表板的 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
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