EaseProbe是一个简单、独立且轻量级的工具,用Go语言编写,可以进行健康/状态检查。
EaseProbe设计用于执行三类工作 - 探测、通知和报告。
EaseProbe支持多种探测方法,如:
SHOW STATUS
SQL。PING
命令。version
命令或验证给定的键值对。SELECT 1
SQL。get /
命令。EaseProbe支持以下通知方式:
注意:
默认情况下,通知是边缘触发模式。如果您想将其配置为具有不同间隔和最大通知次数的水平触发模式,请参阅手册 - 告警间隔。
Windows 平台不支持使用 syslog 作为通知方法。
查看通知手册了解如何配置。
EaseProbe 支持以下报告和指标:
notify:
方法发送每日、每周或每月的 SLA 报告。0.0.0.0:8181
端口。访问此服务可获得 HTML 格式的实时 SLA 报告(http://localhost:8181/
)或 JSON 格式的报告(http://localhost:8181/api/v1/sla
)。$CWD/data/data.yaml
中。您可以通过编辑配置文件的 settings
部分来配置此路径。更多信息,请查看全局设置配置
8181
端口。访问此服务可在 http://easeprobe:8181/metrics
获得 Prometheus 指标。指标以 easeprobe_
为前缀,详细文档请参阅 Prometheus 指标导出器
您可以通过以下任一方法开始使用 EaseProbe:
docker run -it megaease/easeprobe
easeprobe
编译器要求 Go 1.21+
(支持泛型编程),查看 Go 安装指南 了解如何在您的平台上安装 Go。
使用 make
构建并生成 easeprobe
二进制文件。可执行文件会生成在 build/bin
目录下。
$ make
阅读用户手册获取有关如何配置所有 EaseProbe 参数的详细说明。
使用 ./resources/config.yaml 中的配置模板创建一个配置文件(例如 $CWD/config.yaml
),该模板包含了完整的配置参数列表。
以下是一个简单的配置示例,可用于快速入门:
http: # http 探测 - name: EaseProbe Github url: https://github.com/megaease/easeprobe notify: log: - name: log file # 本地日志文件 file: /var/log/easeprobe.log settings: probe: timeout: 30s # 所有探测的超时时间 interval: 1m # 所有探测的间隔时间为每分钟
您可以查看 EaseProbe JSON Schema 部分,使用 JSON Schema 文件来简化配置文件的编辑过程。
构建完成后,您可以运行以下命令启动 EaseProbe
$ build/bin/easeprobe -f config.yaml
-f
配置文件或 URL 或多个文件的路径(将自动合并为一个)。也可以通过设置环境变量 PROBE_CONFIG
实现-d
干运行。也可以通过设置环境变量 PROBE_DRY
实现EaseProbe 可以通过 Systemd、Docker、Docker-Compose 和 Kubernetes 进行部署。
详细信息可以在部署指南中找到
有关详细说明和功能,请参阅用户手册
我们对 EaseProbe 进行了广泛的基准测试。有关基准测试结果,请参阅 - 基准测试报告
如果您有兴趣为项目做出贡献,请花点时间阅读我们的 贡献指南
EaseProbe 采用 Apache 2.0 许可证。详情请见 LICENSE 文件。