Skip to content
Snippets Groups Projects
Commit 9b951174 authored by Taya Snijder's avatar Taya Snijder
Browse files

Merge branch 'L2SS-731-more-useful-dashboards' of...

Merge branch 'L2SS-731-more-useful-dashboards' of https://git.astron.nl/lofar2.0/tango into L2SS-697_notice_temperature_alarm_across_devices
parents e2c91f20 6185a082
Branches
Tags
1 merge request!322Resolve L2SS-697 "Notice temperature alarm across devices"
Showing
with 14307 additions and 993 deletions
......@@ -4,6 +4,8 @@ FROM grafana/grafana
RUN grafana-cli plugins install briangann-datatable-panel
RUN grafana-cli plugins install ae3e-plotly-panel
RUN grafana-cli plugins install yesoreyeram-infinity-datasource
RUN grafana-cli plugins install alexanderzobnin-zabbix-app
RUN grafana-cli plugins install yesoreyeram-boomtable-panel
COPY grafana.ini /etc/grafana/
......
This diff is collapsed.
This diff is collapsed.
{
"annotations": {
"list": [
{
"builtIn": 1,
"datasource": "-- Grafana --",
"enable": true,
"hide": true,
"iconColor": "rgba(0, 211, 255, 1)",
"name": "Annotations & Alerts",
"target": {
"limit": 100,
"matchAny": false,
"tags": [],
"type": "dashboard"
},
"type": "dashboard"
}
]
},
"editable": true,
"fiscalYearStartMonth": 0,
"gnetId": null,
"graphTooltip": 0,
"links": [],
"liveNow": false,
"panels": [
{
"datasource": "TimescaleDB",
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"align": "auto",
"displayMode": "auto"
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "red",
"value": 80
}
]
}
},
"overrides": []
},
"gridPos": {
"h": 8,
"w": 12,
"x": 0,
"y": 0
},
"id": 6,
"options": {
"showHeader": true
},
"pluginVersion": "8.2.5",
"targets": [
{
"format": "table",
"group": [],
"metricColumn": "none",
"rawQuery": true,
"rawSql": "select name as \"Attribute\",\r\ntable_name as \"Type\"\r\nfrom att_conf ac \r\nwhere \"domain\" ='stat' and \"family\" = 'sdp' and \"member\" ='1'\r\norder by name",
"refId": "A",
"select": [
[
{
"params": [
"value_r"
],
"type": "column"
}
]
],
"table": "att_scalar_devdouble",
"timeColumn": "data_time",
"timeColumnType": "timestamp",
"where": [
{
"name": "$__timeFilter",
"params": [],
"type": "macro"
}
]
}
],
"title": "STAT/SDP/1 archived attributes",
"type": "table"
},
{
"datasource": "TimescaleDB",
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"custom": {
"align": "auto",
"displayMode": "auto"
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "red",
"value": 80
}
]
}
},
"overrides": []
},
"gridPos": {
"h": 8,
"w": 12,
"x": 12,
"y": 0
},
"id": 8,
"options": {
"showHeader": true
},
"pluginVersion": "8.2.5",
"targets": [
{
"format": "table",
"group": [],
"metricColumn": "none",
"rawQuery": true,
"rawSql": "select name as \"Attribute\",\r\ntable_name as \"Type\" \r\nfrom att_conf ac \r\nwhere \"domain\" ='stat' and \"family\" = 'recv' and \"member\" ='1'\r\norder by name",
"refId": "A",
"select": [
[
{
"params": [
"value_r"
],
"type": "column"
}
]
],
"table": "att_scalar_devdouble",
"timeColumn": "data_time",
"timeColumnType": "timestamp",
"where": [
{
"name": "$__timeFilter",
"params": [],
"type": "macro"
}
]
}
],
"title": "LTS/RECV/1 archived attributes",
"type": "table"
},
{
"datasource": "TimescaleDB",
"fieldConfig": {
"defaults": {
"color": {
"mode": "continuous-BlYlRd"
},
"custom": {
"fillOpacity": 70,
"lineWidth": 1
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "red",
"value": 80
}
]
}
},
"overrides": []
},
"gridPos": {
"h": 9,
"w": 12,
"x": 0,
"y": 8
},
"id": 9,
"interval": "10s",
"maxDataPoints": 1000,
"options": {
"colWidth": 0.3,
"legend": {
"displayMode": "list",
"placement": "bottom"
},
"rowHeight": 0.78,
"showValue": "auto",
"tooltip": {
"mode": "single"
}
},
"pluginVersion": "8.2.4",
"targets": [
{
"format": "time_series",
"group": [],
"hide": false,
"metricColumn": "none",
"rawQuery": true,
"rawSql": "SELECT time_bucket('00:00:01'::interval, q1.\"time\") AS time,\r\n mask(array[q1.value[1]], array[q2.\"value\"[1]]) AS \"temperature[1]\",\r\n mask(array[q1.value[2]], array[q2.\"value\"[2]]) AS \"temperature[2]\",\r\n mask(array[q1.value[3]], array[q2.\"value\"[3]]) AS \"temperature[3]\",\r\n mask(array[q1.value[4]], array[q2.\"value\"[4]]) AS \"temperature[4]\",\r\n mask(array[q1.value[5]], array[q2.\"value\"[5]]) AS \"temperature[5]\",\r\n mask(array[q1.value[6]], array[q2.\"value\"[6]]) AS \"temperature[6]\",\r\n mask(array[q1.value[7]], array[q2.\"value\"[7]]) AS \"temperature[7]\",\r\n mask(array[q1.value[8]], array[q2.\"value\"[8]]) AS \"temperature[8]\",\r\n mask(array[q1.value[9]], array[q2.\"value\"[9]]) AS \"temperature[9]\",\r\n mask(array[q1.value[10]], array[q2.\"value\"[10]]) AS \"temperature[10]\",\r\n mask(array[q1.value[11]], array[q2.\"value\"[11]]) AS \"temperature[11]\",\r\n mask(array[q1.value[12]], array[q2.\"value\"[12]]) AS \"temperature[12]\",\r\n mask(array[q1.value[13]], array[q2.\"value\"[13]]) AS \"temperature[13]\",\r\n mask(array[q1.value[14]], array[q2.\"value\"[14]]) AS \"temperature[14]\",\r\n mask(array[q1.value[15]], array[q2.\"value\"[15]]) AS \"temperature[15]\"\r\n FROM ( SELECT aad.data_time AS \"time\",\r\n aad.value_r AS value\r\n FROM att_array_devdouble aad\r\n JOIN att_conf ac ON aad.att_conf_id = ac.att_conf_id\r\n WHERE aad.value_r IS NOT NULL AND ac.domain = 'stat'::text AND ac.family = 'sdp'::text AND ac.member = '1'::text AND ac.name = 'fpga_temp_r'::text\r\n ORDER BY aad.data_time) q1\r\n JOIN ( SELECT aab.data_time AS \"time\",\r\n aab.value_r AS value\r\n FROM att_array_devboolean aab\r\n JOIN att_conf ac ON aab.att_conf_id = ac.att_conf_id\r\n WHERE aab.value_r IS NOT NULL AND ac.domain = 'stat'::text AND ac.family = 'sdp'::text AND ac.member = '1'::text AND ac.name = 'tr_fpga_mask_r'::text\r\n ORDER BY aab.data_time) q2 ON time_bucket('00:00:01'::interval, q1.\"time\") = time_bucket('00:00:01'::interval, q2.\"time\")\r\n WHERE $__timeFilter(q1.\"time\")\r\n ORDER BY q1.\"time\";",
"refId": "B",
"select": [
[
{
"params": [
"temperature[1]"
],
"type": "column"
}
]
],
"table": "sdp_masked_temp_values",
"timeColumn": "temp_time",
"timeColumnType": "timestamptz",
"where": [
{
"name": "$__timeFilter",
"params": [],
"type": "macro"
}
]
}
],
"title": "SDP - FPGA Temperature",
"type": "status-history"
}
],
"refresh": "",
"schemaVersion": 32,
"style": "dark",
"tags": [],
"templating": {
"list": []
},
"time": {
"from": "now-5m",
"to": "now"
},
"timepicker": {},
"timezone": "",
"title": "Archiver-Timescale",
"uid": "M7zA7Hc7k",
"version": 1
}
......@@ -103,6 +103,6 @@
"timepicker": {},
"timezone": "",
"title": "Docker",
"uid": "buKx9ZHnk",
"uid": "docker",
"version": 1
}
......@@ -336,7 +336,7 @@
{
"datasource": {
"type": "prometheus",
"uid": "6W2nM-Vnz"
"uid": "prometheus"
},
"description": "Progress of station initialisation",
"fieldConfig": {
......@@ -404,7 +404,7 @@
{
"datasource": {
"type": "prometheus",
"uid": "6W2nM-Vnz"
"uid": "prometheus"
},
"fieldConfig": {
"defaults": {
......@@ -512,7 +512,7 @@
{
"datasource": {
"type": "elasticsearch",
"uid": "RuQjz8V7z"
"uid": "elk"
},
"fieldConfig": {
"defaults": {
......@@ -687,7 +687,7 @@
{
"datasource": {
"type": "prometheus",
"uid": "6W2nM-Vnz"
"uid": "prometheus"
},
"description": "",
"fieldConfig": {
......@@ -799,7 +799,7 @@
{
"datasource": {
"type": "elasticsearch",
"uid": "RuQjz8V7z"
"uid": "elk"
},
"description": "List of the errors in the selected timespan",
"fieldConfig": {
......@@ -1012,7 +1012,7 @@
{
"datasource": {
"type": "prometheus",
"uid": "6W2nM-Vnz"
"uid": "prometheus"
},
"description": "State of APSCT",
"fieldConfig": {
......@@ -1123,7 +1123,7 @@
{
"datasource": {
"type": "prometheus",
"uid": "6W2nM-Vnz"
"uid": "prometheus"
},
"description": "State of APSPU",
"fieldConfig": {
......@@ -1200,7 +1200,7 @@
{
"datasource": {
"type": "prometheus",
"uid": "6W2nM-Vnz"
"uid": "prometheus"
},
"description": "State of Unboard 2 I2C Bus",
"fieldConfig": {
......@@ -1313,7 +1313,7 @@
{
"datasource": {
"type": "prometheus",
"uid": "6W2nM-Vnz"
"uid": "prometheus"
},
"fieldConfig": {
"defaults": {
......@@ -1380,7 +1380,7 @@
{
"datasource": {
"type": "prometheus",
"uid": "6W2nM-Vnz"
"uid": "prometheus"
},
"fieldConfig": {
"defaults": {
......@@ -1448,7 +1448,7 @@
{
"datasource": {
"type": "prometheus",
"uid": "6W2nM-Vnz"
"uid": "prometheus"
},
"description": "",
"fieldConfig": {
......@@ -1530,7 +1530,7 @@
{
"datasource": {
"type": "prometheus",
"uid": "6W2nM-Vnz"
"uid": "prometheus"
},
"description": "",
"fieldConfig": {
......@@ -1601,7 +1601,7 @@
{
"datasource": {
"type": "prometheus",
"uid": "6W2nM-Vnz"
"uid": "prometheus"
},
"description": "",
"fieldConfig": {
......@@ -1672,7 +1672,7 @@
{
"datasource": {
"type": "prometheus",
"uid": "6W2nM-Vnz"
"uid": "prometheus"
},
"description": "Number of inputs that are fed from the SDP wave-form generator",
"fieldConfig": {
......@@ -1762,7 +1762,7 @@
{
"datasource": {
"type": "prometheus",
"uid": "6W2nM-Vnz"
"uid": "prometheus"
},
"description": "",
"fieldConfig": {
......@@ -1833,7 +1833,7 @@
{
"datasource": {
"type": "prometheus",
"uid": "6W2nM-Vnz"
"uid": "prometheus"
},
"description": "",
"fieldConfig": {
......@@ -1946,7 +1946,7 @@
{
"datasource": {
"type": "prometheus",
"uid": "6W2nM-Vnz"
"uid": "prometheus"
},
"description": "",
"fieldConfig": {
......@@ -2043,7 +2043,7 @@
{
"datasource": {
"type": "prometheus",
"uid": "6W2nM-Vnz"
"uid": "prometheus"
},
"description": "Rate of SSTs replicated to connected clients.",
"fieldConfig": {
......@@ -2140,7 +2140,7 @@
{
"datasource": {
"type": "prometheus",
"uid": "6W2nM-Vnz"
"uid": "prometheus"
},
"description": "Load of TCPReplicator class, which sends statistics packets to connected clients.",
"fieldConfig": {
......@@ -2252,7 +2252,7 @@
{
"datasource": {
"type": "prometheus",
"uid": "6W2nM-Vnz"
"uid": "prometheus"
},
"description": "",
"fieldConfig": {
......@@ -2323,7 +2323,7 @@
{
"datasource": {
"type": "prometheus",
"uid": "6W2nM-Vnz"
"uid": "prometheus"
},
"description": "",
"fieldConfig": {
......@@ -2436,7 +2436,7 @@
{
"datasource": {
"type": "prometheus",
"uid": "6W2nM-Vnz"
"uid": "prometheus"
},
"description": "",
"fieldConfig": {
......@@ -2533,7 +2533,7 @@
{
"datasource": {
"type": "prometheus",
"uid": "6W2nM-Vnz"
"uid": "prometheus"
},
"description": "Rate of XSTs replicated to connected clients.",
"fieldConfig": {
......@@ -2630,7 +2630,7 @@
{
"datasource": {
"type": "prometheus",
"uid": "6W2nM-Vnz"
"uid": "prometheus"
},
"description": "Load of TCPReplicator class, which sends statistics packets to connected clients.",
"fieldConfig": {
......@@ -2729,7 +2729,7 @@
{
"datasource": {
"type": "prometheus",
"uid": "6W2nM-Vnz"
"uid": "prometheus"
},
"description": "",
"fieldConfig": {
......@@ -2812,7 +2812,7 @@
"timepicker": {},
"timezone": "",
"title": "Home",
"uid": "nC8N_kO7k",
"uid": "home1",
"version": 1,
"weekStart": ""
}
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
......@@ -10,7 +10,7 @@ datasources:
# <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: ZqArtG97z
uid: timescaledb
# <string> url
url: archiver-timescale
# <string> Deprecated, use secureJsonData.password
......
......@@ -10,7 +10,7 @@ datasources:
# <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: RuQjz8V7z
uid: elk
# <string> url
url: elk:9200
# <string> Deprecated, use secureJsonData.password
......
......@@ -10,7 +10,7 @@ datasources:
# <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: 6W2nM-Vnz
uid: prometheus
# <string> url
url: http://prometheus:9090
# <string> Deprecated, use secureJsonData.password
......@@ -28,7 +28,7 @@ datasources:
# <bool> enable/disable with credentials headers
withCredentials:
# <bool> mark as default datasource. Max one per org
isDefault: false
isDefault: true
# <map> fields that will be converted to json and stored in jsonData
jsonData:
httpMethod: POST
......
......@@ -10,7 +10,7 @@ datasources:
# <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: d5_heb47k
uid: tangodb
# <string> url
url: tangodb
# <string> Deprecated, use secureJsonData.password
......
......@@ -290,7 +290,7 @@ enable_gzip = true
;min_refresh_interval = 5s
# Path to the default home dashboard. If this value is empty, then Grafana uses StaticRootPath + "dashboards/home.json"
default_home_dashboard_path = /var/lib/grafana/dashboards/home.json
default_home_dashboard_path = /var/lib/grafana/dashboards/home2.json
#################################### Users ###############################
[users]
......
{"station":[{"name":"FPGA processing error","interval":"10s","rules":[{"expr":"","for":"20s","labels":{"severity":"major"},"annotations":{"__dashboardUid__":"nC8N_kO7k","__panelId__":"9","summary":"One or more FPGAs are unusable."},"grafana_alert":{"id":1,"orgId":1,"title":"FPGA processing error","condition":"B","data":[{"refId":"A","queryType":"","relativeTimeRange":{"from":600,"to":0},"datasourceUid":"ZqArtG97z","model":{"format":"time_series","group":[],"hide":false,"intervalMs":1000,"maxDataPoints":43200,"metricColumn":"none","rawQuery":true,"rawSql":"SELECT\n $__timeGroup(data_time, $__interval),\n x::text,\n device,\n name,\n value\nFROM lofar_array_boolean\nWHERE\n $__timeFilter(data_time) AND\n name = 'fpga_error_r'\nORDER BY 1,2","refId":"A","select":[[{"params":["value_r"],"type":"column"}]],"table":"att_scalar_devdouble","timeColumn":"data_time","timeColumnType":"timestamp","where":[{"name":"$__timeFilter","params":[],"type":"macro"}]}},{"refId":"B","queryType":"","relativeTimeRange":{"from":0,"to":0},"datasourceUid":"-100","model":{"conditions":[{"evaluator":{"params":[0],"type":"gt"},"operator":{"type":"and"},"query":{"params":["A"]},"reducer":{"params":[],"type":"last"},"type":"query"}],"datasource":{"type":"__expr__","uid":"-100"},"expression":"A","hide":false,"intervalMs":1000,"maxDataPoints":43200,"reducer":"last","refId":"B","settings":{"mode":"dropNN"},"type":"reduce"}}],"updated":"2022-04-04T18:01:53Z","intervalSeconds":10,"version":3,"uid":"kujybCynk","namespace_uid":"R_jsbCynz","namespace_id":6,"rule_group":"FPGA processing error","no_data_state":"NoData","exec_err_state":"Alerting"}}]}]}
\ No newline at end of file
{"station":[{"name":"FPGA processing error","interval":"10s","rules":[{"expr":"","for":"20s","labels":{"severity":"major"},"annotations":{"__dashboardUid__":"nC8N_kO7k","__panelId__":"9","summary":"One or more FPGAs are unusable."},"grafana_alert":{"id":1,"orgId":1,"title":"FPGA processing error","condition":"B","data":[{"refId":"A","queryType":"","relativeTimeRange":{"from":600,"to":0},"datasourceUid":"timescaledb","model":{"format":"time_series","group":[],"hide":false,"intervalMs":1000,"maxDataPoints":43200,"metricColumn":"none","rawQuery":true,"rawSql":"SELECT\n $__timeGroup(data_time, $__interval),\n x::text,\n device,\n name,\n value\nFROM lofar_array_boolean\nWHERE\n $__timeFilter(data_time) AND\n name = 'fpga_error_r'\nORDER BY 1,2","refId":"A","select":[[{"params":["value_r"],"type":"column"}]],"table":"att_scalar_devdouble","timeColumn":"data_time","timeColumnType":"timestamp","where":[{"name":"$__timeFilter","params":[],"type":"macro"}]}},{"refId":"B","queryType":"","relativeTimeRange":{"from":0,"to":0},"datasourceUid":"-100","model":{"conditions":[{"evaluator":{"params":[0],"type":"gt"},"operator":{"type":"and"},"query":{"params":["A"]},"reducer":{"params":[],"type":"last"},"type":"query"}],"datasource":{"type":"__expr__","uid":"-100"},"expression":"A","hide":false,"intervalMs":1000,"maxDataPoints":43200,"reducer":"last","refId":"B","settings":{"mode":"dropNN"},"type":"reduce"}}],"updated":"2022-04-04T18:01:53Z","intervalSeconds":10,"version":3,"uid":"kujybCynk","namespace_uid":"R_jsbCynz","namespace_id":6,"rule_group":"FPGA processing error","no_data_state":"NoData","exec_err_state":"Alerting"}}]}]}
\ No newline at end of file
......@@ -188,7 +188,7 @@ class SDP(opcua_device):
def read_FPGA_processing_error_R(self):
return self.read_attribute("TR_fpga_mask_R") & (
~self.read_attribute("FPGA_processing_enable_R")
| (self.read_attribute("FPGA_boot_image_R") == 0)
| (self.read_attribute("FPGA_boot_image_R") <= 0)
)
def read_FPGA_input_error_R(self):
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment