通过 prometheus operator 采集监控指标:
ServiceMonitor
。通过 Service
采集PodMonitor
。采集 Pod
安装 prometheus operator
参数说明:
values。可通过 --values additional-values
批量覆盖参数,也可通过 --set xxx=yyyy
覆盖参数
命名空间
禁用 AlertManager。--set alertmanager.enabled=false
禁用 Grafana。--set grafana.enabled=false
scaleph 在 tools/kubernetes/prometheus/values-prometheus-operator.yaml 中定制了开发、测试环境使用的 prometheus-operator 配置
生产环境中可以考虑使用 kubernetes 统一的 prometheus-operator 或者独立于 kubernetes 部署的 prometheus 实例,只需配置采集 kubernetes 中的 flink pods 的 metrics 即可
访问 prometheus 和 alert-manager
tools/kubernetes/prometheus/values-prometheus-operator.yaml 默认通过 NodePort 方式暴露了 prometheus 和 alert-manager 实例端口号。
卸载 prometheus operator
helm 并不会删除 crd, 需要手动删除
scaleph 对 Flink JobManager 和 TaskManager pod 增加了 prometheus.io/port:9249
和 prometheus.io/scrape:true
注解,并声明了 jmx
和 prom
的端口号:jmx-metrics: 8789
和 prom-metrics: 9249
。
scaleph 并未对 8789
和 9249
端口号创建 Service
对象,暴露这 2 个端口号。用户需查创建一个 Service
暴露所有 flink pods 的 metrics 端口号。后续 prometheus 会采集 flink pods 上的 labels,在 grafana 展示的时候,可以通过 pods 上的 labels 区分任务。
创建 Service
暴露 Flink 的 metrics 端口,包含所有的 Flink pods,供 prometheus 采集监控信息。
prometheus operator 通过 ServiceMonitor
采集 Flink metrics。tools/kubernetes/prometheus/values-prometheus-operator.yaml
已默认会创建,如果不是通过 tools/kubernetes/prometheus/values-prometheus-operator.yaml
创建的 prometheus operator,需自行创建
通过 prometheus 监控 ServiceMonitor
。prometheus 默认只监控当前 namespace 下的 ServiceMonitor
,如果要监控其他命名空间,可以通过 spec.serviceMonitorNamespaceSelector
实现。tools/kubernetes/prometheus/values-prometheus-operator.yaml
已默认会处理上一步的 ServiceMonitor
,如果不是通过 tools/kubernetes/prometheus/values-prometheus-operator.yaml
创建的 prometheus operator,需检查是否能够处理,如果不能,需添加一下对应的处理
使用 PodMonitor
监控 flink jobs pod 可以参考:Using PodMonitors