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!

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

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.
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:
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:
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.
Gdash loads!
virtualization isn't an option on the top menu, nor does anything appear. Maybe I need to put virtualization in the dashboards folder.
I'll save the screenshot, but it's the same blank as before. Maybe I need to put them directly under dashboards.
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.