Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • lofar2.0/grafana-station-dashboards
1 result
Show changes
Commits on Source (7)
......@@ -20,6 +20,7 @@ RUN grafana cli plugins install orchestracities-map-panel
RUN grafana cli plugins install larona-epict-panel
RUN grafana cli plugins install grafana-oncall-app
RUN grafana cli plugins install innius-grpc-datasource
RUN grafana cli plugins install nline-plotlyjs-panel
RUN wget https://algenty.github.io/flowcharting-repository/archives/agenty-flowcharting-panel-1.0.0b-SNAPSHOT.zip -O /tmp/agenty-flowcharting-panel.zip
RUN cd /var/lib/grafana/plugins/ && unzip /tmp/agenty-flowcharting-panel.zip && mv grafana-flowcharting agenty-flowcharting-panel
......
{
"annotations": {
"list": [
{
"builtIn": 1,
"datasource": {
"type": "grafana",
"uid": "-- Grafana --"
},
"enable": true,
"hide": true,
"iconColor": "rgba(0, 211, 255, 1)",
"name": "Annotations & Alerts",
"type": "dashboard"
}
]
},
"editable": true,
"fiscalYearStartMonth": 0,
"graphTooltip": 0,
"id": 12,
"links": [],
"panels": [
{
"collapsed": false,
"gridPos": {
"h": 1,
"w": 24,
"x": 0,
"y": 0
},
"id": 12,
"panels": [],
"title": "BST",
"type": "row"
},
{
"datasource": {
"type": "innius-grpc-datasource",
"uid": "rpcserver"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisBorderShow": false,
"axisCenteredZero": false,
"axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"barWidthFactor": 0.6,
"drawStyle": "line",
"fillOpacity": 0,
"gradientMode": "none",
"hideFrom": {
"legend": false,
"tooltip": false,
"viz": false
},
"insertNulls": false,
"lineInterpolation": "linear",
"lineWidth": 1,
"pointSize": 5,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "auto",
"spanNulls": false,
"stacking": {
"group": "A",
"mode": "none"
},
"thresholdsStyle": {
"mode": "off"
}
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "red",
"value": 80
}
]
}
},
"overrides": []
},
"gridPos": {
"h": 9,
"w": 24,
"x": 0,
"y": 1
},
"id": 1,
"options": {
"legend": {
"calcs": [],
"displayMode": "list",
"placement": "right",
"showLegend": true
},
"tooltip": {
"hideZeros": false,
"mode": "multi",
"sort": "none"
}
},
"pluginVersion": "11.5.2",
"targets": [
{
"datasource": {
"type": "innius-grpc-datasource",
"uid": "rpcserver"
},
"dimensions": [
{
"id": "1",
"key": "antenna_field",
"value": "lba"
}
],
"displayName": "",
"metrics": [
{
"metricId": "BST"
}
],
"queryOptions": {},
"queryType": "GetMetricAggregate",
"refId": "A"
}
],
"title": "BST",
"transformations": [
{
"disabled": true,
"id": "labelsToFields",
"options": {
"mode": "columns"
}
}
],
"type": "trend"
},
{
"collapsed": false,
"gridPos": {
"h": 1,
"w": 24,
"x": 0,
"y": 10
},
"id": 11,
"panels": [],
"title": "SST",
"type": "row"
},
{
"datasource": {
"type": "innius-grpc-datasource",
"uid": "rpcserver"
},
"fieldConfig": {
"defaults": {},
"overrides": []
},
"gridPos": {
"h": 11,
"w": 24,
"x": 0,
"y": 11
},
"id": 9,
"options": {
"allData": {},
"config": {},
"data": [],
"imgFormat": "png",
"layout": {
"font": {
"family": "Inter, Helvetica, Arial, sans-serif"
},
"margin": {
"b": 0,
"l": 0,
"r": 0,
"t": 0
},
"title": {
"automargin": true
},
"xaxis": {
"automargin": true,
"autorange": true,
"ticksuffix": "Hz",
"type": "int"
},
"yaxis": {
"automargin": true,
"autorange": true,
"ticksuffix": "dB"
}
},
"onclick": "// Event handling\n/*\n// 'data', 'variables', 'options', 'utils', and 'event' are passed as arguments\n\ntry {\n const { type: eventType, data: eventData } = event;\n const { timeZone, dayjs, locationService, getTemplateSrv } = utils;\n\n switch (eventType) {\n case 'click':\n console.log('Click event:', eventData.points);\n break;\n case 'select':\n console.log('Selection event:', eventData.range);\n break;\n case 'zoom':\n console.log('Zoom event:', eventData);\n break;\n default:\n console.log('Unhandled event type:', eventType, eventData);\n }\n\n console.log('Current time zone:', timeZone);\n console.log('From time:', dayjs(variables.__from).format());\n console.log('To time:', dayjs(variables.__to).format());\n\n // Example of using locationService\n // locationService.partial({ 'var-example': 'test' }, true);\n\n} catch (error) {\n console.error('Error in onclick handler:', error);\n}\n*/\n ",
"resScale": 2,
"script": "// Basic timeseries plot\n// 'data', 'variables', 'options', and 'utils' are passed as arguments\n\nlet series = data.series[0];\nlet timestamp = new Date(series.fields[0].values[0])\nlet frequency = series.fields.find(x => x.name == \"frequency\");\nlet power = series.fields.filter(x => x.name == \"power\");\n\nlet lines = []\nlet z = []\n\nfor(const row of power) {\n lines.push({\n x: frequency.values,\n y: row.values,\n type: 'scatter',\n name: row.labels.antenna + \" - \" + row.labels.pol,\n colorscale: 'Viridis',\n })\n}\n\nreturn {\n data: lines,\n layout: {\n xaxis: { title: 'subband' },\n yaxis: { title: 'power' },\n title: { text: 'SST Spectrum @ ' + timestamp.toISOString() },\n }\n}\n",
"syncTimeRange": false,
"timeCol": ""
},
"pluginVersion": "1.8.1",
"targets": [
{
"datasource": {
"type": "innius-grpc-datasource",
"uid": "rpcserver"
},
"dimensions": [
{
"id": "1",
"key": "antenna_field",
"value": "lba"
}
],
"displayName": "",
"metrics": [
{
"metricId": "SST"
}
],
"queryOptions": {},
"queryType": "GetMetricAggregate",
"refId": "A"
}
],
"title": "SST (Power)",
"type": "nline-plotlyjs-panel"
},
{
"datasource": {
"type": "innius-grpc-datasource",
"uid": "rpcserver"
},
"fieldConfig": {
"defaults": {},
"overrides": []
},
"gridPos": {
"h": 11,
"w": 24,
"x": 0,
"y": 22
},
"id": 6,
"options": {
"allData": {},
"config": {},
"data": [],
"imgFormat": "png",
"layout": {
"font": {
"family": "Inter, Helvetica, Arial, sans-serif"
},
"margin": {
"b": 0,
"l": 0,
"r": 0,
"t": 0
},
"title": {
"automargin": true
},
"xaxis": {
"automargin": true,
"autorange": true,
"ticksuffix": "Hz",
"type": "int"
},
"yaxis": {
"automargin": true,
"autorange": true
}
},
"onclick": "// Event handling\n/*\n// 'data', 'variables', 'options', 'utils', and 'event' are passed as arguments\n\ntry {\n const { type: eventType, data: eventData } = event;\n const { timeZone, dayjs, locationService, getTemplateSrv } = utils;\n\n switch (eventType) {\n case 'click':\n console.log('Click event:', eventData.points);\n break;\n case 'select':\n console.log('Selection event:', eventData.range);\n break;\n case 'zoom':\n console.log('Zoom event:', eventData);\n break;\n default:\n console.log('Unhandled event type:', eventType, eventData);\n }\n\n console.log('Current time zone:', timeZone);\n console.log('From time:', dayjs(variables.__from).format());\n console.log('To time:', dayjs(variables.__to).format());\n\n // Example of using locationService\n // locationService.partial({ 'var-example': 'test' }, true);\n\n} catch (error) {\n console.error('Error in onclick handler:', error);\n}\n*/\n ",
"resScale": 2,
"script": "// Basic timeseries plot\n// 'data', 'variables', 'options', and 'utils' are passed as arguments\n\nlet series = data.series[0];\nlet timestamp = new Date(series.fields[0].values[0])\nlet frequency = series.fields.find(x => x.name == \"frequency\");\nlet power = series.fields.filter(x => x.name == \"power\")\n\nlet y = []\nlet z = []\n\nfor(const row of power) {\n y.push(row.labels.antenna + \" - \" + row.labels.pol)\n z.push(row.values)\n}\n\nreturn {\n data: [{\n x: frequency.values,\n y: y,\n z: z,\n type: 'heatmap',\n colorscale: 'Viridis',\n }],\n layout: {\n xaxis: { title: 'frequency' },\n yaxis: { title: 'input' },\n title: { text: 'Spectrum @ ' + timestamp.toISOString() },\n }\n}",
"syncTimeRange": false,
"timeCol": ""
},
"pluginVersion": "1.8.1",
"targets": [
{
"datasource": {
"type": "innius-grpc-datasource",
"uid": "rpcserver"
},
"dimensions": [
{
"id": "1",
"key": "antenna_field",
"value": "lba"
}
],
"displayName": "",
"metrics": [
{
"metricId": "SST"
}
],
"queryOptions": {},
"queryType": "GetMetricAggregate",
"refId": "A"
}
],
"title": "SST (Spectrum)",
"type": "nline-plotlyjs-panel"
},
{
"collapsed": false,
"gridPos": {
"h": 1,
"w": 24,
"x": 0,
"y": 33
},
"id": 10,
"panels": [],
"title": "XST",
"type": "row"
},
{
"datasource": {
"type": "innius-grpc-datasource",
"uid": "rpcserver"
},
"fieldConfig": {
"defaults": {},
"overrides": []
},
"gridPos": {
"h": 9,
"w": 12,
"x": 0,
"y": 34
},
"id": 7,
"options": {
"allData": {},
"config": {},
"data": [],
"imgFormat": "png",
"layout": {
"font": {
"family": "Inter, Helvetica, Arial, sans-serif"
},
"margin": {
"b": 0,
"l": 0,
"r": 0,
"t": 0
},
"title": {
"automargin": true
},
"xaxis": {
"automargin": true,
"autorange": true,
"type": "int"
},
"yaxis": {
"automargin": true,
"autorange": true
}
},
"onclick": "// Event handling\n/*\n// 'data', 'variables', 'options', 'utils', and 'event' are passed as arguments\n\ntry {\n const { type: eventType, data: eventData } = event;\n const { timeZone, dayjs, locationService, getTemplateSrv } = utils;\n\n switch (eventType) {\n case 'click':\n console.log('Click event:', eventData.points);\n break;\n case 'select':\n console.log('Selection event:', eventData.range);\n break;\n case 'zoom':\n console.log('Zoom event:', eventData);\n break;\n default:\n console.log('Unhandled event type:', eventType, eventData);\n }\n\n console.log('Current time zone:', timeZone);\n console.log('From time:', dayjs(variables.__from).format());\n console.log('To time:', dayjs(variables.__to).format());\n\n // Example of using locationService\n // locationService.partial({ 'var-example': 'test' }, true);\n\n} catch (error) {\n console.error('Error in onclick handler:', error);\n}\n*/\n ",
"resScale": 2,
"script": "// Basic timeseries plot\n// 'data', 'variables', 'options', and 'utils' are passed as arguments\n\nlet series = data.series[0];\nlet timestamp = new Date(series.fields[0].values[0])\nlet antenna1 = series.fields.find(x => x.name == \"antenna1\");\nlet antenna2 = series.fields.find(x => x.name == \"antenna2\");\nlet frequency = series.fields.find(x => x.name == \"frequency\").values[0];\nlet values = series.fields.find(x => x.name == \"power\");\n\nreturn {\n data: [{\n x: antenna1.values,\n y: antenna2.values,\n z: values.values,\n type: 'heatmap',\n colorscale: 'Viridis',\n }],\n layout: {\n xaxis: { title: 'antenna1' },\n yaxis: { title: 'antenna2' },\n title: { text: \"XST \" + values.name + \" \" + (frequency/1000000) + \" MHz @ \" + timestamp.toISOString()}\n },\n} ",
"syncTimeRange": false,
"timeCol": ""
},
"pluginVersion": "1.8.1",
"targets": [
{
"datasource": {
"type": "innius-grpc-datasource",
"uid": "rpcserver"
},
"dimensions": [
{
"id": "1",
"key": "antenna_field",
"value": "lba"
},
{
"id": "2",
"key": "pol",
"value": "xx"
}
],
"displayName": "",
"metrics": [
{
"metricId": "XST"
}
],
"queryOptions": {},
"queryType": "GetMetricAggregate",
"refId": "A"
}
],
"title": "XST (Power XX)",
"type": "nline-plotlyjs-panel"
},
{
"datasource": {
"type": "innius-grpc-datasource",
"uid": "rpcserver"
},
"fieldConfig": {
"defaults": {},
"overrides": []
},
"gridPos": {
"h": 9,
"w": 12,
"x": 12,
"y": 34
},
"id": 13,
"options": {
"allData": {},
"config": {},
"data": [],
"imgFormat": "png",
"layout": {
"font": {
"family": "Inter, Helvetica, Arial, sans-serif"
},
"margin": {
"b": 0,
"l": 0,
"r": 0,
"t": 0
},
"title": {
"automargin": true
},
"xaxis": {
"automargin": true,
"autorange": true,
"type": "int"
},
"yaxis": {
"automargin": true,
"autorange": true
}
},
"onclick": "// Event handling\n/*\n// 'data', 'variables', 'options', 'utils', and 'event' are passed as arguments\n\ntry {\n const { type: eventType, data: eventData } = event;\n const { timeZone, dayjs, locationService, getTemplateSrv } = utils;\n\n switch (eventType) {\n case 'click':\n console.log('Click event:', eventData.points);\n break;\n case 'select':\n console.log('Selection event:', eventData.range);\n break;\n case 'zoom':\n console.log('Zoom event:', eventData);\n break;\n default:\n console.log('Unhandled event type:', eventType, eventData);\n }\n\n console.log('Current time zone:', timeZone);\n console.log('From time:', dayjs(variables.__from).format());\n console.log('To time:', dayjs(variables.__to).format());\n\n // Example of using locationService\n // locationService.partial({ 'var-example': 'test' }, true);\n\n} catch (error) {\n console.error('Error in onclick handler:', error);\n}\n*/\n ",
"resScale": 2,
"script": "// Basic timeseries plot\n// 'data', 'variables', 'options', and 'utils' are passed as arguments\n\nlet series = data.series[0];\nlet timestamp = new Date(series.fields[0].values[0])\nlet antenna1 = series.fields.find(x => x.name == \"antenna1\");\nlet antenna2 = series.fields.find(x => x.name == \"antenna2\");\nlet frequency = series.fields.find(x => x.name == \"frequency\").values[0];\nlet values = series.fields.find(x => x.name == \"phase\");\n\nreturn {\n data: [{\n x: antenna1.values,\n y: antenna2.values,\n z: values.values,\n type: 'heatmap',\n colorscale: 'Viridis',\n }],\n layout: {\n xaxis: { title: 'antenna1' },\n yaxis: { title: 'antenna2' },\n title: { text: \"XST \" + values.name + \" \" + (frequency/1000000) + \" MHz @ \" + timestamp.toISOString()}\n },\n} ",
"syncTimeRange": false,
"timeCol": ""
},
"pluginVersion": "1.8.1",
"targets": [
{
"datasource": {
"type": "innius-grpc-datasource",
"uid": "rpcserver"
},
"dimensions": [
{
"id": "1",
"key": "antenna_field",
"value": "lba"
},
{
"id": "2",
"key": "pol",
"value": "xx"
}
],
"displayName": "",
"metrics": [
{
"metricId": "XST"
}
],
"queryOptions": {},
"queryType": "GetMetricAggregate",
"refId": "A"
}
],
"title": "XST (Phase XX)",
"type": "nline-plotlyjs-panel"
}
],
"preload": false,
"refresh": "",
"schemaVersion": 40,
"tags": [
"station"
],
"templating": {
"list": []
},
"time": {
"from": "now-1y",
"to": "now"
},
"timepicker": {},
"timezone": "UTC",
"title": "Statistics",
"uid": "statistics",
"version": 6,
"weekStart": ""
}
apiVersion: 1
datasources:
# <string, required> name of the datasource. Required
- name: RPC Server
# <string, required> datasource type. Required
type: innius-grpc-datasource
# <string, required> access mode. proxy or direct (Server or Browser in the UI). Required
access: proxy
# <int> org id. will default to orgId 1 if not specified
orgId: 1
# <string> custom UID which can be used to reference this datasource in other parts of the configuration, if not specified will be generated automatically
uid: rpcserver
isDefault: false
# <map> fields that will be converted to json and stored in jsonData
# NB: for the field names, see
# https://github.com/innius/grafana-simple-grpc-datasource/blob/48defe23f9814e637ae323cef2dc9bbc6d692946/pkg/backend/client/types.go#L16
jsonData:
endpoint: rpc.service.consul:50051
max_retries: 5
secureJsonData:
apiKey: ""