You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

EC2上systemctl停止Kafka-connect-worker时同步发指标至Datadog方案问询

解决方案

1. 编辑Kafka Connect的systemd服务文件

找到Kafka Connect Worker对应的systemd服务文件,常见路径为/etc/systemd/system/kafka-connect-worker.service或/usr/lib/systemd/system/kafka-connect-worker.service。

用编辑器打开文件:

sudo nano /etc/systemd/system/kafka-connect-worker.service

2. 添加停止前的指标发送逻辑

在[Service]区块中新增ExecStopPre指令,用于在服务停止前向Datadog发送自定义停止状态指标:

[Service]
# 保留原有配置(如ExecStart、User等)
ExecStart=/path/to/your/kafka/connect/start-script.sh
# 添加指标发送命令
ExecStopPre=/bin/bash -c 'curl -X POST "http://127.0.0.1:8126/v1/series" -H "Content-Type: application/json" -d "{\"series\":[{\"metric\":\"kafka.connect.worker.status\",\"points\":[[$(date +%s),0]],\"tags\":[\"service:kafka-connect-worker\"],\"type\":\"gauge\"}]}"'
# 保留原有停止命令(若存在)
ExecStop=/path/to/your/kafka/connect/stop-script.sh

参数说明

  • kafka.connect.worker.status:自定义指标名称,可按需修改;
  • 指标值0:代表服务停止(若需区分运行状态,可在启动时发送值1);
  • tags:用于在Datadog中筛选指标,可根据自身标签规范调整;
  • 确保Datadog Agent的本地API端口8126处于开启状态(默认启用)。

3. 重载systemd配置并生效

修改完成后,重载systemd配置:

sudo systemctl daemon-reload

重启Kafka Connect Worker使配置生效:

sudo systemctl restart kafka-connect-worker

4. 验证效果

执行停止命令:

sudo systemctl stop kafka-connect-worker

登录Datadog控制台,搜索kafka.connect.worker.status指标,即可看到对应服务停止时间点的0值数据。

替代方案:发送Datadog服务检查

若需要更直观的服务状态告警,可将ExecStopPre替换为发送Service Check的命令:

/bin/bash -c 'curl -X POST "http://127.0.0.1:8126/v1/check_run" -H "Content-Type: application/json" -d "{\"check\":\"kafka.connect.worker\",\"status\":2,\"tags\":[\"service:kafka-connect-worker\"],\"message\":\"Kafka Connect Worker stopped via systemctl\"}"'

其中status值定义:0=正常、1=警告、2=异常(停止)、3=未知。

注意事项

  • 确保EC2实例已安装curl工具(默认环境通常已包含);
  • 避免使用会修改Kafka Connect集群状态的操作(如之前的curl delete);
  • 若服务进程退出过快,可适当调整ExecStopPre的执行优先级,确保指标发送完成后再停止服务。

内容的提问来源于stack exchange,提问作者srinivas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 16:31:16