ripienaar/gdash

Feature request: Include an inspect facility

criemen opened this issue · 10 comments

Hey,
the only real feature lacking for me in gdash is an inspect functionality:
You click on an inspect button for a graph, and you get a JS popup with a nice graphing widget, where you can hover over the graph, and you get the exact value of each timepoint.
Additional features would be zooming and turning some of the lines in a multigraph on/off.

The graphs from gdash are static images generated in graphite. There is no facility to interact with the graphs in this way. Converting to client-side graph rendering would be a large undertaking that changes the nature of gdash. I'm not sure that it's in the cards for gdash, but @keymon, @powdahound, @ripienaar and @falkenbt might want to weigh in too.

I don't mean converting all graphs to clientside rendered graphs, i expect
that to be a huge performance hit. you should be able to get the graph
points out of graphite via it's API to render it in a separate popup so in
case one needs exact data, one can use that feature.
I imagine it like the inspect button of the new ui ganglia has, in case you
know hat.
Am 20.02.2013 18:37 schrieb "bwhaley" notifications@github.com:

The graphs from gdash are static images generated in graphite. There is no
facility to interact with the graphs in this way. Converting to client-side
graph rendering would be a large undertaking that changes the nature of
gdash. I'm not sure that it's in the cards for gdash, but I'll let @keymonhttps://github.com/keymon,
@powdahound https://github.com/powdahound, @ripienaarhttps://github.com/ripienaarand
@falkenbt https://github.com/falkenbt weigh in too.


Reply to this email directly or view it on GitHubhttps://github.com//issues/84#issuecomment-13845174.

I think we could explore something like https://github.com/jondot/graphene and http://jondot.github.com/graphene/. Be able to generate the graphene HTML+data instead of a simple .

I was thinking more about something similar to this (+ zooming):
http://kenhub.github.com/giraffe/
But with the client-side graph only offered as option, because else the performance will be very bad, especially if you've got lots of data points.

I am not a good HTML/javascript developer, but it shouldn't be difficult to integrate this in gdash. We can open a modal HTML window and load the javascript from giraffe to render the graph. Maybe we should modify the graphite_graph_dsl to be able to generate the graph.json that giraffe consumes: https://github.com/kenhub/giraffe/blob/master/dashboards.js.

Anyway, I would like to keep the graphs for the dashboard as images, at least as an option. They are in general faster if you got a lot of graphs, easy to copy and paste, works in any browser...

HighCharts, Grephene, d3.js, rickshaw, etc... all really nice plugins.. 👍 :

Would be happy to help if there's some functionality that could be added to giraffe to help it integrate with gdash.

@keymon suggested an interesting idea, of generating the giraffe "dsl" (it's not exactly json, but javascript) from gdash.

I'm already toying with the idea of adding a simple "generator" to giraffe, to produce a metric snippet (something similar to graphite's composer, but much more basic). Not sure when I'll get round to it though. There might be some cross-over points there.

Agree that gdash should load much faster, especially on heavy dashboards. There's always a trade-off. Giraffe tries to offer more interactive charting and run without a backend server, but this comes at a cost of being heavier, and the DSL probably isn't as "friendly" as with gdash. A hybrid might be interesting to consider. Keep me posted if you have any ideas / pull requests for giraffe.

@gingerlime, what do you think about use the gdash/graph_graphite_dsl as a base DSL that can generate a static json version?

By default gdash does not use any dynamic data source, but use ruby as DSL is quite powerful.

@keymon I think it would be nice, but not sure it's the top priority of most users who are using either gdash or giraffe. Having an easy-to-use DSL of course makes the experience better, but most people who deal with graphite are fairly comfortable with yaml/json/xml, and it's something you define once and then add or change quite infrequently...

In any case, if you're interested in writing a plugin/converter from graph_graphite_dsl to giraffe this would of course be great!

@keymon - I just realised there's a github project that creates giraffe dashboards from collectd graphite metrics. It's called giraffe-collectd, maybe this can give you some ideas.