diff --git a/alert-policies/openstack-controller/MemoryUsage.yml b/alert-policies/openstack-controller/MemoryUsage.yml new file mode 100644 index 0000000000..2dca9e185b --- /dev/null +++ b/alert-policies/openstack-controller/MemoryUsage.yml @@ -0,0 +1,40 @@ +# Name of the alert +name: Memory Usage Percent + +# Description and details +description: |+ + This alert is triggered if the memory usage exceeds 90% for 5 minutes. +# Type of alert +type: STATIC + +# NRQL query +nrql: + + query: "SELECT average(`memoryUsedBytes`/`memoryTotalBytes`*100) FROM SystemSample facet entityName" + +# Function used to aggregate the NRQL query value(s) for comparison to the terms.threshold (Default: SINGLE_VALUE) +valueFunction: SINGLE_VALUE + +# List of Critical and Warning thresholds for the condition +terms: + - priority: CRITICAL + # Operator used to compare against the threshold. + operator: ABOVE + # Value that triggers a violation + threshold: 90 + # Time in seconds; 120 - 3600 + thresholdDuration: 300 + # How many data points must be in violation for the duration + thresholdOccurrences: ALL + - priority: WARNING + # Operator used to compare against the threshold. + operator: ABOVE + # Value that triggers a violation + threshold: 85 + # Time in seconds; 120 - 3600, must be a multiple of 60 for Baseline conditions + thresholdDuration: 300 + # How many data points must be in violation for the duration + thresholdOccurrences: ALL +# Duration after which a violation automatically closes +# Time in seconds; 300 - 2592000 (Default: 86400 [1 day]) +violationTimeLimitSeconds: 86400 \ No newline at end of file diff --git a/alert-policies/openstack-controller/ServerFreeMemoryLow.yml b/alert-policies/openstack-controller/ServerFreeMemoryLow.yml new file mode 100644 index 0000000000..945b0afd99 --- /dev/null +++ b/alert-policies/openstack-controller/ServerFreeMemoryLow.yml @@ -0,0 +1,41 @@ +# Name of the alert +name: Server Free Memory Low(%) + +# Description and details +description: |+ + This alert is triggered when server free memory is less than 72% for 5 minutes. +# Type of alert +type: STATIC + +# NRQL query +nrql: + + query: "SELECT average(`memoryFreeBytes`/`memoryTotalBytes`*100) FROM SystemSample facet entityName" + +# Function used to aggregate the NRQL query value(s) for comparison to the terms.threshold (Default: SINGLE_VALUE) +valueFunction: SINGLE_VALUE + +# List of Critical and Warning thresholds for the condition +terms: + - priority: CRITICAL + # Operator used to compare against the threshold. + operator: BELOW + # Value that triggers a violation + threshold: 72 + # Time in seconds; 120 - 3600 + thresholdDuration: 300 + # How many data points must be in violation for the duration + thresholdOccurrences: ALL + - priority: WARNING + # Operator used to compare against the threshold. + operator: BELOW + # Value that triggers a violation + threshold: 75 + # Time in seconds; 120 - 3600, must be a multiple of 60 for Baseline conditions + thresholdDuration: 300 + # How many data points must be in violation for the duration + thresholdOccurrences: ALL + +# Duration after which a violation automatically closes +# Time in seconds; 300 - 2592000 (Default: 86400 [1 day]) +violationTimeLimitSeconds: 86400 \ No newline at end of file diff --git a/alert-policies/openstack-controller/StateDown.yml b/alert-policies/openstack-controller/StateDown.yml new file mode 100644 index 0000000000..52f76fd753 --- /dev/null +++ b/alert-policies/openstack-controller/StateDown.yml @@ -0,0 +1,41 @@ +# Name of the alert +name: State Down(%) + +# Description and details +description: |+ + This alert is triggered when state is down for 5 minutes. +# Type of alert +type: STATIC + +# NRQL query +nrql: + + query: "SELECT average(`memoryFreeBytes`/`memoryTotalBytes`*100) FROM SystemSample facet entityName" + +# Function used to aggregate the NRQL query value(s) for comparison to the terms.threshold (Default: SINGLE_VALUE) +valueFunction: SINGLE_VALUE + +# List of Critical and Warning thresholds for the condition +terms: + - priority: CRITICAL + # Operator used to compare against the threshold. + operator: BELOW + # Value that triggers a violation + threshold: 72 + # Time in seconds; 120 - 3600 + thresholdDuration: 300 + # How many data points must be in violation for the duration + thresholdOccurrences: ALL + - priority: WARNING + # Operator used to compare against the threshold. + operator: BELOW + # Value that triggers a violation + threshold: 75 + # Time in seconds; 120 - 3600, must be a multiple of 60 for Baseline conditions + thresholdDuration: 300 + # How many data points must be in violation for the duration + thresholdOccurrences: ALL + +# Duration after which a violation automatically closes +# Time in seconds; 300 - 2592000 (Default: 86400 [1 day]) +violationTimeLimitSeconds: 86400 \ No newline at end of file diff --git a/dashboards/openstack-controller/openstack-controller.json b/dashboards/openstack-controller/openstack-controller.json index c42874a3c5..e73a1de5b7 100644 --- a/dashboards/openstack-controller/openstack-controller.json +++ b/dashboards/openstack-controller/openstack-controller.json @@ -217,7 +217,7 @@ "layout": { "column": 1, "row": 1, - "width": 2, + "width": 3, "height": 3 }, "linkedEntityGuids": null, @@ -242,9 +242,9 @@ { "title": "Domain", "layout": { - "column": 3, + "column": 4, "row": 1, - "width": 2, + "width": 3, "height": 3 }, "linkedEntityGuids": null, @@ -269,14 +269,14 @@ { "title": "Block storage backup", "layout": { - "column": 5, + "column": 7, "row": 1, "width": 4, "height": 3 }, "linkedEntityGuids": null, "visualization": { - "id": "viz.stacked-bar" + "id": "viz.area" }, "rawConfiguration": { "facet": { @@ -288,7 +288,7 @@ "nrqlQueries": [ { "accountIds": [], - "query": "select latest(`openstack.cinder.limits.maxTotalBackupGigabytes`) as maxTotalBackupGigabytes, latest(`openstack.cinder.limits.totalBackupGigabytesUsed`) as totalBackupGigabytesUsed from OSBlockStorageSample TIMESERIES " + "query": "SELECT latest(openstack.cinder.limits.maxTotalBackups) AS 'Max total backups', latest(openstack.cinder.limits.totalBackupsUsed) AS 'Total backups used' FROM OSBlockStorageSample TIMESERIES " } ], "platformOptions": { @@ -299,7 +299,7 @@ { "title": "Cinder volume", "layout": { - "column": 9, + "column": 11, "row": 1, "width": 2, "height": 3 @@ -325,33 +325,6 @@ }, { "title": "Cinder snapshots", - "layout": { - "column": 11, - "row": 1, - "width": 2, - "height": 3 - }, - "linkedEntityGuids": null, - "visualization": { - "id": "viz.billboard" - }, - "rawConfiguration": { - "facet": { - "showOtherSeries": false - }, - "nrqlQueries": [ - { - "accountIds": [], - "query": "SELECT latest(openstack.cinder.snapshots.size) AS 'Snapshots Size', latest(openstack.cinder.snapshots.count) AS 'Snapshots Count' FROM OSBlockStorageSample " - } - ], - "platformOptions": { - "ignoreTimeRange": false - } - } - }, - { - "title": "Snapshots", "layout": { "column": 1, "row": 4, @@ -369,7 +342,7 @@ "nrqlQueries": [ { "accountIds": [], - "query": "SELECT latest(openstack.cinder.limits.maxTotalSnapshots) AS 'Total', latest(openstack.cinder.limits.totalSnapshotsUsed) AS 'Used' FROM OSBlockStorageSample " + "query": "SELECT latest(openstack.cinder.snapshots.size) AS 'Snapshots Size', latest(openstack.cinder.snapshots.count) AS 'Snapshots Count' FROM OSBlockStorageSample " } ], "platformOptions": { @@ -382,21 +355,24 @@ "layout": { "column": 3, "row": 4, - "width": 2, + "width": 4, "height": 3 }, "linkedEntityGuids": null, "visualization": { - "id": "viz.billboard" + "id": "viz.stacked-bar" }, "rawConfiguration": { "facet": { "showOtherSeries": false }, + "legend": { + "enabled": true + }, "nrqlQueries": [ { "accountIds": [], - "query": "SELECT latest(openstack.cinder.limits.maxTotalVolumes) AS 'Max', latest(openstack.cinder.limits.totalVolumesUsed) AS 'Used' FROM OSBlockStorageSample " + "query": "SELECT latest(openstack.cinder.limits.maxTotalVolumes) AS 'Max', latest(openstack.cinder.limits.totalVolumesUsed) AS 'Used' FROM OSBlockStorageSample TIMESERIES" } ], "platformOptions": { @@ -405,28 +381,25 @@ } }, { - "title": "Block storage backup", + "title": "Snapshots", "layout": { - "column": 5, + "column": 7, "row": 4, - "width": 4, + "width": 3, "height": 3 }, "linkedEntityGuids": null, "visualization": { - "id": "viz.area" + "id": "viz.billboard" }, "rawConfiguration": { "facet": { "showOtherSeries": false }, - "legend": { - "enabled": true - }, "nrqlQueries": [ { "accountIds": [], - "query": "SELECT latest(openstack.cinder.limits.maxTotalBackups) AS 'Max total backups', latest(openstack.cinder.limits.totalBackupsUsed) AS 'Total backups used' FROM OSBlockStorageSample TIMESERIES " + "query": "SELECT latest(openstack.cinder.limits.maxTotalSnapshots) AS 'Total', latest(openstack.cinder.limits.totalSnapshotsUsed) AS 'Used' FROM OSBlockStorageSample " } ], "platformOptions": { @@ -437,9 +410,9 @@ { "title": "Snapshot count", "layout": { - "column": 9, + "column": 10, "row": 4, - "width": 4, + "width": 3, "height": 3 }, "linkedEntityGuids": null, @@ -603,7 +576,7 @@ } }, { - "title": "Minimum disk", + "title": "Average disk", "layout": { "column": 1, "row": 4, @@ -612,7 +585,7 @@ }, "linkedEntityGuids": null, "visualization": { - "id": "viz.line" + "id": "viz.stacked-bar" }, "rawConfiguration": { "facet": { @@ -624,14 +597,11 @@ "nrqlQueries": [ { "accountIds": [], - "query": "SELECT latest(openstack.glance.image.min_disk) FROM OSImageSample TIMESERIES " + "query": "SELECT average(openstack.glance.image.min_disk) FROM OSImageSample TIMESERIES " } ], "platformOptions": { "ignoreTimeRange": false - }, - "yAxisLeft": { - "zero": true } } }, @@ -768,7 +738,7 @@ }, "linkedEntityGuids": null, "visualization": { - "id": "viz.line" + "id": "viz.area" }, "rawConfiguration": { "facet": { @@ -785,9 +755,6 @@ ], "platformOptions": { "ignoreTimeRange": false - }, - "yAxisLeft": { - "zero": true } } }, @@ -1188,7 +1155,7 @@ "description": null, "widgets": [ { - "title": "Networks", + "title": "Networks(click on the network name to filter)", "layout": { "column": 1, "row": 1, @@ -1350,7 +1317,7 @@ } }, { - "title": "Network Tenant Id", + "title": "Network tenant Id", "layout": { "column": 5, "row": 4, @@ -1431,7 +1398,7 @@ } }, { - "title": "Maximum Transmission Units (MTU's)", + "title": "Maximum transmission units (MTU's)", "layout": { "column": 3, "row": 7, @@ -1464,7 +1431,7 @@ } }, { - "title": "Network Revision Number", + "title": "Network revision number", "layout": { "column": 6, "row": 7, @@ -1491,7 +1458,7 @@ } }, { - "title": "Network Description", + "title": "Network description", "layout": { "column": 9, "row": 7, diff --git a/dashboards/openstack-controller/openstack-controller01.png b/dashboards/openstack-controller/openstack-controller01.png index 8b84877925..c9e2e00868 100644 Binary files a/dashboards/openstack-controller/openstack-controller01.png and b/dashboards/openstack-controller/openstack-controller01.png differ diff --git a/dashboards/openstack-controller/openstack-controller02.png b/dashboards/openstack-controller/openstack-controller02.png index 96b4ab5dda..d69dcb4c86 100644 Binary files a/dashboards/openstack-controller/openstack-controller02.png and b/dashboards/openstack-controller/openstack-controller02.png differ diff --git a/dashboards/openstack-controller/openstack-controller03.png b/dashboards/openstack-controller/openstack-controller03.png index 2d6ff4f382..9487b1d97e 100644 Binary files a/dashboards/openstack-controller/openstack-controller03.png and b/dashboards/openstack-controller/openstack-controller03.png differ diff --git a/dashboards/openstack-controller/openstack-controller04.png b/dashboards/openstack-controller/openstack-controller04.png index fa157f074c..e58235c6b0 100644 Binary files a/dashboards/openstack-controller/openstack-controller04.png and b/dashboards/openstack-controller/openstack-controller04.png differ diff --git a/dashboards/openstack-controller/openstack-controller05.png b/dashboards/openstack-controller/openstack-controller05.png index 0c2eb82f81..089609e539 100644 Binary files a/dashboards/openstack-controller/openstack-controller05.png and b/dashboards/openstack-controller/openstack-controller05.png differ diff --git a/dashboards/openstack-controller/openstack-controller06.png b/dashboards/openstack-controller/openstack-controller06.png index c9375be668..849c07781c 100644 Binary files a/dashboards/openstack-controller/openstack-controller06.png and b/dashboards/openstack-controller/openstack-controller06.png differ diff --git a/quickstarts/openstack-controller/config.yml b/quickstarts/openstack-controller/config.yml index fbef8634e2..d8ebf3c707 100644 --- a/quickstarts/openstack-controller/config.yml +++ b/quickstarts/openstack-controller/config.yml @@ -9,6 +9,7 @@ description: | ## What’s included in this quickstart? New Relic Openstack Controller monitoring quickstart provides quality out-of-the-box reporting: - Dashboards (Events, Projects, Networks, Domains, etc) + - Alerts for Openstack (state down, server free memory low and memory usage) summary: | Use New Relic to monitor and analyze your Openstack Controller infrastructure.