Architecture design - Multi-Axis/multi-axis-graphs GitHub Wiki

Overview

  • Zabbix PostgreSQL db "cloud"
  • Local PostgreSQL db scheme models an exact subset of Zabbix db, and adds some of its own to model the forecasting models (no pun intended).
  • Habbix is used to
    • migrate local db schema
    • synchronize local db from zabbix db (e.g. every 5min via cron)
    • run forecasting models on every sync
  • Go web server
    • /dashboard - The dashboard page
    • /host/:hostid - Host views
    • /metric/:itemid - Single graph (and forecasts, model info) views

High-level architecture graph

Forecast framework

This section is a draft.

Forecasting units are server-side.. things, that listen to json events and output json forecasts. Example of a json event:

{ "value_type" : 0  // values are of type .0000
, "clocks" : [...] // list of epoch times (x values)
, "values" : [...] // y values
, "params" : { ... } // Extra parameters. forecast-unit specific
}

Output forecasts must look like

{ "clocks" : [...] // Extrapolated clock-value pairs
, "values" : [...]
, "details" : { ... } // Forecast-specific details (R^2 etc.)
}