From 6e1adf0182f21ae2dbfde9092bf5996758912096 Mon Sep 17 00:00:00 2001 From: Tobias Brunner Date: Mon, 25 May 2020 21:12:47 +0200 Subject: [PATCH] update monitoring --- monitoring/jsonnetfile.lock.json | 28 ++-- .../alertmanager-tbrnt-config-secret.yaml | 2 +- .../grafana-dashboardDefinitions.yaml | 157 +++++++++++++++--- .../manifests/node-exporter-daemonset.yaml | 3 +- monitoring/manifests/prometheus-rules.yaml | 8 + .../manifests/traefik-service-monitor.yaml | 17 ++ .../node-exporter/node-exporter.libsonnet | 6 +- .../grafonnet/graph_panel.libsonnet | 3 + .../grafonnet/influxdb.libsonnet | 88 +++++++++- .../grafonnet/table_panel.libsonnet | 49 +----- .../alerts/kube_apiserver.libsonnet | 2 + .../dashboards/resources/cluster.libsonnet | 2 +- .../kube-state-metrics-mixin/alerts.libsonnet | 3 - .../kube-state-metrics-mixin/config.libsonnet | 6 + .../kube-state-metrics-mixin/mixin.libsonnet | 1 + 15 files changed, 271 insertions(+), 104 deletions(-) create mode 100644 monitoring/manifests/traefik-service-monitor.yaml create mode 100644 monitoring/vendor/github.com/kubernetes/kube-state-metrics/jsonnet/kube-state-metrics-mixin/config.libsonnet diff --git a/monitoring/jsonnetfile.lock.json b/monitoring/jsonnetfile.lock.json index 8191c6d..84fbed5 100644 --- a/monitoring/jsonnetfile.lock.json +++ b/monitoring/jsonnetfile.lock.json @@ -18,7 +18,7 @@ "subdir": "Documentation/etcd-mixin" } }, - "version": "ab494956bffb94b5e5cb088cebcf7572aad70d4a", + "version": "747ff75c96df87530bcd8b6b02d1160c5500bf4e", "sum": "pk7mLpdUrHuJKkj2vhD6LGMU7P+oYYooBXAeZyZa398=" }, { @@ -28,8 +28,8 @@ "subdir": "jsonnet/kube-prometheus" } }, - "version": "f58d7b5695072bfcc15039969fd491a90b011aa8", - "sum": "0LX0oFnq5YHb3XNWxoakJiJQWFkf38bEWA1226nk0BU=" + "version": "5a84ac52c7517a420b3bdf3cd251e8abce59a300", + "sum": "cEMmJvhn8dLnLqUVR0ql/XnwY8Jy3HH0YWIQQRaDD0o=" }, { "source": { @@ -48,8 +48,8 @@ "subdir": "grafonnet" } }, - "version": "7f971cae3e4dc5dc26d1a1991868e4810f73d6fb", - "sum": "/7/gQuDrIcbpbpFCMWhe63RtZ66iT5ECTlJdhVTtUTM=" + "version": "5736b62831d779e28a8344646aee1f72b1fa1d90", + "sum": "ch97Uqauz7z+9mkOwzRz6JErxgWcQlfuJEEg+XHEadg=" }, { "source": { @@ -58,7 +58,7 @@ "subdir": "grafana-builder" } }, - "version": "461d09cbda1bf520f94628c8159b444d4467862f", + "version": "811ccb022bc2bdcd0b8281ed0a0c858c63e20542", "sum": "slxrtftVDiTlQK22ertdfrg4Epnq97gdrLI63ftUfaE=" }, { @@ -79,8 +79,8 @@ "subdir": "" } }, - "version": "37f8263d17bc9d429fece3d345365650587bc56c", - "sum": "n8CG7muquuYMFV03s5D3GA1JVyDLSFifcNRs2JpNfvA=" + "version": "2beabb38d3241eb5da5080cbeb648a0cd1e3cbc2", + "sum": "s6t8ntlUHAjnifWx5V1jnBukTLPya7fX7YZVxJ0GcTk=" }, { "source": { @@ -89,7 +89,7 @@ "subdir": "lib/promgrafonnet" } }, - "version": "37f8263d17bc9d429fece3d345365650587bc56c", + "version": "2beabb38d3241eb5da5080cbeb648a0cd1e3cbc2", "sum": "VhgBM39yv0f4bKv8VfGg4FXkg573evGDRalip9ypKbc=" }, { @@ -99,7 +99,7 @@ "subdir": "jsonnet/kube-state-metrics" } }, - "version": "1d132e7e728face5ba35be3f3310139c98f3a001", + "version": "cce1e3309ab2f42953933e441cbb20b54d986551", "sum": "cJjGZaLBjcIGrLHZLjRPU9c3KL+ep9rZTb9dbALSKqA=" }, { @@ -109,8 +109,8 @@ "subdir": "jsonnet/kube-state-metrics-mixin" } }, - "version": "1d132e7e728face5ba35be3f3310139c98f3a001", - "sum": "E1GGavnf9PCWBm4WVrxWnc0FIj72UcbcweqGioWrOdU=" + "version": "cce1e3309ab2f42953933e441cbb20b54d986551", + "sum": "o5avaguRsfFwYFNen00ZEsub1x4i8Z/ZZ2QoEjFMff8=" }, { "source": { @@ -119,7 +119,7 @@ "subdir": "docs/node-mixin" } }, - "version": "0c532984b7a6a00d67de07a9794aacfeec2c11d3", + "version": "2aef188bc819bade18ec297f9ce34f200caf1431", "sum": "3jFV2qsc/GZe2GADswTYqxxP2zGOiANTj73W/VNFGqc=" }, { @@ -129,7 +129,7 @@ "subdir": "documentation/prometheus-mixin" } }, - "version": "da217cbde262c056e5582a56d0ef7d353f7a163b", + "version": "4658ce60d1f21529a7ffe35ab0a30baeefbe1a04", "sum": "kRb3XBTe/AALDcaTFfyuiKqzhxtLvihBkVkvJ5cUd/I=", "name": "prometheus" }, diff --git a/monitoring/manifests/alertmanager-tbrnt-config-secret.yaml b/monitoring/manifests/alertmanager-tbrnt-config-secret.yaml index 9d3d106..364a9ee 100644 --- a/monitoring/manifests/alertmanager-tbrnt-config-secret.yaml +++ b/monitoring/manifests/alertmanager-tbrnt-config-secret.yaml @@ -6,7 +6,7 @@ metadata: namespace: monitoring spec: encryptedData: - alertmanager.yaml: AgAIMELEPpmiCQ1Xqa421d35pwXcBofPhtpUYBCfHWo63Go+Gw8+VM889a0CPwZQnqP13qjp/sWKBiC8KS9pUdv/MC/3p8Goy+RO27WPblGXxV+lqY7ucKQhuY7tUD17+UZMWOBWCqeQNj0oN32GWcWPzTo+72P9L9qpPe3QUbPSulWa4Xg6NPuk4EI4hfO82VtlLrfMiq3yjsn86e4elVnx9UKJmELGmklNCaZAL2fQFg83+ox+cbx6BwSRJvrIDpCtGe4F6EMrl0oHTgnEuWA9zbk2YEjRwwpWGpg+sNkJpD/8XLhRiNIvV/dovGD9+MLvJLhpfzp9Xkp3S6MQn8Yf8rPEwz6+kHs92NAhgAvseXAYxZxCMensa2s+6oGWbvKk8scReQJGyVQCABnpX3sJeBYDvjn8skBUyh3dkCthqVAL/CMIN5CSzmaAz2jr1q+DYWk85DfYNd93e92gTzi6dFqtPYxbsaGB/ISKdHYEGimyxVpUUcq1XV+IqZbV3IrBr6J7aqC9lHxNbjknnYIG9iHU4EQfRHdJhcXBADCIGwCGqZYFmpcojRuzjIQsR7vJf2Bv/68ADPcg+Vl6ufUCHjcjJ880v5R6CSc7xqrG74XjoUCnGnfyZN1IqzV3VxTbrtDq/AvQZnTV/K3ZTWnVN2tBoW1/ARna4QLtATqlK8hfCRF8BmN4joA8J/NrSY3mLY7XiuJ14OWm0MLah3YPfa5yLTNHun9I4tTC2uhiaqlZFBTef/vacG1+wKD+5308/5pVbd6s1FEFtlFvymJJ78eRckexuqfErMQ8BoBybtjwpFFY17TE8dL7VHLPEP5C8J87cZvwGq1O07KqPRW4cY5SdzgX7Zb9kQJcGzK3EgYYR7lt416egI6NaCKrkQ6GUlbC3Pi+xKgbfQT8CeQlFRSrOLKv3LwmiJfrEkc01dO7bukcvqnOCkqtadXk9Ed1IaXyIERyGqUiHlkhzPzwLN9cW6dzwt2xNwkIMZGnCWKjA/bF/Xkboqb7NBnO0P/OYlVkNtoqmIzjL4S2PXU9pC8LeKs0FFhL7o1iU5CBzFe5QzMkmZEks3rU02QovsXrhe3rMnumn1zgq9uxwM0yhNlZ0tYFIK4PCkhtgZU+tMflxUhl1maJUOFYANFeHPWBd/oKDZ2tMk7PjsrlaMqrJHV2rabYgxIVUqw0BpIIpb4RJekMalw2uZQ1VbULPZiq+JOE9XkOPKaNFZp+2UT1V9pUid8oSpQ/mRZVglE1Dq8HEwSL77dna9ig43xSb2uPR1qiJBBB7gTKtCzpoXyL3rbvFb4OF01WXUkCwYE8AnQ35k5ICanGHdQ2VLtlHYgRq9U5RFDVpgj2M0zbk6ETYDyRweKIt4wez5ErS+FndXM0Y6BBG+mygNKkn2ztlCrKrTXj1XVlNJrXnedk2FJOolHoWraF5f2BBiEFZs5vvntQbKzjv2woEEPeZ71FQwx8V3RyavLa9XGA9Oz4KPtVQioLTukSPfhtACyvIo1ykhR2c21taFRxBj/ZQ0dMNLjCTbnl/+BGHTs+YIkLwc0n5ppojDNIpncnLazWtj9KANaVpfUmcyy7idRDD/nZGhrHtRELpClCU0TYyJ6QzGQlWaVJe70C21SzjdQ/ymFWvRrfMqVK3rswR43rKgdbOcWSCL8o1h7fC042mjztSUc5LYd0Uw3V+dnffk4+2+58BH5PBw== + alertmanager.yaml: AgBYiVW1+C/ABVbSE3VlmFfCUB4PCg8NqqPhiVUDclMiqdJ0xZidszqyx0b0gJYQFykgXP3RDiT3BxW874DZcoi+sp7ul9RreP9zAAe5ShT6Y5xIQsdiVfweBov6Hjv4/JgwgO5VF5tmJMsb1wwRrd1Cv+oMDabLPa8uyE/egf3/OHH18NQqfBf+aUOTEQeZy28Hh60K/HySaBaGDPojfHrxgoY+UFEsI8u0Z+rR0sEhhZBst07/mX2WlzlSwP2panpNYA0hP7gSWr9xUikLDzsVEl6MYyXpVnnCPiGfZaqKwsI5Dn2TsfqyBtnemizhmQh+9UXbpZO7QnoikWpXS1NQ3XJljNkjJ+SqoRINHbuV05RqgdrK3LLq2pt7NKidN3sGaowYmF81uV//BP4Bbk1O2y6Awz7+b2+hxEVBRlBGHYS6VkAvaO0qFJyTe7uFD3NBlGh4EHG/1uSOYWGpggVYQTV+hil8fHcbUyLp/csOK2r0OknAoB4YCMLGDOAffAkSRMQma7KgAYCI9wkmE4usLNgKMlkJ3IsOrcBLLibWF2svq3VucNHcTzBcWWX31rd9Zu8xEEnnCHsINmKKNK/mxrVdRYJmZhMm/vhgtKsY76CZkihj1UUbWMHAhvrhCi759CvJW+86nh6BJN6VfPRo8WsJfQvYFDGXUNGgZWRMChayUs+bkCPenSYqfz/1JdMBrxaqv008MSTNAEzyeS+J3dQXDV3Np8nGlfo53PGNbLDP9OTtsaTjtWbtGSJyxhcXY3mGdugqZh+1H51B/Qz3veS4M9bdf1tTv/o/o1YwLRkLGDsksMCVCiV5Obu/rP6TpFKbqcv3iPcUAhl3tDVThLazTp8k0qi5Q8EC6auLZ+6wwUMhumsUzA/jgJjrZrmne7CFskgYS7I9wFmyP5WBbyenJkB0Stem8bYI08fwoOvBZlnSDLLcSSS6Yz2dU17uT3KnZOLEp0oOnz/k+/e6STYdHjN6wHGDdzQqEyI8aajCaWkYi7mOq+xZ+kFfZbOzohLwkMwOMqCEPOFUdPV4CsH0nu/nzaPzcOhp2LSDJabeoGYAJab51HK8PE+QuKNAKTHPTCHU4M7XbioByMNh98Qws1EAb191lSWL9eyukv2XQl5x+4kGAk0wpGrC0Co/DEDp7aY+mDIrwMsEXgATGFT1gZdAXYxdVnZZEDPWrCl2fiqIcSvE5TnvLKT00tIDVDzvoYNFky1od4pCiIszDytVMdIyfLOEk5T38BKn0y+wI8/j14VG9048p1ojWrdX1IufkLnCOXe8Ihg6clqHS5WSb9J6ylOIusRwEWU4lwrElCMBolywjaUPS8v8OpnFoW2h/k0YLkuf9whx7c4xbAP9dLYTi3Sgx8sL89unTIpth5u9AzF1Giw+16jKShdlPt+73xKLzZ+ym5NP+x6JvrAtIyma2nS57JorwUBIO2NJbzsQ8I8QHsvGRUEOkKokBx3jeSH5a0Lrwnh6k+rh7NLSLYwf6Ihxksgodxetc5ZiT6C38Ji2TPU8spUxowHn4sB/CJ83I92Yzjukr0jOeyGJVd6df5sXiOv7O225iMJRcoZeHW7c9SxhHHxZZry1/D67f2Zv2FUq4Txjsi2L7gpptkezDEU7xqHgg7G5/PqajY3d3NZuyhpC0jBhDzxWXbGGD90h4dxACwvTxXvC/dtzI83Iumg118KQ3vtqEkMTlw== template: metadata: creationTimestamp: null diff --git a/monitoring/manifests/grafana-dashboardDefinitions.yaml b/monitoring/manifests/grafana-dashboardDefinitions.yaml index f1cce51..7412b72 100644 --- a/monitoring/manifests/grafana-dashboardDefinitions.yaml +++ b/monitoring/manifests/grafana-dashboardDefinitions.yaml @@ -138,6 +138,7 @@ items: "min": false, "rightSide": false, "show": true, + "sideWidth": null, "total": false, "values": false }, @@ -331,6 +332,7 @@ items: "min": false, "rightSide": false, "show": true, + "sideWidth": null, "total": false, "values": false }, @@ -438,6 +440,7 @@ items: "min": false, "rightSide": false, "show": true, + "sideWidth": null, "total": false, "values": false }, @@ -530,6 +533,7 @@ items: "min": false, "rightSide": false, "show": true, + "sideWidth": null, "total": false, "values": false }, @@ -721,6 +725,7 @@ items: "min": false, "rightSide": false, "show": true, + "sideWidth": null, "total": false, "values": false }, @@ -828,6 +833,7 @@ items: "min": false, "rightSide": false, "show": true, + "sideWidth": null, "total": false, "values": false }, @@ -920,6 +926,7 @@ items: "min": false, "rightSide": false, "show": true, + "sideWidth": null, "total": false, "values": false }, @@ -1024,6 +1031,7 @@ items: "min": false, "rightSide": false, "show": false, + "sideWidth": null, "total": false, "values": false }, @@ -1115,6 +1123,7 @@ items: "min": false, "rightSide": false, "show": false, + "sideWidth": null, "total": false, "values": false }, @@ -1206,6 +1215,7 @@ items: "min": false, "rightSide": true, "show": true, + "sideWidth": null, "total": false, "values": true }, @@ -1310,6 +1320,7 @@ items: "min": false, "rightSide": false, "show": true, + "sideWidth": null, "total": false, "values": false }, @@ -1401,6 +1412,7 @@ items: "min": false, "rightSide": false, "show": true, + "sideWidth": null, "total": false, "values": false }, @@ -1499,6 +1511,7 @@ items: "min": false, "rightSide": false, "show": true, + "sideWidth": null, "total": false, "values": false }, @@ -1610,6 +1623,7 @@ items: "min": false, "rightSide": false, "show": true, + "sideWidth": null, "total": false, "values": false }, @@ -1701,6 +1715,7 @@ items: "min": false, "rightSide": false, "show": true, + "sideWidth": null, "total": false, "values": false }, @@ -1792,6 +1807,7 @@ items: "min": false, "rightSide": false, "show": true, + "sideWidth": null, "total": false, "values": false }, @@ -2067,6 +2083,7 @@ items: "min": false, "rightSide": true, "show": true, + "sideWidth": null, "sort": "current", "sortDesc": true, "total": false, @@ -2168,6 +2185,7 @@ items: "min": false, "rightSide": true, "show": true, + "sideWidth": null, "sort": "current", "sortDesc": true, "total": false, @@ -2607,6 +2625,7 @@ items: "min": false, "rightSide": true, "show": true, + "sideWidth": null, "sort": "current", "sortDesc": true, "total": false, @@ -2708,6 +2727,7 @@ items: "min": false, "rightSide": true, "show": true, + "sideWidth": null, "sort": "current", "sortDesc": true, "total": false, @@ -2839,6 +2859,7 @@ items: "min": true, "rightSide": true, "show": true, + "sideWidth": null, "total": false, "values": true }, @@ -2938,6 +2959,7 @@ items: "min": true, "rightSide": true, "show": true, + "sideWidth": null, "total": false, "values": true }, @@ -3048,6 +3070,7 @@ items: "min": true, "rightSide": true, "show": true, + "sideWidth": null, "total": false, "values": true }, @@ -3147,6 +3170,7 @@ items: "min": true, "rightSide": true, "show": true, + "sideWidth": null, "total": false, "values": true }, @@ -3266,6 +3290,7 @@ items: "min": true, "rightSide": true, "show": true, + "sideWidth": null, "total": false, "values": true }, @@ -3365,6 +3390,7 @@ items: "min": true, "rightSide": true, "show": true, + "sideWidth": null, "total": false, "values": true }, @@ -3464,6 +3490,7 @@ items: "min": true, "rightSide": true, "show": true, + "sideWidth": null, "total": false, "values": true }, @@ -3567,6 +3594,7 @@ items: "min": true, "rightSide": true, "show": true, + "sideWidth": null, "total": false, "values": true }, @@ -3935,6 +3963,7 @@ items: "min": false, "rightSide": true, "show": true, + "sideWidth": null, "total": false, "values": true }, @@ -4039,6 +4068,7 @@ items: "min": false, "rightSide": true, "show": true, + "sideWidth": null, "total": false, "values": true }, @@ -4143,6 +4173,7 @@ items: "min": false, "rightSide": true, "show": true, + "sideWidth": null, "total": false, "values": true }, @@ -4247,6 +4278,7 @@ items: "min": false, "rightSide": false, "show": true, + "sideWidth": null, "total": false, "values": false }, @@ -4359,6 +4391,7 @@ items: "min": false, "rightSide": false, "show": true, + "sideWidth": null, "total": false, "values": false }, @@ -4463,6 +4496,7 @@ items: "min": false, "rightSide": true, "show": true, + "sideWidth": null, "total": false, "values": true }, @@ -4567,6 +4601,7 @@ items: "min": false, "rightSide": false, "show": true, + "sideWidth": null, "total": false, "values": false }, @@ -4658,6 +4693,7 @@ items: "min": false, "rightSide": false, "show": true, + "sideWidth": null, "total": false, "values": false }, @@ -4749,6 +4785,7 @@ items: "min": false, "rightSide": false, "show": true, + "sideWidth": null, "total": false, "values": false }, @@ -7392,33 +7429,6 @@ items: "regex": "", "type": "datasource" }, - { - "allValue": null, - "current": { - "text": "prod", - "value": "prod" - }, - "datasource": "$datasource", - "hide": 2, - "includeAll": false, - "label": "cluster", - "multi": false, - "name": "cluster", - "options": [ - - ], - "query": "label_values(node_cpu_seconds_total, cluster)", - "refresh": 1, - "regex": "", - "sort": 2, - "tagValuesQuery": "", - "tags": [ - - ], - "tagsQuery": "", - "type": "query", - "useTags": false - }, { "allValue": null, "current": { @@ -17134,6 +17144,7 @@ items: "min": false, "rightSide": true, "show": true, + "sideWidth": null, "total": false, "values": true }, @@ -17225,6 +17236,7 @@ items: "min": false, "rightSide": true, "show": true, + "sideWidth": null, "total": false, "values": true }, @@ -17329,6 +17341,7 @@ items: "min": false, "rightSide": true, "show": true, + "sideWidth": null, "total": false, "values": true }, @@ -17433,6 +17446,7 @@ items: "min": false, "rightSide": true, "show": true, + "sideWidth": null, "total": false, "values": true }, @@ -17531,6 +17545,7 @@ items: "min": false, "rightSide": true, "show": true, + "sideWidth": null, "total": false, "values": true }, @@ -17644,6 +17659,7 @@ items: "min": false, "rightSide": true, "show": true, + "sideWidth": null, "total": false, "values": true }, @@ -17737,6 +17753,7 @@ items: "min": false, "rightSide": true, "show": true, + "sideWidth": null, "total": false, "values": true }, @@ -17843,6 +17860,7 @@ items: "min": false, "rightSide": true, "show": true, + "sideWidth": null, "total": false, "values": true }, @@ -17947,6 +17965,7 @@ items: "min": false, "rightSide": true, "show": true, + "sideWidth": null, "total": false, "values": true }, @@ -18038,6 +18057,7 @@ items: "min": false, "rightSide": true, "show": true, + "sideWidth": null, "total": false, "values": true }, @@ -18143,6 +18163,7 @@ items: "min": false, "rightSide": true, "show": true, + "sideWidth": null, "total": false, "values": true }, @@ -18234,6 +18255,7 @@ items: "min": false, "rightSide": true, "show": true, + "sideWidth": null, "total": false, "values": true }, @@ -18338,6 +18360,7 @@ items: "min": false, "rightSide": true, "show": true, + "sideWidth": null, "total": false, "values": true }, @@ -18442,6 +18465,7 @@ items: "min": false, "rightSide": false, "show": true, + "sideWidth": null, "total": false, "values": false }, @@ -18567,6 +18591,7 @@ items: "min": false, "rightSide": true, "show": true, + "sideWidth": null, "total": false, "values": true }, @@ -18671,6 +18696,7 @@ items: "min": false, "rightSide": false, "show": true, + "sideWidth": null, "total": false, "values": false }, @@ -18762,6 +18788,7 @@ items: "min": false, "rightSide": false, "show": true, + "sideWidth": null, "total": false, "values": false }, @@ -18853,6 +18880,7 @@ items: "min": false, "rightSide": false, "show": true, + "sideWidth": null, "total": false, "values": false }, @@ -19667,6 +19695,7 @@ items: "min": false, "rightSide": false, "show": true, + "sideWidth": null, "total": false, "values": false }, @@ -19766,6 +19795,7 @@ items: "min": false, "rightSide": false, "show": true, + "sideWidth": null, "total": false, "values": false }, @@ -19876,6 +19906,7 @@ items: "min": false, "rightSide": false, "show": true, + "sideWidth": null, "total": false, "values": false }, @@ -19975,6 +20006,7 @@ items: "min": false, "rightSide": false, "show": true, + "sideWidth": null, "total": false, "values": false }, @@ -20094,6 +20126,7 @@ items: "min": false, "rightSide": false, "show": true, + "sideWidth": null, "total": false, "values": false }, @@ -20193,6 +20226,7 @@ items: "min": false, "rightSide": false, "show": true, + "sideWidth": null, "total": false, "values": false }, @@ -20534,6 +20568,7 @@ items: "min": false, "rightSide": true, "show": true, + "sideWidth": null, "sort": "current", "sortDesc": true, "total": false, @@ -20635,6 +20670,7 @@ items: "min": false, "rightSide": true, "show": true, + "sideWidth": null, "sort": "current", "sortDesc": true, "total": false, @@ -21074,6 +21110,7 @@ items: "min": false, "rightSide": true, "show": true, + "sideWidth": null, "sort": "current", "sortDesc": true, "total": false, @@ -21175,6 +21212,7 @@ items: "min": false, "rightSide": true, "show": true, + "sideWidth": null, "sort": "current", "sortDesc": true, "total": false, @@ -21306,6 +21344,7 @@ items: "min": false, "rightSide": false, "show": true, + "sideWidth": null, "total": false, "values": false }, @@ -21405,6 +21444,7 @@ items: "min": false, "rightSide": false, "show": true, + "sideWidth": null, "total": false, "values": false }, @@ -21515,6 +21555,7 @@ items: "min": false, "rightSide": false, "show": true, + "sideWidth": null, "total": false, "values": false }, @@ -21614,6 +21655,7 @@ items: "min": false, "rightSide": false, "show": true, + "sideWidth": null, "total": false, "values": false }, @@ -21733,6 +21775,7 @@ items: "min": false, "rightSide": false, "show": true, + "sideWidth": null, "total": false, "values": false }, @@ -21832,6 +21875,7 @@ items: "min": false, "rightSide": false, "show": true, + "sideWidth": null, "total": false, "values": false }, @@ -24099,6 +24143,7 @@ items: "min": false, "rightSide": false, "show": true, + "sideWidth": null, "total": false, "values": false }, @@ -24191,6 +24236,7 @@ items: "min": false, "rightSide": false, "show": true, + "sideWidth": null, "total": false, "values": false }, @@ -24316,6 +24362,7 @@ items: "min": false, "rightSide": false, "show": true, + "sideWidth": null, "total": false, "values": false }, @@ -24525,6 +24572,7 @@ items: "min": false, "rightSide": false, "show": true, + "sideWidth": null, "total": false, "values": false }, @@ -24640,6 +24688,7 @@ items: "min": false, "rightSide": false, "show": true, + "sideWidth": null, "total": false, "values": false }, @@ -24758,6 +24807,7 @@ items: "min": false, "rightSide": false, "show": true, + "sideWidth": null, "total": false, "values": false }, @@ -24850,6 +24900,7 @@ items: "min": false, "rightSide": false, "show": true, + "sideWidth": null, "total": false, "values": false }, @@ -25070,6 +25121,7 @@ items: "min": true, "rightSide": false, "show": true, + "sideWidth": null, "total": false, "values": true }, @@ -25265,6 +25317,7 @@ items: "min": true, "rightSide": false, "show": true, + "sideWidth": null, "total": false, "values": true }, @@ -25931,6 +25984,7 @@ items: "min": false, "rightSide": false, "show": true, + "sideWidth": null, "total": false, "values": false }, @@ -26030,6 +26084,7 @@ items: "min": false, "rightSide": false, "show": true, + "sideWidth": null, "total": false, "values": false }, @@ -26140,6 +26195,7 @@ items: "min": false, "rightSide": false, "show": true, + "sideWidth": null, "total": false, "values": false }, @@ -26239,6 +26295,7 @@ items: "min": false, "rightSide": false, "show": true, + "sideWidth": null, "total": false, "values": false }, @@ -26358,6 +26415,7 @@ items: "min": false, "rightSide": false, "show": true, + "sideWidth": null, "total": false, "values": false }, @@ -26457,6 +26515,7 @@ items: "min": false, "rightSide": false, "show": true, + "sideWidth": null, "total": false, "values": false }, @@ -26801,6 +26860,7 @@ items: "min": false, "rightSide": false, "show": true, + "sideWidth": null, "total": false, "values": false }, @@ -26892,6 +26952,7 @@ items: "min": false, "rightSide": false, "show": true, + "sideWidth": null, "total": false, "values": false }, @@ -26996,6 +27057,7 @@ items: "min": false, "rightSide": false, "show": true, + "sideWidth": null, "total": false, "values": false }, @@ -27100,6 +27162,7 @@ items: "min": false, "rightSide": false, "show": true, + "sideWidth": null, "total": false, "values": false }, @@ -27192,6 +27255,7 @@ items: "min": false, "rightSide": false, "show": true, + "sideWidth": null, "total": false, "values": false }, @@ -27283,6 +27347,7 @@ items: "min": false, "rightSide": false, "show": true, + "sideWidth": null, "total": false, "values": false }, @@ -27374,6 +27439,7 @@ items: "min": false, "rightSide": false, "show": true, + "sideWidth": null, "total": false, "values": false }, @@ -27478,6 +27544,7 @@ items: "min": false, "rightSide": false, "show": true, + "sideWidth": null, "total": false, "values": false }, @@ -27569,6 +27636,7 @@ items: "min": false, "rightSide": false, "show": true, + "sideWidth": null, "total": false, "values": false }, @@ -27673,6 +27741,7 @@ items: "min": false, "rightSide": false, "show": true, + "sideWidth": null, "total": false, "values": false }, @@ -27764,6 +27833,7 @@ items: "min": false, "rightSide": false, "show": true, + "sideWidth": null, "total": false, "values": false }, @@ -27868,6 +27938,7 @@ items: "min": false, "rightSide": false, "show": true, + "sideWidth": null, "total": false, "values": false }, @@ -27959,6 +28030,7 @@ items: "min": false, "rightSide": false, "show": true, + "sideWidth": null, "total": false, "values": false }, @@ -28050,6 +28122,7 @@ items: "min": false, "rightSide": false, "show": true, + "sideWidth": null, "total": false, "values": false }, @@ -28141,6 +28214,7 @@ items: "min": false, "rightSide": false, "show": true, + "sideWidth": null, "total": false, "values": false }, @@ -29715,6 +29789,7 @@ items: "min": false, "rightSide": false, "show": true, + "sideWidth": null, "total": false, "values": false }, @@ -29806,6 +29881,7 @@ items: "min": false, "rightSide": true, "show": true, + "sideWidth": null, "total": false, "values": true }, @@ -29910,6 +29986,7 @@ items: "min": false, "rightSide": false, "show": true, + "sideWidth": null, "total": false, "values": false }, @@ -30001,6 +30078,7 @@ items: "min": false, "rightSide": true, "show": true, + "sideWidth": null, "total": false, "values": true }, @@ -30105,6 +30183,7 @@ items: "min": false, "rightSide": false, "show": true, + "sideWidth": null, "total": false, "values": false }, @@ -30217,6 +30296,7 @@ items: "min": false, "rightSide": false, "show": true, + "sideWidth": null, "total": false, "values": false }, @@ -30321,6 +30401,7 @@ items: "min": false, "rightSide": true, "show": true, + "sideWidth": null, "total": false, "values": true }, @@ -30425,6 +30506,7 @@ items: "min": false, "rightSide": false, "show": true, + "sideWidth": null, "total": false, "values": false }, @@ -30516,6 +30598,7 @@ items: "min": false, "rightSide": false, "show": true, + "sideWidth": null, "total": false, "values": false }, @@ -30607,6 +30690,7 @@ items: "min": false, "rightSide": false, "show": true, + "sideWidth": null, "total": false, "values": false }, @@ -30910,6 +30994,7 @@ items: "min": false, "rightSide": true, "show": true, + "sideWidth": null, "total": false, "values": true }, @@ -31022,6 +31107,7 @@ items: "min": false, "rightSide": true, "show": true, + "sideWidth": null, "total": false, "values": true }, @@ -31147,6 +31233,7 @@ items: "min": false, "rightSide": false, "show": true, + "sideWidth": null, "total": false, "values": false }, @@ -31259,6 +31346,7 @@ items: "min": false, "rightSide": false, "show": true, + "sideWidth": null, "total": false, "values": false }, @@ -31363,6 +31451,7 @@ items: "min": false, "rightSide": true, "show": true, + "sideWidth": null, "total": false, "values": true }, @@ -31467,6 +31556,7 @@ items: "min": false, "rightSide": false, "show": true, + "sideWidth": null, "total": false, "values": false }, @@ -31558,6 +31648,7 @@ items: "min": false, "rightSide": false, "show": true, + "sideWidth": null, "total": false, "values": false }, @@ -31649,6 +31740,7 @@ items: "min": false, "rightSide": false, "show": true, + "sideWidth": null, "total": false, "values": false }, @@ -32480,6 +32572,7 @@ items: "min": false, "rightSide": false, "show": true, + "sideWidth": null, "total": false, "values": false }, @@ -32807,6 +32900,7 @@ items: "min": false, "rightSide": true, "show": true, + "sideWidth": null, "sort": "current", "sortDesc": true, "total": false, @@ -32908,6 +33002,7 @@ items: "min": false, "rightSide": true, "show": true, + "sideWidth": null, "sort": "current", "sortDesc": true, "total": false, @@ -33020,6 +33115,7 @@ items: "min": false, "rightSide": true, "show": true, + "sideWidth": null, "sort": "current", "sortDesc": true, "total": false, @@ -33121,6 +33217,7 @@ items: "min": false, "rightSide": true, "show": true, + "sideWidth": null, "sort": "current", "sortDesc": true, "total": false, @@ -33252,6 +33349,7 @@ items: "min": false, "rightSide": false, "show": true, + "sideWidth": null, "total": false, "values": false }, @@ -33351,6 +33449,7 @@ items: "min": false, "rightSide": false, "show": true, + "sideWidth": null, "total": false, "values": false }, @@ -33461,6 +33560,7 @@ items: "min": false, "rightSide": false, "show": true, + "sideWidth": null, "total": false, "values": false }, @@ -33560,6 +33660,7 @@ items: "min": false, "rightSide": false, "show": true, + "sideWidth": null, "total": false, "values": false }, @@ -33679,6 +33780,7 @@ items: "min": false, "rightSide": false, "show": true, + "sideWidth": null, "total": false, "values": false }, @@ -33778,6 +33880,7 @@ items: "min": false, "rightSide": false, "show": true, + "sideWidth": null, "total": false, "values": false }, diff --git a/monitoring/manifests/node-exporter-daemonset.yaml b/monitoring/manifests/node-exporter-daemonset.yaml index 1ed3478..ce2af06 100644 --- a/monitoring/manifests/node-exporter-daemonset.yaml +++ b/monitoring/manifests/node-exporter-daemonset.yaml @@ -24,8 +24,7 @@ spec: - --path.rootfs=/host/root - --no-collector.wifi - --no-collector.hwmon - - --collector.filesystem.ignored-mount-points=^/(dev|proc|sys|var/lib/docker/.+)($|/) - - --collector.filesystem.ignored-fs-types=^(autofs|binfmt_misc|cgroup|configfs|debugfs|devpts|devtmpfs|fusectl|hugetlbfs|mqueue|overlay|proc|procfs|pstore|rpc_pipefs|securityfs|sysfs|tracefs)$ + - --collector.filesystem.ignored-mount-points=^/(dev|proc|sys|var/lib/docker/.+|var/lib/kubelet/pods/.+)($|/) image: quay.io/prometheus/node-exporter:v0.18.1 name: node-exporter resources: diff --git a/monitoring/manifests/prometheus-rules.yaml b/monitoring/manifests/prometheus-rules.yaml index dd782d4..932ca50 100644 --- a/monitoring/manifests/prometheus-rules.yaml +++ b/monitoring/manifests/prometheus-rules.yaml @@ -1341,7 +1341,9 @@ spec: sum(apiserver_request:burnrate5m) > (14.40 * 0.01000) for: 2m labels: + long: 1h severity: critical + short: 5m - alert: KubeAPIErrorBudgetBurn annotations: message: The API server is burning too much error budget @@ -1352,7 +1354,9 @@ spec: sum(apiserver_request:burnrate30m) > (6.00 * 0.01000) for: 15m labels: + long: 6h severity: critical + short: 30m - alert: KubeAPIErrorBudgetBurn annotations: message: The API server is burning too much error budget @@ -1363,7 +1367,9 @@ spec: sum(apiserver_request:burnrate2h) > (3.00 * 0.01000) for: 1h labels: + long: 1d severity: warning + short: 2h - alert: KubeAPIErrorBudgetBurn annotations: message: The API server is burning too much error budget @@ -1374,7 +1380,9 @@ spec: sum(apiserver_request:burnrate6h) > (1.00 * 0.01000) for: 3h labels: + long: 3d severity: warning + short: 6h - name: kubernetes-system-apiserver rules: - alert: KubeAPILatencyHigh diff --git a/monitoring/manifests/traefik-service-monitor.yaml b/monitoring/manifests/traefik-service-monitor.yaml new file mode 100644 index 0000000..be736ba --- /dev/null +++ b/monitoring/manifests/traefik-service-monitor.yaml @@ -0,0 +1,17 @@ +--- +apiVersion: monitoring.coreos.com/v1 +kind: ServiceMonitor +metadata: + name: traefik + namespace: monitoring +spec: + endpoints: + - interval: 30s + path: /metrics + port: metrics + namespaceSelector: + matchNames: + - kube-system + selector: + matchLabels: + app: traefik diff --git a/monitoring/vendor/github.com/coreos/kube-prometheus/jsonnet/kube-prometheus/node-exporter/node-exporter.libsonnet b/monitoring/vendor/github.com/coreos/kube-prometheus/jsonnet/kube-prometheus/node-exporter/node-exporter.libsonnet index cf55c02..0d959c5 100644 --- a/monitoring/vendor/github.com/coreos/kube-prometheus/jsonnet/kube-prometheus/node-exporter/node-exporter.libsonnet +++ b/monitoring/vendor/github.com/coreos/kube-prometheus/jsonnet/kube-prometheus/node-exporter/node-exporter.libsonnet @@ -101,11 +101,7 @@ local k = import 'ksonnet/ksonnet.beta.4/k.libsonnet'; '--path.rootfs=/host/root', '--no-collector.wifi', '--no-collector.hwmon', - // The following settings have been taken from - // https://github.com/prometheus/node_exporter/blob/0662673/collector/filesystem_linux.go#L30-L31 - // Once node exporter is being released with those settings, this can be removed. - '--collector.filesystem.ignored-mount-points=^/(dev|proc|sys|var/lib/docker/.+)($|/)', - '--collector.filesystem.ignored-fs-types=^(autofs|binfmt_misc|cgroup|configfs|debugfs|devpts|devtmpfs|fusectl|hugetlbfs|mqueue|overlay|proc|procfs|pstore|rpc_pipefs|securityfs|sysfs|tracefs)$', + '--collector.filesystem.ignored-mount-points=^/(dev|proc|sys|var/lib/docker/.+|var/lib/kubelet/pods/.+)($|/)', ]) + container.withVolumeMounts([procVolumeMount, sysVolumeMount, rootVolumeMount]) + container.mixin.resources.withRequests($._config.resources['node-exporter'].requests) + diff --git a/monitoring/vendor/github.com/grafana/grafonnet-lib/grafonnet/graph_panel.libsonnet b/monitoring/vendor/github.com/grafana/grafonnet-lib/grafonnet/graph_panel.libsonnet index 08774ad..9b1a88c 100644 --- a/monitoring/vendor/github.com/grafana/grafonnet-lib/grafonnet/graph_panel.libsonnet +++ b/monitoring/vendor/github.com/grafana/grafonnet-lib/grafonnet/graph_panel.libsonnet @@ -40,6 +40,7 @@ * @param legend_avg Show average in legend * @param legend_alignAsTable Show legend as table * @param legend_rightSide Show legend to the right + * @param legend_sideWidth Legend width * @param legend_sort Sort order of legend * @param legend_sortDesc Sort legend descending * @param aliasColors Define color mappings for graphs @@ -94,6 +95,7 @@ legend_avg=false, legend_alignAsTable=false, legend_rightSide=false, + legend_sideWidth=null, legend_hideEmpty=null, legend_hideZero=null, legend_sort=null, @@ -154,6 +156,7 @@ total: legend_total, alignAsTable: legend_alignAsTable, rightSide: legend_rightSide, + sideWidth: legend_sideWidth, avg: legend_avg, [if legend_hideEmpty != null then 'hideEmpty']: legend_hideEmpty, [if legend_hideZero != null then 'hideZero']: legend_hideZero, diff --git a/monitoring/vendor/github.com/grafana/grafonnet-lib/grafonnet/influxdb.libsonnet b/monitoring/vendor/github.com/grafana/grafonnet-lib/grafonnet/influxdb.libsonnet index 61ee690..6188623 100644 --- a/monitoring/vendor/github.com/grafana/grafonnet-lib/grafonnet/influxdb.libsonnet +++ b/monitoring/vendor/github.com/grafana/grafonnet-lib/grafonnet/influxdb.libsonnet @@ -5,25 +5,97 @@ * @name influxdb.target * * @param query Raw InfluxQL statement - * @param alias Alias By pattern + * + * @param alias 'Alias By' pattern * @param datasource Datasource - * @param rawQuery En/Disable raw query mode + * + * @param rawQuery Enable/disable raw query mode + * + * @param policy Tagged query 'From' policy + * @param measurement Tagged query 'From' measurement + * @param group_time 'Group by' time condition (if set to null, do not groups by time) + * @param group_tags 'Group by' tags list + * @param fill 'Group by' missing values fill mode (works only with 'Group by time()') + * * @param resultFormat Format results as 'Time series' or 'Table' - + * * @return Panel target */ target( - query, + query=null, + alias=null, datasource=null, - rawQuery=true, + + rawQuery=null, + + policy='default', + measurement=null, + + group_time='$__interval', + group_tags=[], + fill='none', + resultFormat='time_series', ):: { - query: query, - rawQuery: rawQuery, - resultFormat: resultFormat, + local it = self, [if alias != null then 'alias']: alias, [if datasource != null then 'datasource']: datasource, + + [if query != null then 'query']: query, + [if rawQuery != null then 'rawQuery']: rawQuery, + [if rawQuery == null && query != null then 'rawQuery']: true, + + policy: policy, + [if measurement != null then 'measurement']: measurement, + tags: [], + select: [], + groupBy: + if group_time != null then + [{ type: 'time', params: [group_time] }] + + [{ type: 'tag', params: [tag_name] } for tag_name in group_tags] + + [{ type: 'fill', params: [fill] }] + else + [{ type: 'tag', params: [tag_name] } for tag_name in group_tags], + + resultFormat: resultFormat, + + where(key, operator, value, condition=null):: self { + /* + * Adds query tag condition ('Where' section) + */ + tags: + if std.length(it.tags) == 0 then + [{ key: key, operator: operator, value: value }] + else + it.tags + [{ + key: key, + operator: operator, + value: value, + condition: if condition == null then 'AND' else condition, + }], + }, + + selectField(value):: self { + /* + * Adds InfluxDB selection ('field(value)' part of 'Select' statement) + */ + select+: [[{ params: [value], type: 'field' }]], + }, + + addConverter(type, params=[]):: self { + /* + * Appends converter (aggregation, selector, etc.) to last added selection + */ + local len = std.length(it.select), + select: + if len == 1 then + [it.select[0] + [{ params: params, type: type }]] + else if len > 1 then + it.select[0:(len - 1)] + [it.select[len - 1] + [{ params: params, type: type }]] + else + [], + }, }, } diff --git a/monitoring/vendor/github.com/grafana/grafonnet-lib/grafonnet/table_panel.libsonnet b/monitoring/vendor/github.com/grafana/grafonnet-lib/grafonnet/table_panel.libsonnet index ca76719..f1de636 100644 --- a/monitoring/vendor/github.com/grafana/grafonnet-lib/grafonnet/table_panel.libsonnet +++ b/monitoring/vendor/github.com/grafana/grafonnet-lib/grafonnet/table_panel.libsonnet @@ -49,50 +49,13 @@ [if description != null then 'description']: description, [if transform != null then 'transform']: transform, [if transparent == true then 'transparent']: transparent, - _nextTarget:: 0, - addTarget(target):: self + self.addTargets([target]), - addTargets(newtargets):: - self { - local n = std.foldl(function(numOfTargets, p) - (if 'targets' in p then - numOfTargets + 1 + std.length(p.targets) - else - numOfTargets + 1), newtargets, 0), - local nextTarget = super._nextTarget, - local _targets = std.makeArray( - std.length(newtargets), function(i) - newtargets[i] { - refId: std.char(std.codepoint('A') + nextTarget + ( - if i == 0 then - 0 - else - if 'targets' in _targets[i - 1] then - (std.codepoint(_targets[i - 1].refId) - nextTarget) + 1 + std.length(_targets[i - 1].targets) - else - (std.codepoint(_targets[i - 1].refId) - nextTarget) + 1 - )), - [if 'targets' in newtargets[i] then 'targets']: std.makeArray( - std.length(newtargets[i].targets), function(j) - newtargets[i].targets[j] { - refId: std.char(std.codepoint('A') + 1 + j + - nextTarget + ( - if i == 0 then - 0 - else - if 'targets' in _targets[i - 1] then - (std.codepoint(_targets[i - 1].refId) - nextTarget) + 1 + std.length(_targets[i - 1].targets) - else - (std.codepoint(_targets[i - 1].refId) - nextTarget) + 1 - )), - } - ), - } - ), - - _nextTarget: nextTarget + n, - targets+::: _targets, - }, + addTarget(target):: self { + local nextTarget = super._nextTarget, + _nextTarget: nextTarget + 1, + targets+: [target { refId: std.char(std.codepoint('A') + nextTarget) }], + }, + addTargets(targets):: std.foldl(function(p, t) p.addTarget(t), targets, self), addColumn(field, style):: self { local style_ = style { pattern: field }, local column_ = { text: field, value: field }, diff --git a/monitoring/vendor/github.com/kubernetes-monitoring/kubernetes-mixin/alerts/kube_apiserver.libsonnet b/monitoring/vendor/github.com/kubernetes-monitoring/kubernetes-mixin/alerts/kube_apiserver.libsonnet index 00fb15f..ef18b79 100644 --- a/monitoring/vendor/github.com/kubernetes-monitoring/kubernetes-mixin/alerts/kube_apiserver.libsonnet +++ b/monitoring/vendor/github.com/kubernetes-monitoring/kubernetes-mixin/alerts/kube_apiserver.libsonnet @@ -31,6 +31,8 @@ local utils = import 'utils.libsonnet'; ], labels: { severity: w.severity, + short: '%(short)s' % w, + long: '%(long)s' % w, }, annotations: { message: 'The API server is burning too much error budget', diff --git a/monitoring/vendor/github.com/kubernetes-monitoring/kubernetes-mixin/dashboards/resources/cluster.libsonnet b/monitoring/vendor/github.com/kubernetes-monitoring/kubernetes-mixin/dashboards/resources/cluster.libsonnet index 694db86..cfced60 100644 --- a/monitoring/vendor/github.com/kubernetes-monitoring/kubernetes-mixin/dashboards/resources/cluster.libsonnet +++ b/monitoring/vendor/github.com/kubernetes-monitoring/kubernetes-mixin/dashboards/resources/cluster.libsonnet @@ -87,7 +87,7 @@ local template = grafana.template; g.dashboard( '%(dashboardNamePrefix)sCompute Resources / Cluster' % $._config.grafanaK8s, uid=($._config.grafanaDashboardIDs['k8s-resources-cluster.json']), - ).addTemplate('cluster', 'node_cpu_seconds_total', $._config.clusterLabel, hide=if $._config.showMultiCluster then 0 else 2) + ) .addRow( (g.row('Headlines') + { diff --git a/monitoring/vendor/github.com/kubernetes/kube-state-metrics/jsonnet/kube-state-metrics-mixin/alerts.libsonnet b/monitoring/vendor/github.com/kubernetes/kube-state-metrics/jsonnet/kube-state-metrics-mixin/alerts.libsonnet index 0d30a99..b9f9c1a 100644 --- a/monitoring/vendor/github.com/kubernetes/kube-state-metrics/jsonnet/kube-state-metrics-mixin/alerts.libsonnet +++ b/monitoring/vendor/github.com/kubernetes/kube-state-metrics/jsonnet/kube-state-metrics-mixin/alerts.libsonnet @@ -1,7 +1,4 @@ { - _config+:: { - kubeStateMetricsSelector: error 'must provide selector for kube-state-metrics', - }, prometheusAlerts+:: { groups+: [ { diff --git a/monitoring/vendor/github.com/kubernetes/kube-state-metrics/jsonnet/kube-state-metrics-mixin/config.libsonnet b/monitoring/vendor/github.com/kubernetes/kube-state-metrics/jsonnet/kube-state-metrics-mixin/config.libsonnet new file mode 100644 index 0000000..8a5402c --- /dev/null +++ b/monitoring/vendor/github.com/kubernetes/kube-state-metrics/jsonnet/kube-state-metrics-mixin/config.libsonnet @@ -0,0 +1,6 @@ +{ + _config+:: { + // Select the metrics coming from the kube state metrics. + kubeStateMetricsSelector: 'job="kube-state-metrics"', + }, +} diff --git a/monitoring/vendor/github.com/kubernetes/kube-state-metrics/jsonnet/kube-state-metrics-mixin/mixin.libsonnet b/monitoring/vendor/github.com/kubernetes/kube-state-metrics/jsonnet/kube-state-metrics-mixin/mixin.libsonnet index d06ee2f..95efe33 100644 --- a/monitoring/vendor/github.com/kubernetes/kube-state-metrics/jsonnet/kube-state-metrics-mixin/mixin.libsonnet +++ b/monitoring/vendor/github.com/kubernetes/kube-state-metrics/jsonnet/kube-state-metrics-mixin/mixin.libsonnet @@ -1 +1,2 @@ +(import 'config.libsonnet') + (import 'alerts.libsonnet')