From 3a133d7bc052c7bc9dfd6f3ee03113758324b3dd Mon Sep 17 00:00:00 2001 From: Silvio Rhatto Date: Thu, 24 Nov 2016 10:45:00 -0200 Subject: Initial import --- README.rst | 46 ++++++++++++++++++++++++++++++++++++++++++++++ TODO.rst | 25 +++++++++++++++++++++++++ metrics | 27 +++++++++++++++++++++++++++ 3 files changed, 98 insertions(+) create mode 100644 README.rst create mode 100644 TODO.rst create mode 100755 metrics 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 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 diff --git a/metrics b/metrics new file mode 100755 index 0000000..9c1ec68 --- /dev/null +++ b/metrics @@ -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 . +# + +# Load +# Check syntax +# Check for available target +# Check superuser rights +# Determine config file +# Ensure folders exists +# Call target and redirect output -- cgit v1.2.3