diff --git a/Dashboard_capture.png b/Dashboard_capture.png new file mode 100644 index 0000000..e39b48c Binary files /dev/null and b/Dashboard_capture.png differ diff --git a/Dashboard_export.pdf b/Dashboard_export.pdf new file mode 100644 index 0000000..27bceb3 Binary files /dev/null and b/Dashboard_export.pdf differ diff --git a/cdn-dashboard.json b/cdn-dashboard.json new file mode 100644 index 0000000..8c9dbd9 --- /dev/null +++ b/cdn-dashboard.json @@ -0,0 +1,147 @@ +{ + "name": "CDN Health Metrics", + "description": null, + "permissions": "PUBLIC_READ_WRITE", + "pages": [ + { + "name": "CDN Health Metrics", + "description": null, + "widgets": [ + { + "visualization": { + "id": "viz.billboard" + }, + "layout": { + "column": 1, + "row": 1, + "height": 2, + "width": 12 + }, + "title": "Summary Metrics", + "rawConfiguration": { + "dataFormatters": [], + "nrqlQueries": [ + { + "accountId": 0, + "query": "FROM SyntheticRequest SELECT average((requestBodySize+requestHeaderSize)/duration) as 'kB/s', percentage(count(*), where responseCode = 200 AND duration < 3000 ), average(duration), max(duration), percentile(duration,95) where URL like '%cdn%' SINCE 1 day ago LIMIT 1000" + } + ], + "thresholds": [] + }, + "linkedEntityGuids": null + }, + { + "visualization": { + "id": "viz.bar" + }, + "layout": { + "column": 1, + "row": 3, + "height": 8, + "width": 3 + }, + "title": "Worst Performing (95th percentile)", + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "nrqlQueries": [ + { + "accountId": 0, + "query": "FROM SyntheticRequest SELECT percentile(duration,95) where URL like '%cdn.%' SINCE 1 week ago LIMIT 1000 facet domain " + } + ] + }, + "linkedEntityGuids": null + }, + { + "visualization": { + "id": "viz.line" + }, + "layout": { + "column": 4, + "row": 3, + "height": 3, + "width": 9 + }, + "title": "Latency (KB/s) by Domain", + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountId": 0, + "query": "FROM SyntheticRequest SELECT average((requestBodySize+requestHeaderSize)/duration) as 'kB/s' where URL like '%cdn%' SINCE 1 day ago LIMIT 1000 TIMESERIES facet domain " + } + ], + "yAxisLeft": { + "zero": true + } + }, + "linkedEntityGuids": null + }, + { + "visualization": { + "id": "viz.line" + }, + "layout": { + "column": 4, + "row": 6, + "height": 5, + "width": 9 + }, + "title": "Success % Trend", + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountId": 0, + "query": "FROM SyntheticRequest SELECT percentage(count(*), where responseCode = 200 AND duration < 3000 ) where URL like '%cdn%' and domain !='newrelic.com' SINCE 1 week ago LIMIT 25 TIMESERIES facet domain " + } + ], + "yAxisLeft": { + "zero": false + } + }, + "linkedEntityGuids": null + }, + { + "visualization": { + "id": "viz.table" + }, + "layout": { + "column": 1, + "row": 11, + "height": 4, + "width": 12 + }, + "title": "Synthetic CDN Summary Metrics", + "rawConfiguration": { + "dataFormatters": [], + "facet": { + "showOtherSeries": false + }, + "nrqlQueries": [ + { + "accountId": 0, + "query": "FROM SyntheticRequest SELECT percentage(count(*), where responseCode = 200 AND duration < 3000 ), average((requestBodySize+requestHeaderSize)/duration) as 'kB/s',average(duration), max(duration), percentile(duration,95), uniqueCount(tuple(entityGuid,domain)) as 'urls' where URL like '%cdn%' SINCE 1 day ago LIMIT 100 facet domain " + } + ] + }, + "linkedEntityGuids": [ + "MXxWSVp8REFTSEJPQVJEfDIwMjI5OTY" + ] + } + ] + } + ] +} \ No newline at end of file