EaseProbe is a simple, standalone, and lightweight tool that can do health/status checking, written in Go.
EaseProbe is designed to do three kinds of work - Probe, Notify, and Report.
EaseProbe supports a variety of methods to perform its probes such as:
SHOW STATUS
SQL.PING
command.version
command or validate a given key/value pair.SELECT 1
SQL.get /
command.EaseProbe supports notification delivery to the following:
Note:
1) The notification is Edge-Triggered Mode by default, if you want to config it as Level-Triggered Mode with different interval and max notification, please refer to the manual - Alerting Interval.
2) Windows platforms do not support syslog as notification method.
Check the Notification Manual to see how to configure it.
EaseProbe supports the following report and metrics:
notify:
methods.0.0.0.0:8181
port by default. By accessing this service you will be provided with a live SLA report either as HTML at http://localhost:8181/
or as JSON at http://localhost:8181/api/v1/sla
$CWD/data/data.yaml
by default. You can configure this path by editing the settings
section of your configuration file.For more information, please check the Global Setting Configuration
8181
port by default. By accessing this service you will be provided with Prometheus metrics at http://easeprobe:8181/metrics
.The metrics are prefixed with easeprobe_
and are documented in Prometheus Metrics Exporter
You can get started with EaseProbe, by any of the following methods:
docker run -it megaease/easeprobe
easeprobe
from sourcesCompiler Go 1.21+
(Generics Programming Support), checking the Go Installation to see how to install Go on your platform.
Use make
to build and produce the easeprobe
binary file. The executable is produced under the build/bin
directory.
$ make
Read the User Manual for detailed instructions on how to configure all EaseProbe parameters.
Create a configuration file (eg. $CWD/config.yaml
) using the configuration template at ./resources/config.yaml, which includes the complete list of configuration parameters.
The following simple configuration example can be used to get started:
http: # http probes
- name: EaseProbe Github
url: https://github.com/megaease/easeprobe
notify:
log:
- name: log file # local log file
file: /var/log/easeprobe.log
settings:
probe:
timeout: 30s # the time out for all probes
interval: 1m # probe every minute for all probes
You can check the EaseProbe JSON Schema section to use a JSON Scheme file to make your life easier when you edit the configuration file.
You can run the following command to start EaseProbe once built
$ build/bin/easeprobe -f config.yaml
-f
configuration file or URL or path for multiple files which will be automatically merged into one. Can also be achieved by setting the environment variable PROBE_CONFIG
-d
dry run. Can also be achieved by setting the environment variable PROBE_DRY
EaseProbe can be deployed by Systemd, Docker, Docker-Compose, & Kubernetes.
You can find the details in Deployment Guide
For detailed instructions and features please refer to the User Manual
We have performed an extensive benchmark on EaseProbe. For the benchmark results please refer to - Benchmark Report
If you're interested in contributing to the project, please spare a moment to read our CONTRIBUTING Guide
EaseProbe is under the Apache 2.0 license. See the LICENSE file for details.