Skip to content

Instantly share code, notes, and snippets.

@robie2011
Created February 5, 2019 17:19
Show Gist options
  • Save robie2011/ce43c633c2144b1bf5fb56d8fa479b8d to your computer and use it in GitHub Desktop.
Save robie2011/ce43c633c2144b1bf5fb56d8fa479b8d to your computer and use it in GitHub Desktop.
Example: Manipulate Grafana Dashboard
const fs = require('fs');
const pathModelfile = "./dashboard_model.json"
const pathNewModelFile = "dashboard_new.json"
const obj = JSON.parse(fs.readFileSync(pathModelfile, 'utf8'));
const countFrequencyBand = 20
const frequencyBandSize = 100
const frequencyStart = 100
const generateField = name => {
return [
{
"params": [
name
],
"type": "field"
},
{
"params": [],
"type": "mean"
},
{
"params": [
name
],
"type": "alias"
}
]
}
function generateAllFields() {
let i = 0
return new Array(countFrequencyBand).fill(1).map(() => {
let freq = frequencyStart + frequencyBandSize * i++
return generateField(freq.toString())
})
}
obj.panels[0].targets[0].select = generateAllFields()
fs.writeFileSync("dashboard_new.json", JSON.stringify(obj, null, 4), "utf8")
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment