通过 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