Revolyssup / heamon

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Heamon - A minimal Monitoring System

GitHub issues GitHub GitHub go.mod Go version GitHub release (latest by date)

Heamon is minimal monitoring system written in Go.
  1. Hot Configuration Reloading
  2. Configurable Email alerts on service degradation/failure
  3. Minimal UI
Heamon has an extensible event driven architecture which allows writing plugins for it extremely easy. Email Notifications is implemented leveraging the events generated within Heamon.

Sample Heamon Configuration

title: Heamon Application # Title will be used on the Heamon UI
port: 3000 # Heamon will start on this port
authentication:
  username: ${{.HEAMON_USER}} # Will be replaced with env var $HEAMON_USER
  password: ${{.HEAMON_PASS}} # Will be replaced with env var $HEAMON_PASS
monitor:
  interval: 5 # Interval in minutes at which heamon probe-bots will query the service
  services:
    - name: Service 1 # Name of the service
      host: <service-host> # Host name, for Sagacious it will be sagacious.dev
      health_check_endpoint: / # The endpoint which will be queried for health check
      failure: 90 # Service state will be marked as "FAIL" if more than 90% requests fails
      degraded: 80 # Service state will be marked as "DEGRADED" if more than 80% requests fail
      initial_down_time: 5 # Expected initial down time for the service. The service will be marked in unknown state for this duration
    - name: Sagacious
      host: sagacious.dev
      health_check_endpoint: /
      failure: 90
      degraded: 80
      initial_down_time: 5
    # Any number of services can be placed here...

# Plugins are optional features of heamon and can be turned off by removing them from the
# the config file
plugins:
  alert:
    email:
      smtp:
        host: smtp.sendgrid.net
        port: 25
        username: ${{.SENDGRID_USERNAME}}
        password: ${{.SENDGRID_API}}
      from: <alert@sagacious.dev>
      to:
        - utkarsh@sagacious.dev
        - example@example.com
      duration: 60 # Duration to wait before triggering another mail. This will not be respected if the application
                   # state changes
      

Roadmap

  • v0.2.0 - Add Auto Service Discovery for Docker Swarm
  • v0.3.0 - Add Auto Service Discovery for Kubernetes
  • v0.4.0 - Add support for either WASM or Go Plugins (Hashicorp Go Plugins)
  • v0.5.0 - Robust Test Suite for Heamon

About

License:Apache License 2.0


Languages

Language:Go 76.4%Language:TypeScript 17.1%Language:HTML 4.5%Language:Makefile 1.3%Language:CSS 0.4%Language:Dockerfile 0.2%Language:Shell 0.1%