tencent cloud

文档反馈

Flink 接入

最后更新时间:2024-01-29 15:55:14

    操作场景

    在使用 Flink 过程中需要对 Flink 任务运行状态进行监控,以便了解 Flink 任务是否正常运行,排查 Flink 故障等。 Prometheus 监控服务对 push gateway 做了集成,支持 Flink 写入 metrics,并提供了开箱即用的 Grafana 监控大盘。

    前提条件

    1. 购买的腾讯云弹性 MapReduce(以下简称 EMR)产品包含 Flink 组件,并在实例上跑 Flink 任务。
    2. 在 Prometheus 实例对应地域及私有网络 VPC 下,创建腾讯云容器服务 托管版集群

    操作步骤

    产品接入

    获取 PushGateway 访问配置

    1. 前往 弹性 MapReduce > 选择对应的“实例” > 基本信息 > 实例信息页面,获取 Pushgateway 地址和 Token。
    
    
    2. 账号信息 页面获取 APPID。
    1. 进入 弹性 MapReduce > 选择对应的“实例” > 集群服务页面。
    2. 找到 Flink 配置项,在右侧选择操作 > 配置管理,进入配置管理页面。
    3. 在页面右侧单击新增配置项,依次添加以下配置。
    配置名
    默认
    类型
    描述
    建议
    metrics.reporter.promgateway.class
    字符串
    实现 metrics 导出到 push gateway 的 java 类名
    -
    metrics.reporter.promgateway.jobName
    字符串
    push 任务名
    指定方便理解的字符串
    metrics.reporter.promgateway.randomJobNameSuffix
    true
    布尔
    是否在任务名后添加随机字符串
    需设置为 true,如果不添加, Flink 任务间 metrics 会相互覆盖
    metrics.reporter.promgateway.groupingKey
    字符串
    添加到每个 metrics 的全局 label,格式为 k1=v1;k2=v2
    添加 EMR 实例 ID 方便区分不同实例的数据,例如 instance_id=emr-xxx
    metrics.reporter.promgateway.interval
    时间
    推送 metrics 的时间间隔,例如30秒
    建议设置在1分钟左右
    metrics.reporter.promgateway.host
    字符串
    push gateway 的服务地址
    控制台上 prometheus 实例的服务地址
    metrics.reporter.promgateway.port
    -1
    整数
    push gateway 服务端口
    控制台上 prometheus 实例的服务端口
    metrics.reporter.promgateway.needBasicAuth
    false
    布尔
    push gateway 服务是否需要认证
    设置为 true,prometheus 监控服务的 push gateway 需要认证
    metrics.reporter.promgateway.user
    字符串
    认证的用户名
    用户的 APPID
    metrics.reporter.promgateway.password
    字符串
    认证的密码
    控制台上 prometheus 实例的访问 Token
    metrics.reporter.promgateway.deleteOnShutdown
    true
    布尔
    Flink 任务执行完后是否删除 push gateway 上对应的 metrics
    设置为 true
    配置示例如下:
    metrics.reporter.promgateway.class: org.apache.flink.metrics.prometheus.PrometheusPushGatewayReporter
    metrics.reporter.promgateway.jobName: climatePredict
    metrics.reporter.promgateway.randomJobNameSuffix:true
    metrics.reporter.promgateway.interval: 60 SECONDS
    metrics.reporter.promgateway.groupingKey:instance_id=emr-xxxx
    metrics.reporter.promgateway.host: 172.xx.xx.xx
    metrics.reporter.promgateway.port: 9090
    metrics.reporter.promgateway.needBasicAuth: true
    metrics.reporter.promgateway.user: appid
    metrics.reporter.promgateway.password: token
    官方包中的 push gateway 插件目前还不支持配置认证信息,但是托管服务需要认证才允许写入,建议使用我们提供的 jar 包。我们也向 flink 官方提交了支持认证的 PR。
    1. 为防止类冲突,如果已经使用 Flink 官方插件,需要先执行以下命令删除官方插件。
    cd /usr/local/service/flink/lib rm flink-metrics-prometheus*jar
    2. . 在弹性 MapReduce 控制台 > 选择对应的“实例” > 集群资源 > 资源管理 > Master页面,查看 Master 节点。
    3. 单击实例 ID 跳转至 CVM 控制台,登录 CVM 执行以下命令安装插件。
    cd /usr/local/service/flink/lib
    wget https://rig-1258344699.cos.ap-guangzhou.myqcloud.com/flink/flink-metrics-prometheus_2.11-auth.jar -O flink-metrics-prometheus_2.11-auth.jar

    验证

    1. 在 Master 节点上执行 flink run 命令提交新任务,查看任务日志。
    grep metrics /usr/local/service/flink/log/flink-hadoop-client-*.log
    2. 日志中包含下图内容,表示配置加载成功:
    
    
    注意:
    集群中已经提交的任务,由于使用的是旧配置文件,因此不会上报 metrics。

    查看监控

    1. 在对应 Prometheus 实例 >集成中心中找到 Flink 监控,安装对应的 Grafana Dashboard 即可开启 Flink 监控大盘。
    2. 进入 Grafana,单击
    
    展开 Flink 监控面板。
    
    
    3. 单击 Flink Job List查看监控。
    
    
    4. 单击表格中的 Job 名Job ID 列值,查看 Job 监控详情。
    
    
    5. 单击右上角的 Flink 集群,查看 Flink 集群监控。
    
    
    6. 单击表格中的 Task 名列值,查看 Task 监控详情。
    
    

    告警接入

    1. 登录 Prometheus 监控控制台,选择对应 Prometheus 实例进入管理页面。
    2. 单击告警策略,可以添加相应的告警策略,详情请参见 新建告警策略
    联系我们

    联系我们,为您的业务提供专属服务。

    技术支持

    如果你想寻求进一步的帮助,通过工单与我们进行联络。我们提供7x24的工单服务。

    7x24 电话支持