Git Product home page Git Product logo

gdash's People

Contributors

antifuchs avatar bitflingr avatar bwhaley avatar cbeer avatar cornet avatar elmer avatar fabulops avatar falkenbt avatar giganteous avatar hamann avatar jashmenn avatar jburnham avatar joemiller avatar keymon avatar luxflux avatar narfdotpl avatar nstielau avatar obazoud avatar obfuscurity avatar ojilles avatar phobos182 avatar pyr avatar ripienaar avatar robinbowes avatar simonjohansson avatar tanelj avatar tmonk42 avatar tubit avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

gdash's Issues

Unable to open dashboards.

Hi,

I've created a test dashboard in the dashboards directory.
The name and description of my dashboard show up on the front page.
However when I click on the link, the page can't be found...

here's the output:

bundle exec rackup

[2012-03-22 16:57:51] INFO WEBrick 1.3.1
[2012-03-22 16:57:51] INFO ruby 1.8.7 (2011-06-30) [x86_64-linux]
[2012-03-22 16:57:51] INFO WEBrick::HTTPServer#start: pid=11190 port=9292
10.1.15.177 - - [22/Mar/2012 16:57:58] "GET / HTTP/1.1" 200 3069 0.0673
10.1.15.177 - - [22/Mar/2012 16:57:58] "GET /js/bootstrap-scrollspy.js HTTP/1.1" 200 2986 0.0291
10.1.15.177 - - [22/Mar/2012 16:57:58] "GET /js/bootstrap-popover.js HTTP/1.1" 200 2523 0.0243
10.1.15.177 - - [22/Mar/2012 16:57:58] "GET /js/bootstrap-dropdown.js HTTP/1.1" 200 1587 0.0228
10.1.15.177 - - [22/Mar/2012 16:57:58] "GET /js/bootstrap-twipsy.js HTTP/1.1" 200 7889 0.0169
10.1.15.177 - - [22/Mar/2012 16:57:58] "GET /js/jquery.tablesorter.min.js HTTP/1.1" 200 16520 0.0471
10.1.15.177 - - [22/Mar/2012 16:57:58] "GET /js/jquery-1.5.2.min.js HTTP/1.1" 200 85925 0.0508
10.1.15.177 - - [22/Mar/2012 16:57:58] "GET /favicon.ico HTTP/1.1" 404 462 0.0030
10.1.15.177 - - [22/Mar/2012 16:57:59] "GET /dashboards/ HTTP/1.1" 404 462 0.0022
NoMethodError - undefined method list' for nil:NilClass: /opt/gdash/lib/gdash/sinatra_app.rb:128:inGET /:category/:dash/?*'
/usr/lib/ruby/gems/1.8/gems/sinatra-1.3.1/lib/sinatra/base.rb:1211:in call' /usr/lib/ruby/gems/1.8/gems/sinatra-1.3.1/lib/sinatra/base.rb:1211:incompile!'
/usr/lib/ruby/gems/1.8/gems/sinatra-1.3.1/lib/sinatra/base.rb:772:in []' /usr/lib/ruby/gems/1.8/gems/sinatra-1.3.1/lib/sinatra/base.rb:772:inroute!'
/usr/lib/ruby/gems/1.8/gems/sinatra-1.3.1/lib/sinatra/base.rb:788:in route_eval' /usr/lib/ruby/gems/1.8/gems/sinatra-1.3.1/lib/sinatra/base.rb:772:inroute!'
/usr/lib/ruby/gems/1.8/gems/sinatra-1.3.1/lib/sinatra/base.rb:821:in process_route' /usr/lib/ruby/gems/1.8/gems/sinatra-1.3.1/lib/sinatra/base.rb:819:incatch'
/usr/lib/ruby/gems/1.8/gems/sinatra-1.3.1/lib/sinatra/base.rb:819:in process_route' /usr/lib/ruby/gems/1.8/gems/sinatra-1.3.1/lib/sinatra/base.rb:771:inroute!'
/usr/lib/ruby/gems/1.8/gems/sinatra-1.3.1/lib/sinatra/base.rb:770:in each' /usr/lib/ruby/gems/1.8/gems/sinatra-1.3.1/lib/sinatra/base.rb:770:inroute!'
/usr/lib/ruby/gems/1.8/gems/sinatra-1.3.1/lib/sinatra/base.rb:886:in dispatch!' /usr/lib/ruby/gems/1.8/gems/sinatra-1.3.1/lib/sinatra/base.rb:706:incall!'
/usr/lib/ruby/gems/1.8/gems/sinatra-1.3.1/lib/sinatra/base.rb:871:in invoke' /usr/lib/ruby/gems/1.8/gems/sinatra-1.3.1/lib/sinatra/base.rb:871:incatch'
/usr/lib/ruby/gems/1.8/gems/sinatra-1.3.1/lib/sinatra/base.rb:871:in invoke' /usr/lib/ruby/gems/1.8/gems/sinatra-1.3.1/lib/sinatra/base.rb:706:incall!'
/usr/lib/ruby/gems/1.8/gems/sinatra-1.3.1/lib/sinatra/base.rb:692:in call' /usr/lib/ruby/gems/1.8/gems/rack-protection-1.1.4/lib/rack/protection/xss_header.rb:22:incall'
/usr/lib/ruby/gems/1.8/gems/rack-protection-1.1.4/lib/rack/protection/path_traversal.rb:16:in call' /usr/lib/ruby/gems/1.8/gems/rack-protection-1.1.4/lib/rack/protection/json_csrf.rb:17:incall'
/usr/lib/ruby/gems/1.8/gems/rack-protection-1.1.4/lib/rack/protection/base.rb:47:in call' /usr/lib/ruby/gems/1.8/gems/rack-protection-1.1.4/lib/rack/protection/xss_header.rb:22:incall'
/usr/lib/ruby/gems/1.8/gems/rack-1.3.4/lib/rack/nulllogger.rb:9:in call' /usr/lib/ruby/gems/1.8/gems/rack-1.3.4/lib/rack/head.rb:9:incall'
/usr/lib/ruby/gems/1.8/gems/sinatra-1.3.1/lib/sinatra/showexceptions.rb:21:in call' /usr/lib/ruby/gems/1.8/gems/rack-1.3.4/lib/rack/lint.rb:48:in_call'
/usr/lib/ruby/gems/1.8/gems/rack-1.3.4/lib/rack/lint.rb:36:in call' /usr/lib/ruby/gems/1.8/gems/rack-1.3.4/lib/rack/showexceptions.rb:24:incall'
/usr/lib/ruby/gems/1.8/gems/rack-1.3.4/lib/rack/commonlogger.rb:20:in call' /usr/lib/ruby/gems/1.8/gems/rack-1.3.4/lib/rack/chunked.rb:41:incall'
/usr/lib/ruby/gems/1.8/gems/rack-1.3.4/lib/rack/content_length.rb:14:in call' /usr/lib/ruby/gems/1.8/gems/rack-1.3.4/lib/rack/handler/webrick.rb:59:inservice'
/usr/lib/ruby/1.8/webrick/httpserver.rb:104:in service' /usr/lib/ruby/1.8/webrick/httpserver.rb:65:inrun'
/usr/lib/ruby/1.8/webrick/server.rb:173:in start_thread' /usr/lib/ruby/1.8/webrick/server.rb:162:instart'
/usr/lib/ruby/1.8/webrick/server.rb:162:in start_thread' /usr/lib/ruby/1.8/webrick/server.rb:95:instart'
/usr/lib/ruby/1.8/webrick/server.rb:92:in each' /usr/lib/ruby/1.8/webrick/server.rb:92:instart'
/usr/lib/ruby/1.8/webrick/server.rb:23:in start' /usr/lib/ruby/1.8/webrick/server.rb:82:instart'
/usr/lib/ruby/gems/1.8/gems/rack-1.3.4/lib/rack/handler/webrick.rb:13:in run' /usr/lib/ruby/gems/1.8/gems/rack-1.3.4/lib/rack/server.rb:265:instart'
/usr/lib/ruby/gems/1.8/gems/rack-1.3.4/lib/rack/server.rb:137:in start' /usr/lib/ruby/gems/1.8/gems/rack-1.3.4/bin/rackup:4 /usr/bin/rackup:19:inload'
/usr/bin/rackup:19
10.1.15.177 - - [22/Mar/2012 16:58:00] "GET /sinatra/404.png HTTP/1.1" 500 142167 0.3919
10.1.15.177 - - [22/Mar/2012 16:58:00] "GET /favicon.ico HTTP/1.1" 404 462 0.0038

Not able to search on dashboards

First, Thank you for such nice dashboard tool.

I am not able to search on the dashboards using the field on upper right. I looked up the logs but do not see any error. I have tried the name of dashboard and description.

This must be a user issue. I tried my best to look through the closed issues but could not anything that I am missing.

prefix config parameter doesn't work

when prefix is set. The app doesn't render correctly with errors for each JS file it tries to include.

Stack trace:

NoMethodError - undefined method list' for nil:NilClass: ./lib/gdash/sinatra_app.rb:128:inGET /:category/:dash/?*'
/srv/gdash/vendor/bundle/ruby/1.8/gems/sinatra-1.3.3/lib/sinatra/base.rb:1264:in call' /srv/gdash/vendor/bundle/ruby/1.8/gems/sinatra-1.3.3/lib/sinatra/base.rb:1264:incompile!'
/srv/gdash/vendor/bundle/ruby/1.8/gems/sinatra-1.3.3/lib/sinatra/base.rb:835:in []' /srv/gdash/vendor/bundle/ruby/1.8/gems/sinatra-1.3.3/lib/sinatra/base.rb:835:inroute!'
/srv/gdash/vendor/bundle/ruby/1.8/gems/sinatra-1.3.3/lib/sinatra/base.rb:851:in route_eval' /srv/gdash/vendor/bundle/ruby/1.8/gems/sinatra-1.3.3/lib/sinatra/base.rb:835:inroute!'
/srv/gdash/vendor/bundle/ruby/1.8/gems/sinatra-1.3.3/lib/sinatra/base.rb:872:in process_route' /srv/gdash/vendor/bundle/ruby/1.8/gems/sinatra-1.3.3/lib/sinatra/base.rb:870:incatch'
/srv/gdash/vendor/bundle/ruby/1.8/gems/sinatra-1.3.3/lib/sinatra/base.rb:870:in process_route' /srv/gdash/vendor/bundle/ruby/1.8/gems/sinatra-1.3.3/lib/sinatra/base.rb:834:inroute!'
/srv/gdash/vendor/bundle/ruby/1.8/gems/sinatra-1.3.3/lib/sinatra/base.rb:833:in each' /srv/gdash/vendor/bundle/ruby/1.8/gems/sinatra-1.3.3/lib/sinatra/base.rb:833:inroute!'
/srv/gdash/vendor/bundle/ruby/1.8/gems/sinatra-1.3.3/lib/sinatra/base.rb:936:in dispatch!' /srv/gdash/vendor/bundle/ruby/1.8/gems/sinatra-1.3.3/lib/sinatra/base.rb:769:incall!'
/srv/gdash/vendor/bundle/ruby/1.8/gems/sinatra-1.3.3/lib/sinatra/base.rb:921:in invoke' /srv/gdash/vendor/bundle/ruby/1.8/gems/sinatra-1.3.3/lib/sinatra/base.rb:921:incatch'
/srv/gdash/vendor/bundle/ruby/1.8/gems/sinatra-1.3.3/lib/sinatra/base.rb:921:in invoke' /srv/gdash/vendor/bundle/ruby/1.8/gems/sinatra-1.3.3/lib/sinatra/base.rb:769:incall!'
/srv/gdash/vendor/bundle/ruby/1.8/gems/sinatra-1.3.3/lib/sinatra/base.rb:755:in call' /srv/gdash/vendor/bundle/ruby/1.8/gems/rack-protection-1.2.0/lib/rack/protection/xss_header.rb:22:incall'
/srv/gdash/vendor/bundle/ruby/1.8/gems/rack-protection-1.2.0/lib/rack/protection/path_traversal.rb:16:in call' /srv/gdash/vendor/bundle/ruby/1.8/gems/rack-protection-1.2.0/lib/rack/protection/json_csrf.rb:17:incall'
/srv/gdash/vendor/bundle/ruby/1.8/gems/rack-protection-1.2.0/lib/rack/protection/base.rb:47:in call' /srv/gdash/vendor/bundle/ruby/1.8/gems/rack-protection-1.2.0/lib/rack/protection/xss_header.rb:22:incall'
/srv/gdash/vendor/bundle/ruby/1.8/gems/rack-1.4.1/lib/rack/nulllogger.rb:9:in call' /srv/gdash/vendor/bundle/ruby/1.8/gems/rack-1.4.1/lib/rack/head.rb:9:incall'
/srv/gdash/vendor/bundle/ruby/1.8/gems/sinatra-1.3.3/lib/sinatra/base.rb:99:in call' /srv/gdash/vendor/bundle/ruby/1.8/gems/unicorn-4.3.1/lib/unicorn/http_server.rb:531:inprocess_client'
/srv/gdash/vendor/bundle/ruby/1.8/gems/unicorn-4.3.1/lib/unicorn/http_server.rb:606:in worker_loop' /srv/gdash/vendor/bundle/ruby/1.8/gems/unicorn-4.3.1/lib/unicorn/http_server.rb:487:inspawn_missing_workers'
/srv/gdash/vendor/bundle/ruby/1.8/gems/unicorn-4.3.1/lib/unicorn/http_server.rb:137:in start' /srv/gdash/vendor/bundle/ruby/1.8/gems/unicorn-4.3.1/bin/unicorn:121 /srv/gdash/bin/unicorn:16:inload'
/srv/gdash/bin/unicorn:16

It seems that since the url path has the prefix in it, it can't look up static files (js etc) in the public folder.

Provide a default collectd dashboard

I really liked the fact that there is a branch with a default dashboard with data comming from munin.
I now use collectd and i think that a collectd topic branch would be nice to have too

whisper_dir

:whisper_dir: "/var/lib/carbon/whisper"

Is this necessary and used somewhere in the code? I can run gdash local with graphs from another graphite host. In case it isn't, I think it should be removed from configuration to not confuse users (at first I thought it has to be installed on the graphite host because of this)

auto-generate graphs from wildcard

Hi,

I use graphite a lot and have a few series of equivalent metrics for different devices/servers, for example: stats.gauges.devices.*.*.status

Often new metrics of the same series are introduced, resulting in a long and dynamic list of metrics of the same series as above.
Currently, whenever there are new metrics (which happens a lot) I have to add new graphs for them manually to the matching Graphite/gdash dashboards.

I want to create a dashboard that would automatically detect and display the new metrics.

I could use a simple wildcard for a single "field" in gdash:

field :status, :alias_by_node => 4,
                    :data  => "stats.gauges.devices.*.*.status"

but that would result in a single graph with tons of metrics, rendering it hard to work with and practically unusable.

What I actually want to achieve is automatically creating a graph per metric, using the wildcard.
I searched a lot and didn't find a solution for this in gdash.
Is it currently supported? If not, is it planned to be?

Thank you

Undocumented required folders, nested dashboards not working

I really hope I'm doing something horribly wrong here, but I've been trying to get nested dashboards working and am running into issues along the way.

Here's the config file:

:graphite: http://graphite.server.url
:templatedir: /opt/gdash/graph_templates/

:username: admin

:password: secret

:options:
:title: My Dashboard
:prefix: ""
:refresh_rate: 60
:graph_columns: 2
:graph_width: 500
:graph_height: 250
:interval_filters:
- 🏷️ Last Hour
:from: -1hour
:to: now
- 🏷️ Last Day
:from: -1day
- 🏷️ Last Week
:from: -1week
- 🏷️ Last Month
:from: -1month
- 🏷️ Last Year
:from: -1year
:intervals:
- [ "-1hour", "1 hour" ]
- [ "-2hour", "2 hour" ]
- [ "-1day", "1 day" ]
- [ "-1month", "1 month" ]
- [ "-1year", "1 year" ]

Following the picture of the example directory in the README, my tree looks like:

graph_templates
`-- virtualization
    |-- dom0
    |   |-- dash.yaml
    |   `-- switch.graph
    `-- kvm1
        |-- dash.yaml
        `-- switch.graph

However, when I hit gdash, I get: "Internal Server Error" with the error log saying:

[ 2013-07-26 10:24:23.1050 22700/7f44b6d50700 Pool2/Implementation.cpp:1182 ]: [App 25076 stderr] Errno::ENOENT - No such file or directory - /opt/gdash/graph_templates/dashboards:
[ 2013-07-26 10:24:23.1050 22700/7f44b6d50700 Pool2/Implementation.cpp:1182 ]: [App 25076 stderr] /opt/gdash/lib/gdash.rb:47:in open' [ 2013-07-26 10:24:23.1050 22700/7f44b6d50700 Pool2/Implementation.cpp:1182 ]: [App 25076 stderr] /opt/gdash/lib/gdash.rb:47:inentries'
[ 2013-07-26 10:24:23.1050 22700/7f44b6d50700 Pool2/Implementation.cpp:1182 ]: [App 25076 stderr] /opt/gdash/lib/gdash.rb:47:in dashboards' [ 2013-07-26 10:24:23.1050 22700/7f44b6d50700 Pool2/Implementation.cpp:1182 ]: [App 25076 stderr] /opt/gdash/lib/gdash/sinatra_app.rb:60:inblock (2 levels) in class:SinatraApp'
[ 2013-07-26 10:24:23.1050 22700/7f44b6d50700 Pool2/Implementation.cpp:1182 ]: [App 25076 stderr] /opt/gdash/lib/gdash/sinatra_app.rb:59:in each' [ 2013-07-26 10:24:23.1051 22700/7f44b6d50700 Pool2/Implementation.cpp:1182 ]: [App 25076 stderr] /opt/gdash/lib/gdash/sinatra_app.rb:59:inblock in class:SinatraApp'
[ 2013-07-26 10:24:23.1051 22700/7f44b6d50700 Pool2/Implementation.cpp:1182 ]: [App 25076 stderr] /var/lib/gems/1.9.1/gems/sinatra-1.3.3/lib/sinatra/base.rb:1265:in call' [ 2013-07-26 10:24:23.1051 22700/7f44b6d50700 Pool2/Implementation.cpp:1182 ]: [App 25076 stderr] /var/lib/gems/1.9.1/gems/sinatra-1.3.3/lib/sinatra/base.rb:1265:inblock in compile!'
[ 2013-07-26 10:24:23.1051 22700/7f44b6d50700 Pool2/Implementation.cpp:1182 ]: [App 25076 stderr] /var/lib/gems/1.9.1/gems/sinatra-1.3.3/lib/sinatra/base.rb:872:in []' [ 2013-07-26 10:24:23.1051 22700/7f44b6d50700 Pool2/Implementation.cpp:1182 ]: [App 25076 stderr] /var/lib/gems/1.9.1/gems/sinatra-1.3.3/lib/sinatra/base.rb:872:inblock in process_route'
[ 2013-07-26 10:24:23.1051 22700/7f44b6d50700 Pool2/Implementation.cpp:1182 ]: [App 25076 stderr] /var/lib/gems/1.9.1/gems/sinatra-1.3.3/lib/sinatra/base.rb:870:in catch' [ 2013-07-26 10:24:23.1051 22700/7f44b6d50700 Pool2/Implementation.cpp:1182 ]: [App 25076 stderr] /var/lib/gems/1.9.1/gems/sinatra-1.3.3/lib/sinatra/base.rb:870:inprocess_route'
[ 2013-07-26 10:24:23.1051 22700/7f44b6d50700 Pool2/Implementation.cpp:1182 ]: [App 25076 stderr] /var/lib/gems/1.9.1/gems/sinatra-1.3.3/lib/sinatra/base.rb:827:in block in filter!' [ 2013-07-26 10:24:23.1051 22700/7f44b6d50700 Pool2/Implementation.cpp:1182 ]: [App 25076 stderr] /var/lib/gems/1.9.1/gems/sinatra-1.3.3/lib/sinatra/base.rb:827:ineach'
[ 2013-07-26 10:24:23.1051 22700/7f44b6d50700 Pool2/Implementation.cpp:1182 ]: [App 25076 stderr] /var/lib/gems/1.9.1/gems/sinatra-1.3.3/lib/sinatra/base.rb:827:in filter!' [ 2013-07-26 10:24:23.1051 22700/7f44b6d50700 Pool2/Implementation.cpp:1182 ]: [App 25076 stderr] /var/lib/gems/1.9.1/gems/sinatra-1.3.3/lib/sinatra/base.rb:935:indispatch!'
[ 2013-07-26 10:24:23.1051 22700/7f44b6d50700 Pool2/Implementation.cpp:1182 ]: [App 25076 stderr] /var/lib/gems/1.9.1/gems/sinatra-1.3.3/lib/sinatra/base.rb:769:in block in call!' [ 2013-07-26 10:24:23.1052 22700/7f44b6d50700 Pool2/Implementation.cpp:1182 ]: [App 25076 stderr] /var/lib/gems/1.9.1/gems/sinatra-1.3.3/lib/sinatra/base.rb:921:inblock in invoke'
[ 2013-07-26 10:24:23.1052 22700/7f44b6d50700 Pool2/Implementation.cpp:1182 ]: [App 25076 stderr] /var/lib/gems/1.9.1/gems/sinatra-1.3.3/lib/sinatra/base.rb:921:in catch' [ 2013-07-26 10:24:23.1052 22700/7f44b6d50700 Pool2/Implementation.cpp:1182 ]: [App 25076 stderr] /var/lib/gems/1.9.1/gems/sinatra-1.3.3/lib/sinatra/base.rb:921:ininvoke'
[ 2013-07-26 10:24:23.1052 22700/7f44b6d50700 Pool2/Implementation.cpp:1182 ]: [App 25076 stderr] /var/lib/gems/1.9.1/gems/sinatra-1.3.3/lib/sinatra/base.rb:769:in call!' [ 2013-07-26 10:24:23.1052 22700/7f44b6d50700 Pool2/Implementation.cpp:1182 ]: [App 25076 stderr] /var/lib/gems/1.9.1/gems/sinatra-1.3.3/lib/sinatra/base.rb:755:incall'
[ 2013-07-26 10:24:23.1052 22700/7f44b6d50700 Pool2/Implementation.cpp:1182 ]: [App 25076 stderr] /var/lib/gems/1.9.1/gems/rack-protection-1.2.0/lib/rack/protection/xss_header.rb:22:in call' [ 2013-07-26 10:24:23.1052 22700/7f44b6d50700 Pool2/Implementation.cpp:1182 ]: [App 25076 stderr] /var/lib/gems/1.9.1/gems/rack-protection-1.2.0/lib/rack/protection/path_traversal.rb:16:incall'
[ 2013-07-26 10:24:23.1052 22700/7f44b6d50700 Pool2/Implementation.cpp:1182 ]: [App 25076 stderr] /var/lib/gems/1.9.1/gems/rack-protection-1.2.0/lib/rack/protection/json_csrf.rb:17:in call' [ 2013-07-26 10:24:23.1052 22700/7f44b6d50700 Pool2/Implementation.cpp:1182 ]: [App 25076 stderr] /var/lib/gems/1.9.1/gems/rack-protection-1.2.0/lib/rack/protection/base.rb:47:incall'
[ 2013-07-26 10:24:23.1052 22700/7f44b6d50700 Pool2/Implementation.cpp:1182 ]: [App 25076 stderr] /var/lib/gems/1.9.1/gems/rack-protection-1.2.0/lib/rack/protection/xss_header.rb:22:in call' [ 2013-07-26 10:24:23.1052 22700/7f44b6d50700 Pool2/Implementation.cpp:1182 ]: [App 25076 stderr] /var/lib/gems/1.9.1/gems/rack-1.4.5/lib/rack/nulllogger.rb:9:incall'
[ 2013-07-26 10:24:23.1052 22700/7f44b6d50700 Pool2/Implementation.cpp:1182 ]: [App 25076 stderr] /var/lib/gems/1.9.1/gems/rack-1.4.5/lib/rack/head.rb:9:in call' [ 2013-07-26 10:24:23.1052 22700/7f44b6d50700 Pool2/Implementation.cpp:1182 ]: [App 25076 stderr] /var/lib/gems/1.9.1/gems/sinatra-1.3.3/lib/sinatra/base.rb:99:incall'
[ 2013-07-26 10:24:23.1053 22700/7f44b6d50700 Pool2/Implementation.cpp:1182 ]: [App 25076 stderr] /var/lib/gems/1.9.1/gems/passenger-4.0.8/lib/phusion_passenger/rack/thread_handler_extension.rb:77:in process_request' [ 2013-07-26 10:24:23.1053 22700/7f44b6d50700 Pool2/Implementation.cpp:1182 ]: [App 25076 stderr] /var/lib/gems/1.9.1/gems/passenger-4.0.8/lib/phusion_passenger/request_handler/thread_handler.rb:140:inaccept_and_process_next_request'
[ 2013-07-26 10:24:23.1053 22700/7f44b6d50700 Pool2/Implementation.cpp:1182 ]: [App 25076 stderr] /var/lib/gems/1.9.1/gems/passenger-4.0.8/lib/phusion_passenger/request_handler/thread_handler.rb:108:in main_loop' [ 2013-07-26 10:24:23.1053 22700/7f44b6d50700 Pool2/Implementation.cpp:1182 ]: [App 25076 stderr] /var/lib/gems/1.9.1/gems/passenger-4.0.8/lib/phusion_passenger/request_handler.rb:441:inblock (3 levels) in start_threads'

Apparently need the dashboards folder. Not exactly mentioned that that directory is required in the example directory structure.

New tree:

graph_templates
|-- dashboards
`-- virtualization
    |-- dom0
    |   |-- dash.yaml
    |   `-- switch.graph
    `-- kvm1
        |-- dash.yaml
        `-- switch.graph

Still internal server error. This time: Errno::ENOENT - No such file or directory - /opt/gdash/graph_templates/node_templates:

Not mentioned anywhere I can see.

graph_templates
|-- dashboards
|-- node_templates
`-- virtualization
    |-- dom0
    |   |-- dash.yaml
    |   `-- switch.graph
    `-- kvm1
        |-- dash.yaml
        `-- switch.graph

Gdash loads!

screen shot 2013-07-26 at 10 27 11 am

virtualization isn't an option on the top menu, nor does anything appear. Maybe I need to put virtualization in the dashboards folder.

graph_templates
|-- dashboards
|   `-- virtualization
|       |-- dom0
|       |   |-- dash.yaml
|       |   `-- switch.graph
|       `-- kvm1
|           |-- dash.yaml
|           `-- switch.graph
`-- node_templates

I'll save the screenshot, but it's the same blank as before. Maybe I need to put them directly under dashboards.

graph_templates
|-- dashboards
|   |-- dom0
|   |   |-- dash.yaml
|   |   `-- switch.graph
|   |-- kvm1
|   |   |-- dash.yaml
|   |   `-- switch.graph
|   `-- virtualization
`-- node_templates

screen shot 2013-07-26 at 10 30 16 am

Success! Except I don't know where/what's causing node_templates to be needed, dashboards to be needed, or how to have nested directories like the readme says it supports. Any ideas? For the installation, I followed the bundle install steps found in #45, not sure if that's related at all.

Add screen shots to README

I'm about to start using Graphite. After skimming through their docs in search for dashboards I opened about a dozen tabs. I don't want to install and configure all these apps just to see how they look like. Please, add screen shots to README.

Question: ability to include partial graph definitions?

Wondering how to best solve this...

I have a definition on how to display release lines (vertical lines depicting when we released an application). Obviously I want to define that only once, then include in all the graphs where applicable. However, I haven't found an easy way to do this. Does the community have any ideas?

Full-screen values not overriding graph definitions

Full-screen values from the URI are not overriding height/width definitions stored in the graph configuration. The values are correct when GraphiteGraph.new is initialized (i.e. @properties is correct in GraphiteGraph.load_graph) but are getting "lost" in GraphiteGraph.url when constructing url_parts.

I'm sure I'm overlooking something stupid but I haven't been able to track down where it's leaking.

Gdash promoted to an organisation proposal

I would be keen to see gdash as an organisation.

Something like https://github.com/gdash/gdash for the actual code.
Maybe that will help to get the project moving a little bit more than it is now, although it is not my point here.

My main argument is more to do with template management and contribution.
With gdash as an organisation, we can create a gdash template repository(s).

It could be a repository per template type (as in collectd, munin, diamond), or simply branch on the same repo, or a mix of both
Something like gdash/collectd-templates and gdash/munin-templates with a branch per target (RHEL5, RHEL6,arista switch, etc.).

Also looking forward, it allows for infrastructure bits to be stored, like gh-page, rpm spec file, packer config etc. in the same realm, but under different repo.

One of the benefit would be easier access and better visibility on dashboard (more example to look at).
That should lead to more contribution, as people realise that there is a place to contribute them back to the community.

Thanks for providing inspiration

Just a quick note to say thanks for GDash. I haven't used it much, but some of its design and ideas provided inspiration to a new graphite dashboard just released called giraffe - also available on github as an open source project.

Would be great to collaborate somehow for the benefit of the graphite community.

Gemfile.lock needs updating

Gemfile.lock refers to graphite_graph (0.0.4) while the Gemfile refers to graphite_graph (~> 0.0.6) which makes it hard to deploy automatically.

Improved support for mostDeviant function

The mostDeviant function in graphite is currently poorly supported. I use it to graph the "top5 tenants" or alike. However gdash forces to give a name in the field-function, so the legend of the graph shows 5-times the same name.

It would be really cool to see this function properly supported.

Set views path

Not sure why yet, but I had to adjust the views path when hosting it on Heroku. It wants to look in the lib/gdash directory otherwise. This worked for me but is probably not the right fix.

diff --git a/lib/gdash/sinatra_app.rb b/lib/gdash/sinatra_app.rb
index 05775f8..3df4a7e 100644
--- a/lib/gdash/sinatra_app.rb
+++ b/lib/gdash/sinatra_app.rb
@@ -35,6 +35,7 @@ class GDash

         set :static, true
         set :public, "public"
+        set :views, "/app/views"

         get '/' do
             erb :index

Dashboard search

Not sure where I could submit a feature request, but it would be awesome if GDash had a search for dashboards. We have quite a few dashboards and it gets a bit annoying to search for them manually :)

support multiple graphite backends

Hi,

what would need to be changed in order to allow overwriting of the graphite host that is currently being defined in /config/gdash.yaml?

As result I would like to be able to define the graphite host in the dashboard definition.

Thanks
Thomas

Can't get no_alias to work

From the DSL doc I see that I should be able to use the no_alias flag to disable automatic aliasing, which I would like to use for a wildcard field. However, I can't get this field to work.

Under the the field declaration in my .graph file, I put :no_alias => true, but this has no effect. Maybe I just have the syntax wrong?

I see this was addressed in a recent pull request: #26. If I understand this request, aliasing should be disabled by default when a wildcard is detected, but that doesn't seem to be happening for me.

404 when opening a dashboard

I'm not that familiar with the Ruby world but I've been able to start gdash using rackup and shotgun. I've copied the sample graphite config to my templates folder and can see it listed on the gdash frontpage. When I click on a dashboard I get a 404 and Sinatra claims there is no such route.

Shotgun shows these exceptions in the log:
```ExceptionLoadError' at /usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:36 - no such file to load -- sinatra Exception NoMethodError' at /usr/lib/ruby/1.8/rational.rb:78 - undefined method`gcd' for Rational(1, 2):Rational
Exception `Sinatra::NotFound' at /usr/lib/ruby/gems/1.8/gems/sinatra-1.3.2/lib/sinatra/base.rb:837 - Sinatra::NotFound
Exception`WEBrick::HTTPStatus::EOFError' at /usr/lib/ruby/1.8/webrick/httpserver.rb:55 - WEBrick::HTTPStatus::EOFError

I'd really appreciate any help with getting gdash running. My OS is Ubuntu and I'm using Ruby 1.8.7.

Auto-adjust column number to browser width

Hello,
after switching to the latest HEAD, the auto-adjustment of the number of columns to the width of the browser doesn't work anymore.
We display some graphs on a dashboard in the office on a big fullhd screen in portrait orientation, and only he right half of the screen is reserved for gdash. Until the update, gdash automatically only displayed one column of graphes, now it shows the default two.
We'd also be fine with an URL parameter (which is not fullscreen, as we dislike all that black as background, it makes the graphs hard to read), but we'd like to keep the default column size to two, as the developers on their computers obviously don't want just one graph above the other.

dashboard layout

Hello,

Is it possible to have an in addition an another layout in gdash dashboard?
For example, in the graph templates, if we have this kind of tree, i have my graph normally :

β”œβ”€β”€ dashboards
β”‚Β Β  β”œβ”€β”€ Projet_1
β”‚Β Β  β”‚Β Β  β”œβ”€β”€ server_1
β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ dash.yaml
β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ load.graph
β”‚Β Β  β”‚Β Β  β”‚Β Β  └── memory-usage.graph
β”‚Β Β  β”‚Β Β  └── server_2
β”‚Β Β  β”‚Β Β  β”œβ”€β”€ dash.yaml
β”‚Β Β  β”‚Β Β  β”œβ”€β”€ load.graph
β”‚Β Β  └── Projet_2
β”‚Β Β  β”œβ”€β”€ Server_1
β”‚Β Β  β”‚Β Β  β”œβ”€β”€ dash.yaml
β”‚Β Β  β”‚Β Β  β”œβ”€β”€ load.graph
β”‚Β Β  β”‚Β Β  └── memory-usage.graph
β”‚Β Β  └── Server_2
β”‚Β Β  β”œβ”€β”€ dash.yaml
β”‚Β Β  β”œβ”€β”€ load.graph
β”‚Β Β  └── memory-usage.graph

However if i want to add a directory named "prox" such as below:

β”œβ”€β”€ dashboards
β”‚Β Β  β”œβ”€β”€ Projet_1
β”‚Β Β  β”‚Β Β  └── "prox"
β”‚Β Β  β”‚Β Β  β”œβ”€β”€ Server_1
β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ dash.yaml
β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ load.graph
β”‚Β Β  β”‚Β Β  β”‚Β Β  └── memory-usage.graph
β”‚Β Β  β”‚Β Β  └── Server_2
β”‚Β Β  β”‚Β Β  β”œβ”€β”€ dash.yaml
β”‚Β Β  β”‚Β Β  β”œβ”€β”€ load.graph
β”‚Β Β  └── Projet_2
β”‚Β Β  β”œβ”€β”€ Server_1
β”‚Β Β  β”‚Β Β  β”œβ”€β”€ dash.yaml
β”‚Β Β  β”‚Β Β  β”œβ”€β”€ load.graph
β”‚Β Β  β”‚Β Β  └── memory-usage.graph
β”‚Β Β  └── Server_2
β”‚Β Β  β”œβ”€β”€ dash.yaml
β”‚Β Β  β”œβ”€β”€ load.graph
β”‚Β Β  └── memory-usage.graph

It dosn't work.

Do you have an idea to do it?

Thanks

Feature request: Include an inspect facility

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.

Connected Line Mode

Hello - I see- #16

However, I can't get this to work. I've tried in the field and in the area section... but to no avail. Where do you put the

:connected => "true",

To get connected lines? I'm using master pulled yesterday.

field :changes,
:color => "red",
:alias => "Changes",
:connected => "true",
:data => "servers.log1.redis.redis_changes_since_last_save_10_180_133_62_6379.changes"

minute/hour functionality of Select Time doesn't work as expected

Hello,
i've updated my install to the latest HEAD, and now it includes the Select Date functionality (which is great, thanks!). Unfortunately, whenever I use the widget for selecting a Datetime, and move the minute or hour slider, both the from and the until field are set to the same date, rendering the hour and minute selection useless.
The expected behauviour is obviously that only the field which has the focus is updated.

instructions on how to run gdash

hi,
thanks for gdash!
It'd be nice to have instructions on how to bring up a sample instance of gdash, possibly assuming a "clean" machine perhaps with only ruby or some ruby "environment manager" installed

thanks,
filippo

Global Config for Graphs

I'm being lazy and opening an issue rather than submitting a pull request, but I didn't see a great way to do this first glance. There is certain graph config that I'd like to be available across graphs, i.e. colors or alias' or such. Since the .graph files are just evaluated ruby, it's easy to hack together something (I'm adding arbitrary config to the gdash.yml file, and loading in graphs), but it would be nice if this was supported out of the box.

Another thing I'd like to mention, is that Gdash does a great job of balancing load-time and view-time configuration. I rarely need to restart the Gdash processes, just drop new graphs and updates to gdash.yml!

Here's my global config hack:

config = YAML.load_file("/opt/gdash/config/gdash.yaml")
field "delete_requests", :data  => "stats.api.requests.method.delete",
                                           :color => config[:colors_by_method][:"delete"]

link 404 and dashboard not found

bundle exec rackup

This will start the application. I'am working on Ubuntu 10.04.

[2012-02-27 16:59:23] INFO  WEBrick 1.3.1
[2012-02-27 16:59:23] INFO  ruby 1.8.7 (2010-01-10) [i486-linux]
[2012-02-27 16:59:28] INFO  WEBrick::HTTPServer#start: pid=15384 port=9292

And 127.0.0.1:9292 shows all OK and listed the dashboard Test there.

But the links on the index page will all go 404, saying "Sinatra doesn’t know this ditty."
For example, the link of the Test dashboard will go to "127.0.0.1:9292/test"

And I tried 127.0.0.1:9292/test/count/ to show a graph defined under test, it will say:

"No dashboard called count found in test/.. "

I have put count.graph with dash.yaml under graph_templates/dashboards/test/ and set the path in the config file.
metrics.counter.test.count is a metric for testing in Graphite.

title   "Count for Random"
area    :first
vtitle  "number"
from    "-20min"

field   :count,
    :color => "red",
    :alias => "count",
    :data => "metrics.counter.test.count"

Here is the config file

:graphite: 127.0.0.1
:templatedir: /home/gdash/graph_templates/dashboards
#:username: admin
#:password: secret
:options:
  :title: My Dashboard
  :prefix: ""
  :refresh_rate: 60
  :graph_columns: 2
  :graph_width: 500
  :graph_height: 250
  :whisper_dir: "/var/lib/carbon/whisper"
  :intervals:
    - [ "-1hour", "1 hour" ]
    - [ "-2hour", "2 hour" ]
    - [ "-1day", "1 day" ]
    - [ "-1month", "1 month" ]
    - [ "-1year", "1 year" ]

Use formatters for :cacti_style

Hey, when using
:cacti_style => true
on a field with huge values (10GB in bytes), the number is not formatted with an unit.
It would be nice to have the number formatted with respect to the yunit_system property.

Gemfile.lock needs to be updated

Since adding the json gem to the Gemfile I can no longer run bundle install:

[deploy@workhorse1 gdash.lessonplanet.com]$ bundle install --deployment --without development test
You are trying to install in deployment mode after changing
your Gemfile. Run `bundle install` elsewhere and add the
updated Gemfile.lock to version control.

You have added to the Gemfile:
* json

installation/running instructions

please provide instructions on how to install this, which dependencies are needed, and how to run it.
do we have to build a gem first and then install the gem? what's the command to execute the server?

Different scales per time period

So I've got some metrics which are counters (eg network interface stats). To get meaningful information out of them I set the .graph for them to be :derivative => true

The problem starts when gdash renders the graph for each time period the scale shifts. I know you can get the scale for fields in a graph but is it possible to set the scale for each time period?

Graphite graphite

undefined method `list' for nil:NilClass: open my dashboard

Hi,

ive got a problem to open my dashboard. Gdash throw the following error.

172.17.151.173 - - [10/May/2012 16:43:23] "GET /favicon.ico HTTP/1.1" 404 462 0.0010
172.17.151.173 - - [10/May/2012 16:43:25] "GET /fs/ HTTP/1.1" 404 454 0.0009
NoMethodError - undefined method list' for nil:NilClass: /opt/gdash/lib/gdash/sinatra_app.rb:128:inblock in class:SinatraApp'
/home/ubuntu/.rvm/gems/ruby-1.9.3-p194/gems/sinatra-1.3.2/lib/sinatra/base.rb:1212:in call' /home/ubuntu/.rvm/gems/ruby-1.9.3-p194/gems/sinatra-1.3.2/lib/sinatra/base.rb:1212:inblock in compile!'
/home/ubuntu/.rvm/gems/ruby-1.9.3-p194/gems/sinatra-1.3.2/lib/sinatra/base.rb:785:in []' /home/ubuntu/.rvm/gems/ruby-1.9.3-p194/gems/sinatra-1.3.2/lib/sinatra/base.rb:785:inblock (3 levels) in route!'
/home/ubuntu/.rvm/gems/ruby-1.9.3-p194/gems/sinatra-1.3.2/lib/sinatra/base.rb:801:in route_eval' /home/ubuntu/.rvm/gems/ruby-1.9.3-p194/gems/sinatra-1.3.2/lib/sinatra/base.rb:785:inblock (2 levels) in route!'
/home/ubuntu/.rvm/gems/ruby-1.9.3-p194/gems/sinatra-1.3.2/lib/sinatra/base.rb:822:in block in process_route' /home/ubuntu/.rvm/gems/ruby-1.9.3-p194/gems/sinatra-1.3.2/lib/sinatra/base.rb:820:incatch'
/home/ubuntu/.rvm/gems/ruby-1.9.3-p194/gems/sinatra-1.3.2/lib/sinatra/base.rb:820:in process_route' /home/ubuntu/.rvm/gems/ruby-1.9.3-p194/gems/sinatra-1.3.2/lib/sinatra/base.rb:784:inblock in route!'
/home/ubuntu/.rvm/gems/ruby-1.9.3-p194/gems/sinatra-1.3.2/lib/sinatra/base.rb:783:in each' /home/ubuntu/.rvm/gems/ruby-1.9.3-p194/gems/sinatra-1.3.2/lib/sinatra/base.rb:783:inroute!'
/home/ubuntu/.rvm/gems/ruby-1.9.3-p194/gems/sinatra-1.3.2/lib/sinatra/base.rb:886:in dispatch!' /home/ubuntu/.rvm/gems/ruby-1.9.3-p194/gems/sinatra-1.3.2/lib/sinatra/base.rb:719:inblock in call!'
/home/ubuntu/.rvm/gems/ruby-1.9.3-p194/gems/sinatra-1.3.2/lib/sinatra/base.rb:871:in block in invoke' /home/ubuntu/.rvm/gems/ruby-1.9.3-p194/gems/sinatra-1.3.2/lib/sinatra/base.rb:871:incatch'
/home/ubuntu/.rvm/gems/ruby-1.9.3-p194/gems/sinatra-1.3.2/lib/sinatra/base.rb:871:in invoke' /home/ubuntu/.rvm/gems/ruby-1.9.3-p194/gems/sinatra-1.3.2/lib/sinatra/base.rb:719:incall!'
/home/ubuntu/.rvm/gems/ruby-1.9.3-p194/gems/sinatra-1.3.2/lib/sinatra/base.rb:705:in call' /home/ubuntu/.rvm/gems/ruby-1.9.3-p194/gems/rack-protection-1.2.0/lib/rack/protection/xss_header.rb:22:incall'
/home/ubuntu/.rvm/gems/ruby-1.9.3-p194/gems/rack-protection-1.2.0/lib/rack/protection/path_traversal.rb:16:in call' /home/ubuntu/.rvm/gems/ruby-1.9.3-p194/gems/rack-protection-1.2.0/lib/rack/protection/json_csrf.rb:17:incall'
/home/ubuntu/.rvm/gems/ruby-1.9.3-p194/gems/rack-protection-1.2.0/lib/rack/protection/base.rb:47:in call' /home/ubuntu/.rvm/gems/ruby-1.9.3-p194/gems/rack-protection-1.2.0/lib/rack/protection/xss_header.rb:22:incall'
/home/ubuntu/.rvm/gems/ruby-1.9.3-p194/gems/rack-1.4.1/lib/rack/nulllogger.rb:9:in call' /home/ubuntu/.rvm/gems/ruby-1.9.3-p194/gems/rack-1.4.1/lib/rack/head.rb:9:incall'
/home/ubuntu/.rvm/gems/ruby-1.9.3-p194/gems/sinatra-1.3.2/lib/sinatra/showexceptions.rb:21:in call' /home/ubuntu/.rvm/gems/ruby-1.9.3-p194/gems/rack-1.4.1/lib/rack/lint.rb:48:in_call'
/home/ubuntu/.rvm/gems/ruby-1.9.3-p194/gems/rack-1.4.1/lib/rack/lint.rb:36:in call' /home/ubuntu/.rvm/gems/ruby-1.9.3-p194/gems/rack-1.4.1/lib/rack/showexceptions.rb:24:incall'
/home/ubuntu/.rvm/gems/ruby-1.9.3-p194/gems/rack-1.4.1/lib/rack/commonlogger.rb:20:in call' /home/ubuntu/.rvm/gems/ruby-1.9.3-p194/gems/rack-1.4.1/lib/rack/chunked.rb:43:incall'
/home/ubuntu/.rvm/gems/ruby-1.9.3-p194/gems/rack-1.4.1/lib/rack/content_length.rb:14:in call' /home/ubuntu/.rvm/gems/ruby-1.9.3-p194/gems/rack-1.4.1/lib/rack/handler/webrick.rb:59:inservice'
/home/ubuntu/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/webrick/httpserver.rb:138:in service' /home/ubuntu/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/webrick/httpserver.rb:94:inrun'
/home/ubuntu/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/webrick/server.rb:191:in `block in start_thread'
172.17.151.173 - - [10/May/2012 16:43:25] "GET /sinatra/404.png HTTP/1.1" 500 114283 0.0496
172.17.151.173 - - [10/May/2012 16:43:25] "GET /favicon.ico HTTP/1.1" 404 462 0.0012

The template directory:

fs
+- dash.yaml
+- cpu.graph

The app started with bundle exec rackup, with passenger ive got the same problem,

thx,
Gerrit

using fullscreen option "/full/" does not totally fill the screen, leaves tons of whitespace on left side.

I'm testing with firefox.
For example when I use /full/3/500/450 at the end of my dashboard url I get my graphs, but they go off the right side of the screen while keeping a nice giant whitespace/blackspace on the left side of my screen. If the whitespace was not there it would fit.

I can't get this to work at all in chrome since it just resizes the images and make them smaller and small as I try to fill the screen.

Feature Request: Package with JRuby

Due to the miserable state of support for ruby > 1.8.5 on most linux distros (redhat, centos in our case) I would appreciate a JRuby packaging so gdash can be easily installed run in any environment that provides a JVM.
I'm not a ruby expert so I don't know how much effort this would be (I have seen some native extensions that are being compiled within redcarpet).
If someone would give me a heads-up on how to get started I would be happy to contribute.

Center align dashboard body

In last changes the alignment of the dashboard body is on the left, instead of centre as it was before. Probably it is easy to change, but I am not a web developer and probably it will take me a while find out how.

Can anybody change the alignment as it was before?

Periodic internal server errors on HEAD.

Hi,

I'm running gdash under ubuntu (ami-ab36fbc2 specifically, in us-east-1), with apache and mod_passenger. I periodically see 500 errors. Checking the logs, I find:

[Fri Oct 28 19:09:47 2011] [error] [client 203.0.113.50] Premature end of script headers: dashboards
[ pid=5311 file=ext/apache2/Hooks.cpp:682 time=2011-10-28 19:09:47.30 ]:
The backend application (process 27802) did not send a valid HTTP response; instead, it sent nothing at all. It is possible that it has crashed; please check whether there are crashing bugs in this application.
./lib/gdash/dashboard.rb:11: [BUG] Segmentation fault
ruby 1.8.7 (2010-01-10 patchlevel 249) [i486-linux]

[Fri Oct 28 23:49:58 2011] [error] [client 203.0.113.50] Premature end of script headers: dashboards, referer: http://gdash.example.com/dashboards/pbx/
[ pid=5312 file=ext/apache2/Hooks.cpp:682 time=2011-10-28 23:49:58.118 ]:
The backend application (process 28268) did not send a valid HTTP response; instead, it sent nothing at all. It is possible that it has crashed; please check whether there are crashing bugs in this application.

[Sun Oct 30 06:37:01 2011] [notice] Apache/2.2.14 (Ubuntu) Phusion_Passenger/2.2.7 mod_wsgi/2.8 Python/2.6.5 configured -- resuming normal operations
/var/www/gdash/lib/gdash/../../views/layout.erb:9: [BUG] rb_gc_mark(): unknown data type 0x38(0xb757c3f0) non object
ruby 1.8.7 (2010-01-10 patchlevel 249) [i486-linux]

[Mon Oct 31 16:15:50 2011] [error] [client 203.0.113.50] Premature end of script headers: dashboards, referer: http://gdash.example.com/dashboards/pbx/
[ pid=30013 file=ext/apache2/Hooks.cpp:682 time=2011-10-31 16:15:50.912 ]:
The backend application (process 31404) did not send a valid HTTP response; instead, it sent nothing at all. It is possible that it has crashed; please check whether there are crashing bugs in this application.

If there are any additional details I can provide, please let me know.

Thanks!

Hide the "Source" link on the top right corner

On the top right one can see the source or graphite url.
While i think it is a nice feature, i would like to be able to disable it contains a private API key.

So far here is what i think needs to be done to enable that feature:

I though about a boolean set in the config:
https://gist.github.com/kyzh/5507659#file-gdash-yaml-L12

Ensure that the parameter get a default value
https://gist.github.com/kyzh/5507714#file-sinatra_app-rb-L34

Pass the variable to the erb template like so:
https://gist.github.com/kyzh/5508055#file-sinatra_app-rb-L2
( https://github.com/ripienaar/gdash/blob/master/lib/gdash/sinatra_app.rb#L234 )

Then display the source URL if graphite_url_displayed is set to true:
https://gist.github.com/kyzh/5507792#file-dashboard-erb-L8

Is is a good/bad idea? Is it the right way to go about it?
I would be keen to have your feedback on it

Note: It all done in my browser, so it is not tested yet whatsoever.

Detailed view - graph size

Hi,

Is there an easy way to set a different height and width of the graphs in the detailed view, i.e. after you have clicked on one of the graphs on a dashboard? I would like to have them bigger there if possible.

T

Support for tiered menus

Would be convenient if gdash supported tiered menus, giving the ability to layer things a little deeper then the current menu setup

gda.sh

I bought the domain name a while ago.
At the time i though it would be nice to have a domain and a small github page.
That would require the project to become an orga or a user.

I don't think I will try to push those change or ever do something with the domain name.
If anyone is interested to do something with it, let me know.

Apache issues "Not Found" when opening dashboard

Hi there, I've been struggling in the last day to configure graphite + statsd + gdash with more or less of a success.

Now I've managed to configure most things however I have a problem with gdash. I've installed it and added the necessary modules in apache. It loads up nice and put the sample you gave in the dashboards folder as well as created one of my own.

Now I can see them (with their descriptions) but whenever I click on one I get "Not Found".

Could you help me debug things and get it to work?

The config file gdash.yaml is as follows:

:graphite: http://ec2-54-224-148-248.compute-1.amazonaws.com
:templatedir: /opt/gdash/graph_templates/dashboards
:options:
  :title: My Dashboard
  :prefix: ""
  :refresh_rate: 60
  :graph_columns: 2
  :graph_width: 500
  :graph_height: 250
  :interval_filters:
    - :label: Last Hour
      :from: -1hour
      :to: now
    - :label: Last Day
      :from: -1day
    - :label: Last Week
      :from: -1week
    - :label: Last Month
      :from: -1month
    - :label: Last Year
      :from: -1year
  :intervals:
    - [ "-1hour", "1 hour" ]
    - [ "-2hour", "2 hour" ]
    - [ "-1day", "1 day" ]
    - [ "-1month", "1 month" ]
    - [ "-1year", "1 year" ]

And for the demo.yaml I put a counter.graph to test it works which is as follows:

title   "Count for Random"
area    :first
vtitle  "number"
from    "-20min"

field   :count,
    :color => "red",
    :alias => "count",
    :data => "system.loadavg_15min"

It uses stats generated with graphites example script.

I hope you can help and thank you in advance,
Victor

redcarpet not in Gemfile

I've spent quite some time trying to figure out why gdash stopped working after merging the latest code from your master branch.

It seems that redcarpet is now required and needs to be added to Gemfile to it gets bundled.

All is now working since I added that and did bundle install.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.