配置并查看Flink作业监控与报警

本文为您介绍如何通过阿里云ARMS服务收集并查看Flink作业的监控指标,以及如何基于监控指标设置报警。

前提条件

配置Prometheus监控

  1. 进入Prometheus监控页面。

    1. 登录EMR on ACK控制台

    2. 在EMR on ACK页面,单击目标集群所在行所属ACK集群列的链接。

    3. 在左侧导航栏中,选择运维管理 > Prometheus监控

    4. Prometheus监控页面,控制台自动安装组件、检查监控大盘。

      安装完成后,单击各个页签可以查看相应监控数据。

    5. Prometheus监控页面,单击右上角的跳转到Prometheus服务

  2. 开启默认服务发现。

    1. 在左侧导航栏,单击服务发现

    2. 服务发现页面,单击配置页签。

    3. 默认服务发现页签,打开kubernetes-pods操作列的开关。

    4. 在弹出的对话框中,单击开启

  3. 提交Flink作业,具体操作请参见提交Flink作业

    重要

    需要在作业YAML的podTemplate中指定Prometheus Metric Reporter对应的annotation。

    作业示例如下。

    
    apiVersion: flink.apache.org/v1beta1
    kind: FlinkDeployment
    metadata:
      name: basic-emr-example
    spec:
      flinkVersion: v1_13
      flinkConfiguration:
        state.savepoints.dir: file:///flink-data/flink-savepoints
        state.checkpoints.dir: file:///flink-data/flink-checkpoints
        metrics.reporter.prom.factory.class: org.apache.flink.metrics.prometheus.PrometheusReporterFactory
      serviceAccount: flink
      podTemplate:
        metadata:
          annotations:
            prometheus.io/path: /metrics
            prometheus.io/port: "9249"
            prometheus.io/scrape: "true"
        spec:
          serviceAccount: flink
          containers:
            - name: flink-main-container
              volumeMounts:
                - mountPath: /flink-data
                  name: flink-volume
              ports:
                - containerPort: 9249
                  name: metrics
                  protocol: TCP
          volumes:
            - name: flink-volume
              emptyDir: {}
    
      jobManager:
        replicas: 1
        resource:
          memory: "2048m"
          cpu: 1
      taskManager:
        resource:
          memory: "2048m"
          cpu: 1
    
      job:
        jarURI: local:///opt/flink/examples/streaming/StateMachineExample.jar
        parallelism: 2
        upgradeMode: stateless
  4. 作业运行起来后,可以在服务发现页面的Targets页签中查看到kubernetes-pods的状态,并且可以采集到对应Flink作业的JobManager和TaskManager的指标。

    View metrics
  5. 可选:配置Grafana大盘查看指标曲线。

    1. Prometheus监控页面,单击其他页签。

    2. 单击集群Prometheus自身监控页签。

    3. 单击在新页面打开

    4. 在左侧导航栏选择add > Create

      重要

      使用Grafana专家版本才可添加新的仪表盘(Dashboard)。

    5. 单击Add new panel

    6. Query区域的下拉列表中选择集群,在A折叠面板的Metrics下拉列表中选择您想查看的监控指标,例如:flink_jobmanager_job_lastCheckpointDuration。

      new panel
    7. 在页面右侧的区域,填写Panel title,并根据您的需求配置其他参数。

    8. 单击右上角Save,在弹出的对话框中输入大盘名称,并选择集群,然后单击Save

查看告警

  1. 进入告警规则页面。

    1. 登录EMR on ACK控制台

    2. 在EMR on ACK页面,单击目标集群所在行所属ACK集群列的链接。

    3. 在左侧导航栏中,选择运维管理 > Prometheus监控

    4. Prometheus监控页面,控制台自动安装组件、检查监控大盘。

      安装完成后,单击各个页签可以查看相应监控数据。

    5. Prometheus监控页面,单击右上角的跳转到Prometheus服务

    6. 在左侧导航栏,单击告警规则

  2. 配置告警规则。

    1. Prometheus告警规则页面,单击创建Prometheus告警规则

    2. 创建Prometheus告警规则,具见请参见通过自定义PromQL创建Prometheus告警规则

      rule
  3. Prometheus告警规则页面,单击目标告警操作列的告警事件历史

    当报警条件满足时,即可看到相应的报警。Alarm details