Skip to content
/ goma Public
forked from cybozu-go/goma

An extensible monitoring agent in Go.

License

Notifications You must be signed in to change notification settings

cit-lab/goma

This branch is 23 commits behind cybozu-go/goma:master.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

e1c4f5d · Aug 24, 2016

History

30 Commits
Aug 21, 2016
Aug 24, 2016
Apr 4, 2016
Aug 24, 2016
Aug 21, 2016
Apr 3, 2016
Aug 20, 2016
Aug 24, 2016
Apr 7, 2016
Apr 3, 2016
Aug 20, 2016
Jun 2, 2016
Apr 4, 2016
Apr 4, 2016
Apr 3, 2016
Apr 4, 2016
Aug 21, 2016
Aug 21, 2016
Aug 21, 2016
Aug 21, 2016
Apr 6, 2016
Aug 21, 2016
Apr 6, 2016

Repository files navigation

GitHub release GoDoc Build Status Go Report Card License

Goma is:

  • Japanese name of sesame seeds, Goma image and
  • an extensible monitoring agent written in Go, described here.

Abstract

Goma is a general purpose monitoring server/client. It can run multiple monitoring processes concurrently in a single server process.

Basically, goma does active (not passive) monitoring to objects like web sites or local OS, and kicks actions on failure and/or recovery.

Monitor processes are loaded from configuration files from a directory at start up, and can be added/started/stopped/removed dynamically via command-line and REST API.

Goma is designed with DevOps in mind. Developers can define and add monitors for their programs easily by putting a rule file to the configuration directory or by REST API. Monitoring rules and actions can be configured flexibly as goma can run arbitrary commands for them.

What goma is not

goma is not designed for metrics collection. Use other tools such as Zabbix for that purpose.

Architecture

goma can run multiple independent monitors in a single process.

A monitor consists of a probe, one or more actions, and optionally a filter. A monitor probes something periodically, and kick actions for failure when the probe, or filtered result of the probe, reports failures. The monitor kicks actions for recovery when the probe or filtered result of the probe reports recovery from failures.

A probe checks a system and report its status as a floating point number. All probes have timeouts; if a probe cannot return a value before the timeout, goma will cancel the probe.

A filter manipulates probe outputs; for example, a filter can produce moving average of probe outputs.

An action implements actions on failures and recoveries.

goma comes with a set of probes, actions, and filters. New probes, actions, and filters can be added as compiled-in plugins.

Pull requests to add new plugins are welcome!

Usage

Read USAGE.md for details.

Install

Use Go 1.7 or better.

go get github.com/cybozu-go/goma/cmd/goma

License

MIT

About

An extensible monitoring agent in Go.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Go 100.0%