I'm looking for a solution (amongst Graphite, Zabbix, Munin, Nagios and similar) where I'd be able to produce custom charts with data point annotations (labels, descriptions) with multidimensional data or context data.
In a more detail, let's explain like this:
First, let's say there's a large number of IP addresses scraping a website. We do not want to display all of them in one graph, only the heaviest offenders. This would ideally be a bar graph with the IP address on the X axis and the byte volume of last 60 minutes on the Y axis.
Second, when you roll over the mouse pointer over the specific column, additional info would show, like the DNS name, list of usernames active on that IP address, other useful info...
The data would be available in a following structure:
- measure point or path (string like "scraper.volume.last60minutes")
- ip address (string like "184.108.40.206")
- value (float like 15.4)
- timestamp (date & time like 2012-09-20 11:14:12)
- annotation (multi-line text like "DNS: abc\nrequests: 300\nUsers: usr1, usr2, usr3")
("\n" would be a new line)
I have found a tutorial for Graphite on how to generate bar graphs, though I do not know if it would work out with the annotations: http://graphite.sourceforge.net/bartutorial.html
The solution does not have to come out of the box, some simple coding like in the before mentioned tutorial would be acceptable, but a framework must be available not to code everything again and again. We have used xceedcharts and coded everything including data collection. This is tedious and not necessary I'd like to believe...
Anyone has experience with this?