Skip to content

Latest commit

 

History

History
290 lines (210 loc) · 4.94 KB

monitoring.md

File metadata and controls

290 lines (210 loc) · 4.94 KB

Guardian

Guardian是seatunnel的子项目,是一个监控和报警工具,可以提供seatunnel的存活情况监控以及调度延迟情况监控。Guardian能够在运行时动态加载配置文件,并提供HTTP API支持配置的实时修改。目前仅支持seatunnel on Yarn.

运行Guardian

下载Guardian,这里以guardian_1.0.0为例

wget https://github.com/InterestingLab/guardian/releases/download/v1.0.0/guardian_1.0.0.tar.gz
tar -xvf guardian_1.0.0
cd guardian_1.0.0
./bin/guardian check config.json

配置文件

Guardian配置文件由JSON格式编写,一个有效的实例,点击这里

整个配置文件由以下几个部分组成:

  • port: 接口API绑定的端口
  • node_name: 节点信息
  • check_interval: 检测应用的时间间隔
  • yarn: 被检测的YARN集群地址
  • apps: 需要被检测的具体应用
  • alert_manager: 报警管理

以下是各部分详细介绍:

yarn

# Yarn resourcemanager
api_hosts: <list>

Example

"yarn": {
    "api_hosts": [
        "10.11.10.21:8088",
        "10.11.10.22:8088"
    ]
}

apps

[{
    # Spark application name
    "app_name": <string>,
    # 当应用失败时的重启命令
    "start_cmd": <string>,
    # 同一个app_name下的应用运行个数
    "app_num": <number>,
    # Application type, default 'spark'
    "check_type": <string>,
    # 标志这个应用是否有效
    "active": <boolean>
    "check_options": {
        # 报警级别,支持WARNNING、ERROR等
        "alert_level": <string>,
        "max_delayed_batch_num": <number>,
        "max_delayed_time": <number>
    }
}]

Example

"apps": [
    {
        "app_name": "seatunnel-app",
        "start_cmd": "test_cmd",
        "app_num": 1,
        "check_type": "spark",
        "check_options": {
            "alert_level": "WARNING",
            "max_delayed_batch_num": 10,
            "max_delayed_time": 600
        }
    }
]

alert_manager

routes

报警路由,当前仅支持报警级别

当报警级别为WARNNINGERROR触发报警

"routes": {
    "match": {
        "level": ["WARNING", "ERROR"]
    }
}

emails

通过邮件发送报警信息

# 邮箱验证用户名
"auth_username": <string>,
# 邮箱验证密码
"auth_password": <string>,
# 邮箱stmp服务器
"smtp_server": <string>,
# 发件人
"sender": <string>,
# 收件人列表
"receivers": <list>

Example

"emails": {
    "auth_username": "username",
    "auth_password": "password",
    "smtp_server": "smtp.163.com",
    "sender": "[email protected]",
    "receivers": ["[email protected]"],
    "routes": {
        "match": {
            "level": ["WARNING", "ERROR"]
        }
    }
}

webhook

通过接口实现自定义报警方式

# webhook接口地址
"url": <string>

Example

"webhook": {
    "url": "http://api.webhook.interestinglab.org/alert",
    "routes": {
        "match": {
            "level": ["ERROR"]
        }
    }
}

Gaurdian调用接口的时候会以下面JSON格式发送HTTP POST请求到配置的接口地址:

{
    "subject": "Guardian",
    "objects": "seatunnel_app",
    "content": "App is not running or less than expected number of running instance, will restart"
}

Guardian接口使用指南

GET

概述

接口参数定义

N/A

返回结果

curl 'http://localhost:5000/config/seatunnel-app2'

{
  "content": {
    "app_name": "seatunnel-app2",
    "app_num": 1,
    "check_options": {},
    "check_type": "spark",
    "start_cmd": "test_cmd_not_exist"
  },
  "status": 0
}

POST

概述

  • 功能描述

    更新或新增Guardian中应用配置信息,当app_name存在,更新对应配置信息,当app_name不存在,新增一个应用监控配置

  • 基础接口

    http://localhost:5000/config/[app_name]

  • 请求方式

    post

接口参数定义

字段 类型 注释 实例
start_cmd string 重启命令
app_num num 存在个数 2
check_type string 应用类型 spark
check_options dict
active boolean 是否有效 true

返回结果

curl 'http://localhost:5000/config/seatunnel-app2' -d '
{
    'active': false
}'

{
  "status": 0
}

DELETE

概述

接口参数定义

N/A

返回结果

curl -XDELETE 10.212.81.56:5000/config/seatunnel-app2

{
  "status": 0
}

返回状态码说明

status 说明
0 成功
1 参数错误
2 内部错误