-
Notifications
You must be signed in to change notification settings - Fork 29
Graph (idea note)
ashie edited this page Oct 30, 2014
·
26 revisions
- Holizontal: Time range (Variable)
- Vertical: Value (CPU load, memory usage, etc)
- UI to change time range (+/- icon?)
- Should we create a drawing framework with low-layer components such as canvas tag.
- I want to do so to understand the technologies well and have a room for flexibility.
- Fetch values with a specified time rage.
- Parameters to query data
- Host Name (or ID)
- Time rage
- Item ID
- Binning in Hatohol server is needed.
- Parameters to query data
- Fetch Logs with a specified time range.
- Fetch units
- Although they are included in "Item" of Zabbix, Hatohol doesn't store them.
- How about Nagios?
- Physical host machine and Hypervisor that run the target (virtual) machine.
- Compatible with GPLv2 or later
- Don't depend on external sites (Don't need internet access)
Although there are many libraries for JavaScript, probably only a few libraries match with requirements.
- http://sixrevisions.com/javascript/20-fresh-javascript-data-visualization-libraries/
- Flot: http://www.flotcharts.org/
- jQuery Visualize: https://github.com/filamentgroup/jQuery-Visualize
- NVD3: http://nvd3.org/
- jqPlot: http://www.jqplot.com/
- Timeplot: http://www.simile-widgets.org/timeplot/
- frontends/php/include/classes/class.cchart.php: selectData() (Zabbix 2.0)
- frontends/php/include/classes/graphdraw/CLineGraphDraw.php: selectData() (Zabbix 2.2)
According to the above code, Zabbix uses "trend" data or aggregation functions of SQL to reduce history data to fetch. But Zabbix API doesn't provide both methods. How should we reduce it?
Related Zabbix API:
- History: https://www.zabbix.com/documentation/2.0/manual/appendix/api/history
- Item: https://www.zabbix.com/documentation/2.0/manual/appendix/api/item
- Graph: https://www.zabbix.com/documentation/2.0/manual/appendix/api/graph
- Graph item: https://www.zabbix.com/documentation/2.0/manual/appendix/api/graphitem
Probably there are only 3 ways for us:
- Fetch all history data in the time range
- Add such API to Zabbix
- Fetch from Zabbix's DB (MySQL, PostgreSQL, Oracle...) directly