megaease / easeprobe

A simple, standalone, and lightweight tool that can do health/status checking, written in Go.
Apache License 2.0
2.18k stars 231 forks source link
alerting go golang monitoring notifications probe prometheus

EaseProbe

Go Report Card codecov Build GitHub go.mod Go version Join MegaEase Slack

EaseProbe is a simple, standalone, and lightweight tool that can do health/status checking, written in Go.

Table of Contents

1. Introduction

EaseProbe is designed to do three kinds of work - Probe, Notify, and Report.

1.1 Probe

EaseProbe supports a variety of methods to perform its probes such as:

1.2 Notification

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.

1.3 Report & Metrics

EaseProbe supports the following report and metrics:

For more information, please check the Global Setting Configuration

The metrics are prefixed with easeprobe_ and are documented in Prometheus Metrics Exporter

2. Getting Started

You can get started with EaseProbe, by any of the following methods:

2.1 Build

Compiler 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

2.2 Configure

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.

2.3 Run

You can run the following command to start EaseProbe once built

$ build/bin/easeprobe -f config.yaml

3. Deployment

EaseProbe can be deployed by Systemd, Docker, Docker-Compose, & Kubernetes.

You can find the details in Deployment Guide

4. User Manual

For detailed instructions and features please refer to the User Manual

5. Benchmark

We have performed an extensive benchmark on EaseProbe. For the benchmark results please refer to - Benchmark Report

6. Contributing

If you're interested in contributing to the project, please spare a moment to read our CONTRIBUTING Guide

7. Community

8. License

EaseProbe is under the Apache 2.0 license. See the LICENSE file for details.