diff --git a/dashboards/azure-app-gateway/azure-app-gateway.json b/dashboards/azure-app-gateway/azure-app-gateway.json new file mode 100644 index 0000000000..fe4b8e9a74 --- /dev/null +++ b/dashboards/azure-app-gateway/azure-app-gateway.json @@ -0,0 +1,569 @@ +{ + "name": "Azure app gateway", + "description": null, + "pages": [ + { + "name": "Azure app gateway", + "description": null, + "widgets": [ + { + "title": "Summary", + "layout": { + "column": 1, + "row": 1, + "width": 9, + "height": 2 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.billboard" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`azure.network.applicationgateways.TotalRequests`) AS 'Total Requests', SUM(`azure.network.applicationgateways.FailedRequests`) AS 'Total Failed Requests', SUM(`azure.network.applicationgateways.BlockedReqCount`) AS 'Total Blocked Requests', SUM(`azure.network.applicationgateways.CurrentConnections`) AS 'Total Current Connections', SUM(`azure.network.applicationgateways.HealthyHostCount`) AS 'Total Healthy Backend Hosts', SUM(`azure.network.applicationgateways.UnhealthyHostCount`) AS 'Total Unhealthy Backend Hosts'" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "", + "layout": { + "column": 10, + "row": 1, + "width": 3, + "height": 2 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.markdown" + }, + "rawConfiguration": { + "text": "# Azure Application Gateway\nAzure Application Gateway gives you application-level routing and load balancing services that let you build a scalable and highly-available web front end in Azure. You control the size of the gateway and scale your deployment based on your needs." + } + }, + { + "title": "Throughput", + "layout": { + "column": 1, + "row": 3, + "width": 6, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.line" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT AVERAGE(`azure.network.applicationgateways.Throughput`) AS 'Average Throughput' TIMESERIES AUTO" + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "units": { + "unit": "BYTES_PER_SECOND" + }, + "yAxisLeft": { + "zero": true + }, + "yAxisRight": { + "zero": true + } + } + }, + { + "title": "Traffic", + "layout": { + "column": 7, + "row": 3, + "width": 6, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.stacked-bar" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`azure.network.applicationgateways.BytesSent`) AS 'Total Bytes Sent', SUM(`azure.network.applicationgateways.BytesReceived`) AS 'Total Bytes Received' TIMESERIES AUTO" + } + ], + "nullValues": { + "nullValue": "zero" + }, + "platformOptions": { + "ignoreTimeRange": false + }, + "units": { + "unit": "BYTES" + } + } + }, + { + "title": "Response status", + "layout": { + "column": 1, + "row": 6, + "width": 6, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.pie" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": true + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`azure.network.applicationgateways.ResponseStatus`) AS 'Total HTTP Response Status Returned by Application Gateway' FACET azure.network.applicationgateways.httpStatusGroup" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "Backend response status", + "layout": { + "column": 7, + "row": 6, + "width": 6, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.pie" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": true + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`azure.network.applicationgateways.BackendResponseStatus`) AS 'Total Number of HTTP Response Code by the Backend Members' FACET azure.network.applicationgateways.httpStatusGroup" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "Backend bytes response time", + "layout": { + "column": 1, + "row": 9, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.area" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT AVERAGE(`azure.network.applicationgateways.BackendFirstByteResponseTime`) AS 'Average Backend First Byte Response Time', AVERAGE(`azure.network.applicationgateways.BackendLastByteResponseTime`) AS 'Average Backend Last Byte Response Time' TIMESERIES AUTO" + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "units": { + "unit": "MS" + } + } + }, + { + "title": "Backend connection time", + "layout": { + "column": 5, + "row": 9, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.area" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT AVERAGE(`azure.network.applicationgateways.BackendConnectTime`) AS 'Average Backend Connection Time' TIMESERIES AUTO FACET azure.network.applicationgateways.backendServer" + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "units": { + "unit": "MS" + } + } + }, + { + "title": "Client TLS protocol", + "layout": { + "column": 9, + "row": 9, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.pie" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": true + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`azure.network.applicationgateways.TlsProtocol`) AS 'Total Client TLS Protocol' FACET azure.network.applicationgateways.tlsProtocol" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "Healthy backend hosts", + "layout": { + "column": 1, + "row": 12, + "width": 6, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.line" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`azure.network.applicationgateways.HealthyHostCount`) AS 'Total Number of Healthy Backend Hosts' TIMESERIES AUTO FACET azure.network.applicationgateways.backendSettingsPool" + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "yAxisLeft": { + "zero": true + }, + "yAxisRight": { + "zero": true + } + } + }, + { + "title": "Unhealthy backend hosts", + "layout": { + "column": 7, + "row": 12, + "width": 6, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.line" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`azure.network.applicationgateways.UnhealthyHostCount`) AS 'Total Number of Unhealthy Backend Hosts' TIMESERIES AUTO FACET azure.network.applicationgateways.backendSettingsPool" + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "yAxisLeft": { + "zero": true + }, + "yAxisRight": { + "zero": true + } + } + }, + { + "title": "Total requests per backend settings pool", + "layout": { + "column": 1, + "row": 15, + "width": 7, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.pie" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": true + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`azure.network.applicationgateways.TotalRequests`) AS 'Total Requests' FACET azure.network.applicationgateways.backendSettingsPool" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "Failed requests per backend settings pool", + "layout": { + "column": 8, + "row": 15, + "width": 5, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.pie" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": true + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`azure.network.applicationgateways.FailedRequests`) AS 'Total Failed Requests' FACET azure.network.applicationgateways.backendSettingsPool" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "Capacity units consumed", + "layout": { + "column": 1, + "row": 18, + "width": 6, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.line" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT AVERAGE(`azure.network.applicationgateways.CapacityUnits`) AS 'Average Capacity Units Consumed' TIMESERIES AUTO" + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "yAxisLeft": { + "zero": true + }, + "yAxisRight": { + "zero": true + } + } + }, + { + "title": "Compute units consumed", + "layout": { + "column": 7, + "row": 18, + "width": 6, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.line" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT AVERAGE(`azure.network.applicationgateways.ComputeUnits`) AS 'Average Compute Units Consumed' TIMESERIES AUTO" + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "yAxisLeft": { + "zero": true + }, + "yAxisRight": { + "zero": true + } + } + }, + { + "title": "Estimated billed capacity units", + "layout": { + "column": 1, + "row": 21, + "width": 6, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.line" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT AVERAGE(`azure.network.applicationgateways.EstimatedBilledCapacityUnits`) AS 'Average Estimated Billed Capacity Units' TIMESERIES AUTO" + } + ], + "nullValues": { + "nullValue": "zero" + }, + "platformOptions": { + "ignoreTimeRange": false + }, + "yAxisLeft": { + "zero": true + }, + "yAxisRight": { + "zero": true + } + } + }, + { + "title": "Fixed billable capacity units", + "layout": { + "column": 7, + "row": 21, + "width": 6, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.line" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT AVERAGE(`azure.network.applicationgateways.FixedBillableCapacityUnits`) AS 'Average Fixed Billable Capacity Units' TIMESERIES AUTO" + } + ], + "nullValues": { + "nullValue": "zero" + }, + "platformOptions": { + "ignoreTimeRange": false + }, + "yAxisLeft": { + "zero": true + }, + "yAxisRight": { + "zero": true + } + } + } + ] + } + ], + "variables": [] +} diff --git a/dashboards/azure-app-gateway/azure-app-gateway.png b/dashboards/azure-app-gateway/azure-app-gateway.png new file mode 100644 index 0000000000..bb44212141 Binary files /dev/null and b/dashboards/azure-app-gateway/azure-app-gateway.png differ diff --git a/dashboards/azure-firewalls/azure-firewall.png b/dashboards/azure-firewalls/azure-firewall.png new file mode 100644 index 0000000000..a61b993e47 Binary files /dev/null and b/dashboards/azure-firewalls/azure-firewall.png differ diff --git a/dashboards/azure-firewalls/azure-firewalls.json b/dashboards/azure-firewalls/azure-firewalls.json new file mode 100644 index 0000000000..df68edef37 --- /dev/null +++ b/dashboards/azure-firewalls/azure-firewalls.json @@ -0,0 +1,266 @@ +{ + "name": "Azure firewall", + "description": null, + "pages": [ + { + "name": "Azure firewall", + "description": null, + "widgets": [ + { + "title": "Summary", + "layout": { + "column": 1, + "row": 1, + "width": 7, + "height": 2 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.billboard" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`azure.network.azurefirewalls.ApplicationRuleHit`) AS 'Total Application Rules Hit', SUM(`azure.network.azurefirewalls.NetworkRuleHit`) AS 'Total Network Rules Hit', SUM(`azure.network.azurefirewalls.DataProcessed`) AS 'Total Data Processed(bytes)', AVERAGE(`azure.network.azurefirewalls.Throughput`) AS 'Average Throughput' " + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "", + "layout": { + "column": 8, + "row": 1, + "width": 5, + "height": 2 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.markdown" + }, + "rawConfiguration": { + "text": "# Azure Firewall\nAzure Firewall is a managed, cloud-based network security service that protects your Azure Virtual Network resources. The stateful firewall service has built-in high availability and unrestricted cloud scalability to help you create, enforce, and log application and network connectivity policies across subscriptions and virtual networks." + } + }, + { + "title": "Throughput", + "layout": { + "column": 1, + "row": 3, + "width": 7, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.area" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT AVERAGE(`azure.network.azurefirewalls.Throughput`) AS 'Average Throughput' TIMESERIES AUTO" + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "units": { + "unit": "BITS_PER_SECOND" + } + } + }, + { + "title": "Firewall health state", + "layout": { + "column": 8, + "row": 3, + "width": 5, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.line" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT AVERAGE(`azure.network.azurefirewalls.FirewallHealth`)/100 AS 'Average Firewall Health' TIMESERIES AUTO FACET azure.network.azurefirewalls.status, azure.network.azurefirewalls.reason" + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "units": { + "unit": "PERCENTAGE" + }, + "yAxisLeft": { + "zero": true + }, + "yAxisRight": { + "zero": true + } + } + }, + { + "title": "SNAT port utilization", + "layout": { + "column": 1, + "row": 6, + "width": 6, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.line" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT AVERAGE(`azure.network.azurefirewalls.SNATPortUtilization`) AS 'Average SNAT Port Utilization' TIMESERIES AUTO FACET azure.network.azurefirewalls.protocol" + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "units": { + "unit": "PERCENTAGE" + }, + "yAxisLeft": { + "zero": true + }, + "yAxisRight": { + "zero": true + } + } + }, + { + "title": "Data processed bytes", + "layout": { + "column": 7, + "row": 6, + "width": 6, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.stacked-bar" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`azure.network.azurefirewalls.DataProcessed`) AS 'Total Data Processed' TIMESERIES AUTO" + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "units": { + "unit": "BYTES" + } + } + }, + { + "title": "Application rules hit by protocol & status", + "layout": { + "column": 1, + "row": 9, + "width": 7, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.pie" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": true + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`azure.network.azurefirewalls.ApplicationRuleHit`) AS 'Total Application Rules Hit' FACET azure.network.azurefirewalls.protocol, azure.network.azurefirewalls.status" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "Network rules hit", + "layout": { + "column": 8, + "row": 9, + "width": 5, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.line" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`azure.network.azurefirewalls.NetworkRuleHit`) AS 'Total Network Rules Hit' TIMESERIES AUTO" + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "yAxisLeft": { + "zero": true + }, + "yAxisRight": { + "zero": true + } + } + } + ] + } + ], + "variables": [] +} diff --git a/dashboards/azure-front-door/azure-front-door.json b/dashboards/azure-front-door/azure-front-door.json new file mode 100644 index 0000000000..fa39fd11f4 --- /dev/null +++ b/dashboards/azure-front-door/azure-front-door.json @@ -0,0 +1,362 @@ +{ + "name": "Azure front door", + "description": null, + "pages": [ + { + "name": "Azure front door", + "description": null, + "widgets": [ + { + "title": "Summary", + "layout": { + "column": 1, + "row": 1, + "width": 9, + "height": 2 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.billboard" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`azure.network.frontdoors.RequestCount`) AS 'Total Requests', SUM(`azure.network.frontdoors.BackendRequestCount`) AS 'Total Backend Requests', SUM(`azure.network.frontdoors.RequestSize`) AS 'Total Request Size', SUM(`azure.network.frontdoors.ResponseSize`) AS 'Total Response Size'" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "", + "layout": { + "column": 10, + "row": 1, + "width": 3, + "height": 2 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.markdown" + }, + "rawConfiguration": { + "text": "# Azure Front Door\nAzure Front Door is Microsoft’s modern cloud Content Delivery Network (CDN) that provides fast, reliable, and secure access between your users and your applications’ static and dynamic web content across the globe. Azure Front Door delivers your content using Microsoft’s global edge network with hundreds of global and local points of presence (PoPs) distributed around the world close to both your enterprise and consumer end users." + } + }, + { + "title": "Backend health percentage", + "layout": { + "column": 1, + "row": 3, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.line" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT AVERAGE(`azure.network.frontdoors.BackendHealthPercentage`) AS 'Average Backend Health Percentage' TIMESERIES AUTO" + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "units": { + "unit": "PERCENTAGE" + }, + "yAxisLeft": { + "zero": true + }, + "yAxisRight": { + "zero": true + } + } + }, + { + "title": "Latency by HTTP status group", + "layout": { + "column": 5, + "row": 3, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.line" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT AVERAGE(`azure.network.frontdoors.TotalLatency`) AS 'Average Latency' TIMESERIES AUTO FACET azure.network.frontdoors.httpStatusGroup" + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "units": { + "unit": "MS" + }, + "yAxisLeft": { + "zero": true + }, + "yAxisRight": { + "zero": true + } + } + }, + { + "title": "Backend request latency by backend", + "layout": { + "column": 9, + "row": 3, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.line" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT AVERAGE(`azure.network.frontdoors.BackendRequestLatency`) AS 'Average Backend Request Latency' TIMESERIES AUTO FACET azure.network.frontdoors.backend" + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "units": { + "unit": "MS" + }, + "yAxisLeft": { + "zero": true + }, + "yAxisRight": { + "zero": true + } + } + }, + { + "title": "Request size by HTTP status group", + "layout": { + "column": 1, + "row": 6, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.stacked-bar" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`azure.network.frontdoors.RequestSize`) AS 'Total Request Size' TIMESERIES AUTO FACET azure.network.frontdoors.httpStatusGroup" + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "units": { + "unit": "BYTES" + } + } + }, + { + "title": "Response size by HTTP status group", + "layout": { + "column": 5, + "row": 6, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.stacked-bar" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`azure.network.frontdoors.ResponseSize`) AS 'Total Response Size' TIMESERIES AUTO FACET azure.network.frontdoors.httpStatusGroup" + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "units": { + "unit": "BYTES" + } + } + }, + { + "title": "Billable response size by HTTP status group", + "layout": { + "column": 9, + "row": 6, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.stacked-bar" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`azure.network.frontdoors.BillableResponseSize`) AS 'Total Billable Response Size' TIMESERIES AUTO FACET azure.network.frontdoors.httpStatusGroup" + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "units": { + "unit": "BYTES" + } + } + }, + { + "title": "Requests by HTTP status group", + "layout": { + "column": 1, + "row": 9, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.pie" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": true + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`azure.network.frontdoors.RequestCount`) AS 'Total Requests' FACET azure.network.frontdoors.httpStatusGroup" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "Backend requests by HTTP status group", + "layout": { + "column": 5, + "row": 9, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.pie" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": true + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`azure.network.frontdoors.BackendRequestCount`) AS 'Total Backend Requests' FACET azure.network.frontdoors.httpStatusGroup" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "Backend requests by backend", + "layout": { + "column": 9, + "row": 9, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.pie" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": true + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`azure.network.frontdoors.BackendRequestCount`) AS 'Total Backend Requests' FACET azure.network.frontdoors.backend" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + } + ] + } + ], + "variables": [] +} diff --git a/dashboards/azure-front-door/azure-front-door.png b/dashboards/azure-front-door/azure-front-door.png new file mode 100644 index 0000000000..eb3105742a Binary files /dev/null and b/dashboards/azure-front-door/azure-front-door.png differ diff --git a/dashboards/azure-load-balancer/azure-load-balancer.json b/dashboards/azure-load-balancer/azure-load-balancer.json new file mode 100644 index 0000000000..4b1a286b09 --- /dev/null +++ b/dashboards/azure-load-balancer/azure-load-balancer.json @@ -0,0 +1,384 @@ +{ + "name": "Azure load balancer", + "description": null, + "pages": [ + { + "name": "Azure load balancer", + "description": null, + "widgets": [ + { + "title": "Summary", + "layout": { + "column": 1, + "row": 1, + "width": 10, + "height": 2 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.billboard" + }, + "rawConfiguration": { + "dataFormatters": [], + "facet": { + "showOtherSeries": false + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`azure.network.loadbalancers.ByteCount`) AS 'Total Number Of Bytes', SUM(`azure.network.loadbalancers.PacketCount`) AS 'Total Number Of Packets', AVERAGE(`azure.network.loadbalancers.DipAvailability`) AS 'Average DIP Availability', AVERAGE(`azure.network.loadbalancers.VipAvailability`) AS 'Average VIP Availability'" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "", + "layout": { + "column": 11, + "row": 1, + "width": 2, + "height": 2 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.markdown" + }, + "rawConfiguration": { + "text": "# Azure Load Balancer\nAzure Load Balancer delivers high availability and network performance to your applications. It is a Layer 4 (TCP, UDP) load balancer that distributes incoming traffic among healthy instances of services defined in a load-balanced set." + } + }, + { + "title": "Number of bytes by direction", + "layout": { + "column": 1, + "row": 3, + "width": 5, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.stacked-bar" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`azure.network.loadbalancers.ByteCount`) AS 'Total Number Of Bytes' TIMESERIES AUTO FACET azure.network.loadbalancers.direction" + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "units": { + "unit": "BYTES" + } + } + }, + { + "title": "Number of bytes by frontend ip address and frontned port", + "layout": { + "column": 6, + "row": 3, + "width": 7, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.pie" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": true + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`azure.network.loadbalancers.ByteCount`) AS 'Total Number Of Bytes' FACET azure.network.loadbalancers.frontendIpAddress, azure.network.loadbalancers.frontendPort" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "Number of packets by frontend port and ip address", + "layout": { + "column": 1, + "row": 6, + "width": 7, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.pie" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": true + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`azure.network.loadbalancers.PacketCount`) AS 'Total Number Of Packets' FACET azure.network.loadbalancers.frontendIpAddress,azure.network.loadbalancers.frontendPort" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "Number of packets by direction(IN/OUT)", + "layout": { + "column": 8, + "row": 6, + "width": 5, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.pie" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": true + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`azure.network.loadbalancers.PacketCount`) AS 'Total Number Of Packets' FACET azure.network.loadbalancers.direction" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "DIP availability by frontend ip address and frontend port", + "layout": { + "column": 1, + "row": 9, + "width": 6, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.line" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT AVERAGE(`azure.network.loadbalancers.DipAvailability`) AS 'Average DIP Availability' TIMESERIES AUTO FACET azure.network.loadbalancers.frontendIpAddress, azure.network.loadbalancers.frontendPort" + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "yAxisLeft": { + "zero": true + }, + "yAxisRight": { + "zero": true + } + } + }, + { + "title": "DIP availability by backend ip address and backend port", + "layout": { + "column": 7, + "row": 9, + "width": 6, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.line" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT AVERAGE(`azure.network.loadbalancers.DipAvailability`) AS 'Average DIP Availability' TIMESERIES AUTO FACET azure.network.loadbalancers.backendIpAddress, azure.network.loadbalancers.backendPort" + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "yAxisLeft": { + "zero": true + }, + "yAxisRight": { + "zero": true + } + } + }, + { + "title": "SYN packets by direction(IN/OUT)", + "layout": { + "column": 1, + "row": 12, + "width": 5, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.pie" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": true + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`azure.network.loadbalancers.SYNCount`) AS 'SYN Count' FACET azure.network.loadbalancers.direction" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "SYN packets by frontend ip address and frontend port", + "layout": { + "column": 6, + "row": 12, + "width": 7, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.pie" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": true + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`azure.network.loadbalancers.SYNCount`) AS 'SYN Count' FACET azure.network.loadbalancers.frontendIpAddress,azure.network.loadbalancers.frontendPort" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "VIP availability by frontend ip address", + "layout": { + "column": 1, + "row": 15, + "width": 6, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.line" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT AVERAGE(`azure.network.loadbalancers.VipAvailability`) AS 'Average Data Path Availability' TIMESERIES AUTO FACET azure.network.loadbalancers.frontendIpAddress" + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "yAxisLeft": { + "zero": true + }, + "yAxisRight": { + "zero": true + } + } + }, + { + "title": "VIP availability by frontend port", + "layout": { + "column": 7, + "row": 15, + "width": 6, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.line" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT AVERAGE(`azure.network.loadbalancers.VipAvailability`) AS 'Average Data Path Availability' TIMESERIES AUTO FACET azure.network.loadbalancers.frontendPort" + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "yAxisLeft": { + "zero": true + }, + "yAxisRight": { + "zero": true + } + } + } + ] + } + ], + "variables": [] +} diff --git a/dashboards/azure-load-balancer/azure-load-balancer.png b/dashboards/azure-load-balancer/azure-load-balancer.png new file mode 100644 index 0000000000..6f3de7c633 Binary files /dev/null and b/dashboards/azure-load-balancer/azure-load-balancer.png differ diff --git a/dashboards/azure-logic-apps/azure-logic-apps.json b/dashboards/azure-logic-apps/azure-logic-apps.json new file mode 100644 index 0000000000..a827309321 --- /dev/null +++ b/dashboards/azure-logic-apps/azure-logic-apps.json @@ -0,0 +1,377 @@ +{ + "name": "Azure logic apps", + "description": null, + "pages": [ + { + "name": "Azure logic apps", + "description": null, + "widgets": [ + { + "title": "Summary", + "layout": { + "column": 1, + "row": 1, + "width": 7, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.billboard" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(azure.logic.workflows.ActionsSucceeded) AS 'Total Actions Succeeded', SUM(azure.logic.workflows.ActionsFailed) AS 'Total Actions Failed', sum(azure.logic.workflows.RunsSucceeded) AS 'Total Runs Succeeded', SUM(azure.logic.workflows.RunsFailed) AS 'Total Runs Failed', SUM(azure.logic.workflows.TriggersSucceeded) AS 'Total Triggers Succeeded', SUM(azure.logic.workflows.TriggersFailed) AS 'Total Triggers Failed'" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "", + "layout": { + "column": 8, + "row": 1, + "width": 5, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.markdown" + }, + "rawConfiguration": { + "text": "## Azure Logic Apps Workflow\nAzure Logic Apps Workflow refers to Azure Logic Apps under consumption plan type.\n\nAzure Logic Apps is a cloud platform where you can create and run automated workflows with little to no code. By using the visual designer and selecting from prebuilt operations, you can quickly build a workflow that integrates and manages your apps, data, services and systems." + } + }, + { + "title": "Action success latency", + "layout": { + "column": 1, + "row": 4, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.area" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT AVERAGE(azure.logic.workflows.ActionSuccessLatency) AS 'Average Action Success Latency' TIMESERIES AUTO" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "Run success latency", + "layout": { + "column": 5, + "row": 4, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.area" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT AVERAGE(azure.logic.workflows.RunSuccessLatency) AS 'Average Run Success Latency' TIMESERIES AUTO" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "Trigger success latency", + "layout": { + "column": 9, + "row": 4, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.area" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT AVERAGE(azure.logic.workflows.TriggerSuccessLatency) AS 'Average Trigger Success Latency' TIMESERIES AUTO" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "Run failure percentage", + "layout": { + "column": 1, + "row": 7, + "width": 6, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.line" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(azure.logic.workflows.RunFailurePercentage)/100 AS 'Total Run Failure Percentage' TIMESERIES AUTO" + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "units": { + "unit": "PERCENTAGE" + }, + "yAxisLeft": { + "zero": true + }, + "yAxisRight": { + "zero": true + } + } + }, + { + "title": "Total billable executions", + "layout": { + "column": 7, + "row": 7, + "width": 6, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.stacked-bar" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(azure.logic.workflows.TotalBillableExecutions) AS 'Total Billable Executions' TIMESERIES AUTO" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "Billing usage for storage consumption executions", + "layout": { + "column": 1, + "row": 10, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.area" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(azure.logic.workflows.BillingUsageStorageConsumption) AS 'Total Billing Usage for Storage Consumption Executions' TIMESERIES AUTO" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "Billing usage for standard connector executions", + "layout": { + "column": 5, + "row": 10, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.area" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(azure.logic.workflows.BillingUsageStandardConnector) AS 'Total Billing Usage for Standard Connector Executions' TIMESERIES AUTO" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "Billing usage for native operation executions", + "layout": { + "column": 9, + "row": 10, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.area" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(azure.logic.workflows.BillingUsageNativeOperation) AS 'Total Billing Usage for Native Operation Executions' TIMESERIES AUTO" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "Billable action executions", + "layout": { + "column": 1, + "row": 13, + "width": 6, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.line" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(azure.logic.workflows.BillableActionExecutions) AS 'Total Billable Action Executions' TIMESERIES AUTO" + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "units": { + "unit": "COUNT" + }, + "yAxisLeft": { + "zero": true + } + } + }, + { + "title": "Billable trigger executions", + "layout": { + "column": 7, + "row": 13, + "width": 6, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.line" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(azure.logic.workflows.BillableTriggerExecutions) AS 'Total Billable Trigger Executions' TIMESERIES AUTO" + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "units": { + "unit": "COUNT" + }, + "yAxisLeft": { + "zero": true + } + } + } + ] + } + ], + "variables": [] +} diff --git a/dashboards/azure-logic-apps/azure-logic-apps.png b/dashboards/azure-logic-apps/azure-logic-apps.png new file mode 100644 index 0000000000..6c71b7e480 Binary files /dev/null and b/dashboards/azure-logic-apps/azure-logic-apps.png differ diff --git a/dashboards/azure-redis-cache/azure-redis-cache.json b/dashboards/azure-redis-cache/azure-redis-cache.json new file mode 100644 index 0000000000..bd669fc2a4 --- /dev/null +++ b/dashboards/azure-redis-cache/azure-redis-cache.json @@ -0,0 +1,356 @@ +{ + "name": "Azure redis cache", + "description": null, + "pages": [ + { + "name": "Azure redis cache", + "description": null, + "widgets": [ + { + "title": "Summary", + "layout": { + "column": 1, + "row": 1, + "width": 9, + "height": 2 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.billboard" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`azure.cache.redis.cacheRead`) AS 'Total Cache Read', SUM(`azure.cache.redis.cacheWrite`) AS 'Total Cache Write', SUM(`azure.cache.redis.connectedclients`) AS 'Total Connected Clients', SUM(`azure.cache.redis.totalcommandsprocessed`) AS 'Total Commands Processed', SUM(`azure.cache.redis.usedmemory`) AS 'Total Used Memory', SUM(`azure.cache.redis.usedmemoryRss`) AS 'Total Used Memory RSS'" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "", + "layout": { + "column": 10, + "row": 1, + "width": 3, + "height": 2 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.markdown" + }, + "rawConfiguration": { + "text": "# Azure Redis Cache\nAzure Cache for Redis provides an in-memory data store based on the Redis software. Redis improves the performance and scalability of an application that uses backend data stores heavily. It's able to process large volumes of application requests by keeping frequently accessed data in the server memory, which can be written to and read from quickly. Redis brings a critical low-latency and high-throughput data storage solution to modern applications.\n\n" + } + }, + { + "title": "CPU utilization per shardId", + "layout": { + "column": 1, + "row": 3, + "width": 6, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.area" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT MAX(`azure.cache.redis.percentProcessorTime`)/100 AS 'Maximum CPU Utilization' TIMESERIES AUTO FACET azure.cache.redis.shardId" + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "units": { + "unit": "PERCENTAGE" + } + } + }, + { + "title": "Server load per shardId", + "layout": { + "column": 7, + "row": 3, + "width": 6, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.area" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT MAX(`azure.cache.redis.serverLoad`)/100 AS 'Maximum Server Load' TIMESERIES AUTO FACET azure.cache.redis.shardId" + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "units": { + "unit": "PERCENTAGE" + } + } + }, + { + "title": "Connected clients per shardId", + "layout": { + "column": 1, + "row": 6, + "width": 6, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.pie" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`azure.cache.redis.connectedclients`) AS 'Total Connected Clients' FACET azure.cache.redis.shardId" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "Total commands processed per shardId", + "layout": { + "column": 7, + "row": 6, + "width": 6, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.pie" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`azure.cache.redis.totalcommandsprocessed`) AS 'Total Commands Processed' FACET azure.cache.redis.shardId" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "Cache read per shardId", + "layout": { + "column": 1, + "row": 9, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.line" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT MAX(`azure.cache.redis.cacheRead`) AS 'Maximum Cache Read' TIMESERIES AUTO FACET azure.cache.redis.shardId" + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "units": { + "unit": "BYTES_PER_SECOND" + }, + "yAxisLeft": { + "zero": true + }, + "yAxisRight": { + "zero": true + } + } + }, + { + "title": "Cache write per shardId", + "layout": { + "column": 5, + "row": 9, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.line" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT MAX(`azure.cache.redis.cacheWrite`) AS 'Maximum Cache Write' TIMESERIES AUTO FACET azure.cache.redis.shardId" + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "units": { + "unit": "BYTES_PER_SECOND" + }, + "yAxisLeft": { + "zero": true + }, + "yAxisRight": { + "zero": true + } + } + }, + { + "title": "Operations per second", + "layout": { + "column": 9, + "row": 9, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.line" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`azure.cache.redis.operationsPerSecond`) AS 'Total Operations Per Second' TIMESERIES AUTO FACET azure.cache.redis.shardId" + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "yAxisLeft": { + "zero": true + }, + "yAxisRight": { + "zero": true + } + } + }, + { + "title": "Used memory per shardId", + "layout": { + "column": 1, + "row": 12, + "width": 6, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.pie" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`azure.cache.redis.usedmemory`) AS 'Total Used Memory' FACET azure.cache.redis.shardId" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "Used memory Rss per shardId", + "layout": { + "column": 7, + "row": 12, + "width": 6, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.pie" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`azure.cache.redis.usedmemoryRss`) AS 'Total Used memory Rss' FACET azure.cache.redis.shardId" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + } + ] + } + ], + "variables": [] +} diff --git a/dashboards/azure-redis-cache/azure-redis-cache.png b/dashboards/azure-redis-cache/azure-redis-cache.png new file mode 100644 index 0000000000..e3c529830f Binary files /dev/null and b/dashboards/azure-redis-cache/azure-redis-cache.png differ diff --git a/dashboards/azure-sql-managed-instance/azure-sql-managed-instance.json b/dashboards/azure-sql-managed-instance/azure-sql-managed-instance.json new file mode 100644 index 0000000000..36a7e49bb9 --- /dev/null +++ b/dashboards/azure-sql-managed-instance/azure-sql-managed-instance.json @@ -0,0 +1,272 @@ +{ + "name": "Azure SQL managed instance", + "description": null, + "pages": [ + { + "name": "Azure SQL managed instances", + "description": null, + "widgets": [ + { + "title": "Summary", + "layout": { + "column": 1, + "row": 1, + "width": 7, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.billboard" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`azure.sql.managedinstances.io_bytes_read`) AS 'Total IO Bytes Read', SUM(`azure.sql.managedinstances.io_bytes_written`) AS 'Toatl IO Bytes Written', SUM(`azure.sql.managedinstances.io_requests`) AS 'Total IO Requests', SUM(`azure.sql.managedinstances.virtual_core_count`) AS 'Total Virtual core count'" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "", + "layout": { + "column": 8, + "row": 1, + "width": 5, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.markdown" + }, + "rawConfiguration": { + "text": "## Azure SQL Managed Instance\n\nAzure SQL Managed Instance is a scalable cloud database service that's always running on the latest stable version of the Microsoft SQL Server database engine and a patched OS with 99.99% built-in high availability, offering close to 100% feature compatibility with SQL Server." + } + }, + { + "title": "IO bytes read/written", + "layout": { + "column": 1, + "row": 4, + "width": 6, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.stacked-bar" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`azure.sql.managedinstances.io_bytes_read`) AS 'Total IO Bytes Read', SUM(`azure.sql.managedinstances.io_bytes_read`) AS 'Total IO Bytes Written' TIMESERIES AUTO" + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "units": { + "unit": "BYTES" + } + } + }, + { + "title": "CPU", + "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": "FROM Metric SELECT AVERAGE(`azure.sql.managedinstances.avg_cpu_percent`) AS 'Average CPU' TIMESERIES AUTO" + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "units": { + "unit": "PERCENTAGE" + }, + "yAxisLeft": { + "zero": true + }, + "yAxisRight": { + "zero": true + } + } + }, + { + "title": "IO requests", + "layout": { + "column": 1, + "row": 7, + "width": 7, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.line" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`azure.sql.managedinstances.io_requests`) AS 'Total IO Requests' TIMESERIES AUTO" + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "yAxisLeft": { + "zero": true + }, + "yAxisRight": { + "zero": true + } + } + }, + { + "title": "Virtual core count", + "layout": { + "column": 8, + "row": 7, + "width": 5, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.line" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`azure.sql.managedinstances.virtual_core_count`) AS 'Total Virtual Core Count' TIMESERIES AUTO" + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "yAxisLeft": { + "zero": true + }, + "yAxisRight": { + "zero": true + } + } + }, + { + "title": "Storage space Reserved", + "layout": { + "column": 1, + "row": 10, + "width": 5, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.line" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`azure.sql.managedinstances.reserved_storage_mb`) AS 'Total Storage Space Reserved' TIMESERIES AUTO" + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "yAxisLeft": { + "zero": true + }, + "yAxisRight": { + "zero": true + } + } + }, + { + "title": "Storage space used", + "layout": { + "column": 6, + "row": 10, + "width": 7, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.line" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`azure.sql.managedinstances.storage_space_used_mb`) AS 'Total Storage Space Used' TIMESERIES AUTO" + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "yAxisLeft": { + "zero": true + }, + "yAxisRight": { + "zero": true + } + } + } + ] + } + ], + "variables": [] +} diff --git a/dashboards/azure-sql-managed-instance/azure-sql-managed-instance.png b/dashboards/azure-sql-managed-instance/azure-sql-managed-instance.png new file mode 100644 index 0000000000..16972f00b5 Binary files /dev/null and b/dashboards/azure-sql-managed-instance/azure-sql-managed-instance.png differ diff --git a/dashboards/azure-sql/azure-sql.json b/dashboards/azure-sql/azure-sql.json new file mode 100644 index 0000000000..534acb1aaf --- /dev/null +++ b/dashboards/azure-sql/azure-sql.json @@ -0,0 +1,669 @@ +{ + "name": "Azure SQL database", + "description": null, + "pages": [ + { + "name": "Azure SQL database", + "description": null, + "widgets": [ + { + "title": "Summary", + "layout": { + "column": 1, + "row": 1, + "width": 8, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.billboard" + }, + "rawConfiguration": { + "dataFormatters": [ + { + "name": "Average DTU Usage", + "precision": 2, + "type": "decimal" + }, + { + "name": "Average Sessions Count", + "precision": 2, + "type": "decimal" + }, + { + "name": "Average CPU Usage (%)", + "precision": 2, + "type": "decimal" + } + ], + "facet": { + "showOtherSeries": false + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT AVERAGE(azure.sql.servers.databases.cpu_percent) AS 'Average CPU Usage (%)', AVERAGE(azure.sql.servers.databases.dtu_used) AS 'Average DTU Usage', AVERAGE(azure.sql.servers.databases.sessions_count) AS 'Average Sessions Count', SUM(azure.sql.servers.databases.workers_percent) AS 'Total Workers Percent'" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "", + "layout": { + "column": 9, + "row": 1, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.markdown" + }, + "rawConfiguration": { + "text": "# Azure SQL Database\nAzure SQL Database is a fully managed platform as a service (PaaS) database engine that handles most of the database management functions such as upgrading, patching, backups, and monitoring without user involvement." + } + }, + { + "title": "Connections details", + "layout": { + "column": 1, + "row": 4, + "width": 6, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.stacked-bar" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`azure.sql.servers.databases.connection_successful`) AS 'Total Successful Connections', SUM(`azure.sql.servers.databases.connection_failed`) AS 'Total Failed Connections : System', SUM(`azure.sql.servers.databases.connection_failed_user_error`) AS 'Total Failed Connections\t: User' TIMESERIES AUTO" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "Failed connections : user errors", + "layout": { + "column": 7, + "row": 4, + "width": 3, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.pie" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`azure.sql.servers.databases.connection_failed_user_error`) AS 'Total Failed Connections : User Errors' FACET azure.sql.servers.databases.error" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "Failed connections : system errors\t", + "layout": { + "column": 10, + "row": 4, + "width": 3, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.billboard" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`azure.sql.servers.databases.connection_failed`) AS 'Total Failed Connections : System Errors'" + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "thresholds": [ + { + "value": 0 + } + ] + } + }, + { + "title": "DTU usage details", + "layout": { + "column": 1, + "row": 7, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.line" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT AVERAGE(azure.sql.servers.databases.dtu_limit) AS 'Average DTU Limit', AVERAGE(azure.sql.servers.databases.dtu_used) AS 'Average DTU Used' TIMESERIES AUTO " + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "yAxisLeft": { + "zero": true + }, + "yAxisRight": { + "zero": true + } + } + }, + { + "title": "DWU usage details", + "layout": { + "column": 5, + "row": 7, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.line" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT AVERAGE(`azure.sql.servers.databases.dwu_limit`) AS 'Average DWU Limit', AVERAGE(`azure.sql.servers.databases.dwu_used`) AS 'Average DWU Used' TIMESERIES AUTO" + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "yAxisLeft": { + "zero": true + }, + "yAxisRight": { + "zero": true + } + } + }, + { + "title": "CPU usage details", + "layout": { + "column": 9, + "row": 7, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.line" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT AVERAGE(azure.sql.servers.databases.cpu_limit) AS 'Average CPU Limit', AVERAGE(azure.sql.servers.databases.cpu_used) AS 'Average CPU Used' TIMESERIES AUTO " + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "yAxisLeft": { + "zero": true + }, + "yAxisRight": { + "zero": true + } + } + }, + { + "title": "Database size (bytes)", + "layout": { + "column": 1, + "row": 10, + "width": 6, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.line" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT MAX(`azure.sql.servers.databases.storage`) AS 'Maximum Data Space Used', MAX(`azure.sql.servers.databases.allocated_data_storage`) AS 'Maximum Allocated Data Storage' TIMESERIES AUTO" + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "units": { + "unit": "BYTES" + }, + "yAxisLeft": { + "zero": true + }, + "yAxisRight": { + "zero": true + } + } + }, + { + "title": "Tempdb usage (Kilobytes)", + "layout": { + "column": 7, + "row": 10, + "width": 6, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.line" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT MAX(`azure.sql.servers.databases.tempdb_log_size`) AS 'Maximum Tempdb Log File Size', MAX(azure.sql.servers.databases.tempdb_data_size) AS 'Maximum Tempdb Data File Size' TIMESERIES AUTO" + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "yAxisLeft": { + "zero": true + }, + "yAxisRight": { + "zero": true + } + } + }, + { + "title": "Cache usage", + "layout": { + "column": 1, + "row": 13, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.line" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT AVERAGE(`azure.sql.servers.databases.cache_used_percent`) AS 'Average Cache used percentage', AVERAGE(`azure.sql.servers.databases.cache_hit_percent`) AS 'Average Cache hit percentage' TIMESERIES AUTO" + } + ], + "nullValues": { + "nullValue": "zero" + }, + "platformOptions": { + "ignoreTimeRange": false + }, + "units": { + "unit": "PERCENTAGE" + }, + "yAxisLeft": { + "zero": true + }, + "yAxisRight": { + "zero": true + } + } + }, + { + "title": "Backup details", + "layout": { + "column": 5, + "row": 13, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.stacked-bar" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT MAX(`azure.sql.servers.databases.full_backup_size_bytes`) AS 'Maximum Full Backup Storage Size', MAX(`azure.sql.servers.databases.snapshot_backup_size_bytes`) AS 'Maximum Data Backup Storage Size', MAX(`azure.sql.servers.databases.diff_backup_size_bytes`) AS 'Maximum Differential Backup Storage Size', MAX(`azure.sql.servers.databases.log_backup_size_bytes`) AS 'Maximum Log Backup Storage Size' TIMESERIES AUTO" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "Data & log IO", + "layout": { + "column": 9, + "row": 13, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.line" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT AVERAGE(`azure.sql.servers.databases.physical_data_read_percent`) AS 'Average Data IO Percentage', AVERAGE(`azure.sql.servers.databases.log_write_percent`) AS 'Average Log IO Percentage' TIMESERIES AUTO" + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "units": { + "unit": "PERCENTAGE" + }, + "yAxisLeft": { + "zero": true + }, + "yAxisRight": { + "zero": true + } + } + }, + { + "title": "Errors", + "layout": { + "column": 1, + "row": 16, + "width": 7, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.line" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`azure.sql.servers.databases.blocked_by_firewall`) AS 'Total Blocked By Firewall', SUM(`azure.sql.servers.databases.deadlock`) AS 'Total Deadlocks', SUM(`azure.sql.servers.databases.ledger_digest_upload_failed`) AS 'Total Failed Ledger Digest Uploads' TIMESERIES AUTO" + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "yAxisLeft": { + "zero": true + }, + "yAxisRight": { + "zero": true + } + } + }, + { + "title": "Query details", + "layout": { + "column": 8, + "row": 16, + "width": 5, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.stacked-bar" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`azure.sql.servers.databases.active_queries`) AS 'Total Active Queries', SUM(`azure.sql.servers.databases.queued_queries`) AS 'Total Queued Queries' TIMESERIES AUTO" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "App CPU details", + "layout": { + "column": 1, + "row": 19, + "width": 5, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.area" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`azure.sql.servers.databases.app_cpu_billed`) AS 'Total App CPU Billed', SUM(`azure.sql.servers.databases.app_cpu_billed_ha_replicas`) AS 'Total App CPU Billed HA Replicas' TIMESERIES AUTO" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "App CPU & memory", + "layout": { + "column": 6, + "row": 19, + "width": 7, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.line" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT AVERAGE(`azure.sql.servers.databases.app_cpu_percent`)/100 AS 'Average App CPU Percentage', AVERAGE(`azure.sql.servers.databases.app_memory_percent`)/100 AS 'Average Memory Percentage' TIMESERIES AUTO " + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "units": { + "unit": "PERCENTAGE" + }, + "yAxisLeft": { + "zero": true + }, + "yAxisRight": { + "zero": true + } + } + }, + { + "title": "Workload group query details", + "layout": { + "column": 1, + "row": 22, + "width": 6, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.stacked-bar" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`azure.sql.servers.databases.wlg_active_queries`) AS 'Total Workload Group Active Queries', SUM(`azure.sql.servers.databases.wlg_queued_queries`) AS 'Total Workload Group Queued Queries', SUM(`azure.sql.servers.databases.wlg_active_queries_timeouts`) AS 'Total Workload Group Query Timeouts' TIMESERIES AUTO" + } + ], + "nullValues": { + "nullValue": "zero" + }, + "platformOptions": { + "ignoreTimeRange": false + }, + "units": { + "unit": "COUNT" + } + } + }, + { + "title": "Workload group allocation", + "layout": { + "column": 7, + "row": 22, + "width": 6, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.line" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT MAX(`azure.sql.servers.databases.wlg_allocation_relative_to_system_percent`) AS 'Max Workload group allocation by System percent', MAX(`azure.sql.servers.databases.wlg_allocation_relative_to_wlg_effective_cap_percent`) AS 'Max Workload group allocation by Cap Resource percent', MAX(`azure.sql.servers.databases.wlg_effective_cap_resource_percent`) AS 'Max Effective cap resource percent', MAX(`azure.sql.servers.databases.wlg_effective_min_resource_percent`) AS 'Max Effective min resource percent' TIMESERIES AUTO" + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "units": { + "unit": "PERCENTAGE" + }, + "yAxisLeft": { + "zero": true + }, + "yAxisRight": { + "zero": true + } + } + } + ] + } + ], + "variables": [] +} diff --git a/dashboards/azure-sql/azure-sql.png b/dashboards/azure-sql/azure-sql.png new file mode 100644 index 0000000000..adad352e24 Binary files /dev/null and b/dashboards/azure-sql/azure-sql.png differ diff --git a/dashboards/azure-virtual-machine-scaleset/azure-virtual-machine-scaleset.json b/dashboards/azure-virtual-machine-scaleset/azure-virtual-machine-scaleset.json new file mode 100644 index 0000000000..5849bf49a9 --- /dev/null +++ b/dashboards/azure-virtual-machine-scaleset/azure-virtual-machine-scaleset.json @@ -0,0 +1,407 @@ +{ + "name": "Azure virtual machine scale set", + "description": null, + "pages": [ + { + "name": "Azure virtual machine scale set", + "description": null, + "widgets": [ + { + "title": "Summary", + "layout": { + "column": 1, + "row": 1, + "width": 9, + "height": 2 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.billboard" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT AVERAGE(`azure.compute.virtualmachinescalesets.CPUCreditsConsumed`) AS 'Average CPU Credits Consumed', AVERAGE(`azure.compute.virtualmachinescalesets.CPUCreditsRemaining`) AS 'Average CPU Credits Remaining', SUM(`azure.compute.virtualmachinescalesets.DiskReadBytes`) AS 'Total Disk Read Bytes', SUM(`azure.compute.virtualmachinescalesets.DiskWriteBytes`) AS 'Total Disk Write Bytes', SUM(`azure.compute.virtualmachinescalesets.InboundFlows`) AS 'Total Inbound Flows', SUM(`azure.compute.virtualmachinescalesets.OutboundFlows`) AS 'Total Outbound Flows'" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "", + "layout": { + "column": 10, + "row": 1, + "width": 3, + "height": 2 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.markdown" + }, + "rawConfiguration": { + "text": "# Azure Virtual Machine Scale set\n\nAzure Virtual Machine Scale Sets let you create and manage a group of load balanced VMs. The number of VM instances can automatically increase or decrease in response to demand or a defined schedule. " + } + }, + { + "title": "CPU credits", + "layout": { + "column": 1, + "row": 3, + "width": 6, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.line" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT AVERAGE(`azure.compute.virtualmachinescalesets.CPUCreditsConsumed`) AS 'Average CPU Credits Consumed', AVERAGE(`azure.compute.virtualmachinescalesets.CPUCreditsRemaining`) AS 'Average CPU Credits Remaining' TIMESERIES AUTO " + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "yAxisLeft": { + "zero": true + }, + "yAxisRight": { + "zero": true + } + } + }, + { + "title": "CPU percentage", + "layout": { + "column": 7, + "row": 3, + "width": 6, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.line" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT AVERAGE(`azure.compute.virtualmachinescalesets.PercentageCPU`) AS 'Average CPU Percentage' TIMESERIES AUTO " + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "yAxisLeft": { + "zero": true + }, + "yAxisRight": { + "zero": true + } + } + }, + { + "title": "Inbound/Outbound flows", + "layout": { + "column": 1, + "row": 6, + "width": 6, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.stacked-bar" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`azure.compute.virtualmachinescalesets.InboundFlows`) AS 'Total Inbound Flows', SUM(`azure.compute.virtualmachinescalesets.OutboundFlows`) AS 'Total Outbound Flows' TIMESERIES AUTO " + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "Inbound/Outbound flows maximum creation rate", + "layout": { + "column": 7, + "row": 6, + "width": 6, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.line" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT AVERAGE(`azure.compute.virtualmachinescalesets.InboundFlowsMaximumCreationRate`) AS 'Average Inbound Flows Maximum Creation Rate', AVERAGE(`azure.compute.virtualmachinescalesets.OutboundFlowsMaximumCreationRate`) AS 'Average Outbound Flows Maximum Creation Rate' TIMESERIES AUTO " + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "yAxisLeft": { + "zero": true + }, + "yAxisRight": { + "zero": true + } + } + }, + { + "title": "OS disk read/write operations/sec", + "layout": { + "column": 1, + "row": 9, + "width": 7, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.line" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT AVERAGE(`azure.compute.virtualmachinescalesets.OSDiskReadOperationsSec`) AS 'Average OS Disk Read Operations/Sec', AVERAGE(`azure.compute.virtualmachinescalesets.OSDiskWriteOperationsSec`) AS 'Average OS Disk Write Operations/Sec' TIMESERIES AUTO " + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "yAxisLeft": { + "zero": true + }, + "yAxisRight": { + "zero": true + } + } + }, + { + "title": "OS disk read/write bytes/sec", + "layout": { + "column": 8, + "row": 9, + "width": 5, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.line" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT AVERAGE(`azure.compute.virtualmachinescalesets.OSDiskReadBytessec`) AS 'Average OS Disk Read Bytes/Sec', AVERAGE(`azure.compute.virtualmachinescalesets.OSDiskWriteBytessec`) AS 'Average OS Disk Write Bytes/Sec' TIMESERIES AUTO " + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "units": { + "unit": "BYTES_PER_SECOND" + }, + "yAxisLeft": { + "zero": true + }, + "yAxisRight": { + "zero": true + } + } + }, + { + "title": "Disk read/write bytes", + "layout": { + "column": 1, + "row": 12, + "width": 5, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.stacked-bar" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`azure.compute.virtualmachinescalesets.DiskReadBytes`) AS 'Total Disk Read Bytes', SUM(`azure.compute.virtualmachinescalesets.DiskWriteBytes`) AS 'Total Disk Write Bytes' TIMESERIES AUTO " + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "units": { + "unit": "BYTES" + } + } + }, + { + "title": "Disk read/write operations/sec", + "layout": { + "column": 6, + "row": 12, + "width": 7, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.line" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT AVERAGE(`azure.compute.virtualmachinescalesets.DiskReadOperationsSec`) AS 'Average Disk Read Operations/Sec', AVERAGE(`azure.compute.virtualmachinescalesets.DiskWriteOperationsSec`) AS 'Average Disk Write Operations/Sec' TIMESERIES AUTO " + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "yAxisLeft": { + "zero": true + }, + "yAxisRight": { + "zero": true + } + } + }, + { + "title": "Total Network in/out", + "layout": { + "column": 1, + "row": 15, + "width": 6, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.stacked-bar" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`azure.compute.virtualmachinescalesets.NetworkInTotal`) AS 'Total Network In', SUM(`azure.compute.virtualmachinescalesets.NetworkOutTotal`) AS 'Total Network Out' TIMESERIES AUTO " + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "units": { + "unit": "BYTES" + } + } + }, + { + "title": "OS disk queue depth", + "layout": { + "column": 7, + "row": 15, + "width": 6, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.line" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT AVERAGE(`azure.compute.virtualmachinescalesets.OSDiskQueueDepth`) AS 'Average OS Disk Queue Depth' TIMESERIES AUTO " + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "yAxisLeft": { + "zero": true + }, + "yAxisRight": { + "zero": true + } + } + } + ] + } + ], + "variables": [] +} diff --git a/dashboards/azure-virtual-machine-scaleset/azure-virtual-machine-scaleset.png b/dashboards/azure-virtual-machine-scaleset/azure-virtual-machine-scaleset.png new file mode 100644 index 0000000000..cd0ac14a0f Binary files /dev/null and b/dashboards/azure-virtual-machine-scaleset/azure-virtual-machine-scaleset.png differ diff --git a/dashboards/azure-vpn-gateways/azure-vpn-gateway.json b/dashboards/azure-vpn-gateways/azure-vpn-gateway.json new file mode 100644 index 0000000000..9d2f8e4dca --- /dev/null +++ b/dashboards/azure-vpn-gateways/azure-vpn-gateway.json @@ -0,0 +1,419 @@ +{ + "name": "Azure VPN gateways", + "description": null, + "pages": [ + { + "name": "Azure VPN gateways", + "description": null, + "widgets": [ + { + "title": "Summary", + "layout": { + "column": 1, + "row": 1, + "width": 9, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.billboard" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`azure.network.virtualnetworkgateways.P2SConnectionCount`) AS 'Total P2S Connection Count', AVERAGE(`azure.network.virtualnetworkgateways.AverageBandwidth`) AS 'Average S2S Bandwidth', SUM(`azure.network.virtualnetworkgateways.TunnelEgressBytes`) AS 'Total Tunnel Egress Bytes', SUM(`azure.network.virtualnetworkgateways.TunnelIngressBytes`) AS 'Total Tunnel Ingress Bytes', SUM(`azure.network.virtualnetworkgateways.TunnelEgressPackets`) AS 'Total Tunnel Egress Packets', SUM(`azure.network.virtualnetworkgateways.TunnelIngressPackets`) AS 'Total Tunnel Ingress Packets'" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "", + "layout": { + "column": 10, + "row": 1, + "width": 3, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.markdown" + }, + "rawConfiguration": { + "text": "# Azure VPN Gateway\nAzure VPN Gateway is a service that uses a specific type of virtual network gateway to send encrypted traffic between an Azure virtual network and on-premises locations over the public Internet. You can also use VPN Gateway to send encrypted traffic between Azure virtual networks over the Microsoft network. Multiple connections can be created to the same VPN gateway. When you create multiple connections, all VPN tunnels share the available gateway bandwidth." + } + }, + { + "title": "Tunnel bandwidth per connection name", + "layout": { + "column": 1, + "row": 4, + "width": 6, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.line" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT AVERAGE(`azure.network.virtualnetworkgateways.TunnelAverageBandwidth`) AS 'Average Tunnel Bandwidth' TIMESERIES AUTO FACET azure.network.virtualnetworkgateways.connectionName" + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "units": { + "unit": "BYTES_PER_SECOND" + }, + "yAxisLeft": { + "zero": true + }, + "yAxisRight": { + "zero": true + } + } + }, + { + "title": "Tunnel bandwidth per remoteIP", + "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": "FROM Metric SELECT AVERAGE(`azure.network.virtualnetworkgateways.TunnelAverageBandwidth`) AS 'Average Tunnel Bandwidth' TIMESERIES AUTO FACET azure.network.virtualnetworkgateways.remoteIP" + } + ], + "nullValues": { + "nullValue": "zero" + }, + "platformOptions": { + "ignoreTimeRange": false + }, + "units": { + "unit": "BYTES_PER_SECOND" + }, + "yAxisLeft": { + "zero": true + }, + "yAxisRight": { + "zero": true + } + } + }, + { + "title": "Tunnel egress/ingress bytes", + "layout": { + "column": 1, + "row": 7, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.stacked-bar" + }, + "rawConfiguration": { + "colors": { + "seriesOverrides": [ + { + "color": "#3d1e5c", + "seriesName": "Instance0" + } + ] + }, + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`azure.network.virtualnetworkgateways.TunnelEgressBytes`) AS 'Total Egress Bytes', SUM(`azure.network.virtualnetworkgateways.TunnelIngressBytes`) AS 'Total Ingress Bytes' TIMESERIES AUTO" + } + ], + "nullValues": { + "nullValue": "zero" + }, + "platformOptions": { + "ignoreTimeRange": false + }, + "units": { + "unit": "BYTES" + } + } + }, + { + "title": "Tunnel ingress bytes per remoteIP", + "layout": { + "column": 5, + "row": 7, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.stacked-bar" + }, + "rawConfiguration": { + "colors": { + "seriesOverrides": [ + { + "color": "#3918dc", + "seriesName": "104.42.152.204" + }, + { + "color": "#977517", + "seriesName": "1.2.3.4" + } + ] + }, + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`azure.network.virtualnetworkgateways.TunnelIngressBytes`) AS 'Total Tunnel Ingress Bytes' TIMESERIES AUTO FACET azure.network.virtualnetworkgateways.remoteIP" + } + ], + "nullValues": { + "nullValue": "zero" + }, + "platformOptions": { + "ignoreTimeRange": false + }, + "units": { + "unit": "BYTES" + } + } + }, + { + "title": "Tunnel egress bytes per remoteIP", + "layout": { + "column": 9, + "row": 7, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.stacked-bar" + }, + "rawConfiguration": { + "colors": { + "seriesOverrides": [ + { + "color": "#3a8230", + "seriesName": "104.42.152.204" + }, + { + "color": "#741fdb", + "seriesName": "1.2.3.4" + } + ] + }, + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`azure.network.virtualnetworkgateways.TunnelEgressBytes`) AS 'Total Tunnel Egress Bytes' TIMESERIES AUTO FACET azure.network.virtualnetworkgateways.remoteIP" + } + ], + "nullValues": { + "nullValue": "zero" + }, + "platformOptions": { + "ignoreTimeRange": false + }, + "units": { + "unit": "BYTES" + } + } + }, + { + "title": "Tunnel ingress packets per remoteIP", + "layout": { + "column": 1, + "row": 10, + "width": 6, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.pie" + }, + "rawConfiguration": { + "colors": { + "seriesOverrides": [ + { + "color": "#481414", + "seriesName": "1.2.3.4" + } + ] + }, + "facet": { + "showOtherSeries": true + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`azure.network.virtualnetworkgateways.TunnelIngressPackets`) AS 'Total Tunnel Ingress Packets' FACET azure.network.virtualnetworkgateways.remoteIP" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "Tunnel egress packets per remoteIP", + "layout": { + "column": 7, + "row": 10, + "width": 6, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.pie" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": true + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`azure.network.virtualnetworkgateways.TunnelEgressPackets`) AS 'Total Tunnel Egress Packets' FACET azure.network.virtualnetworkgateways.remoteIP" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "Gateway S2S bandwidth", + "layout": { + "column": 1, + "row": 13, + "width": 6, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.area" + }, + "rawConfiguration": { + "colors": { + "seriesOverrides": [ + { + "color": "#970af5", + "seriesName": "Instance0" + } + ] + }, + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT AVERAGE(`azure.network.virtualnetworkgateways.AverageBandwidth`) AS 'Average Gateway S2S Bandwidth' TIMESERIES AUTO" + } + ], + "nullValues": { + "nullValue": "zero" + }, + "platformOptions": { + "ignoreTimeRange": false + }, + "units": { + "unit": "BYTES_PER_SECOND" + } + } + }, + { + "title": "P2sconnection count per protocol", + "layout": { + "column": 7, + "row": 13, + "width": 6, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.pie" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": true + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`azure.network.virtualnetworkgateways.P2SConnectionCount`) AS 'Total P2SConnectionCount' FACET azure.network.virtualnetworkgateways.protocol" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + } + ] + } + ], + "variables": [] +} diff --git a/dashboards/azure-vpn-gateways/azure-vpn-gateway.png b/dashboards/azure-vpn-gateways/azure-vpn-gateway.png new file mode 100644 index 0000000000..dd7315ae9c Binary files /dev/null and b/dashboards/azure-vpn-gateways/azure-vpn-gateway.png differ diff --git a/dashboards/gcp-app-engine/gcp-app-engine-flexible.png b/dashboards/gcp-app-engine/gcp-app-engine-flexible.png new file mode 100644 index 0000000000..d02a2debb0 Binary files /dev/null and b/dashboards/gcp-app-engine/gcp-app-engine-flexible.png differ diff --git a/dashboards/gcp-app-engine/gcp-app-engine-standered.png b/dashboards/gcp-app-engine/gcp-app-engine-standered.png new file mode 100644 index 0000000000..f15df8e555 Binary files /dev/null and b/dashboards/gcp-app-engine/gcp-app-engine-standered.png differ diff --git a/dashboards/gcp-app-engine/gcp-app-engine.json b/dashboards/gcp-app-engine/gcp-app-engine.json new file mode 100644 index 0000000000..48ffcd34d7 --- /dev/null +++ b/dashboards/gcp-app-engine/gcp-app-engine.json @@ -0,0 +1,659 @@ +{ + "name": "GCP AppEngine", + "description": null, + "pages": [ + { + "name": "Standard", + "description": null, + "widgets": [ + { + "title": "Summary", + "layout": { + "column": 1, + "row": 1, + "width": 8, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.billboard" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`gcp.appengine.http.server.response_count`) AS 'Total Responses', SUM(`gcp.appengine.system.instance_count`) AS 'Total Instances', AVERAGE(`gcp.appengine.http.server.response_latencies`) AS 'Average Latency(ms)', FILTER(SUM(`gcp.appengine.http.server.response_count`), WHERE gcp.appengine.responseCode NOT LIKE '2%') * 100 / SUM(`gcp.appengine.http.server.response_count`) AS 'Error Rate %', SUM(`gcp.appengine.system.cpu.usage`) AS 'Total CPU Usage', SUM(`gcp.appengine.system.memory.usage`) AS 'Total Memory Usage'" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "", + "layout": { + "column": 9, + "row": 1, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.markdown" + }, + "rawConfiguration": { + "text": "# Google App Engine\n\nGoogle App Engine is a fully managed platform that completely abstracts away infrastructure so you focus only on code. Go from zero to planet-scale and see why some of today’s most successful companies power their applications on App Engine.Dashboard version 1.0.0 Each chart is reporting every minute." + } + }, + { + "title": "CPU usage by source", + "layout": { + "column": 1, + "row": 4, + "width": 6, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.area" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT MAX(`gcp.appengine.system.cpu.usage`) AS 'CPU Usage' TIMESERIES AUTO FACET gcp.appengine.source" + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "units": { + "unit": "BYTES" + } + } + }, + { + "title": "Memory usage by entity name", + "layout": { + "column": 7, + "row": 4, + "width": 6, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.area" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT MAX(`gcp.appengine.system.memory.usage`) AS 'Maximum Memory usage' TIMESERIES AUTO FACET entity.name" + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "units": { + "unit": "BYTES" + } + } + }, + { + "title": "Number of instances by state", + "layout": { + "column": 1, + "row": 7, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.pie" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": true + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`gcp.appengine.system.instance_count`) AS 'Total Instances' FACET gcp.appengine.state" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "Number of queries by response code", + "layout": { + "column": 5, + "row": 7, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.pie" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": true + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`gcp.appengine.http.server.response_count`) AS 'Total Responses' FACET gcp.appengine.responseCode" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "Average latency by response code", + "layout": { + "column": 9, + "row": 7, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.area" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT AVERAGE(`gcp.appengine.http.server.response_latencies`) AS 'Average Response Time' TIMESERIES AUTO FACET gcp.appengine.responseCode" + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "units": { + "unit": "MS" + } + } + }, + { + "title": "Network traffic", + "layout": { + "column": 1, + "row": 10, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.stacked-bar" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`gcp.appengine.system.network.received_bytes_count`) AS 'Total Received Bytes', SUM(`gcp.appengine.system.network.sent_bytes_count`) AS 'Total Sent Bytes' TIMESERIES AUTO" + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "units": { + "unit": "BYTES" + } + } + }, + { + "title": "4xx responses by entity name", + "layout": { + "column": 5, + "row": 10, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.line" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`gcp.appengine.http.server.response_count`) AS 'Responses' WHERE gcp.appengine.responseCode LIKE '4%' TIMESERIES AUTO FACET entity.name" + } + ], + "nullValues": { + "nullValue": "zero" + }, + "platformOptions": { + "ignoreTimeRange": false + }, + "units": { + "unit": "COUNT" + }, + "yAxisLeft": { + "zero": true + }, + "yAxisRight": { + "zero": true + } + } + }, + { + "title": "5xx responses by entity name", + "layout": { + "column": 9, + "row": 10, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.line" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`gcp.appengine.http.server.response_count`) AS 'Responses' WHERE gcp.appengine.responseCode LIKE '5%' TIMESERIES AUTO FACET entity.name" + } + ], + "nullValues": { + "nullValue": "zero" + }, + "platformOptions": { + "ignoreTimeRange": false + }, + "units": { + "unit": "COUNT" + }, + "yAxisLeft": { + "zero": true + }, + "yAxisRight": { + "zero": true + } + } + }, + { + "title": "Tasks requests by method and response code", + "layout": { + "column": 1, + "row": 13, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.bar" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`gcp.cloudtasks.api.request_count`) AS 'Total API Requests' FACET gcp.cloudtasks.apiMethod,gcp.cloudtasks.responseCode" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "Tasks attempts by response code", + "layout": { + "column": 5, + "row": 13, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.pie" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": true + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT MAX(`gcp.cloudtasks.queue.task_attempt_count`) AS 'Maximum Attempts' FACET gcp.cloudtasks.responseCode" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "Task delays (seconds)", + "layout": { + "column": 9, + "row": 13, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.area" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT MAX(`gcp.cloudtasks.queue.task_attempt_delays`) / 1000 AS 'Delay' TIMESERIES AUTO" + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "units": { + "unit": "SECONDS" + } + } + }, + { + "title": "MCU utilization", + "layout": { + "column": 1, + "row": 16, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.line" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "SELECT SUM(`gcp.appengine.memcache.centi_mcu_count` / 100) AS `MCU Utilization` FROM Metric TIMESERIES AUTO FACET gcp.appengine.command" + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "yAxisLeft": { + "zero": true + }, + "yAxisRight": { + "zero": true + } + } + }, + { + "title": "Memcache operations", + "layout": { + "column": 5, + "row": 16, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.area" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`gcp.appengine.memcache.operation_count`) AS 'Operations' TIMESERIES AUTO FACET gcp.appengine.command" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "Memcache traffic", + "layout": { + "column": 9, + "row": 16, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.stacked-bar" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`gcp.appengine.memcache.received_bytes_count`) AS 'Total Received Bytes', SUM(`gcp.appengine.memcache.sent_bytes_count`) AS 'Total Sent Bytes' TIMESERIES AUTO" + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "units": { + "unit": "BYTES" + } + } + } + ] + }, + { + "name": "Flexible", + "description": null, + "widgets": [ + { + "title": "CPU utilization by entity name", + "layout": { + "column": 1, + "row": 1, + "width": 6, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.area" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT AVERAGE(`gcp.appengine.flex.cpu.utilization`) AS 'Average CPU Utilization' TIMESERIES AUTO FACET entity.name" + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "units": { + "unit": "PERCENTAGE" + } + } + }, + { + "title": "Disk read and write bytes", + "layout": { + "column": 7, + "row": 1, + "width": 6, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.stacked-bar" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`gcp.appengine.flex.disk.read_bytes_count`) AS 'Total Disk Read Bytes', SUM(`gcp.appengine.flex.disk.write_bytes_count`) AS 'Total Disk Write Bytes' TIMESERIES AUTO" + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "units": { + "unit": "BYTES" + } + } + }, + { + "title": "Received bytes by entity name", + "layout": { + "column": 1, + "row": 4, + "width": 6, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.stacked-bar" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`gcp.appengine.flex.network.received_bytes_count`) AS 'Total Network received bytes' TIMESERIES AUTO FACET entity.name" + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "units": { + "unit": "BYTES" + } + } + }, + { + "title": "Sent bytes by entity name", + "layout": { + "column": 7, + "row": 4, + "width": 6, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.stacked-bar" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`gcp.appengine.flex.network.sent_bytes_count`) AS 'Total Network Sent Bytes' TIMESERIES AUTO FACET entity.name" + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "units": { + "unit": "BYTES" + } + } + } + ] + } + ], + "variables": [] +} diff --git a/dashboards/gcp-bigquery/gcp-bigquery.json b/dashboards/gcp-bigquery/gcp-bigquery.json new file mode 100644 index 0000000000..a0f59d072e --- /dev/null +++ b/dashboards/gcp-bigquery/gcp-bigquery.json @@ -0,0 +1,329 @@ +{ + "name": "GCP BigQuery", + "description": null, + "pages": [ + { + "name": "BigQuery", + "description": null, + "widgets": [ + { + "title": "Summary", + "layout": { + "column": 1, + "row": 1, + "width": 8, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.billboard" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT LATEST(`gcp.bigquery.storage.table_count`) AS 'Tables', SUM(`gcp.bigquery.query.count`) AS 'Queries', MAX(`gcp.bigquery.query.execution_times`) AS 'Maximum Execution Time(s)', AVERAGE(`gcp.bigquery.storage.stored_bytes`) AS 'Average Stored Bytes'" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "", + "layout": { + "column": 9, + "row": 1, + "width": 3, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.markdown" + }, + "rawConfiguration": { + "text": "# GCP Big Query\nBigQuery is Google's serverless, highly scalable, enterprise data warehouse designed to make all your data analysts productive at an unmatched price-performance. Because there is no infrastructure to manage, you can focus on analyzing data to find meaningful insights using familiar SQL without the need for a database administrator." + } + }, + { + "title": "Tables per dataset", + "layout": { + "column": 1, + "row": 4, + "width": 6, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.pie" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": true + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT LATEST(`gcp.bigquery.storage.table_count`) AS 'Total Tables' FACET entity.name" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "Stored bytes per table", + "layout": { + "column": 7, + "row": 4, + "width": 5, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.area" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`gcp.bigquery.storage.stored_bytes`) AS 'Storage Usage (byte)' TIMESERIES AUTO FACET gcp.bigquery.table" + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "units": { + "unit": "BYTES" + } + } + }, + { + "title": "Queries by priority", + "layout": { + "column": 1, + "row": 7, + "width": 3, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.pie" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": true + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`gcp.bigquery.query.count`) AS 'Queries' FACET gcp.bigquery.priority" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "Execution time by priority", + "layout": { + "column": 4, + "row": 7, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.area" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT AVERAGE(`gcp.bigquery.query.execution_times`) AS 'Average Execution Time(s)' TIMESERIES AUTO FACET gcp.bigquery.priority" + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "units": { + "unit": "SECONDS" + } + } + }, + { + "title": "Slots", + "layout": { + "column": 8, + "row": 7, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.line" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT MIN(`gcp.bigquery.slots.total_available`) AS 'Available', SUM(`gcp.bigquery.slots.allocated`) AS 'Allocated' TIMESERIES AUTO" + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "yAxisLeft": { + "zero": true + }, + "yAxisRight": { + "zero": true + } + } + }, + { + "title": "Allocated slots for query jobs", + "layout": { + "column": 1, + "row": 10, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.line" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT AVERAGE(`gcp.bigquery.slots.allocated_for_project`) AS 'Average Slots Allocated For Project' TIMESERIES AUTO" + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "yAxisLeft": { + "zero": true + }, + "yAxisRight": { + "zero": true + } + } + }, + { + "title": "Allocated slots per job type", + "layout": { + "column": 5, + "row": 10, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.line" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT AVERAGE(`gcp.bigquery.slots.allocated_for_project_and_job_type`) AS 'Allocated Slots For Project And JobType' TIMESERIES AUTO FACET gcp.bigquery.jobType" + } + ], + "nullValues": { + "nullValue": "zero" + }, + "platformOptions": { + "ignoreTimeRange": false + }, + "yAxisLeft": { + "zero": true + }, + "yAxisRight": { + "zero": true + } + } + }, + { + "title": "Slots used in the reservation", + "layout": { + "column": 9, + "row": 10, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.line" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT AVERAGE(`gcp.bigquery.slots.allocated_for_reservation`) AS 'Average Slots Total Allocated For Reservation', AVERAGE(`gcp.bigquery.slots.allocated_for_reservation`) AS 'Average Slots Allocated For Reservation' TIMESERIES AUTO" + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "yAxisLeft": { + "zero": true + }, + "yAxisRight": { + "zero": true + } + } + } + ] + } + ], + "variables": [] +} diff --git a/dashboards/gcp-bigquery/gcp-bigquery.png b/dashboards/gcp-bigquery/gcp-bigquery.png new file mode 100644 index 0000000000..0825805206 Binary files /dev/null and b/dashboards/gcp-bigquery/gcp-bigquery.png differ diff --git a/dashboards/gcp-cloud-functions/gcp-cloud-functions.json b/dashboards/gcp-cloud-functions/gcp-cloud-functions.json new file mode 100644 index 0000000000..9fb47d2219 --- /dev/null +++ b/dashboards/gcp-cloud-functions/gcp-cloud-functions.json @@ -0,0 +1,206 @@ +{ + "name": "GCP Cloud functions", + "description": null, + "pages": [ + { + "name": "GCP cloud functions", + "description": null, + "widgets": [ + { + "title": "Summary", + "layout": { + "column": 1, + "row": 1, + "width": 8, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.billboard" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT AVERAGE(`gcp.cloudfunctions.function.execution_times`) AS 'Execution times',SUM(`gcp.cloudfunctions.function.execution_count`) AS 'Execution count',SUM(`gcp.cloudfunctions.function.user_memory_bytes`) AS 'User memory bytes' " + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "", + "layout": { + "column": 9, + "row": 1, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.markdown" + }, + "rawConfiguration": { + "text": "**GCP Cloud Function** \n\nCloud Functions is a serverless execution environment for building and connecting cloud services. With Cloud Functions you write simple, single-purpose functions that are attached to events emitted from your cloud infrastructure and services. Your function is triggered when an event being watched is fired, or by an HTTP request." + } + }, + { + "title": "Execution count by memory", + "layout": { + "column": 1, + "row": 4, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.stacked-bar" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`gcp.cloudfunctions.function.execution_count`) AS 'Execution count' TIMESERIES AUTO FACET gcp.cloudfunctions.memory" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "Execution count by triggerType", + "layout": { + "column": 5, + "row": 4, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.stacked-bar" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`gcp.cloudfunctions.function.execution_count`) AS 'Execution count' TIMESERIES AUTO FACET gcp.cloudfunctions.triggerType" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "Execution count by status", + "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": "FROM Metric SELECT SUM(`gcp.cloudfunctions.function.execution_count`) AS 'Execution count' TIMESERIES AUTO FACET gcp.cloudfunctions.status" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "Memory bytes by triggerType", + "layout": { + "column": 1, + "row": 7, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.area" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`gcp.cloudfunctions.function.user_memory_bytes`) AS 'User memory bytes' TIMESERIES AUTO FACET gcp.cloudfunctions.triggerType" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "Memory bytes by memory", + "layout": { + "column": 5, + "row": 7, + "width": 8, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.area" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`gcp.cloudfunctions.function.user_memory_bytes`) AS 'User memory bytes' TIMESERIES AUTO FACET gcp.cloudfunctions.memory" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + } + ] + } + ], + "variables": [] +} diff --git a/dashboards/gcp-cloud-functions/gcp-cloud-functions.png b/dashboards/gcp-cloud-functions/gcp-cloud-functions.png new file mode 100644 index 0000000000..409ecfcdcf Binary files /dev/null and b/dashboards/gcp-cloud-functions/gcp-cloud-functions.png differ diff --git a/dashboards/gcp-cloud-pub-sub/gcp-cloud-pub-sub.json b/dashboards/gcp-cloud-pub-sub/gcp-cloud-pub-sub.json new file mode 100644 index 0000000000..76311bce2f --- /dev/null +++ b/dashboards/gcp-cloud-pub-sub/gcp-cloud-pub-sub.json @@ -0,0 +1,205 @@ +{ + "name": "GCP Cloud Pub/Sub", + "description": null, + "pages": [ + { + "name": "GCP Cloud Pub/Sub", + "description": null, + "widgets": [ + { + "title": "Summary", + "layout": { + "column": 1, + "row": 1, + "width": 8, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.billboard" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`gcp.pubsub.topic.send_request_count`) AS 'SEND REQUEST COUNT',SUM(`gcp.pubsub.topic.config_updates_count`) AS 'TOPIC CONFIG UPDATES COUNT', SUM(`gcp.pubsub.subscription.config_updates_count`) AS ' SUBSCRIPTION CONFIG UPDATES COUNT' SINCE 6 hours ago" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "Subscription config updates count by responseCode", + "layout": { + "column": 9, + "row": 1, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.line" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`gcp.pubsub.subscription.config_updates_count`) AS 'Subscription config updates count' TIMESERIES AUTO FACET gcp.pubsub.responseCode" + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "yAxisLeft": { + "zero": true + } + } + }, + { + "title": "Topic config updates count by responseCode", + "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": "FROM Metric SELECT SUM(`gcp.pubsub.topic.config_updates_count`) AS 'Topic config updates count' TIMESERIES AUTO FACET gcp.pubsub.responseCode" + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "yAxisLeft": { + "zero": true + } + } + }, + { + "title": "Subscription config updates count by operationType", + "layout": { + "column": 5, + "row": 4, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.line" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`gcp.pubsub.subscription.config_updates_count`) AS 'Subscription config updates count' TIMESERIES AUTO FACET gcp.pubsub.operationType" + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "yAxisLeft": { + "zero": true + } + } + }, + { + "title": "Topic config updates count by responseCode", + "layout": { + "column": 9, + "row": 4, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.line" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`gcp.pubsub.topic.config_updates_count`) AS 'Topic config updates count' TIMESERIES AUTO FACET gcp.pubsub.operationType" + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "yAxisLeft": { + "zero": true + } + } + }, + { + "title": "Subscription config updates count by operationType", + "layout": { + "column": 1, + "row": 7, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.line" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT average(`gcp.pubsub.topic.byte_cost`) AS 'Subscription config updates count' TIMESERIES AUTO FACET gcp.pubsub.responseCode" + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "yAxisLeft": { + "zero": true + } + } + } + ] + } + ], + "variables": [] +} diff --git a/dashboards/gcp-cloud-pub-sub/gcp-cloud-pub-sub.png b/dashboards/gcp-cloud-pub-sub/gcp-cloud-pub-sub.png new file mode 100644 index 0000000000..634680d1be Binary files /dev/null and b/dashboards/gcp-cloud-pub-sub/gcp-cloud-pub-sub.png differ diff --git a/dashboards/gcp-cloud-run/gcp-cloud-run.json b/dashboards/gcp-cloud-run/gcp-cloud-run.json new file mode 100644 index 0000000000..9e2c933a08 --- /dev/null +++ b/dashboards/gcp-cloud-run/gcp-cloud-run.json @@ -0,0 +1,269 @@ +{ + "name": "GCP Cloud Run", + "description": null, + "pages": [ + { + "name": "GCP Cloud Run", + "description": null, + "widgets": [ + { + "title": "Summary", + "layout": { + "column": 1, + "row": 1, + "width": 7, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.billboard" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`gcp.run.request_count`) AS 'Total Requests', SUM(`gcp.run.container.memory.allocation_time`) AS 'Total Memory Allocation Time(Gigabytes-Seconds)', SUM(`gcp.run.container.billable_instance_time`) AS 'Total Billable Instance Time(Seconds)', SUM(`gcp.run.container.cpu.allocation_time`) AS 'Total CPU Allocation Time(Seconds)'" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "", + "layout": { + "column": 8, + "row": 1, + "width": 5, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.markdown" + }, + "rawConfiguration": { + "text": "# Google Cloud Run\nCloud Run is a managed compute platform that lets you run containers directly on top of Google's scalable infrastructure. Google has built Cloud Run to work well together with other services on Google Cloud, so you can build full-featured applications." + } + }, + { + "title": "CPU allocation time", + "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": "FROM Metric SELECT AVERAGE(`gcp.run.container.cpu.allocation_time`) AS 'Average CPU Allocation Time' TIMESERIES AUTO" + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "units": { + "unit": "SECONDS" + }, + "yAxisLeft": { + "zero": true + }, + "yAxisRight": { + "zero": true + } + } + }, + { + "title": "Billable instance time", + "layout": { + "column": 5, + "row": 4, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.line" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT AVERAGE(`gcp.run.container.billable_instance_time`) AS 'Average Billable Instance Time' TIMESERIES AUTO" + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "units": { + "unit": "SECONDS" + }, + "yAxisLeft": { + "zero": true + }, + "yAxisRight": { + "zero": true + } + } + }, + { + "title": "Memory allocation time (Gigabytes-Seconds)", + "layout": { + "column": 9, + "row": 4, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.area" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT AVERAGE(`gcp.run.container.memory.allocation_time`) AS 'Average Memory Allocation Time' TIMESERIES AUTO" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "Request latency", + "layout": { + "column": 1, + "row": 7, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.line" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT AVERAGE(`gcp.run.request_latencies`) AS 'Average Request Latency' TIMESERIES AUTO FACET gcp.run.response_code_class" + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "units": { + "unit": "MS" + }, + "yAxisLeft": { + "zero": true + }, + "yAxisRight": { + "zero": true + } + } + }, + { + "title": "Requests by response code class", + "layout": { + "column": 5, + "row": 7, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.pie" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": true + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`gcp.run.request_count`) AS 'Total Requests' FACET gcp.run.response_code_class" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "Requests by response code", + "layout": { + "column": 9, + "row": 7, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.line" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`gcp.run.request_count`) AS 'Total Requests' TIMESERIES AUTO FACET gcp.run.response_code" + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "yAxisLeft": { + "zero": true + }, + "yAxisRight": { + "zero": true + } + } + } + ] + } + ], + "variables": [] +} diff --git a/dashboards/gcp-cloud-run/gcp-cloud-run.png b/dashboards/gcp-cloud-run/gcp-cloud-run.png new file mode 100644 index 0000000000..ddb2ad549d Binary files /dev/null and b/dashboards/gcp-cloud-run/gcp-cloud-run.png differ diff --git a/dashboards/gcp-cloud-sql/gcp-cloud-sql-mysql.png b/dashboards/gcp-cloud-sql/gcp-cloud-sql-mysql.png new file mode 100644 index 0000000000..37b441ab6e Binary files /dev/null and b/dashboards/gcp-cloud-sql/gcp-cloud-sql-mysql.png differ diff --git a/dashboards/gcp-cloud-sql/gcp-cloud-sql-postgresql.png b/dashboards/gcp-cloud-sql/gcp-cloud-sql-postgresql.png new file mode 100644 index 0000000000..b5aeee4e8a Binary files /dev/null and b/dashboards/gcp-cloud-sql/gcp-cloud-sql-postgresql.png differ diff --git a/dashboards/gcp-cloud-sql/gcp-cloud-sql.json b/dashboards/gcp-cloud-sql/gcp-cloud-sql.json new file mode 100644 index 0000000000..60cdc2eb64 --- /dev/null +++ b/dashboards/gcp-cloud-sql/gcp-cloud-sql.json @@ -0,0 +1,554 @@ +{ + "name": "GCP Cloud SQL", + "description": null, + "pages": [ + { + "name": "Cloud SQL", + "description": null, + "widgets": [ + { + "title": "Summary", + "layout": { + "column": 1, + "row": 1, + "width": 7, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.billboard" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT LATEST(`gcp.cloudsql.database.up`) AS 'Database State', MAX(`gcp.cloudsql.database.network.connections`) AS 'Maximum Network Connections', MAX(`gcp.cloudsql.database.cpu.reserved_cores`) AS 'Maximum CPU Reserved Cores', MAX(`gcp.cloudsql.database.available_for_failover`) AS 'Maximum Database Available for Failover'" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "", + "layout": { + "column": 8, + "row": 1, + "width": 5, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.markdown" + }, + "rawConfiguration": { + "text": "# Google Cloud SQL\nCloud SQL is a fully-managed database service that helps you set up, maintain, manage, and administer your relational databases on Google Cloud Platform.\n\nYou can use Cloud SQL with MySQL, PostgreSQL, or SQL Server." + } + }, + { + "title": "CPU utilization", + "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": "FROM Metric SELECT AVERAGE(`gcp.cloudsql.database.cpu.utilization`) AS 'Average CPU Utilization' TIMESERIES AUTO " + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "units": { + "unit": "PERCENTAGE" + }, + "yAxisLeft": { + "zero": true + }, + "yAxisRight": { + "zero": true + } + } + }, + { + "title": "Memory utilization", + "layout": { + "column": 5, + "row": 4, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.line" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT AVERAGE(`gcp.cloudsql.database.memory.utilization`) AS 'Average Memory Utilization' TIMESERIES AUTO " + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "units": { + "unit": "PERCENTAGE" + }, + "yAxisLeft": { + "zero": true + }, + "yAxisRight": { + "zero": true + } + } + }, + { + "title": "Disk utilization", + "layout": { + "column": 9, + "row": 4, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.line" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT AVERAGE(`gcp.cloudsql.database.disk.utilization`) AS 'Average Disk Utilization' TIMESERIES AUTO " + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "units": { + "unit": "PERCENTAGE" + }, + "yAxisLeft": { + "zero": true + }, + "yAxisRight": { + "zero": true + } + } + }, + { + "title": "Database uptime", + "layout": { + "column": 1, + "row": 7, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.line" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT AVERAGE(`gcp.cloudsql.database.uptime`)/60 AS 'Database Uptime' TIMESERIES AUTO" + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "units": { + "unit": "PERCENTAGE" + }, + "yAxisLeft": { + "zero": true + }, + "yAxisRight": { + "zero": true + } + } + }, + { + "title": "Disk read/write operations", + "layout": { + "column": 5, + "row": 7, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.line" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT AVERAGE(`gcp.cloudsql.database.disk.read_ops_count`) AS 'Average Disk Read Operations', AVERAGE(`gcp.cloudsql.database.disk.write_ops_count`) AS 'Average Disk Write Operations' TIMESERIES AUTO" + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "yAxisLeft": { + "zero": true + }, + "yAxisRight": { + "zero": true + } + } + }, + { + "title": "Disk details", + "layout": { + "column": 9, + "row": 7, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.stacked-bar" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`gcp.cloudsql.database.disk.bytes_used`) AS 'Total Disk Bytes USed', MAX(`gcp.cloudsql.database.disk.quota`) AS 'Maximum Disk Quota' Timeseries AUTO " + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + } + ] + }, + { + "name": "MYSQL", + "description": null, + "widgets": [ + { + "title": "Traffic", + "layout": { + "column": 1, + "row": 1, + "width": 6, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.area" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`gcp.cloudsql.database.mysql.received_bytes_count`) AS 'Total Bytes Received', SUM(`gcp.cloudsql.database.mysql.sent_bytes_count`) AS 'Total Bytes Sent' Timeseries AUTO " + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "InnoDB read/written pages", + "layout": { + "column": 7, + "row": 1, + "width": 6, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.line" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`gcp.cloudsql.database.mysql.innodb_pages_read`) AS 'Total InnoDB Pages Read', SUM(`gcp.cloudsql.database.mysql.innodb_pages_written`) AS 'Total InnoDB Pages Written' TIMESERIES AUTO " + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "yAxisLeft": { + "zero": true + }, + "yAxisRight": { + "zero": true + } + } + }, + { + "title": "Buffer pool pages", + "layout": { + "column": 1, + "row": 4, + "width": 6, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.line" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT sum(`gcp.cloudsql.database.mysql.innodb_buffer_pool_pages_total`) AS 'Total InnoDB Pages', sum(`gcp.cloudsql.database.mysql.innodb_buffer_pool_pages_dirty`) AS 'Total InnoDB Dirty Pages', sum(`gcp.cloudsql.database.mysql.innodb_buffer_pool_pages_free`) AS 'Total InnoDB Free Pages' TIMESERIES AUTO " + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "yAxisLeft": { + "zero": true + }, + "yAxisRight": { + "zero": true + } + } + }, + { + "title": "InnoDB Fsyncs calls", + "layout": { + "column": 7, + "row": 4, + "width": 6, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.stacked-bar" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`gcp.cloudsql.database.mysql.innodb_os_log_fsyncs`) AS 'Total InnoDB Log Fsync Calls', SUM(`gcp.cloudsql.database.mysql.innodb_data_fsyncs`) AS 'Total InnoDB Fsync Calls' TIMESERIES AUTO" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + } + ] + }, + { + "name": "PostgreSQL", + "description": null, + "widgets": [ + { + "title": "Number of transactions by database", + "layout": { + "column": 1, + "row": 1, + "width": 6, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.pie" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": true + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`gcp.cloudsql.database.postgresql.transaction_count`) AS 'Total Number of Transactions' FACET gcp.cloudsql.database" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "Number of transactions by type", + "layout": { + "column": 7, + "row": 1, + "width": 6, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.line" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`gcp.cloudsql.database.postgresql.transaction_count`) AS 'Total Number of Transactions' TIMESERIES AUTO FACET gcp.cloudsql.transactionType" + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "yAxisLeft": { + "zero": true + }, + "yAxisRight": { + "zero": true + } + } + }, + { + "title": "PostgreSQL connections", + "layout": { + "column": 1, + "row": 4, + "width": 5, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.line" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`gcp.cloudsql.database.postgresql.num_backends`) AS 'Total PostgreSQL Connections' TIMESERIES AUTO" + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "yAxisLeft": { + "zero": true + }, + "yAxisRight": { + "zero": true + } + } + }, + { + "title": "PostgreSQL connections by database", + "layout": { + "column": 6, + "row": 4, + "width": 7, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.pie" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": true + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`gcp.cloudsql.database.postgresql.num_backends`) AS 'Total Number of Transactions' FACET gcp.cloudsql.database" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + } + ] + } + ], + "variables": [] +} diff --git a/dashboards/gcp-cloud-sql/gcp-cloud-sql.png b/dashboards/gcp-cloud-sql/gcp-cloud-sql.png new file mode 100644 index 0000000000..cc5165674d Binary files /dev/null and b/dashboards/gcp-cloud-sql/gcp-cloud-sql.png differ diff --git a/dashboards/gcp-cloud-storage/gcp-cloud-storage.json b/dashboards/gcp-cloud-storage/gcp-cloud-storage.json new file mode 100644 index 0000000000..a170b429fa --- /dev/null +++ b/dashboards/gcp-cloud-storage/gcp-cloud-storage.json @@ -0,0 +1,241 @@ +{ + "name": "GCP Cloud storage", + "description": null, + "pages": [ + { + "name": "GCP Cloud storage", + "description": null, + "widgets": [ + { + "title": "Summary", + "layout": { + "column": 1, + "row": 1, + "width": 12, + "height": 1 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.billboard" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT sum(`gcp.storage.api.request_count`) AS ' Total request count', sum(`gcp.storage.network.received_bytes_count`) AS 'Received bytes count', sum(`gcp.storage.network.sent_bytes_count`) AS 'Sent bytes count' SINCE 1 week ago" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "Request count by method", + "layout": { + "column": 1, + "row": 2, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.line" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`gcp.storage.api.request_count`) AS 'Request Count' TIMESERIES AUTO FACET gcp.storage.method" + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "yAxisLeft": { + "zero": true + } + } + }, + { + "title": "Received bytes count by method", + "layout": { + "column": 5, + "row": 2, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.line" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT sum(`gcp.storage.network.received_bytes_count`) AS 'Received bytes count' TIMESERIES AUTO FACET gcp.storage.method" + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "yAxisLeft": { + "zero": true + } + } + }, + { + "title": "Sent bytes count by response code", + "layout": { + "column": 9, + "row": 2, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.line" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`gcp.storage.network.sent_bytes_count`) AS 'Sent bytes count' TIMESERIES AUTO FACET gcp.storage.responseCode" + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "yAxisLeft": { + "zero": true + } + } + }, + { + "title": "Request count by response code", + "layout": { + "column": 1, + "row": 5, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.line" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`gcp.storage.api.request_count`) AS 'Request Count' TIMESERIES AUTO FACET gcp.storage.responseCode" + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "yAxisLeft": { + "zero": true + } + } + }, + { + "title": "Received bytes count by response code", + "layout": { + "column": 5, + "row": 5, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.line" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT sum(`gcp.storage.network.received_bytes_count`) AS 'Received bytes count' TIMESERIES AUTO FACET gcp.storage.responseCode" + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "yAxisLeft": { + "zero": true + }, + "yAxisRight": { + "zero": true + } + } + }, + { + "title": "Sent bytes count by method", + "layout": { + "column": 9, + "row": 5, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.line" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`gcp.storage.network.sent_bytes_count`) AS 'Sent bytes count' TIMESERIES AUTO FACET gcp.storage.method" + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "yAxisLeft": { + "zero": true + } + } + } + ] + } + ], + "variables": [] +} diff --git a/dashboards/gcp-cloud-storage/gcp-cloud-storage.png b/dashboards/gcp-cloud-storage/gcp-cloud-storage.png new file mode 100644 index 0000000000..3011336fe1 Binary files /dev/null and b/dashboards/gcp-cloud-storage/gcp-cloud-storage.png differ diff --git a/dashboards/gcp-composer/gcp-composer.json b/dashboards/gcp-composer/gcp-composer.json new file mode 100644 index 0000000000..cdeb830bda --- /dev/null +++ b/dashboards/gcp-composer/gcp-composer.json @@ -0,0 +1,242 @@ +{ + "name": "GCP Composer Workflows", + "description": null, + "pages": [ + { + "name": "GCP Composer Workflows", + "description": null, + "widgets": [ + { + "title": "Summary", + "layout": { + "column": 1, + "row": 1, + "width": 7, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.billboard" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "SELECT SUM(`workflow.Run`) AS 'Total Workflow Runs', AVERAGE(`workflow.RunDuration`) AS 'Average Workflow Run Duration', SUM(`workflow.task.Run`) AS 'Total Workflow Task Runs', AVERAGE(`workflow.task.RunDuration`) AS 'Average Workflow Task Run Duration' FROM GcpComposerWorkflowSample " + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "", + "layout": { + "column": 8, + "row": 1, + "width": 5, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.markdown" + }, + "rawConfiguration": { + "text": "# GCP Composer Workflow\nComposer is a fully managed workflow orchestration service, enabling you to create, schedule, monitor, and manage workflow pipelines that span across clouds and on-premises data centers." + } + }, + { + "title": "Workflow runs per image version", + "layout": { + "column": 1, + "row": 4, + "width": 7, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.pie" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": true + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "SELECT SUM(`workflow.Run`) AS 'Total Workflow Runs' FROM GcpComposerWorkflowSample FACET image_version" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "Workflow runs by state", + "layout": { + "column": 8, + "row": 4, + "width": 5, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.pie" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": true + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "SELECT SUM(`workflow.Run`) AS 'Total Workflow Runs' FROM GcpComposerWorkflowSample FACET state" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "Workflow run duration by image version and state", + "layout": { + "column": 1, + "row": 7, + "width": 12, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.area" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "SELECT AVERAGE(`workflow.RunDuration`) AS 'Average Workflow Run Duration' FROM GcpComposerWorkflowSample FACET image_version, state TIMESERIES AUTO " + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "units": { + "unit": "SECONDS" + } + } + }, + { + "title": "Workflow task runs by image version", + "layout": { + "column": 1, + "row": 10, + "width": 7, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.pie" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": true + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "SELECT SUM(`workflow.task.Run`) AS 'Total Workflow Task Runs' FROM GcpComposerWorkflowSample FACET image_version" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "Workflow task runs by state", + "layout": { + "column": 8, + "row": 10, + "width": 5, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.pie" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": true + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "SELECT SUM(`workflow.task.Run`) AS 'Total Workflow Task Runs' FROM GcpComposerWorkflowSample FACET state" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "Workflow task run duration by image version and state", + "layout": { + "column": 1, + "row": 13, + "width": 12, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.area" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "SELECT AVERAGE(`workflow.task.RunDuration`) AS 'Average Workflow Task Run Duration' FROM GcpComposerWorkflowSample TIMESERIES AUTO FACET image_version, state" + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "units": { + "unit": "SECONDS" + } + } + } + ] + } + ], + "variables": [] +} diff --git a/dashboards/gcp-composer/gcp-composer.png b/dashboards/gcp-composer/gcp-composer.png new file mode 100644 index 0000000000..7e335aeb14 Binary files /dev/null and b/dashboards/gcp-composer/gcp-composer.png differ diff --git a/dashboards/gcp-compute-engine/gcp-compute-engine.json b/dashboards/gcp-compute-engine/gcp-compute-engine.json new file mode 100644 index 0000000000..38455d822b --- /dev/null +++ b/dashboards/gcp-compute-engine/gcp-compute-engine.json @@ -0,0 +1,392 @@ +{ + "name": "GCP_ComputeEngine", + "description": null, + "pages": [ + { + "name": "GCP_ComputeEngine", + "description": null, + "widgets": [ + { + "title": "Summary", + "layout": { + "column": 1, + "row": 1, + "width": 7, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.billboard" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`gcp.compute.instance.cpu.utilization`) AS 'Total CPU Utilization', SUM(`gcp.compute.instance.cpu.reserved_cores`) AS 'Total Reserved Cores', SUM(`gcp.compute.instance.network.received_bytes_count`) AS 'Total Received Bytes', SUM(`gcp.compute.instance.network.sent_bytes_count`) AS 'Total Sent Bytes'" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "", + "layout": { + "column": 8, + "row": 1, + "width": 5, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.markdown" + }, + "rawConfiguration": { + "text": "# Google Compute Engine\nGoogle Compute Engine lets you create and run virtual machines on Google infrastructure. Compute Engine offers scale, performance, and value that allows you to easily launch large compute clusters on Google's infrastructure. There are no upfront investments and you can run thousands of virtual CPUs on a system that has been designed to be fast, and to offer strong consistency of performance.\n\nDashboard version 1.0.0\n\nEach chart is reporting every minute." + } + }, + { + "title": "CPU utilization per instance", + "layout": { + "column": 1, + "row": 4, + "width": 6, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.line" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": true + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT AVERAGE(`gcp.compute.instance.cpu.utilization`) AS 'Average CPU Utilization' TIMESERIES AUTO FACET gcp.compute.instanceName" + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "units": { + "unit": "PERCENTAGE" + }, + "yAxisLeft": { + "zero": true + }, + "yAxisRight": { + "zero": true + } + } + }, + { + "title": "Reserved cores per instance", + "layout": { + "column": 7, + "row": 4, + "width": 6, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.pie" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": true + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT AVERAGE(`gcp.compute.instance.cpu.reserved_cores`) AS 'Average CPU Reserved Cores' FACET gcp.compute.instanceName" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "Instances per status", + "layout": { + "column": 1, + "row": 7, + "width": 5, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.line" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT uniqueCount(entity.id) AS 'Instances' WHERE metricName='gcp.compute.instance.cpu.utilization' TIMESERIES AUTO FACET gcp.compute.status" + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "yAxisLeft": { + "zero": true + }, + "yAxisRight": { + "zero": true + } + } + }, + { + "title": "Traffic", + "layout": { + "column": 6, + "row": 7, + "width": 7, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.stacked-bar" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`gcp.compute.instance.network.received_bytes_count`) AS 'Total Received Bytes', SUM(`gcp.compute.instance.network.sent_bytes_count`) AS 'Total Sent Bytes' TIMESERIES AUTO" + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "units": { + "unit": "BYTES" + } + } + }, + { + "title": "Received packets count per instance", + "layout": { + "column": 1, + "row": 10, + "width": 6, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.pie" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": true + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`gcp.compute.instance.network.received_packets_count`) AS 'Total Received Packets' FACET gcp.compute.instanceName" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "Sent packets count per instance", + "layout": { + "column": 7, + "row": 10, + "width": 6, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.pie" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": true + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`gcp.compute.instance.network.sent_packets_count`) AS 'Total Received Packets' FACET gcp.compute.instanceName" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "Firewall dropped packets per instance", + "layout": { + "column": 1, + "row": 13, + "width": 6, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.line" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`gcp.compute.firewall.dropped_packets_count`) AS 'Firewall Dropped Packets' TIMESERIES AUTO FACET gcp.compute.instanceName" + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "yAxisLeft": { + "zero": true + }, + "yAxisRight": { + "zero": true + } + } + }, + { + "title": "Firewall dropped bytes per instance", + "layout": { + "column": 7, + "row": 13, + "width": 6, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.line" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`gcp.compute.firewall.dropped_bytes_count`) AS 'Total Firewall Dropped Bytes' TIMESERIES AUTO FACET gcp.compute.instanceName" + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "units": { + "unit": "BYTES" + }, + "yAxisLeft": { + "zero": true + }, + "yAxisRight": { + "zero": true + } + } + }, + { + "title": "Disk read/write bytes ", + "layout": { + "column": 1, + "row": 16, + "width": 6, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.stacked-bar" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`gcp.compute.instance.disk.read_bytes_count`) AS 'Total Disk Read Bytes', SUM(`gcp.compute.instance.disk.write_bytes_count`) AS 'Total Disk Write Bytes' TIMESERIES AUTO" + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "units": { + "unit": "BYTES" + } + } + }, + { + "title": "Disk read/write operations ", + "layout": { + "column": 7, + "row": 16, + "width": 6, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.stacked-bar" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`gcp.compute.instance.disk.read_ops_count`) AS 'Total Disk Read Operations', SUM(`gcp.compute.instance.disk.write_ops_count`) AS 'Total Disk Write Operations' TIMESERIES AUTO " + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + } + ] + } + ], + "variables": [] +} diff --git a/dashboards/gcp-compute-engine/gcp-compute-engine.png b/dashboards/gcp-compute-engine/gcp-compute-engine.png new file mode 100644 index 0000000000..b32702355c Binary files /dev/null and b/dashboards/gcp-compute-engine/gcp-compute-engine.png differ diff --git a/dashboards/gcp-data-flow/gcp-data-flow.json b/dashboards/gcp-data-flow/gcp-data-flow.json new file mode 100644 index 0000000000..f59d2b5baa --- /dev/null +++ b/dashboards/gcp-data-flow/gcp-data-flow.json @@ -0,0 +1,314 @@ +{ + "name": "GCP Dataflow", + "description": null, + "pages": [ + { + "name": "GCP Dataflow", + "description": null, + "widgets": [ + { + "title": "Summary", + "layout": { + "column": 1, + "row": 1, + "width": 7, + "height": 2 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.billboard" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`gcp.dataflow.job.is_failed`) AS 'Total Failed Jobs', SUM(`gcp.dataflow.job.total_vcpu_time`) AS 'Total vCPU Time', SUM(`gcp.dataflow.job.total_memory_usage_time`) AS 'Total Memory Usage Time', SUM(`gcp.dataflow.job.total_pd_usage_time`) AS 'Total PD usage time'" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "", + "layout": { + "column": 8, + "row": 1, + "width": 5, + "height": 2 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.markdown" + }, + "rawConfiguration": { + "text": "# Google Dataflow\nDataflow is a managed service for executing a wide variety of data processing patterns. The documentation on this site shows you how to deploy your batch and streaming data processing pipelines using Dataflow, including directions for using service features." + } + }, + { + "title": "Estimated bytes by PCollection", + "layout": { + "column": 1, + "row": 3, + "width": 7, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.pie" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": true + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`gcp.dataflow.job.estimated_byte_count`) AS 'Total Estimated Bytes' FACET gcp.dataflow.pcollection" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "Data processed", + "layout": { + "column": 8, + "row": 3, + "width": 5, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.line" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`gcp.dataflow.job.total_streaming_data_processed`) AS 'Total Streaming Data Processed', SUM(`gcp.dataflow.job.total_shuffle_data_processed`) AS 'Total Shuffle Data Processed', SUM(`gcp.dataflow.job.billable_shuffle_data_processed`) AS 'Total Billable Shuffle Data Processed' TIMESERIES AUTO" + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "units": { + "unit": "BYTES" + }, + "yAxisLeft": { + "zero": true + }, + "yAxisRight": { + "zero": true + } + } + }, + { + "title": "Total vCPU time", + "layout": { + "column": 1, + "row": 6, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.line" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT AVERAGE(`gcp.dataflow.job.total_vcpu_time`) AS 'Total vCPU Time' TIMESERIES AUTO" + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "units": { + "unit": "SECONDS" + }, + "yAxisLeft": { + "zero": true + }, + "yAxisRight": { + "zero": true + } + } + }, + { + "title": "Memory usage time", + "layout": { + "column": 5, + "row": 6, + "width": 3, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.line" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT AVERAGE(`gcp.dataflow.job.total_memory_usage_time`) AS 'Total Memory Usage Time(GB Seconds)' TIMESERIES AUTO" + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "yAxisLeft": { + "zero": true + }, + "yAxisRight": { + "zero": true + } + } + }, + { + "title": "Elapsed time by job id", + "layout": { + "column": 8, + "row": 6, + "width": 5, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.line" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`gcp.dataflow.job.elapsed_time`) AS 'Total Elapsed Time' TIMESERIES AUTO FACET gcp.dataflow.job_id" + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "units": { + "unit": "SECONDS" + }, + "yAxisLeft": { + "zero": true + }, + "yAxisRight": { + "zero": true + } + } + }, + { + "title": "PD usage time by storage type", + "layout": { + "column": 1, + "row": 9, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.line" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT AVERAGE(`gcp.dataflow.job.total_pd_usage_time`) AS 'Total PD Usage Time(GB Seconds)' TIMESERIES AUTO FACET gcp.dataflow.storage_type" + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "yAxisLeft": { + "zero": true + }, + "yAxisRight": { + "zero": true + } + } + }, + { + "title": "Data watermark lag", + "layout": { + "column": 5, + "row": 9, + "width": 3, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.line" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT AVERAGE(`gcp.dataflow.job.data_watermark_age`) AS 'Average Data Watermark Lag' TIMESERIES AUTO" + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "units": { + "unit": "SECONDS" + }, + "yAxisLeft": { + "zero": true + }, + "yAxisRight": { + "zero": true + } + } + } + ] + } + ], + "variables": [] +} diff --git a/dashboards/gcp-data-flow/gcp-data-flow.png b/dashboards/gcp-data-flow/gcp-data-flow.png new file mode 100644 index 0000000000..c928f45fde Binary files /dev/null and b/dashboards/gcp-data-flow/gcp-data-flow.png differ diff --git a/dashboards/gcp-data-proc/gcp-data-proc.json b/dashboards/gcp-data-proc/gcp-data-proc.json new file mode 100644 index 0000000000..eca7fa7e46 --- /dev/null +++ b/dashboards/gcp-data-proc/gcp-data-proc.json @@ -0,0 +1,398 @@ +{ + "name": "GCP Dataproc", + "description": null, + "pages": [ + { + "name": "GCP Dataproc", + "description": null, + "widgets": [ + { + "title": "Summary", + "layout": { + "column": 1, + "row": 1, + "width": 8, + "height": 4 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.billboard" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`gcp.dataproc.cluster.job.running_count`) AS 'Total Running Jobs', SUM(`gcp.dataproc.cluster.operation.running_count`) AS 'Total Running Operations', SUM(`gcp.dataproc.cluster.hdfs.datanodes`) AS 'Total HDFS Nodes', SUM(`gcp.dataproc.cluster.job.failed_count`) AS 'Total Failed Jobs', SUM(`gcp.dataproc.cluster.operation.failed_count`) AS 'Total Failed Operations', SUM(`gcp.dataproc.cluster.hdfs.unhealthy_blocks`) AS 'Total Unhealthy Blocks'" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "", + "layout": { + "column": 9, + "row": 1, + "width": 4, + "height": 4 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.markdown" + }, + "rawConfiguration": { + "text": "# Google Dataproc\nDataproc is a managed Spark and Hadoop service that lets you take advantage of open source data tools for batch processing, querying, streaming, and machine learning. Dataproc automation helps you create clusters quickly, manage them easily, and save money by turning clusters off when you don't need them. With less time and money spent on administration, you can focus on your jobs and your data." + } + }, + { + "title": "Job completion time by job type", + "layout": { + "column": 1, + "row": 5, + "width": 6, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.line" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT AVERAGE(`gcp.dataproc.cluster.job.completion_time`) AS 'Average Job Completion Time' TIMESERIES AUTO FACET gcp.dataproc.job_type" + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "units": { + "unit": "SECONDS" + }, + "yAxisLeft": { + "zero": true + }, + "yAxisRight": { + "zero": true + } + } + }, + { + "title": "Job duration by job type", + "layout": { + "column": 7, + "row": 5, + "width": 6, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.line" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT AVERAGE(`gcp.dataproc.cluster.job.duration`) AS 'Average Job Duration' TIMESERIES AUTO FACET gcp.dataproc.job_type" + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "units": { + "unit": "SECONDS" + }, + "yAxisLeft": { + "zero": true + }, + "yAxisRight": { + "zero": true + } + } + }, + { + "title": "Operation completion time by operation type", + "layout": { + "column": 1, + "row": 8, + "width": 6, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.line" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`gcp.dataproc.cluster.operation.completion_time`) AS 'Total Operation Completion Time' TIMESERIES AUTO FACET gcp.dataproc.operation_type" + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "units": { + "unit": "SECONDS" + }, + "yAxisLeft": { + "zero": true + }, + "yAxisRight": { + "zero": true + } + } + }, + { + "title": "Operation duration by state", + "layout": { + "column": 7, + "row": 8, + "width": 6, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.line" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`gcp.dataproc.cluster.operation.duration`) AS 'Total Operation Duration' TIMESERIES AUTO FACET gcp.dataproc.state" + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "units": { + "unit": "SECONDS" + }, + "yAxisLeft": { + "zero": true + }, + "yAxisRight": { + "zero": true + } + } + }, + { + "title": "Memory size by status (GB)", + "layout": { + "column": 1, + "row": 11, + "width": 6, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.pie" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": true + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`gcp.dataproc.cluster.yarn.memory_size`) AS 'Total Memory Size' FACET gcp.dataproc.status" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "Storage utilization", + "layout": { + "column": 7, + "row": 11, + "width": 6, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.area" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT AVERAGE(`gcp.dataproc.cluster.hdfs.storage_utilization`) AS 'Average Storage Utilization' TIMESERIES AUTO" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "Yarn containers by status", + "layout": { + "column": 1, + "row": 14, + "width": 5, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.pie" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": true + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`gcp.dataproc.cluster.yarn.containers`) AS 'Total Yarn Containers' FACET gcp.dataproc.status" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "Yarn allocated memory percentage", + "layout": { + "column": 6, + "row": 14, + "width": 7, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.line" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT AVERAGE(`gcp.dataproc.cluster.yarn.allocated_memory_percentage`) AS 'Average Yarn Allocation Memory Percentage' TIMESERIES AUTO " + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "yAxisLeft": { + "zero": true + }, + "yAxisRight": { + "zero": true + } + } + }, + { + "title": "Yarn apps by status", + "layout": { + "column": 1, + "row": 17, + "width": 7, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.pie" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": true + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`gcp.dataproc.cluster.yarn.apps`) AS 'Total Yarn Apps' FACET gcp.dataproc.status" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "Yarn nodemanagers by status", + "layout": { + "column": 8, + "row": 17, + "width": 5, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.pie" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": true + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`gcp.dataproc.cluster.yarn.nodemanagers`) AS 'Total Yarn NodeManagers' FACET gcp.dataproc.status" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + } + ] + } + ], + "variables": [] +} diff --git a/dashboards/gcp-data-proc/gcp-data-proc.png b/dashboards/gcp-data-proc/gcp-data-proc.png new file mode 100644 index 0000000000..0fca144d6f Binary files /dev/null and b/dashboards/gcp-data-proc/gcp-data-proc.png differ diff --git a/dashboards/gcp-data-store/gcp-data-store.json b/dashboards/gcp-data-store/gcp-data-store.json new file mode 100644 index 0000000000..f3d8e52004 --- /dev/null +++ b/dashboards/gcp-data-store/gcp-data-store.json @@ -0,0 +1,224 @@ +{ + "name": "GCP Datastore", + "description": null, + "pages": [ + { + "name": "GCP Datastore", + "description": null, + "widgets": [ + { + "title": "Summary", + "layout": { + "column": 1, + "row": 1, + "width": 7, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.billboard" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`gcp.datastore.api.request_count`) AS 'Total Requests', SUM(`gcp.datastore.entity.read_sizes`) AS 'Total Size of Read Entities', SUM(`gcp.datastore.entity.write_sizes`) AS 'Total Size of Write Entities', SUM(`gcp.datastore.index.write_count`) AS 'Total Index Writes'" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "", + "layout": { + "column": 8, + "row": 1, + "width": 5, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.markdown" + }, + "rawConfiguration": { + "text": "# Google Datastore\nDatastore is a NoSQL document database built for automatic scaling, high performance, and ease of application development." + } + }, + { + "title": "Size of read entity by type", + "layout": { + "column": 1, + "row": 4, + "width": 6, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.pie" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`gcp.datastore.entity.read_sizes`) AS 'Total Size of Read Entity' FACET gcp.datastore.type" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "Size of write entity by operation", + "layout": { + "column": 7, + "row": 4, + "width": 6, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.pie" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`gcp.datastore.entity.write_sizes`) AS 'Total Size of Write Entity' FACET gcp.datastore.op" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "API requests by API method", + "layout": { + "column": 1, + "row": 7, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.line" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`gcp.datastore.api.request_count`) AS 'Total API Requests' TIMESERIES AUTO FACET gcp.datastore.api_method" + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "yAxisLeft": { + "zero": true + }, + "yAxisRight": { + "zero": true + } + } + }, + { + "title": "API requests by response code", + "layout": { + "column": 5, + "row": 7, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.line" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`gcp.datastore.api.request_count`) AS 'Total API Requests' TIMESERIES AUTO FACET gcp.datastore.response_code" + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "yAxisLeft": { + "zero": true + }, + "yAxisRight": { + "zero": true + } + } + }, + { + "title": "Index writes", + "layout": { + "column": 9, + "row": 7, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.line" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`gcp.datastore.index.write_count`) AS 'Total Index Writes' TIMESERIES AUTO" + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "yAxisLeft": { + "zero": true + }, + "yAxisRight": { + "zero": true + } + } + } + ] + } + ], + "variables": [] +} diff --git a/dashboards/gcp-data-store/gcp-data-store.png b/dashboards/gcp-data-store/gcp-data-store.png new file mode 100644 index 0000000000..32b0a10bcd Binary files /dev/null and b/dashboards/gcp-data-store/gcp-data-store.png differ diff --git a/dashboards/gcp-firebase-database/gcp-firebase-database.json b/dashboards/gcp-firebase-database/gcp-firebase-database.json new file mode 100644 index 0000000000..f8aceb18f7 --- /dev/null +++ b/dashboards/gcp-firebase-database/gcp-firebase-database.json @@ -0,0 +1,435 @@ +{ + "name": "GCP FirebaseDatabase", + "description": null, + "pages": [ + { + "name": "GCP FirebaseDatabase", + "description": null, + "widgets": [ + { + "title": "Summary", + "layout": { + "column": 1, + "row": 1, + "width": 8, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.billboard" + }, + "rawConfiguration": { + "dataFormatters": [], + "facet": { + "showOtherSeries": false + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`gcp.firebasedatabase.io.sent_responses_count`) AS 'Total Sent Responses', SUM(`gcp.firebasedatabase.network.https_requests_count`) AS 'Total HTTP Requests', SUM(`gcp.firebasedatabase.network.api_hits_count`) AS 'Total API Hits', SUM(`gcp.firebasedatabase.io.persisted_bytes_count`) AS 'Total Persisted Bytes', SUM(`gcp.firebasedatabase.io.utilization`) AS 'Total Storage Utilization', SUM(`gcp.firebasedatabase.network.sent_bytes_count`) AS 'Total Sent Bytes'" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "", + "layout": { + "column": 9, + "row": 1, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.markdown" + }, + "rawConfiguration": { + "text": "# GCP Firebase Database\nThe Firebase Realtime Database is a cloud-hosted database. Data is stored as JSON and synchronized in realtime to every connected client. When you build cross-platform apps with our Apple platforms, Android, and JavaScript SDKs, all of your clients share one Realtime Database instance and automatically receive updates with the newest data." + } + }, + { + "title": "Storage bytes per namespace", + "layout": { + "column": 1, + "row": 4, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.area" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT MAX(`gcp.firebasedatabase.storage.total_bytes`) AS 'Maximum Storage Total Bytes' TIMESERIES AUTO FACET entity.name" + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "units": { + "unit": "BYTES" + } + } + }, + { + "title": "Storage limit per namespace", + "layout": { + "column": 5, + "row": 4, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.area" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT MAX(`gcp.firebasedatabase.storage.limit`) AS 'Maximum Storage Limit' TIMESERIES AUTO FACET entity.name" + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "units": { + "unit": "BYTES" + } + } + }, + { + "title": "Persisted bytes per namespace", + "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": "FROM Metric SELECT MAX(`gcp.firebasedatabase.io.persisted_bytes_count`) AS 'Maximum Persisted Bytes' TIMESERIES AUTO FACET entity.name" + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "units": { + "unit": "BYTES" + } + } + }, + { + "title": "Database load by message type", + "layout": { + "column": 1, + "row": 7, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.area" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT MAX(`gcp.firebasedatabase.io.database_load`) AS 'Maximum Database Load' TIMESERIES AUTO FACET gcp.firebasedatabase.type" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "Broadcast load per namespace", + "layout": { + "column": 5, + "row": 7, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.area" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT MAX(`gcp.firebasedatabase.network.broadcast_load`) AS 'Maximum n/w Broadcast Load' TIMESERIES AUTO FACET entity.name" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "Evaluation by request method", + "layout": { + "column": 9, + "row": 7, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.pie" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": true + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`gcp.firebasedatabase.rules.evaluation_count`) AS 'Total Evolutions Count' FACET gcp.firebasedatabase.request_method" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "HTTP requests per namespace", + "layout": { + "column": 1, + "row": 10, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.pie" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": true + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT MAX(`gcp.firebasedatabase.network.https_requests_count`) AS 'Maximum n/w HTTP Requests' FACET entity.name " + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "API hits per operation", + "layout": { + "column": 5, + "row": 10, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.pie" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": true + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`gcp.firebasedatabase.network.api_hits_count`) AS 'Total API Hits' FACET gcp.firebasedatabase.operation_type" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "Sent responses per namespace", + "layout": { + "column": 9, + "row": 10, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.bar" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT MAX(`gcp.firebasedatabase.io.sent_responses_count`) AS 'Maximum Sent Responses' FACET entity.name" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "Sent bytes per namespace", + "layout": { + "column": 1, + "row": 13, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.stacked-bar" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT MAX(`gcp.firebasedatabase.network.sent_bytes_count`) AS 'Maximun n/w Sent Bytes' TIMESERIES AUTO FACET entity.name" + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "units": { + "unit": "BYTES" + } + } + }, + { + "title": "Monthly sent per namespace", + "layout": { + "column": 5, + "row": 13, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.stacked-bar" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT MAX(`gcp.firebasedatabase.network.monthly_sent`) AS 'Maximum Monthly Sent' TIMESERIES AUTO FACET entity.name" + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "units": { + "unit": "BYTES" + } + } + }, + { + "title": "Monthly sent limit per namespace", + "layout": { + "column": 9, + "row": 13, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.stacked-bar" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT AVERAGE(`gcp.firebasedatabase.network.monthly_sent_limit`) AS 'Monthly Sent Limit' TIMESERIES AUTO FACET entity.name" + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "units": { + "unit": "BYTES" + } + } + } + ] + } + ], + "variables": [] +} diff --git a/dashboards/gcp-firebase-database/gcp-firebase-database.png b/dashboards/gcp-firebase-database/gcp-firebase-database.png new file mode 100644 index 0000000000..67c8a73ef9 Binary files /dev/null and b/dashboards/gcp-firebase-database/gcp-firebase-database.png differ diff --git a/dashboards/gcp-firebase-hosting/gcp-firebase-hosting.json b/dashboards/gcp-firebase-hosting/gcp-firebase-hosting.json new file mode 100644 index 0000000000..09b73a86ee --- /dev/null +++ b/dashboards/gcp-firebase-hosting/gcp-firebase-hosting.json @@ -0,0 +1,235 @@ +{ + "name": "GCP FirebaseHosting", + "description": null, + "pages": [ + { + "name": "GCP FirebaseHosting", + "description": null, + "widgets": [ + { + "title": "Summary", + "layout": { + "column": 1, + "row": 1, + "width": 8, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.billboard" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`gcp.firebasehosting.storage.total_bytes`) AS 'Total Storage', SUM(`gcp.firebasehosting.storage.limit`) AS 'Total Storage Limit', SUM(`gcp.firebasehosting.network.sent_bytes_count`) AS 'Total Sent Bytes'" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "", + "layout": { + "column": 9, + "row": 1, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.markdown" + }, + "rawConfiguration": { + "text": "# GCP Firebase Hosting\nFirebase Hosting is production-grade web content hosting for developers. With a single command, you can quickly deploy web apps and serve both static and dynamic content to a global CDN (content delivery network)." + } + }, + { + "title": "Storage per domain", + "layout": { + "column": 1, + "row": 4, + "width": 6, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.area" + }, + "rawConfiguration": { + "colors": { + "seriesOverrides": [ + { + "color": "#7fa7e6", + "seriesName": "domain:infrastructure-ui-xrg:infrastructure-ui-xrg:infrastructure-ui-xrg" + } + ] + }, + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`gcp.firebasehosting.storage.total_bytes`) AS 'Total Storage' TIMESERIES AUTO FACET entity.name" + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "units": { + "unit": "BYTES" + } + } + }, + { + "title": "Storage limit per domain", + "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": "FROM Metric SELECT MAX(`gcp.firebasehosting.storage.limit`) AS 'Maximum Storage Limit' TIMESERIES AUTO FACET entity.name" + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "units": { + "unit": "BYTES" + }, + "yAxisLeft": { + "zero": true + }, + "yAxisRight": { + "zero": true + } + } + }, + { + "title": "Sent bytes per domain", + "layout": { + "column": 1, + "row": 7, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.stacked-bar" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`gcp.firebasehosting.network.sent_bytes_count`) AS 'Total Network Sent bytes' TIMESERIES AUTO FACET entity.name" + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "units": { + "unit": "BYTES" + } + } + }, + { + "title": "Monthly sent per domain", + "layout": { + "column": 5, + "row": 7, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.stacked-bar" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`gcp.firebasehosting.network.monthly_sent`) AS 'Total Monthly Sent' TIMESERIES AUTO FACET entity.name" + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "units": { + "unit": "BYTES" + } + } + }, + { + "title": "Monthly sent limit per domain", + "layout": { + "column": 9, + "row": 7, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.stacked-bar" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`gcp.firebasehosting.network.monthly_sent_limit`) AS 'Total Monthly Sent Limit' TIMESERIES AUTO FACET entity.name" + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "units": { + "unit": "BYTES" + } + } + } + ] + } + ], + "variables": [] +} diff --git a/dashboards/gcp-firebase-hosting/gcp-firebase-hosting.png b/dashboards/gcp-firebase-hosting/gcp-firebase-hosting.png new file mode 100644 index 0000000000..c229aef60a Binary files /dev/null and b/dashboards/gcp-firebase-hosting/gcp-firebase-hosting.png differ diff --git a/dashboards/gcp-load-balancer/gcp-load-balancer.json b/dashboards/gcp-load-balancer/gcp-load-balancer.json new file mode 100644 index 0000000000..0658c068af --- /dev/null +++ b/dashboards/gcp-load-balancer/gcp-load-balancer.json @@ -0,0 +1,440 @@ +{ + "name": "GCP Application Load Balancer", + "description": null, + "pages": [ + { + "name": "Application Load Balancer", + "description": null, + "widgets": [ + { + "title": "Summary", + "layout": { + "column": 1, + "row": 1, + "width": 7, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.billboard" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`gcp.loadbalancing.https.request_count`) AS 'Total Requests', SUM(`gcp.loadbalancing.https.request_bytes_count`) AS 'Total Request Bytes', SUM(`gcp.loadbalancing.https.backend_request_count`) AS 'Total Backend Requests', SUM(`gcp.loadbalancing.https.backend_response_bytes_count`) AS 'Total Backend Response Bytes'" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "", + "layout": { + "column": 8, + "row": 1, + "width": 5, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.markdown" + }, + "rawConfiguration": { + "text": "# Application Load Balancer\nThe Application Load Balancer is a proxy-based Layer 7 load balancer that enables you to run and scale your services. The Application Load Balancer distributes HTTP and HTTPS traffic to backends hosted on a variety of Google Cloud platforms—such as Compute Engine, Google Kubernetes Engine (GKE), Cloud Storage, and Cloud Run—as well as external backends connected over the internet or by using hybrid connectivity." + } + }, + { + "title": "Latency by protocol", + "layout": { + "column": 1, + "row": 4, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.area" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT AVERAGE(`gcp.loadbalancing.https.total_latencies`) AS 'Average Latency' TIMESERIES AUTO FACET gcp.loadbalancing.protocol" + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "units": { + "unit": "MS" + } + } + }, + { + "title": "Latency by response code class", + "layout": { + "column": 5, + "row": 4, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.area" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT AVERAGE(`gcp.loadbalancing.https.total_latencies`) AS 'Average Latency' TIMESERIES AUTO FACET gcp.loadbalancing.responseCodeClass" + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "units": { + "unit": "MS" + } + } + }, + { + "title": "Latency by cache result", + "layout": { + "column": 9, + "row": 4, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.area" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT AVERAGE(`gcp.loadbalancing.https.total_latencies`) AS 'Average Latency' TIMESERIES AUTO FACET gcp.loadbalancing.cacheResult" + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "units": { + "unit": "MS" + } + } + }, + { + "title": "Backend latency by response code class", + "layout": { + "column": 1, + "row": 7, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.area" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT AVERAGE(`gcp.loadbalancing.https.backend_latencies`) AS 'Average Latency' TIMESERIES AUTO FACET gcp.loadbalancing.responseCodeClass" + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "units": { + "unit": "MS" + } + } + }, + { + "title": "Backend latency by cache result", + "layout": { + "column": 5, + "row": 7, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.area" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT AVERAGE(`gcp.loadbalancing.https.backend_latencies`) AS 'Average Latency' TIMESERIES AUTO FACET gcp.loadbalancing.cacheResult" + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "units": { + "unit": "MS" + } + } + }, + { + "title": "Backend latency by protocol", + "layout": { + "column": 9, + "row": 7, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.area" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT AVERAGE(`gcp.loadbalancing.https.backend_latencies`) AS 'Average Latency' TIMESERIES AUTO FACET gcp.loadbalancing.protocol" + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "units": { + "unit": "MS" + } + } + }, + { + "title": "Frontend RTT", + "layout": { + "column": 1, + "row": 10, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.area" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT AVERAGE(`gcp.loadbalancing.https.frontend_tcp_rtt`) AS 'Average Frontend RTT' TIMESERIES AUTO" + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "units": { + "unit": "MS" + } + } + }, + { + "title": "Traffic", + "layout": { + "column": 5, + "row": 10, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.line" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`gcp.loadbalancing.https.request_bytes_count`) AS 'Total Request Bytes', SUM(`gcp.loadbalancing.https.response_bytes_count`) AS 'Total Response Bytes' TIMESERIES AUTO" + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "units": { + "unit": "BYTES" + }, + "yAxisLeft": { + "zero": true + } + } + }, + { + "title": "Backend traffic", + "layout": { + "column": 9, + "row": 10, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.line" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`gcp.loadbalancing.https.backend_request_bytes_count`) AS 'Total Backend Request Bytes', SUM(`gcp.loadbalancing.https.backend_response_bytes_count`) AS 'Total Backend Response Bytes' TIMESERIES AUTO" + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "units": { + "unit": "BYTES" + }, + "yAxisLeft": { + "zero": true + }, + "yAxisRight": { + "zero": true + } + } + }, + { + "title": "Response bytes by response code class", + "layout": { + "column": 1, + "row": 13, + "width": 6, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.line" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`gcp.loadbalancing.https.response_bytes_count`) AS 'Total Response Bytes' TIMESERIES AUTO FACET gcp.loadbalancing.responseCodeClass" + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "units": { + "unit": "BYTES" + }, + "yAxisLeft": { + "zero": true + }, + "yAxisRight": { + "zero": true + } + } + }, + { + "title": "Backend response bytes by response code class", + "layout": { + "column": 7, + "row": 13, + "width": 6, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.line" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`gcp.loadbalancing.https.backend_response_bytes_count`) AS 'Total Backend Response Bytes' TIMESERIES AUTO FACET gcp.loadbalancing.responseCodeClass" + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "units": { + "unit": "BYTES" + }, + "yAxisLeft": { + "zero": true + }, + "yAxisRight": { + "zero": true + } + } + } + ] + } + ], + "variables": [] +} diff --git a/dashboards/gcp-load-balancer/gcp-load-balancer.png b/dashboards/gcp-load-balancer/gcp-load-balancer.png new file mode 100644 index 0000000000..6c339d9582 Binary files /dev/null and b/dashboards/gcp-load-balancer/gcp-load-balancer.png differ diff --git a/dashboards/gcp-memcached/gcp-memcache.json b/dashboards/gcp-memcached/gcp-memcache.json new file mode 100644 index 0000000000..c375949964 --- /dev/null +++ b/dashboards/gcp-memcached/gcp-memcache.json @@ -0,0 +1,272 @@ +{ + "name": "GCP Memcache", + "description": null, + "pages": [ + { + "name": "GCP Memcache", + "description": null, + "widgets": [ + { + "title": "Summary", + "layout": { + "column": 1, + "row": 1, + "width": 7, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.billboard" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "SELECT SUM(`node.ActiveConnections`) AS 'Total Active Connections', SUM(`node.Items`) AS 'Total Items Stored in Node', SUM(`node.SentBytes`) AS 'Total Node Sent Bytes', SUM(`node.ReceivedBytes`) AS 'Total Node Received Bytes' FROM GcpMemcacheMemcacheNodeSample" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "", + "layout": { + "column": 8, + "row": 1, + "width": 5, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.markdown" + }, + "rawConfiguration": { + "text": "# Google Memcached(Memorystore)\nMemorystore for Memcached is a fully managed Memcached service for Google Cloud. Applications running on Google Cloud can achieve extreme performance by leveraging the highly scalable, available, secure Memcached service without the burden of managing complex Memcached deployments." + } + }, + { + "title": "CPU utilization", + "layout": { + "column": 1, + "row": 4, + "width": 6, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.area" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "SELECT AVERAGE(`node.cpu.Utilization`)/100 AS 'Average CPU Utilization' FROM GcpMemcacheMemcacheNodeSample TIMESERIES AUTO " + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "units": { + "unit": "PERCENTAGE" + } + } + }, + { + "title": "CPU usage time", + "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(`node.cpu.UsageTime`) AS 'Average CPU Usage Time' FROM GcpMemcacheMemcacheNodeSample TIMESERIES AUTO FACET mode " + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "units": { + "unit": "SECONDS" + }, + "yAxisLeft": { + "zero": true + }, + "yAxisRight": { + "zero": true + } + } + }, + { + "title": "Hit ratio", + "layout": { + "column": 1, + "row": 7, + "width": 7, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.area" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": " SELECT AVERAGE(`node.HitRatio`)/100 AS 'Average Hit Ratio' FROM GcpMemcacheMemcacheNodeSample TIMESERIES AUTO " + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "units": { + "unit": "PERCENTAGE" + } + } + }, + { + "title": "Uptime", + "layout": { + "column": 8, + "row": 7, + "width": 5, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.line" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": " SELECT AVERAGE(`node.Uptime`) AS 'Average Uptime' FROM GcpMemcacheMemcacheNodeSample TIMESERIES AUTO " + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "units": { + "unit": "SECONDS" + }, + "yAxisLeft": { + "zero": true + }, + "yAxisRight": { + "zero": true + } + } + }, + { + "title": "Traffic", + "layout": { + "column": 1, + "row": 10, + "width": 6, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.stacked-bar" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "SELECT SUM(`node.SentBytes`) AS 'Total Sent Bytes', SUM(`node.ReceivedBytes`) AS 'Total Received Bytes' FROM GcpMemcacheMemcacheNodeSample TIMESERIES AUTO " + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "units": { + "unit": "BYTES" + } + } + }, + { + "title": "Cache memory usage", + "layout": { + "column": 7, + "row": 10, + "width": 6, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.line" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "SELECT SUM(`node.CacheMemory`) AS 'Total Cache Memory Usage' FROM GcpMemcacheMemcacheNodeSample TIMESERIES AUTO FACET used" + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "units": { + "unit": "BYTES" + }, + "yAxisLeft": { + "zero": true + }, + "yAxisRight": { + "zero": true + } + } + } + ] + } + ], + "variables": [] +} diff --git a/dashboards/gcp-memcached/gcp-memcache.png b/dashboards/gcp-memcached/gcp-memcache.png new file mode 100644 index 0000000000..44895f51ac Binary files /dev/null and b/dashboards/gcp-memcached/gcp-memcache.png differ diff --git a/dashboards/gcp-redis/gcp-redis.json b/dashboards/gcp-redis/gcp-redis.json new file mode 100644 index 0000000000..5de35fbdff --- /dev/null +++ b/dashboards/gcp-redis/gcp-redis.json @@ -0,0 +1,467 @@ +{ + "name": "GCP Redis", + "description": null, + "pages": [ + { + "name": "GCP Redis", + "description": null, + "widgets": [ + { + "title": "Summary", + "layout": { + "column": 1, + "row": 1, + "width": 7, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.billboard" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`gcp.redis.instance.clients.connected`) AS 'Total Connected Clients', SUM(`gcp.redis.instance.clients.blocked`) AS 'Total Blocked Clients', SUM(`gcp.redis.instance.commands.calls`) AS 'Total Command Calls', SUM(`gcp.redis.instance.stats.connections.total`) AS 'Total Connections'" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "", + "layout": { + "column": 8, + "row": 1, + "width": 5, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.markdown" + }, + "rawConfiguration": { + "text": "# Google Redis Instance\nMemorystore for Redis provides a fully-managed service that is powered by the Redis in-memory data store to build application caches that provide sub-millisecond data access." + } + }, + { + "title": "CPU utilization by relationship", + "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": "FROM Metric SELECT AVERAGE(`gcp.redis.instance.stats.cpuUtilization`) AS 'Average CPU Utilization' TIMESERIES AUTO FACET gcp.redis.relationship" + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "units": { + "unit": "PERCENTAGE" + }, + "yAxisLeft": { + "zero": true + }, + "yAxisRight": { + "zero": true + } + } + }, + { + "title": "Memory usage", + "layout": { + "column": 5, + "row": 4, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.line" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT AVERAGE(`gcp.redis.instance.stats.memory.usage`) AS 'Average Memory Usage' TIMESERIES AUTO FACET gcp.redis.role" + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "units": { + "unit": "BYTES" + }, + "yAxisLeft": { + "zero": true + }, + "yAxisRight": { + "zero": true + } + } + }, + { + "title": "Cache hit ratio", + "layout": { + "column": 9, + "row": 4, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.area" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT AVERAGE(`gcp.redis.instance.stats.cacheHitRatio`) AS 'Average Cache Hit Ratio' TIMESERIES AUTO" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "Network traffic by direction", + "layout": { + "column": 1, + "row": 7, + "width": 6, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.stacked-bar" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`gcp.redis.instance.stats.networkTraffic`) AS 'Total Network Traffic' TIMESERIES AUTO FACET gcp.redis.direction" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "Network traffic by role", + "layout": { + "column": 7, + "row": 7, + "width": 6, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.stacked-bar" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`gcp.redis.instance.stats.networkTraffic`) AS 'Total Network Traffic' TIMESERIES AUTO FACET gcp.redis.role" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "Clients by role", + "layout": { + "column": 1, + "row": 10, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.pie" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": true + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`gcp.redis.instance.clients.connected`) AS 'Total Connected Clients', SUM(`gcp.redis.instance.clients.blocked`) AS 'Total Blocked Clients' FACET gcp.redis.role" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "Keys by role", + "layout": { + "column": 5, + "row": 10, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.line" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT MAX(`gcp.redis.instance.keyspace.keys`) AS 'Maximum Keys' TIMESERIES AUTO FACET gcp.redis.role" + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "yAxisLeft": { + "zero": true + }, + "yAxisRight": { + "zero": true + } + } + }, + { + "title": "Connections by role", + "layout": { + "column": 9, + "row": 10, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.pie" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": true + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`gcp.redis.instance.stats.connections.total`) AS 'Total Connections' FACET gcp.redis.role" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "Replication byte offset", + "layout": { + "column": 1, + "row": 13, + "width": 6, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.line" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT AVERAGE(`gcp.redis.instance.replication.master.slaves.offset`) AS 'Average Replication Byte Offset(Slaves)', AVERAGE(`gcp.redis.instance.replication.masterReplOffset`) AS 'Average Replication Byte Offset(Master)' TIMESERIES AUTO FACET gcp.redis.slave" + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "units": { + "unit": "BYTES" + }, + "yAxisLeft": { + "zero": true + }, + "yAxisRight": { + "zero": true + } + } + }, + { + "title": "Command calls by cmd", + "layout": { + "column": 7, + "row": 13, + "width": 6, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.pie" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": true + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`gcp.redis.instance.commands.calls`) AS 'Total Command Calls' FACET gcp.redis.cmd" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "System memory usage ratio", + "layout": { + "column": 1, + "row": 16, + "width": 6, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.line" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT AVERAGE(`gcp.redis.instance.stats.memory.systemMemoryUsageRatio`) AS 'Average System Memory Usage Ratio' TIMESERIES AUTO FACET gcp.redis.role" + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "units": { + "unit": "PERCENTAGE" + }, + "yAxisLeft": { + "zero": true + }, + "yAxisRight": { + "zero": true + } + } + }, + { + "title": "Memory usage ratio", + "layout": { + "column": 7, + "row": 16, + "width": 6, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.line" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT AVERAGE(`gcp.redis.instance.stats.memory.usageRatio`) AS 'Average Memory Usage Ratio' TIMESERIES AUTO FACET gcp.redis.role" + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "units": { + "unit": "PERCENTAGE" + }, + "yAxisLeft": { + "zero": true + }, + "yAxisRight": { + "zero": true + } + } + } + ] + } + ], + "variables": [] +} diff --git a/dashboards/gcp-redis/gcp-redis.png b/dashboards/gcp-redis/gcp-redis.png new file mode 100644 index 0000000000..ae4ba6889d Binary files /dev/null and b/dashboards/gcp-redis/gcp-redis.png differ diff --git a/dashboards/gcp-vpc-access/gcp-vpc-access-connector.png b/dashboards/gcp-vpc-access/gcp-vpc-access-connector.png new file mode 100644 index 0000000000..86340f18bd Binary files /dev/null and b/dashboards/gcp-vpc-access/gcp-vpc-access-connector.png differ diff --git a/dashboards/gcp-vpc-access/gcp-vpc-access.json b/dashboards/gcp-vpc-access/gcp-vpc-access.json new file mode 100644 index 0000000000..2049d482d3 --- /dev/null +++ b/dashboards/gcp-vpc-access/gcp-vpc-access.json @@ -0,0 +1,194 @@ +{ + "name": "GCP VPC Access Connector", + "description": null, + "pages": [ + { + "name": "GCP VPC Access Connector", + "description": null, + "widgets": [ + { + "title": "Summary", + "layout": { + "column": 1, + "row": 1, + "width": 7, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.billboard" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`gcp.vpcaccess.connector.received_bytes_count`) AS 'Total Received Bytes', SUM(`gcp.vpcaccess.connector.received_packets_count`) AS 'Total Received Packets', SUM(`gcp.vpcaccess.connector.sent_bytes_count`) AS 'Total Sent Bytes', SUM(`gcp.vpcaccess.connector.sent_packets_count`) AS 'Total Sent Packets'" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "", + "layout": { + "column": 8, + "row": 1, + "width": 5, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.markdown" + }, + "rawConfiguration": { + "text": "# Google VPC Access Connector\nServerless VPC Access makes it possible for you to connect directly to your Virtual Private Cloud (VPC) network from serverless environments such as Cloud Run, App Engine, or Cloud Functions. Configuring Serverless VPC Access allows your serverless environment to send requests to your VPC network by using internal DNS and internal IP addresses (as defined by RFC 1918 and RFC 6598). The responses to these requests also use your internal network." + } + }, + { + "title": "Received bytes", + "layout": { + "column": 1, + "row": 4, + "width": 6, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.area" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`gcp.vpcaccess.connector.received_bytes_count`) AS 'Total Received Bytes' TIMESERIES AUTO " + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "units": { + "unit": "BYTES" + } + } + }, + { + "title": "Sent bytes", + "layout": { + "column": 7, + "row": 4, + "width": 6, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.area" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`gcp.vpcaccess.connector.sent_bytes_count`) AS 'Total Sent Bytes' TIMESERIES AUTO " + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "units": { + "unit": "BYTES" + } + } + }, + { + "title": "Received packets", + "layout": { + "column": 1, + "row": 7, + "width": 6, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.line" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`gcp.vpcaccess.connector.received_packets_count`) AS 'Total Received Packets' TIMESERIES AUTO " + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "yAxisLeft": { + "zero": true + }, + "yAxisRight": { + "zero": true + } + } + }, + { + "title": "Sent packets", + "layout": { + "column": 7, + "row": 7, + "width": 6, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.line" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`gcp.vpcaccess.connector.sent_packets_count`) AS 'Total Sent Packets' TIMESERIES AUTO " + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "yAxisLeft": { + "zero": true + }, + "yAxisRight": { + "zero": true + } + } + } + ] + } + ], + "variables": [] +} diff --git a/dashboards/gitlab/gitlab_dashboard.json b/dashboards/gitlab/gitlab_dashboard.json index e7b2645a77..5db69f13be 100644 --- a/dashboards/gitlab/gitlab_dashboard.json +++ b/dashboards/gitlab/gitlab_dashboard.json @@ -19,7 +19,7 @@ "id": "viz.markdown" }, "rawConfiguration": { - "text": "![drawing](https://1000logos.net/wp-content/uploads/2022/02/Gitlab-Logo.png)\n" + "text": "![drawing](https://newrelic.com/sites/default/files/quickstarts/images/icons/gitlab--logo.svg)\n" } }, { @@ -541,4 +541,4 @@ ] } ] -} \ No newline at end of file +} diff --git a/dashboards/google-cloud-bigtable/google-cloud-bigtable-cluster.png b/dashboards/google-cloud-bigtable/google-cloud-bigtable-cluster.png new file mode 100644 index 0000000000..4abc53a0e8 Binary files /dev/null and b/dashboards/google-cloud-bigtable/google-cloud-bigtable-cluster.png differ diff --git a/dashboards/google-cloud-bigtable/google-cloud-bigtable.json b/dashboards/google-cloud-bigtable/google-cloud-bigtable.json new file mode 100644 index 0000000000..1ea637fbcc --- /dev/null +++ b/dashboards/google-cloud-bigtable/google-cloud-bigtable.json @@ -0,0 +1,686 @@ +{ + "name": "GCP Bigtable", + "description": null, + "pages": [ + { + "name": "Table", + "description": null, + "widgets": [ + { + "title": "Summary", + "layout": { + "column": 1, + "row": 1, + "width": 8, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.billboard" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`gcp.bigtable.table.server.requestCount`) AS 'Total Requests', SUM(`gcp.bigtable.table.server.errorCount`) AS 'Total Errors', AVERAGE(`gcp.bigtable.table.server.latencies`) AS 'Average Latency(ms)', AVERAGE(`gcp.bigtable.table.bytesUsed`) AS 'Average Table Bytes Used'" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "", + "layout": { + "column": 9, + "row": 1, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.markdown" + }, + "rawConfiguration": { + "text": "# Google Cloud Bigtable\n\nBigtable is a fully managed, wide-column NoSQL database that offers low latency and replication for high availability. You can provision Bigtable instances for your workload, then use one of the Bigtable client libraries to develop applications." + } + }, + { + "title": "Requests by method", + "layout": { + "column": 1, + "row": 4, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.pie" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": true + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`gcp.bigtable.table.server.requestCount`) AS 'Total Requets' FACET gcp.bigtable.method" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "Latencies by method", + "layout": { + "column": 5, + "row": 4, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.line" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT AVERAGE(`gcp.bigtable.table.server.latencies`) AS 'Average Latencies' TIMESERIES AUTO FACET gcp.bigtable.method" + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "units": { + "unit": "MS" + }, + "yAxisLeft": { + "zero": true + }, + "yAxisRight": { + "zero": true + } + } + }, + { + "title": "Errors by error code", + "layout": { + "column": 9, + "row": 4, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.bar" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`gcp.bigtable.table.server.errorCount`) AS 'Total Errors' FACET gcp.bigtable.errorCode" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "Returned rows per table", + "layout": { + "column": 1, + "row": 7, + "width": 6, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.pie" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": true + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`gcp.bigtable.table.server.returnedRowsCount`) AS 'Total Returned Rows' FACET table" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "Modified rows per table", + "layout": { + "column": 7, + "row": 7, + "width": 6, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.pie" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": true + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`gcp.bigtable.table.server.modifiedRowsCount`) AS 'Total Modified Rows' FACET table" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "Network traffic", + "layout": { + "column": 1, + "row": 10, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.stacked-bar" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`gcp.bigtable.table.server.sentBytesCount`) AS 'Total Sent Bytes', SUM(`gcp.bigtable.table.server.receivedBytesCount`) AS 'Total Received Bytes' TIMESERIES AUTO" + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "units": { + "unit": "BYTES" + } + } + }, + { + "title": "Bytes used per table", + "layout": { + "column": 5, + "row": 10, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.stacked-bar" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`gcp.bigtable.table.bytesUsed`) AS 'Total Bytes Used' TIMESERIES AUTO FACET table" + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "units": { + "unit": "BYTES" + } + } + }, + { + "title": "Multi cluster failovers by method", + "layout": { + "column": 9, + "row": 10, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.area" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`gcp.bigtable.table.server.multiClusterFailoversCount`) AS 'Total Multi Cluster Failovers' TIMESERIES AUTO FACET gcp.bigtable.method" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "Replication latency per table(ms)", + "layout": { + "column": 1, + "row": 13, + "width": 6, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.area" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT MAX(`gcp.bigtable.table.replication.latency`) AS 'Maximum Replication Latency' TIMESERIES AUTO FACET table" + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "units": { + "unit": "MS" + } + } + }, + { + "title": "Replication max delay per table(s)", + "layout": { + "column": 7, + "row": 13, + "width": 6, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.area" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT MAX(`gcp.bigtable.table.replication.maxDelay`) AS 'Replications Maximum Delay' TIMESERIES AUTO FACET table" + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "units": { + "unit": "SECONDS" + } + } + } + ] + }, + { + "name": "Cluster", + "description": null, + "widgets": [ + { + "title": "Cluster Summary", + "layout": { + "column": 1, + "row": 1, + "width": 7, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.billboard" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`gcp.bigtable.cluster.nodeCount`) AS 'Total Nodes', SUM(`gcp.bigtable.cluster.cpuLoad`) AS 'Total CPU Load', SUM(`gcp.bigtable.cluster.diskLoad`) AS 'Total Disk Load', AVERAGE(`gcp.bigtable.cluster.storageUtilization`) AS 'Average Storage Utilization'" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "Storage utilization by storage type", + "layout": { + "column": 8, + "row": 1, + "width": 5, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.pie" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": true + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`gcp.bigtable.cluster.storageUtilization`) AS 'Storage Utilization' FACET gcp.bigtable.storageType" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "CPU load per cluster", + "layout": { + "column": 1, + "row": 4, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.area" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT MAX(`gcp.bigtable.cluster.cpuLoad`) AS 'Maximum CPU Load' TIMESERIES AUTO FACET cluster" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "CPU load (hottest node) per cluster", + "layout": { + "column": 5, + "row": 4, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.line" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`gcp.bigtable.cluster.cpuLoadHottestNode`) AS 'Total CPU Load Hottest Node' TIMESERIES AUTO FACET cluster" + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "yAxisLeft": { + "zero": true + }, + "yAxisRight": { + "zero": true + } + } + }, + { + "title": "Disk load per cluster", + "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": "FROM Metric SELECT MAX(`gcp.bigtable.cluster.diskLoad`) AS 'Maximum Cluser Disk Load' TIMESERIES AUTO FACET cluster" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "Nodes by storage type", + "layout": { + "column": 1, + "row": 7, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.billboard" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`gcp.bigtable.cluster.nodeCount`) AS 'Total Nodes' FACET gcp.bigtable.storageType" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "Maximum nodes by storage type", + "layout": { + "column": 5, + "row": 7, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.pie" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": true + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT MAX(`gcp.bigtable.cluster.nodeCount`) AS 'Maximum Nodes' FACET gcp.bigtable.storageType" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "Minimum nodes by storage type", + "layout": { + "column": 9, + "row": 7, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.pie" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": true + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT MIN(`gcp.bigtable.cluster.nodeCount`) AS 'Minumun Nodes' FACET gcp.bigtable.storageType" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "Disk bytes used by storage type", + "layout": { + "column": 1, + "row": 10, + "width": 6, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.stacked-bar" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`gcp.bigtable.cluster.disk.bytesUsed`) AS 'Total Disk Bytes Used' TIMESERIES AUTO FACET gcp.bigtable.storageType" + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "units": { + "unit": "BYTES" + } + } + }, + { + "title": "Disk storage capacity by storage type", + "layout": { + "column": 7, + "row": 10, + "width": 6, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.stacked-bar" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "FROM Metric SELECT SUM(`gcp.bigtable.cluster.disk.storageCapacity`) AS 'Total Disk Storage Capacity' TIMESERIES AUTO FACET gcp.bigtable.storageType" + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "units": { + "unit": "BYTES" + } + } + } + ] + } + ], + "variables": [] +} diff --git a/dashboards/google-cloud-bigtable/google-cloud-bigtable.png b/dashboards/google-cloud-bigtable/google-cloud-bigtable.png new file mode 100644 index 0000000000..4f3e21b801 Binary files /dev/null and b/dashboards/google-cloud-bigtable/google-cloud-bigtable.png differ diff --git a/dashboards/mssql-queryplan/mssql-queryplan.json b/dashboards/mssql-custom-queries/mssql-custom-queries.json similarity index 97% rename from dashboards/mssql-queryplan/mssql-queryplan.json rename to dashboards/mssql-custom-queries/mssql-custom-queries.json index 6fa5f21cb4..43e8839229 100644 --- a/dashboards/mssql-queryplan/mssql-queryplan.json +++ b/dashboards/mssql-custom-queries/mssql-custom-queries.json @@ -1,6 +1,6 @@ { - "name": "MSSQL On-Host Integration w/ Query Plans", - "description": "Sample SQL Server dashboard with query plans included", + "name": "MSSQL On-Host Integration w/ Custom Queries", + "description": "Sample SQL Server dashboard", "pages": [ { "name": "SQL Overview", @@ -18,7 +18,7 @@ }, "title": "", "rawConfiguration": { - "text": "# Microsoft SQL Server\n\n![Add Images](https://sqlandme.com/sql.png)\n\n* Database/Log Space\n* Memory\n* Waits/Blocking\n* Blocked Processes\n\n\n" + "text": "# Microsoft SQL Server\n\n![Add Images](https://sqlandme.com/sql.png)\n\n* Database/Log Space\n* Memory\n* Waits/Blocking\n* Blocked Processes\n\n> ⚠️ You need to add [this file](https://github.com/newrelic/nri-mssql/blob/master/mssql-custom-query.yml.sample) with custom SQL queries to the integration to populate all widgets. More info on how to do it [here](https://docs.newrelic.com/docs/infrastructure/host-integrations/host-integrations-list/microsoft-sql/microsoft-sql-server-integration/#multi-custom-query)" }, "linkedEntityGuids": null }, @@ -570,4 +570,4 @@ ] } ] - } \ No newline at end of file + } diff --git a/dashboards/mssql-custom-queries/mssql-custom-queries01.png b/dashboards/mssql-custom-queries/mssql-custom-queries01.png new file mode 100644 index 0000000000..54f28e6783 Binary files /dev/null and b/dashboards/mssql-custom-queries/mssql-custom-queries01.png differ diff --git a/dashboards/mssql-custom-queries/mssql-custom-queries02.png b/dashboards/mssql-custom-queries/mssql-custom-queries02.png new file mode 100644 index 0000000000..64dc561ef5 Binary files /dev/null and b/dashboards/mssql-custom-queries/mssql-custom-queries02.png differ diff --git a/dashboards/mssql-queryplan/mssql-queryplan01.png b/dashboards/mssql-queryplan/mssql-queryplan01.png deleted file mode 100644 index 457f955458..0000000000 Binary files a/dashboards/mssql-queryplan/mssql-queryplan01.png and /dev/null differ diff --git a/dashboards/mssql-queryplan/mssql-queryplan02.png b/dashboards/mssql-queryplan/mssql-queryplan02.png deleted file mode 100644 index 2b2a1f51ca..0000000000 Binary files a/dashboards/mssql-queryplan/mssql-queryplan02.png and /dev/null differ diff --git a/data-sources/amazon-cloudwatch-metric-streams/config.yml b/data-sources/amazon-cloudwatch-metric-streams/config.yml index 9a122dd182..c5c4b666a3 100644 --- a/data-sources/amazon-cloudwatch-metric-streams/config.yml +++ b/data-sources/amazon-cloudwatch-metric-streams/config.yml @@ -16,4 +16,9 @@ keywords: - logs - security - NR1_addData + - ML + - Model + - Machine Learning + - Amazon + - SageMaker icon: logo.svg diff --git a/data-sources/langchain-vectordb/config.yml b/data-sources/langchain-vectordb/config.yml index 8ad1c143ed..8661575837 100644 --- a/data-sources/langchain-vectordb/config.yml +++ b/data-sources/langchain-vectordb/config.yml @@ -11,13 +11,40 @@ install: requiresAccount: false icon: logo.png keywords: - - langchain vector database - - langchain ai - - lang - - chain - - ai - - lang chain - - large language model - - natural language processing - - machine learning - - artificial intelligence \ No newline at end of file + - AI + - AIM + - vector + - vectorDB + - DB + - FAISS + - meta + - Chroma + - ChromaDB + - ClickHouse + - DeepLake + - DocArray + - Search + - Elastic + - KNN + - Lance + - LangChain + - Marqo + - Meilisearch + - Milvus + - MyScale + - PG + - PGVector + - Postgres + - Embedding + - Qdrant + - SingleStore + - SKLearn + - StarRocks + - Supabase + - Tigris + - Typesense + - Vectara + - Weaviate + - Zilliz + - Hologres + - Annoy \ No newline at end of file diff --git a/data-sources/langchain/config.yml b/data-sources/langchain/config.yml index 26eb9ae622..c152f993dc 100644 --- a/data-sources/langchain/config.yml +++ b/data-sources/langchain/config.yml @@ -11,13 +11,21 @@ install: requiresAccount: false icon: logo.png keywords: - - langchain - - langchain ai - - lang - - chain - - ai - - lang chain - - large language model - - natural language processing - - machine learning - - artificial intelligence + - AI + - LLM + - AIM + - Ollama + - llama + - Open + - OpenLLM + - bentoml + - PaLM + - PaLM2 + - Jina + - Embedding + - Mosaic + - MosaicML + - Langchain + - Hugging + - HuggingFace + - Anyscale \ No newline at end of file diff --git a/data-sources/mssql-query-plans/config.yml b/data-sources/mssql-query-plans/config.yml deleted file mode 100644 index e032fb02a5..0000000000 --- a/data-sources/mssql-query-plans/config.yml +++ /dev/null @@ -1,9 +0,0 @@ -id: mssql-query-plans -displayName: Microsoft SQL Server Query Plans -description: | - Display MSSQL query plans on your dashboards. -install: - primary: - link: - url: https://github.com/newrelic-experimental/nri-mssql-experimental -icon: logo.svg diff --git a/quickstarts/apdex-optimizer/config.yml b/quickstarts/apdex-optimizer/config.yml index 6eb550b66c..48b146a02f 100644 --- a/quickstarts/apdex-optimizer/config.yml +++ b/quickstarts/apdex-optimizer/config.yml @@ -59,8 +59,6 @@ keywords: - apdex - errors - - # Reference to dashboards to be included in this quickstart dashboards: - apdex-optimizer diff --git a/quickstarts/azure/azure-app-gateway/config.yml b/quickstarts/azure/azure-app-gateway/config.yml new file mode 100644 index 0000000000..dde57d2696 --- /dev/null +++ b/quickstarts/azure/azure-app-gateway/config.yml @@ -0,0 +1,37 @@ +id: 9e969f9b-a8f1-4190-bb8a-24857101ff41 +slug: azure-app-gateway +description: |- + ## What is Azure App Gateway? + + Azure Application Gateway is a web traffic (OSI layer 7) load balancer that enables you to manage traffic to your web applications. + + + ### Get started! + + Start monitoring Azure App Gateway by connecting Microsoft Azure to New Relic! + + Check out our Azure App Gateway documentation to instrument your cloud service and manage the stability, scalability, and reliability of your systems with New Relic's infrastructure monitoring capabilities. + + ### More info + + Check out the [documentation](https://docs.newrelic.com/docs/infrastructure/microsoft-azure-integrations/azure-integrations-list/azure-application-gateway-monitoring-integration/) to learn more about New Relic monitoring for Azure App Gateway. +summary: Monitor Azure App Gateway by connecting Azure to New Relic +icon: logo.svg +level: New Relic +authors: + - New Relic + - Emil Hammarstrand +title: Azure App Gateway +documentation: + - name: Azure App Gateway installation docs + description: | + Monitor Azure App Gateway by connecting Azure to New Relic. + url: https://docs.newrelic.com/docs/infrastructure/microsoft-azure-integrations/azure-integrations-list/azure-application-gateway-monitoring-integration/ +keywords: + - azure + - application gateway + - app gateway +dataSourceIds: + - microsoft-azure +dashboards: + - azure-app-gateway diff --git a/quickstarts/azure/azure-app-gateway/logo.svg b/quickstarts/azure/azure-app-gateway/logo.svg new file mode 100644 index 0000000000..d0fd417aec --- /dev/null +++ b/quickstarts/azure/azure-app-gateway/logo.svg @@ -0,0 +1,51 @@ + + + Azure / Application Gateway + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/quickstarts/azure/azure-front-door/config.yml b/quickstarts/azure/azure-front-door/config.yml index 6dc5c147b8..c60454c1ef 100644 --- a/quickstarts/azure/azure-front-door/config.yml +++ b/quickstarts/azure/azure-front-door/config.yml @@ -30,7 +30,7 @@ documentation: keywords: - azure - networking -installPlans: - - azure-infrastructure-monitoring dataSourceIds: - microsoft-azure +dashboards: + - azure-front-door diff --git a/quickstarts/azure/azure-load-balancer/config.yml b/quickstarts/azure/azure-load-balancer/config.yml index 51624baf69..569f960808 100644 --- a/quickstarts/azure/azure-load-balancer/config.yml +++ b/quickstarts/azure/azure-load-balancer/config.yml @@ -30,7 +30,7 @@ documentation: keywords: - azure - load balancer -installPlans: - - azure-infrastructure-monitoring dataSourceIds: - microsoft-azure +dashboards: + - azure-load-balancer diff --git a/quickstarts/azure/azure-logic-apps/config.yml b/quickstarts/azure/azure-logic-apps/config.yml index b2165b6b82..c41dd2bac9 100644 --- a/quickstarts/azure/azure-logic-apps/config.yml +++ b/quickstarts/azure/azure-logic-apps/config.yml @@ -29,7 +29,7 @@ documentation: url: https://docs.newrelic.com/docs/infrastructure/microsoft-azure-integrations/azure-integrations-list/azure-logic-apps-monitoring-integration/ keywords: - azure -installPlans: - - azure-infrastructure-monitoring dataSourceIds: - microsoft-azure +dashboards: + - azure-logic-apps diff --git a/quickstarts/azure/azure-redis-cache/config.yml b/quickstarts/azure/azure-redis-cache/config.yml index b688e32270..db542dde4b 100644 --- a/quickstarts/azure/azure-redis-cache/config.yml +++ b/quickstarts/azure/azure-redis-cache/config.yml @@ -30,7 +30,7 @@ documentation: keywords: - azure - database -installPlans: - - azure-infrastructure-monitoring dataSourceIds: - microsoft-azure +dashboards: + - azure-redis-cache diff --git a/quickstarts/azure/azure-sql-database/config.yml b/quickstarts/azure/azure-sql-database/config.yml index 9e956a0396..90409b8da8 100644 --- a/quickstarts/azure/azure-sql-database/config.yml +++ b/quickstarts/azure/azure-sql-database/config.yml @@ -30,7 +30,7 @@ documentation: keywords: - azure - database -installPlans: - - azure-infrastructure-monitoring dataSourceIds: - microsoft-azure +dashboards: + - azure-sql diff --git a/quickstarts/azure/azure-sql-managed-instances/config.yml b/quickstarts/azure/azure-sql-managed-instances/config.yml index bf1cb23ceb..eb945df95d 100644 --- a/quickstarts/azure/azure-sql-managed-instances/config.yml +++ b/quickstarts/azure/azure-sql-managed-instances/config.yml @@ -13,7 +13,7 @@ description: |- ### More info - Check out the [documentation](https://docs.newrelic.com/docs/infrastructure/microsoft-azure-integrations/azure-integrations-list/azure-sql-managed-instances-monitoring-integration/) to learn more about New Relic monitoring for Azure SQL Managed Instances. + Check out the [documentation](https://docs.newrelic.com/docs/infrastructure/microsoft-azure-integrations/azure-integrations-list/azure-sql-managed-instances-monitoring-integration/) to learn more about New Relic monitoring for Azure SQL Managed Instances. summary: Monitor Azure SQL Managed Instances by connecting Azure to New Relic icon: logo.svg level: New Relic @@ -27,7 +27,7 @@ documentation: keywords: - azure - database -installPlans: - - azure-infrastructure-monitoring dataSourceIds: - microsoft-azure +dashboards: + - azure-sql-managed-instance diff --git a/quickstarts/azure/azure-virtual-machine-scale-sets/config.yml b/quickstarts/azure/azure-virtual-machine-scale-sets/config.yml index f41e8ffbad..c00c9ae3c6 100644 --- a/quickstarts/azure/azure-virtual-machine-scale-sets/config.yml +++ b/quickstarts/azure/azure-virtual-machine-scale-sets/config.yml @@ -29,7 +29,7 @@ documentation: url: https://docs.newrelic.com/docs/infrastructure/microsoft-azure-integrations/azure-integrations-list/azure-virtual-machine-scale-sets-monitoring-integration/ keywords: - azure -installPlans: - - azure-infrastructure-monitoring dataSourceIds: - microsoft-azure +dashboards: + - azure-virtual-machine-scaleset diff --git a/quickstarts/azure/azure-vpn-gateways/config.yml b/quickstarts/azure/azure-vpn-gateways/config.yml index 58326caaf7..f1d9c62290 100644 --- a/quickstarts/azure/azure-vpn-gateways/config.yml +++ b/quickstarts/azure/azure-vpn-gateways/config.yml @@ -30,7 +30,7 @@ documentation: keywords: - azure - networking -installPlans: - - azure-infrastructure-monitoring dataSourceIds: - microsoft-azure +dashboards: + - azure-vpn-gateways diff --git a/quickstarts/fivetran/config.yml b/quickstarts/fivetran/config.yml index c7ee0ef0e1..0aaae2392b 100644 --- a/quickstarts/fivetran/config.yml +++ b/quickstarts/fivetran/config.yml @@ -1,3 +1,4 @@ +id: 00000000-0000-0000-0000-000000000000 slug: fivetran title: Fivetran Destination Monitoring diff --git a/quickstarts/gcp/gcp-cloud-run/config.yml b/quickstarts/gcp/gcp-cloud-run/config.yml index ec720ad426..650e745cc4 100644 --- a/quickstarts/gcp/gcp-cloud-run/config.yml +++ b/quickstarts/gcp/gcp-cloud-run/config.yml @@ -35,3 +35,5 @@ installPlans: - gcp-infrastructure-monitoring dataSourceIds: - google-cloud-platform +dashboards: + - gcp-cloud-run diff --git a/quickstarts/gcp/gcp-composer/config.yml b/quickstarts/gcp/gcp-composer/config.yml new file mode 100644 index 0000000000..83d68b92d7 --- /dev/null +++ b/quickstarts/gcp/gcp-composer/config.yml @@ -0,0 +1,34 @@ +id: b783f353-5edc-43aa-86e2-4aa692776b57 +slug: gcp-composer +description: |- + ## What is Google Cloud Composer? + + Cloud Composer is a fully managed workflow orchestration service, enabling you to create, schedule, monitor, and manage workflow pipelines that span across clouds and on-premises data centers. + + ### Get started! + + Start monitoring Composer by connecting Google Cloud Platform (GCP) to New Relic! + Check out our Composer documentation to instrument your cloud service and manage the stability, scalability, and reliability of your systems with + New Relic's infrastructure monitoring capabilities. + + ### More info + + Check out the [documentation](https://docs.newrelic.com/docs/infrastructure/google-cloud-platform-integrations/gcp-integrations-list/google-cloud-composer-monitoring-integration/) to learn more about New Relic monitoring for Composer. +summary: Monitor Composer by connecting GCP to New Relic +icon: logo.svg +level: New Relic +authors: + - New Relic +title: Composer +documentation: + - name: Composer integration docs + description: Monitor Composer by connecting GCP to New Relic. + url: https://docs.newrelic.com/docs/infrastructure/google-cloud-platform-integrations/gcp-integrations-list/google-cloud-composer-monitoring-integration/ +keywords: + - gcp + - google cloud platform + - composer +dataSourceIds: + - google-cloud-platform +dashboards: + - gcp-composer diff --git a/quickstarts/gcp/gcp-composer/logo.svg b/quickstarts/gcp/gcp-composer/logo.svg new file mode 100644 index 0000000000..6038762a95 --- /dev/null +++ b/quickstarts/gcp/gcp-composer/logo.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/quickstarts/gcp/gcp-dataflow/config.yml b/quickstarts/gcp/gcp-dataflow/config.yml index aaba33306e..1c2d300bd1 100644 --- a/quickstarts/gcp/gcp-dataflow/config.yml +++ b/quickstarts/gcp/gcp-dataflow/config.yml @@ -13,7 +13,7 @@ description: |- ### More info - Check out the [documentation](https://docs.newrelic.com/docs/infrastructure/google-cloud-platform-integrations/gcp-integrations-list/google-cloud-dataflow-monitoring-integration/) to learn more about New Relic monitoring for GCP Dataflow. + Check out the [documentation](https://docs.newrelic.com/docs/infrastructure/google-cloud-platform-integrations/gcp-integrations-list/google-cloud-dataflow-monitoring-integration/) to learn more about New Relic monitoring for GCP Dataflow. summary: Monitor GCP Dataflow by connecting GCP to New Relic icon: logo.svg level: New Relic @@ -31,3 +31,5 @@ installPlans: - gcp-infrastructure-monitoring dataSourceIds: - google-cloud-platform +dashboards: + - gcp-data-flow diff --git a/quickstarts/gcp/gcp-dataproc/config.yml b/quickstarts/gcp/gcp-dataproc/config.yml index 54d9f218c4..98420e40ff 100644 --- a/quickstarts/gcp/gcp-dataproc/config.yml +++ b/quickstarts/gcp/gcp-dataproc/config.yml @@ -34,3 +34,5 @@ installPlans: - gcp-infrastructure-monitoring dataSourceIds: - google-cloud-platform +dashboards: + - gcp-data-proc diff --git a/quickstarts/gcp/gcp-firebase-database/config.yml b/quickstarts/gcp/gcp-firebase-database/config.yml index 9b60835eee..9445b0e79a 100644 --- a/quickstarts/gcp/gcp-firebase-database/config.yml +++ b/quickstarts/gcp/gcp-firebase-database/config.yml @@ -34,3 +34,5 @@ installPlans: - gcp-infrastructure-monitoring dataSourceIds: - google-cloud-platform +dashboards: + - gcp-firebase-database diff --git a/quickstarts/gcp/gcp-firebase-hosting/config.yml b/quickstarts/gcp/gcp-firebase-hosting/config.yml index b6d649efa6..9b3438ac63 100644 --- a/quickstarts/gcp/gcp-firebase-hosting/config.yml +++ b/quickstarts/gcp/gcp-firebase-hosting/config.yml @@ -34,3 +34,5 @@ installPlans: - gcp-infrastructure-monitoring dataSourceIds: - google-cloud-platform +dashboards: + - gcp-firebase-hosting diff --git a/quickstarts/gcp/gcp-memcached/config.yml b/quickstarts/gcp/gcp-memcached/config.yml new file mode 100644 index 0000000000..9cccfd255c --- /dev/null +++ b/quickstarts/gcp/gcp-memcached/config.yml @@ -0,0 +1,34 @@ +id: d629c675-e691-4785-9a69-7132aef0a228 +slug: gcp-memcached +description: |- + ## What is Google Memcached? + + Memorystore for Memcached is a fully managed Memcached service for Google Cloud. Applications running on Google Cloud can achieve extreme performance by leveraging the highly scalable, available, secure Memcached service without the burden of managing complex Memcached deployments. + + ### Get started! + + Start monitoring Memcached by connecting Google Cloud Platform (GCP) to New Relic! + Check out our Memcached documentation to instrument your cloud service and manage the stability, scalability, and reliability of your systems with + New Relic's infrastructure monitoring capabilities. + + ### More info + + Check out the [documentation](https://docs.newrelic.com/docs/infrastructure/google-cloud-platform-integrations/gcp-integrations-list/google-memorystore-memcached/) to learn more about New Relic monitoring for Memcached. +summary: Monitor Memcached by connecting GCP to New Relic +icon: logo.svg +level: New Relic +authors: + - New Relic +title: GCP Memcached +documentation: + - name: Memcached integration docs + description: Monitor Memcached by connecting GCP to New Relic. + url: https://docs.newrelic.com/docs/infrastructure/google-cloud-platform-integrations/gcp-integrations-list/google-memorystore-memcached/ +keywords: + - gcp + - google cloud platform + - memcached +dataSourceIds: + - google-cloud-platform +dashboards: + - gcp-memcached diff --git a/quickstarts/gcp/gcp-memcached/logo.svg b/quickstarts/gcp/gcp-memcached/logo.svg new file mode 100644 index 0000000000..e9def09bbd --- /dev/null +++ b/quickstarts/gcp/gcp-memcached/logo.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/quickstarts/gcp/gcp-redis/config.yml b/quickstarts/gcp/gcp-redis/config.yml new file mode 100644 index 0000000000..19736c4948 --- /dev/null +++ b/quickstarts/gcp/gcp-redis/config.yml @@ -0,0 +1,35 @@ +id: c117093b-888c-4c50-a3c5-e1e988f71cc7 +slug: gcp-redis +description: |- + ## What is Redis? + + Memorystore for Redis Cluster is a fully managed Redis service for Google Cloud. Applications running on Google Cloud can achieve extreme performance by leveraging the highly scalable, available, secure Redis service without the burden of managing complex Redis deployments. + + ### Get started! + + Start monitoring Redis by connecting Google Cloud Platform (GCP) to New Relic! + Check out our Redis documentation to instrument your cloud service and manage the stability, scalability, and reliability of your systems with + New Relic's infrastructure monitoring capabilities. + + ### More info + + Check out the [documentation](https://docs.newrelic.com/docs/infrastructure/google-cloud-platform-integrations/gcp-integrations-list/google-memorystore-redis/) to learn more about New Relic monitoring for Redis. +summary: Monitor Redis by connecting GCP to New Relic +icon: logo.svg +level: New Relic +authors: + - New Relic +title: GCP Redis +documentation: + - name: Redis integration docs + description: Monitor Redis by connecting GCP to New Relic. + url: https://docs.newrelic.com/docs/infrastructure/google-cloud-platform-integrations/gcp-integrations-list/google-memorystore-redis/ +keywords: + - gcp + - google cloud platform + - redis + - memorystore +dataSourceIds: + - google-cloud-platform +dashboards: + - gcp-redis diff --git a/quickstarts/gcp/gcp-redis/logo.svg b/quickstarts/gcp/gcp-redis/logo.svg new file mode 100644 index 0000000000..a46e1c2e62 --- /dev/null +++ b/quickstarts/gcp/gcp-redis/logo.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/quickstarts/gcp/gcp-vpc/config.yml b/quickstarts/gcp/gcp-vpc/config.yml index 7a46f2954d..09aac64e5f 100644 --- a/quickstarts/gcp/gcp-vpc/config.yml +++ b/quickstarts/gcp/gcp-vpc/config.yml @@ -35,3 +35,5 @@ installPlans: - gcp-infrastructure-monitoring dataSourceIds: - google-cloud-platform +dashboards: + - gcp-vpc-access diff --git a/quickstarts/gcp/google-app-engine/config.yml b/quickstarts/gcp/google-app-engine/config.yml index f60b13ea21..cba47f9f92 100644 --- a/quickstarts/gcp/google-app-engine/config.yml +++ b/quickstarts/gcp/google-app-engine/config.yml @@ -34,3 +34,5 @@ installPlans: - gcp-infrastructure-monitoring dataSourceIds: - google-cloud-platform +dashboards: + - gcp-app-engine diff --git a/quickstarts/gcp/google-bigquery/config.yml b/quickstarts/gcp/google-bigquery/config.yml index ebc998d3c3..fa678f2c52 100644 --- a/quickstarts/gcp/google-bigquery/config.yml +++ b/quickstarts/gcp/google-bigquery/config.yml @@ -35,3 +35,5 @@ installPlans: - gcp-infrastructure-monitoring dataSourceIds: - google-cloud-platform +dashboards: + - gcp-bigquery diff --git a/quickstarts/gcp/google-cloud-bigtable/config.yml b/quickstarts/gcp/google-cloud-bigtable/config.yml new file mode 100644 index 0000000000..0be920a250 --- /dev/null +++ b/quickstarts/gcp/google-cloud-bigtable/config.yml @@ -0,0 +1,36 @@ +id: 95b8fd0a-512d-45e8-ac05-c2d8b9ea1924 +slug: google-cloud-bigtable +description: |- + ## What is Google Cloud Bigtable? + + Cloud Bigtable is a sparsely populated table that can scale to billions of rows and thousands of columns, enabling you to store terabytes or even petabytes of data. A single value in each row is indexed; this value is known as the row key. Bigtable is ideal for storing large amounts of single-keyed data with low latency. It supports high read and write throughput at low latency, and it's an ideal data source for MapReduce operations. + + ### Get started! + + Start monitoring Google Cloud Bigtable by connecting Google Cloud Platform (GCP) to New Relic! + + Check out our Google Cloud Bigtable documentation to instrument your cloud service and manage the stability, scalability, and reliability of your systems with New Relic's infrastructure monitoring capabilities. + + ### More info + + Check out the [documentation](https://docs.newrelic.com/docs/infrastructure/google-cloud-platform-integrations/gcp-integrations-list/google-cloud-bigtable-monitoring-integration/) to learn more about New Relic monitoring for Google Cloud Bigtable. +summary: Monitor Google Cloud Bigtable by connecting GCP to New Relic +icon: logo.svg +level: New Relic +authors: + - New Relic +title: Google Cloud Bigtable +documentation: + - name: Google Cloud Bigtable installation docs + description: | + Monitor Google Cloud Bigtable by connecting GCP to New Relic. + url: https://docs.newrelic.com/docs/infrastructure/google-cloud-platform-integrations/gcp-integrations-list/google-cloud-bigtable-monitoring-integration/ +keywords: + - gcp + - google cloud platform + - database + - bigtable +dataSourceIds: + - google-cloud-platform +dashboards: + - google-cloud-bigtable diff --git a/quickstarts/gcp/google-cloud-bigtable/logo.svg b/quickstarts/gcp/google-cloud-bigtable/logo.svg new file mode 100644 index 0000000000..1bb5fc4b5f --- /dev/null +++ b/quickstarts/gcp/google-cloud-bigtable/logo.svg @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/quickstarts/gcp/google-cloud-functions/config.yml b/quickstarts/gcp/google-cloud-functions/config.yml index 23198ed280..530a7c67fe 100644 --- a/quickstarts/gcp/google-cloud-functions/config.yml +++ b/quickstarts/gcp/google-cloud-functions/config.yml @@ -35,3 +35,5 @@ installPlans: - gcp-infrastructure-monitoring dataSourceIds: - google-cloud-platform +dashboards: + - gcp-cloud-functions diff --git a/quickstarts/gcp/google-cloud-sql/config.yml b/quickstarts/gcp/google-cloud-sql/config.yml index 04d9774d48..ca84adc4d5 100644 --- a/quickstarts/gcp/google-cloud-sql/config.yml +++ b/quickstarts/gcp/google-cloud-sql/config.yml @@ -35,3 +35,5 @@ installPlans: - gcp-infrastructure-monitoring dataSourceIds: - google-cloud-platform +dashboards: + - gcp-cloud-sql diff --git a/quickstarts/gcp/google-cloud-storage/config.yml b/quickstarts/gcp/google-cloud-storage/config.yml index 0fc44541d7..fc9ae65c71 100644 --- a/quickstarts/gcp/google-cloud-storage/config.yml +++ b/quickstarts/gcp/google-cloud-storage/config.yml @@ -35,3 +35,5 @@ installPlans: - gcp-infrastructure-monitoring dataSourceIds: - google-cloud-platform +dashboards: + - gcp-cloud-storage diff --git a/quickstarts/gcp/google-load-balancing/config.yml b/quickstarts/gcp/google-load-balancing/config.yml index 25b062c8e3..ea84e9a85d 100644 --- a/quickstarts/gcp/google-load-balancing/config.yml +++ b/quickstarts/gcp/google-load-balancing/config.yml @@ -36,3 +36,5 @@ installPlans: - gcp-infrastructure-monitoring dataSourceIds: - google-cloud-platform +dashboards: + - gcp-load-balancer diff --git a/quickstarts/gcp/google-pub-sub/config.yml b/quickstarts/gcp/google-pub-sub/config.yml index 613d618d93..ccfbb55c38 100644 --- a/quickstarts/gcp/google-pub-sub/config.yml +++ b/quickstarts/gcp/google-pub-sub/config.yml @@ -13,7 +13,7 @@ description: |- ### More info - Check out the [documentation](https://docs.newrelic.com/docs/infrastructure/google-cloud-platform-integrations/gcp-integrations-list/google-cloud-pubsub-monitoring-integration/) to learn more about New Relic monitoring for Google Pub/Sub. + Check out the [documentation](https://docs.newrelic.com/docs/infrastructure/google-cloud-platform-integrations/gcp-integrations-list/google-cloud-pubsub-monitoring-integration/) to learn more about New Relic monitoring for Google Pub/Sub. summary: Monitor Google Pub/Sub by connecting GCP to New Relic icon: logo.svg level: New Relic @@ -32,3 +32,5 @@ installPlans: - gcp-infrastructure-monitoring dataSourceIds: - google-cloud-platform +dashboards: + - gcp-cloud-pub-sub diff --git a/quickstarts/hardware-sentry/config.yml b/quickstarts/hardware-sentry/config.yml index 72452b4799..588a764895 100644 --- a/quickstarts/hardware-sentry/config.yml +++ b/quickstarts/hardware-sentry/config.yml @@ -11,7 +11,7 @@ description: | This integration with New Relic & Hardware Sentry connects the native OpenTelemetry collector in Hardware Sentry's agent to New Relic's observability monitoring platform. ### Monitoring the health of your on-prem IT infrastructure in New Relic - The monitoring available with this integration gives you full visualation into your on-prem IT infrastructure. + The monitoring available with this integration gives you full visualization into your on-prem IT infrastructure. - Monitor the health of your hardware resources, including processors, memory modules, disks, network cards, and more. - Monitor and assess the CO₂ emissions linked to the energy consumption of your data centers. diff --git a/quickstarts/mssql-custom-queries/config.yml b/quickstarts/mssql-custom-queries/config.yml new file mode 100644 index 0000000000..223c9802e0 --- /dev/null +++ b/quickstarts/mssql-custom-queries/config.yml @@ -0,0 +1,26 @@ +id: ad148471-0fa5-4218-b809-872893040216 +slug: mssql-custom-queries +description: | + Relational database management system used to store and retrieve data as + requested by other software applications with enriched data collected from custom queries. +summary: | + Relational database management system used to store and retrieve data as + requested by other software applications with enriched data collected from custom queries. +icon: logo.svg +authors: + - New Relic +title: Microsoft SQL Server with Custom Queries +documentation: + - name: MSSQL installation docs + description: | + Relational database management system used to store and retrieve data as + requested by other software applications. + url: https://docs.newrelic.com/docs/integrations/host-integrations/host-integrations-list/microsoft-sql-server-monitoring-integration +keywords: + - infrastructure + - database + - mssql +dataSourceIds: + - microsoft-sql-server +dashboards: + - mssql-custom-queries \ No newline at end of file diff --git a/data-sources/mssql-query-plans/logo.svg b/quickstarts/mssql-custom-queries/logo.svg similarity index 100% rename from data-sources/mssql-query-plans/logo.svg rename to quickstarts/mssql-custom-queries/logo.svg diff --git a/quickstarts/mssql-queryplan/config.yml b/quickstarts/mssql-queryplan/config.yml deleted file mode 100644 index 7e6858d30d..0000000000 --- a/quickstarts/mssql-queryplan/config.yml +++ /dev/null @@ -1,38 +0,0 @@ -id: 8c173efb-b75f-4dcb-a7b7-1c80746fd903 -slug: nri-mssql-query-plans -title: Microsoft SQL Server Query Plans -description: | - This quickstart includes a modified version of the Microsoft SQL Server on-host integration that captures query plan data for slowest running queries, and a dashboard to view the query plans using the SQL Query Plans custom visualization. - - ## On-host integration - - The modified version of the Microsoft on-host integration ingests query plan data using the New Relic Log API. - - ## Dashboard - - The dashboard displays SQL Server information on multiple pages: - - SQL Overview: The SQL Overview tab displays Database/Log Space, Memory, Waits/Blocking, Blocked Processes - - Query Performance: This page includes the Query Plans widget -summary: | - Display MSSQL query plans on your dashboards -icon: logo.svg -level: Community -website: https://docs.microsoft.com/en-us/sql/relational-databases/performance/execution-plans?view=sql-server-ver15 -keywords: - - nrlabs - - nrlabs-data - - database - - infrastructure -authors: - - New Relic Labs -documentation: - - name: MSSQL on-host integration (query plans version) - description: | - The installation and configuration instructions for the experimental version of the MSSQL on-host integration required to collect query plan data - url: https://github.com/newrelic-experimental/nri-mssql-experimental -installPlans: - - third-party-mssql-query-plans -dataSourceIds: - - mssql-query-plans -dashboards: - - mssql-queryplan diff --git a/quickstarts/mssql-queryplan/logo.svg b/quickstarts/mssql-queryplan/logo.svg deleted file mode 100644 index 5675bc4542..0000000000 --- a/quickstarts/mssql-queryplan/logo.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file