diff --git a/alert-policies/openstack-controller/ImageStatus.yml b/alert-policies/openstack-controller/ImageStatus.yml new file mode 100644 index 0000000000..35d10a1453 --- /dev/null +++ b/alert-policies/openstack-controller/ImageStatus.yml @@ -0,0 +1,32 @@ +# Name of the alert +name: Image Status + +# Description and details +description: |+ + This alert is triggered when the image status is inactive for 5 minutes. +# Type of alert +type: STATIC + +# NRQL query +nrql: + + query: "SELECT count(*)FROM OSImageSample where openstack.glance.image.status != 'active'" + +# 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: 1 + # Time in seconds; 120 - 3600 + 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/MemoryUsage.yml b/alert-policies/openstack-controller/MemoryUsage.yml new file mode 100644 index 0000000000..ef35e853f5 --- /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 when 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..45735420ca --- /dev/null +++ b/alert-policies/openstack-controller/ServerFreeMemoryLow.yml @@ -0,0 +1,32 @@ +# Name of the alert +name: Server Free Memory Low(%) + +# Description and details +description: |+ + This alert is triggered when server free memory is less than 10% 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: 10 + # Time in seconds; 120 - 3600 + 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 new file mode 100644 index 0000000000..68fe94c1e4 --- /dev/null +++ b/dashboards/openstack-controller/openstack-controller.json @@ -0,0 +1,1650 @@ +{ + "name": "Openstack Controller", + "description": null, + "pages": [ + { + "name": "Overview", + "description": null, + "widgets": [ + { + "title": "", + "layout": { + "column": 1, + "row": 1, + "width": 2, + "height": 2 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.markdown" + }, + "rawConfiguration": { + "text": "![Openstack Controller](https://object-storage-ca-ymq-1.vexxhost.net/swift/v1/6e4619c416ff4bd19e1c087f27a43eea/www-images-prod/openstack-logo/OpenStack-Logo-Vertical.png)" + } + }, + { + "title": "Openstack events", + "layout": { + "column": 3, + "row": 1, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.bar" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "select count(*) from OSBlockStorageSample, OSHypervisorSample, OSLimitSample, OSNetworkSample, OSServerSample facet eventType() LIMIT MAX" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "Projects", + "layout": { + "column": 7, + "row": 1, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.pie" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": true + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "select uniqueCount(`openstack.project.name`) from OSBlockStorageSample, OSHypervisorSample, OSLimitSample, OSNetworkSample, OSServerSample facet `openstack.project.name`" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "Domains", + "layout": { + "column": 11, + "row": 1, + "width": 2, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.bar" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "select uniqueCount(`openstack.domain.id`) from OSNetworkSample facet `openstack.domain.id`" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "", + "layout": { + "column": 1, + "row": 3, + "width": 2, + "height": 2 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.markdown" + }, + "rawConfiguration": { + "text": "**About**\n\nInstrument your application with New Relic - [Add Data](https://one.newrelic.com/).\n\nInstrument Openstack Controller with New Relic using the [documentation](https://docs.newrelic.com/docs/infrastructure/host-integrations/host-integrations-list/openstack-controller-integration/).\n\n[Please rate this dashboard](https://docs.google.com/forms/d/e/1FAIpQLSclR38J8WbbB2J1tHnllKUkzWZkJhf4SrJGyavpMd4t82NjnQ/viewform?usp=pp_url&entry.1615922415=OpenstackController&entry.358368110=https://onenr.io/0EjONkYNDR6) here and let us know how we can improve it for you." + } + }, + { + "title": "Networks", + "layout": { + "column": 3, + "row": 4, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.pie" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": true + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "select uniqueCount(`openstack.neutron.network.name`) from OSNetworkSample facet `openstack.neutron.network.name`" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "Load average", + "layout": { + "column": 7, + "row": 4, + "width": 6, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.line" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "select average(loadAverageOneMinute), average(loadAverageFiveMinute), average(loadAverageFifteenMinute) from SystemSample TIMESERIES" + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "yAxisLeft": { + "zero": true + } + } + }, + { + "title": "Total networks", + "layout": { + "column": 1, + "row": 5, + "width": 2, + "height": 2 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.billboard" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "select uniqueCount(`openstack.neutron.network.id`) as 'Networks' from OSNetworkSample" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + } + ] + }, + { + "name": "Block Storage ", + "description": null, + "widgets": [ + { + "title": "Openstack projects", + "layout": { + "column": 1, + "row": 1, + "width": 3, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.bar" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "SELECT count(*) FROM OSBlockStorageSample FACET openstack.project.name " + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "Domains", + "layout": { + "column": 4, + "row": 1, + "width": 3, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.bar" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "select uniqueCount(`openstack.domain.id`) as Domain from OSBlockStorageSample facet `openstack.domain.id`" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "Block storage backup", + "layout": { + "column": 7, + "row": 1, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.area" + }, + "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 " + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "Cinder volume", + "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.volumes.size) AS 'volume size',count(openstack.cinder.volumes.count) as 'volume count' FROM OSBlockStorageSample" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "Cinder snapshots", + "layout": { + "column": 1, + "row": 4, + "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": "Volumes", + "layout": { + "column": 3, + "row": 4, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "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 TIMESERIES" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "Snapshots", + "layout": { + "column": 7, + "row": 4, + "width": 3, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.billboard" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "SELECT latest(openstack.cinder.limits.maxTotalSnapshots) AS 'Total', latest(openstack.cinder.limits.totalSnapshotsUsed) AS 'Used' FROM OSBlockStorageSample " + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "Snapshot count", + "layout": { + "column": 10, + "row": 4, + "width": 3, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.bar" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "select max(`openstack.cinder.snapshots.count`) as 'Snapshots' from OSBlockStorageSample facet `openstack.project.name`" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + } + ] + }, + { + "name": "Image", + "description": null, + "widgets": [ + { + "title": "Image status", + "layout": { + "column": 1, + "row": 1, + "width": 2, + "height": 2 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.billboard" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "SELECT latest(openstack.glance.image.status) AS '' FROM OSImageSample " + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "Protected", + "layout": { + "column": 3, + "row": 1, + "width": 2, + "height": 2 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.billboard" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "SELECT latest(openstack.glance.image.protected) AS '' FROM OSImageSample" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "Minimum RAM (MB)", + "layout": { + "column": 5, + "row": 1, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.line" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "SELECT latest(openstack.glance.image.min_ram) FROM OSImageSample TIMESERIES " + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "yAxisLeft": { + "zero": true + } + } + }, + { + "title": "Average image size(MB)", + "layout": { + "column": 9, + "row": 1, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.area" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "SELECT average(openstack.glance.image.size) FROM OSImageSample TIMESERIES " + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "units": { + "unit": "BYTES" + } + } + }, + { + "title": "Minimum disk size needed(GB)", + "layout": { + "column": 1, + "row": 3, + "width": 4, + "height": 2 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.stacked-bar" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "SELECT latest(openstack.glance.image.min_disk) FROM OSImageSample TIMESERIES" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "Image details ", + "layout": { + "column": 5, + "row": 4, + "width": 8, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.table" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "SELECT uniques(openstack.glance.image.file), uniques(openstack.glance.image.id), uniques(openstack.glance.image.name),uniques(openstack.glance.image.owner_specified.openstack.object), uniques(openstack.glance.image.schema) FROM OSImageSample " + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "Disk format", + "layout": { + "column": 1, + "row": 5, + "width": 4, + "height": 2 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.table" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "SELECT count(*) FROM OSImageSample FACET openstack.glance.image.disk_format" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + } + ] + }, + { + "name": "Keystone", + "description": null, + "widgets": [ + { + "title": "Project count", + "layout": { + "column": 1, + "row": 1, + "width": 3, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.billboard" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "SELECT latest(openstack.identity.projects_count) FROM OSKeystoneSample " + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "Services", + "layout": { + "column": 4, + "row": 1, + "width": 2, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.billboard" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "SELECT latest(openstack.identity.services_count) FROM OSKeystoneSample " + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "Identity groups count", + "layout": { + "column": 6, + "row": 1, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.area" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "SELECT latest(openstack.identity.groups_count) from OSKeystoneSample TIMESERIES " + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "Regions count", + "layout": { + "column": 10, + "row": 1, + "width": 3, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.billboard" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "SELECT latest(openstack.identity.regions_count) FROM OSKeystoneSample " + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "Identity floating IP(s)", + "layout": { + "column": 1, + "row": 4, + "width": 3, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.line" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "SELECT latest(openstack.identity.floatingips_count) FROM OSKeystoneSample TIMESERIES " + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "yAxisLeft": { + "zero": true + } + } + }, + { + "title": "Identity roles", + "layout": { + "column": 4, + "row": 4, + "width": 3, + "height": 2 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.billboard" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "SELECT latest(openstack.identity.roles_count) FROM OSKeystoneSample " + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "Security group ", + "layout": { + "column": 7, + "row": 4, + "width": 3, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.stacked-bar" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "SELECT latest(openstack.identity.security_groups_count) FROM OSKeystoneSample TIMESERIES " + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "Routers", + "layout": { + "column": 10, + "row": 4, + "width": 3, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.area" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "SELECT latest(openstack.identity.routers_count) FROM OSKeystoneSample TIMESERIES " + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "Subnets", + "layout": { + "column": 4, + "row": 6, + "width": 3, + "height": 1 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.billboard" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "SELECT average(openstack.identity.subnets_count) AS 'subnets' FROM OSKeystoneSample " + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + } + ] + }, + { + "name": "Limits", + "description": null, + "widgets": [ + { + "title": "Image meta", + "layout": { + "column": 1, + "row": 1, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.line" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "SELECT max(openstack.nova.limits.maxImageMeta) FROM OSLimitSample TIMESERIES" + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "yAxisLeft": { + "zero": true + } + } + }, + { + "title": "Total RAM(GB)", + "layout": { + "column": 5, + "row": 1, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.area" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "SELECT latest(openstack.nova.limits.maxTotalRAMSize)/1000 AS 'RAM Size',latest(openstack.nova.limits.totalRAMUsed)/1000 AS 'RAM Used' FROM OSLimitSample TIMESERIES " + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "Instance", + "layout": { + "column": 9, + "row": 1, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.stacked-bar" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "SELECT latest(openstack.nova.limits.maxTotalInstances) AS 'Total Instance', latest(openstack.nova.limits.totalInstancesUsed) AS 'Used Instance' FROM OSLimitSample TIMESERIES " + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "Floating IP(s)", + "layout": { + "column": 1, + "row": 4, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.line" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "SELECT latest(openstack.nova.limits.maxTotalFloatingIps) AS 'Total', latest(openstack.nova.limits.totalFloatingIpsUsed) AS 'Used' FROM OSLimitSample TIMESERIES" + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "yAxisLeft": { + "zero": true + } + } + }, + { + "title": "Cores", + "layout": { + "column": 5, + "row": 4, + "width": 2, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.billboard" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "SELECT latest(openstack.nova.limits.maxTotalCores) AS 'Total', latest(openstack.nova.limits.totalCoresUsed) as 'Used' FROM OSLimitSample" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "Key pairs", + "layout": { + "column": 7, + "row": 4, + "width": 2, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.billboard" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "SELECT average(openstack.nova.limits.maxTotalKeypairs) FROM OSLimitSample " + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "Security groups", + "layout": { + "column": 9, + "row": 4, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.stacked-bar" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "SELECT latest(openstack.nova.limits.maxSecurityGroups) as 'Max', latest(openstack.nova.limits.totalSecurityGroupsUsed) as 'Used' from OSLimitSample TIMESERIES " + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + } + ] + }, + { + "name": "Network", + "description": null, + "widgets": [ + { + "title": "Networks", + "layout": { + "column": 1, + "row": 1, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.bar" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "SELECT uniqueCount(`openstack.neutron.network.name`) from OSNetworkSample facet `openstack.neutron.network.name`" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "Network status", + "layout": { + "column": 5, + "row": 1, + "width": 2, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.billboard" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "select latest(`openstack.neutron.network.status`) from OSNetworkSample" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "Number of networks", + "layout": { + "column": 7, + "row": 1, + "width": 2, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.billboard" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "select uniqueCount(`openstack.neutron.network.id`) as 'Network Count' from OSNetworkSample " + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "Network domains", + "layout": { + "column": 9, + "row": 1, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.bar" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "select uniqueCount(`openstack.domain.id`) as Domain from OSNetworkSample facet `openstack.domain.id`" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "Network default", + "layout": { + "column": 1, + "row": 4, + "width": 2, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.billboard" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "SELECT latest(openstack.neutron.network.is_default) from OSNetworkSample " + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "Network creation and updated time", + "layout": { + "column": 3, + "row": 4, + "width": 2, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.billboard" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "SELECT latest(`openstack.neutron.network.created_at`) as 'Created Date/Time', latest(openstack.neutron.network.updated_at) AS 'Updated Date/Time' from OSNetworkSample " + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "Network tenant ID", + "layout": { + "column": 5, + "row": 4, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.table" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "SELECT latest(openstack.neutron.network.tenant_id) FROM OSNetworkSample FACET openstack.neutron.network.name" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "Admin state up", + "layout": { + "column": 9, + "row": 4, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.bar" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "SELECT latest(`openstack.neutron.network.admin_state_up`) as 'Admin State Up' from OSNetworkSample facet `openstack.neutron.network.name`" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "Segmentation ID", + "layout": { + "column": 1, + "row": 7, + "width": 2, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.billboard" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "SELECT latest(`openstack.neutron.network.provider:segmentation_id`) AS 'Segmentation ID' from OSNetworkSample " + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "Maximum transmission units (MTU's)", + "layout": { + "column": 3, + "row": 7, + "width": 3, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.line" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "select average(`openstack.neutron.network.mtu`) from OSNetworkSample TIMESERIES" + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "yAxisLeft": { + "zero": true + } + } + }, + { + "title": "Network revision number", + "layout": { + "column": 6, + "row": 7, + "width": 3, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.bar" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "SELECT latest(`openstack.neutron.network.revision_number`) from OSNetworkSample FACET openstack.neutron.network.name " + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "Network description", + "layout": { + "column": 9, + "row": 7, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.billboard" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "SELECT latest(openstack.neutron.network.description) from OSNetworkSample " + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + } + ] + }, + { + "name": "Nova", + "description": null, + "widgets": [ + { + "title": "Average services", + "layout": { + "column": 1, + "row": 1, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.area" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "SELECT average(openstack.compute.services_count) FROM OSNovaSample TIMESERIES " + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "Key pairs", + "layout": { + "column": 5, + "row": 1, + "width": 2, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.billboard" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "SELECT average(openstack.compute.keypairs_count) FROM OSNovaSample " + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "Flavors", + "layout": { + "column": 7, + "row": 1, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.stacked-bar" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "SELECT average(openstack.compute.flavors_count) FROM OSNovaSample TIMESERIES " + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "Aggregates", + "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.compute.aggregates_count) FROM OSNovaSample " + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + } + ] + }, + { + "name": "Logs", + "description": null, + "widgets": [ + { + "title": "", + "layout": { + "column": 1, + "row": 1, + "width": 12, + "height": 1 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.markdown" + }, + "rawConfiguration": { + "text": "## Choose variable\nSelect your appropriate \"logtype\" variable(s) to display the related logs." + } + }, + { + "title": "Logs", + "layout": { + "column": 1, + "row": 2, + "width": 12, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "logger.log-table-widget" + }, + "rawConfiguration": { + "nrqlQueries": [ + { + "accountIds": [], + "query": "SELECT * FROM Log WHERE logtype = {{log_type}}" + } + ] + } + } + ] + } + ], + "variables": [ + { + "name": "log_type", + "items": null, + "defaultValues": [], + "nrqlQuery": { + "accountIds": [], + "query": "SELECT uniques(logtype) FROM Log since 1 month ago" + }, + "title": "Select your logtype", + "type": "NRQL", + "isMultiSelection": true, + "replacementStrategy": "STRING" + } + ] +} \ No newline at end of file diff --git a/dashboards/openstack-controller/openstack-controller01.png b/dashboards/openstack-controller/openstack-controller01.png new file mode 100644 index 0000000000..bf35d68d03 Binary files /dev/null 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 new file mode 100644 index 0000000000..45062c4cc0 Binary files /dev/null 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 new file mode 100644 index 0000000000..77f4a100e0 Binary files /dev/null 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 new file mode 100644 index 0000000000..ddd6477a05 Binary files /dev/null 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 new file mode 100644 index 0000000000..5edc365c2f Binary files /dev/null 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 new file mode 100644 index 0000000000..72521f73fd Binary files /dev/null and b/dashboards/openstack-controller/openstack-controller06.png differ diff --git a/dashboards/openstack-controller/openstack-controller07.png b/dashboards/openstack-controller/openstack-controller07.png new file mode 100644 index 0000000000..7237d52a43 Binary files /dev/null and b/dashboards/openstack-controller/openstack-controller07.png differ diff --git a/dashboards/openstack-controller/openstack-controller08.png b/dashboards/openstack-controller/openstack-controller08.png new file mode 100644 index 0000000000..ac7267e548 Binary files /dev/null and b/dashboards/openstack-controller/openstack-controller08.png differ diff --git a/data-sources/openstack-controller/config.yml b/data-sources/openstack-controller/config.yml new file mode 100644 index 0000000000..77f8da0b02 --- /dev/null +++ b/data-sources/openstack-controller/config.yml @@ -0,0 +1,16 @@ +id: openstack-controller +displayName: Openstack Controller +description: | + Monitor and analyze your Openstack Controller infrastructure with New Relic. +install: + primary: + link: + url: https://docs.newrelic.com/docs/infrastructure/host-integrations/host-integrations-list/openstack-controller-integration/ +icon: logo.png +keywords: + - openstack controller + - openstack + - nova controller + - neutron controller + - cinder controller + - Keystone controller \ No newline at end of file diff --git a/data-sources/openstack-controller/logo.png b/data-sources/openstack-controller/logo.png new file mode 100644 index 0000000000..3f69a04377 Binary files /dev/null and b/data-sources/openstack-controller/logo.png differ diff --git a/quickstarts/openstack-controller/config.yml b/quickstarts/openstack-controller/config.yml new file mode 100644 index 0000000000..db1acf2e02 --- /dev/null +++ b/quickstarts/openstack-controller/config.yml @@ -0,0 +1,42 @@ +slug: openstack-controller +description: | + ## Why monitor Openstack Controller? + Monitoring the OpenStack controller helps you maintain the stability, performance, security, and availability of your cloud environment by detecting issues early, responding promptly, and continuously improving your infrastructure to meet the needs of users and applications. + + ## Comprehensive monitoring quickstart for Openstack Controller + New Relic comprehensive monitoring solution collects data from all aspects of your OpenStack environment, so you can see exactly what's happening and identify any potential problems before they impact your users. + + ## What’s included in this quickstart? + New Relic Openstack Controller monitoring quickstart provides quality out-of-the-box reporting: + - Track the performance of your OpenStack services, such as compute, networking and storage + - Identify and troubleshoot performance bottlenecks with ease + - Get pre-built alerts when there are problems with your OpenStack environment + - Correlate data from different data sources to get a holistic view of your environment + + +summary: | + Monitor and analyze your Openstack Controller infrastructure with New Relic. +icon: logo.png +level: New Relic +authors: + - New Relic + - Ramana Reddy +title: Openstack Controller +documentation: + - name: Openstack Controller integration documentation + description: | + Monitor and instrument your OpenStack Controller with New Relic to gain deep insights into your performance. + url: https://docs.newrelic.com/docs/infrastructure/host-integrations/host-integrations-list/openstack-controller-integration/ +keywords: + - openstack controller + - openstack + - nova controller + - neutron controller + - cinder controller + - Keystone controller +dataSourceIds: + - openstack-controller +dashboards: + - openstack-controller +alertPolicies: + - openstack-controller \ No newline at end of file diff --git a/quickstarts/openstack-controller/logo.png b/quickstarts/openstack-controller/logo.png new file mode 100644 index 0000000000..3f69a04377 Binary files /dev/null and b/quickstarts/openstack-controller/logo.png differ