aboutsummaryrefslogtreecommitdiff

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>

References