diff options
author | Silvio Rhatto <rhatto@riseup.net> | 2016-11-24 10:45:00 -0200 |
---|---|---|
committer | Silvio Rhatto <rhatto@riseup.net> | 2016-11-24 10:45:00 -0200 |
commit | 3a133d7bc052c7bc9dfd6f3ee03113758324b3dd (patch) | |
tree | 9f2da365f50a2ba6bde11678504621b35c9fa7b3 | |
download | metrics-3a133d7bc052c7bc9dfd6f3ee03113758324b3dd.tar.gz metrics-3a133d7bc052c7bc9dfd6f3ee03113758324b3dd.tar.bz2 |
Initial import
-rw-r--r-- | README.rst | 46 | ||||
-rw-r--r-- | TODO.rst | 25 | ||||
-rwxr-xr-x | metrics | 27 |
3 files changed, 98 insertions, 0 deletions
diff --git a/README.rst b/README.rst new file mode 100644 index 0000000..039db10 --- /dev/null +++ b/README.rst @@ -0,0 +1,46 @@ +metrics: distributed measurement system +======================================= + +Goals +----- + +- essential, simple and reliable. +- minimum maintenance. + +Architecture +------------ + +- probes: run probes that gather data from the current or any remote node. +- analyzers: process collected hosts, triggering events (notifications, graphing, etc). +- syncer: send collected and analyzed data to remote locations. + +Worflow +------- + +- cronjob: synced dispatch. +- command line: asynced dispatch. + +Plugable +-------- + +- plugin lookup in shared folders such as `~/.local/share` and `/usr/local/share`. +- analyzer cronjobs detects collected data and dispatch available analyzers. + +Formats +------- + +- outputs: yaml, json or any other format understood by each probe/analyzer pair. +- version field: so analyzers knows by which schema they should process data. + +Filesystem +---------- + +- unique locations per host/probe/analyzer to ease syncing. +- folders: {/etc,/var/lib}/metrics/$HOSTNAME/{probes,analyzers,syncers}/{localhost,$HOST}/$NAME/. +- files: config.yaml (failing back to defaults) and $TIMESTAMP.{json,yaml,rrd,etc}. + +Usage +----- + +:: + metrics <action> <target> diff --git a/TODO.rst b/TODO.rst new file mode 100644 index 0000000..20e1b61 --- /dev/null +++ b/TODO.rst @@ -0,0 +1,25 @@ +TODO +==== + +- website and repository. +- search for similar software +- initial plugins: + - hddtemp + - lshw -json + - facter + - sensors + - raid + - smartmontools + - load + - memory + - cpu + - disk + - smtp + - imap + - http/https + - website + - ping + - ssh +- other plugins: + - collectd + - munin-plugins @@ -0,0 +1,27 @@ +#!/usr/bin/python +# +# metrics: distributed measurement system. +# +# Copyright (C) 2016 Silvio Rhatto - rhatto@riseup.net +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. +# + +# Load +# Check syntax +# Check for available target +# Check superuser rights +# Determine config file +# Ensure folders exists +# Call target and redirect output |