• Stars
    star
    124
  • Rank 280,615 (Top 6 %)
  • Language
    Go
  • License
    MIT License
  • Created about 8 years ago
  • Updated 5 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

An extensible monitoring agent in Go.

GitHub release GoDoc CircleCI Go Report Card

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

The latest officially supported Go version is recommended.

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

License

MIT

More Repositories

1

transocks

Transparent SOCKS5 / HTTP proxy in Go
Go
465
star
2

moco

MySQL operator on Kubernetes using GTID-based semi-synchronous replication.
Go
246
star
3

neco

Project Neco
Go
229
star
4

cke

Cybozu Kubernetes Engine
Go
183
star
5

coil

CNI plugin for Kubernetes designed for scalability and extensibility
Go
156
star
6

usocksd

SOCKS4/5 server library and command in Go
Go
142
star
7

well

Go framework for well-behaving commands
Go
125
star
8

aptutil

Go utilities for Debian APT repositories
Go
123
star
9

sabakan

A versatile network boot server for large data centers
Go
113
star
10

placemat

Virtual data center construction tool
Go
82
star
11

etcdpasswd

Distributed Linux user management using etcd
Go
44
star
12

accurate

Kubernetes controller for multi-tenancy. It propagates resources between namespaces accurately and allows tenant users to create/delete sub-namespaces.
Go
28
star
13

log

Logging framework for Cybozu Go products
Go
28
star
14

contour-plus

Enhance contour for external-dns and cert-manager
Go
25
star
15

meows

Kubernetes controller for GitHub actions self-hosted runners
Go
19
star
16

netutil

Add-ons for Go networking
Go
15
star
17

kkok

Alert routing and filtering service
Go
10
star
18

scim

generic SCIM server/client library in Go
Go
7
star
19

cat-gate

A Kubernetes controller to delay pod deployment using scheduling gates
Go
5
star
20

setup-hw

Build container image to configure BMC and BIOS
Go
5
star
21

nginx-i2c

ip2country.conf generation tool for nginx
Go
4
star
22

options

A small library that provides Option[T], which represents an optional value of type T
Go
4
star
23

scim-server

Go
4
star
24

pod-security-admission

A Kubernetes admission webhook to ensure pod security standards
Go
4
star
25

nyamber

Custom controllers to create Neco environment
Go
1
star
26

neco-template

Template repository for Neco
Makefile
1
star
27

neco-gcp

GCP management tools for project Neco
Go
1
star
28

necotiator

ResourceQuota Controller for soft multi-tenancy
Go
1
star
29

tenet

Tenet is a Kubernetes controller that aims to facilitate setting-up Network Policies on tenant namespaces.
Go
1
star
30

necoperf

necoperf provides the ability to easily retrieve profiles of containers running on Kubernetes.
Go
1
star