Scripted Dashboards (.js)
editScripted Dashboards (.js)
editScripted dashboards are much more powerful than templated dashboards. Of
course, with power comes responsibility, and scripted dashboards are
more complex to build. The goal in a scripted dashboard is to build and
return a javascript object that describes the dashboard schema. A well
commented example scripted dashboard can be found in
app/dashboards/logstash.js
(on
github). This file accomplishes the same goals as logstash.json
, but
with the added power of scripts we can do things like split queries on
commas:
Note: Take careful note of the script
part of
#/dashboard/script/logstash.js
. This instructs kibana to treat this
file as javascript.
http://yourserver/index.html#/dashboard/script/logstash.js?query=status:403,status:404&from=7d
This will create 2 query objects, status:403
and status:404
and
chart them seperately. In fact this dashboard takes another parameter
that describes the string by which to split the query on: split
http://yourserver/index.html#/dashboard/script/logstash.js?query=status:403!status:404&from=7d&split=!
We can see this happening in logstash.js
(on
github) here:
// In this dashboard we let users pass queries as comma separated list to the query parameter. // Or they can specify a split character using the split parameter // If query is defined, split it into a list of query objects // NOTE: ids must be integers, hence the parseInt()s if(!_.isUndefined(ARGS.query)) { queries = _.object(_.map(ARGS.query.split(ARGS.split||','), function(v,k) { return [k,{ query: v, id: parseInt(k,10), alias: v }]; })); } else { // No queries passed? Initialize a single query to match everything queries = { 0: { query: '*', id: 0, } }; }
This dashboard takes more parameters than this, all of which are
described in the comments at the top of logstash.js
(on
github)