aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSilvio Rhatto <rhatto@riseup.net>2016-11-24 10:45:00 -0200
committerSilvio Rhatto <rhatto@riseup.net>2016-11-24 10:45:00 -0200
commit3a133d7bc052c7bc9dfd6f3ee03113758324b3dd (patch)
tree9f2da365f50a2ba6bde11678504621b35c9fa7b3
downloadmetrics-3a133d7bc052c7bc9dfd6f3ee03113758324b3dd.tar.gz
metrics-3a133d7bc052c7bc9dfd6f3ee03113758324b3dd.tar.bz2
Initial import
-rw-r--r--README.rst46
-rw-r--r--TODO.rst25
-rwxr-xr-xmetrics27
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
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 <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