Dashboard Explorer

We keep a database of instrumentation dashboards and offer mechanisms for exploring with rich deep queries or with simple queries that forward results to spreadsheets for further analysis.

Click on the desired link. A new tab will open to run the selected single-page application.

The __Explorer__ has four panels.

Explorer

Grammar -Enter PEG rules, one per line. Tab or otherwise loose focus to parse current list selection.

List - Click a dashboard title to apply the current parse to the dashboard's panels ⇒ targets ⇒ expr text.

Tree - See the parse tree with counts for matches (+) and fails (-) on each branch. Click branch labels to see match cases with the text matched highlighted.

Cases - See in turn compile and run parsing errors, samples of successful matches, and, any matches of the `other` production.

The Explorer retains your grammar in browser local storage. If you are new to exploring, this small grammar will tell you something interesting about any text.

line = (word / numb / punct )+ word = [A-Z-a-z_]+ numb = [0-9]+ ('\.' [0-9]+)? punct = .

The __Selector__ has two panels.

Selector

First - Select the dashboards of interest. See how many match before continuing.

Last -Select the dashboard properties to appear as columns. Click download to save the selected fields on your own computer as grafana.tsv.

The browser will pop up a download notification. Click open to view and explore further in a spreadsheet.

This is a slight rearrangement of files from that run on the desktop as localhost:3000. github

.

This is what an Explorer grammar might look like part way through development.

line = _ ('empty' / funct / math / other)+ funct = aggr / call / paren aggr = agop ( paren )+ call = word ( paren /cparen )+ math = value op funct paren = '(' span ')' _ span = (![\)\(] .)+ cparen = '{' cspan '}' _ cspan = (![\{\}] .)+ op = arith / logic arith = [*/+-] _ logic =( 'and' / 'or' ) _ agop = ( counter / gague) _ by? gague = 'sum' / 'max' / 'min' / 'avg' counter = 'irate' / 'rate' / 'count' by = ( 'by' / 'without' ) _ value = funct / digits word = letters digits? _ letters = [a-zA-Z_]+ _ digits = [0-9\.]+ _ string = (single / double / back) _ single = '\'' (!'\'' .)* '\'' double = '"' (!'"' .)* '"' back = '`' (!'`' .)* '`' other = (![a-zAZ] .)+ _ = [ \t\n]*