对于Kafka Connect Connector或Connector任务失败或遇到错误的情况,是否有任何警报选项?Kafka Connect警报选项?
我们有卡夫卡连接运行,它运行良好,但我们有错误,需要手动跟踪和发现。通常,在人类发现问题之前,它一直处于错误状态。
对于Kafka Connect Connector或Connector任务失败或遇到错误的情况,是否有任何警报选项?Kafka Connect警报选项?
我们有卡夫卡连接运行,它运行良好,但我们有错误,需要手动跟踪和发现。通常,在人类发现问题之前,它一直处于错误状态。
一个选项是使用Kafka Connect's REST API来检查工作人员的健康状况和连接器的状态。这种方法对于使用简单脚本或许多监控系统进行自动化很简单。它适用于独立工作人员和分布式工作人员,但在后一种情况下,您可以向群集中的任何Kafka Connect工作人员发出请求。
如果要检查所有的连接器的健康,第一步是获得部署连接器列表:
GET /connectors
返回连接器名称的JSON数组。对于每一个这种的,发出请求,检查名为连接器的状态:
GET /connectors/(string: name)/status
响应将包含有关连接器和它的任务状态信息。例如,下面显示了运行两个任务的连接器,与仍在运行的任务之一,另一个已经失败,出现错误:
HTTP/1.1 200 OK
{
"name": "hdfs-sink-connector",
"connector": {
"state": "RUNNING",
"worker_id": "fakehost:8083"
},
"tasks":
[
{
"id": 0,
"state": "RUNNING",
"worker_id": "fakehost:8083"
},
{
"id": 1,
"state": "FAILED",
"worker_id": "fakehost:8083",
"trace": "org.apache.kafka.common.errors.RecordTooLargeException\n"
}
]
}
这些只是一个什么样的REST API允许你采样做。
基于Randall的说法,此shell脚本使用Confluent CLI显示所有连接器和任务的状态。你可以使用它作为警报的基础:
[email protected] ~/c/confluent-3.3.0> ./bin/confluent status connectors| \
jq '.[]'| \
xargs -I{connector} ./bin/confluent status {connector}| \
jq -c -M '[.name,.connector.state,.tasks[].state]|join(":|:")'| \
column -s : -t| \
sed 's/\"//g'| \
sort
file-sink-mysql-foobar | RUNNING | RUNNING
jdbc_source_mysql_foobar_01 | RUNNING | RUNNING