diff --git a/alert-policies/apache-traffic-server/CPUPercent.yml b/alert-policies/apache-traffic-server/CPUPercent.yml new file mode 100644 index 0000000000..d494dd394e --- /dev/null +++ b/alert-policies/apache-traffic-server/CPUPercent.yml @@ -0,0 +1,40 @@ +# Name of the alert +name: CPU Percent + +# Description and details +description: |+ + This alert is triggered if the CPU usage exceeds 90% for 5 minutes. +# Type of alert +type: STATIC + +# NRQL query +nrql: + + query: "SELECT average(host.cpuPercent) AS 'CPU used %' FROM Metric" + +# Function used to aggregate the NRQL query value(s) for comparison to the terms.threshold (Default: SINGLE_VALUE) +valueFunction: SINGLE_VALUE + +# List of Critical and Warning thresholds for the condition +terms: + - priority: CRITICAL + # Operator used to compare against the threshold. + operator: ABOVE + # Value that triggers a violation + threshold: 90 + # Time in seconds; 120 - 3600 + thresholdDuration: 300 + # How many data points must be in violation for the duration + thresholdOccurrences: ALL + - priority: WARNING + # Operator used to compare against the threshold. + operator: ABOVE + # Value that triggers a violation + threshold: 85 + # Time in seconds; 120 - 3600, must be a multiple of 60 for Baseline conditions + thresholdDuration: 300 + # How many data points must be in violation for the duration + thresholdOccurrences: ALL +# Duration after which a violation automatically closes +# Time in seconds; 300 - 2592000 (Default: 86400 [1 day]) +violationTimeLimitSeconds: 86400 \ No newline at end of file diff --git a/alert-policies/apache-traffic-server/FreeCacheRAM.yml b/alert-policies/apache-traffic-server/FreeCacheRAM.yml new file mode 100644 index 0000000000..05258b3b3c --- /dev/null +++ b/alert-policies/apache-traffic-server/FreeCacheRAM.yml @@ -0,0 +1,40 @@ +# Name of the alert +name: Free RAM Cache Percent + +# Description and details +description: |+ + This alert is triggered if the free space in RAM memory cache is below 10% for 5 minutes. +# Type of alert +type: STATIC + +# NRQL query +nrql: + + query: "SELECT (latest(global.proxy.process.cache.ram_cache.total_bytes) - latest(global.proxy.process.cache.ram_cache.bytes_used)) / latest(global.proxy.process.cache.ram_cache.total_bytes) * 100 FROM ATSCacheSampleMetrics" + +# Function used to aggregate the NRQL query value(s) for comparison to the terms.threshold (Default: SINGLE_VALUE) +valueFunction: SINGLE_VALUE + +# List of Critical and Warning thresholds for the condition +terms: + - priority: CRITICAL + # Operator used to compare against the threshold. + operator: BELOW + # Value that triggers a violation + threshold: 10 + # Time in seconds; 120 - 3600 + thresholdDuration: 300 + # How many data points must be in violation for the duration + thresholdOccurrences: ALL + - priority: WARNING + # Operator used to compare against the threshold. + operator: BELOW + # Value that triggers a violation + threshold: 15 + # Time in seconds; 120 - 3600, must be a multiple of 60 for Baseline conditions + thresholdDuration: 300 + # How many data points must be in violation for the duration + thresholdOccurrences: ALL +# Duration after which a violation automatically closes +# Time in seconds; 300 - 2592000 (Default: 86400 [1 day]) +violationTimeLimitSeconds: 86400 \ No newline at end of file diff --git a/alert-policies/apache-traffic-server/MemoryUsagePercent.yml b/alert-policies/apache-traffic-server/MemoryUsagePercent.yml new file mode 100644 index 0000000000..d36ecd0522 --- /dev/null +++ b/alert-policies/apache-traffic-server/MemoryUsagePercent.yml @@ -0,0 +1,40 @@ +# Name of the alert +name: Memory Usage Percent + +# Description and details +description: |+ + This alert is triggered if the memory usage exceeds 90% for 5 minutes. +# Type of alert +type: STATIC + +# NRQL query +nrql: + + query: "SELECT average(host.memoryUsedPercent) AS 'Memory used %' FROM Metric" + +# Function used to aggregate the NRQL query value(s) for comparison to the terms.threshold (Default: SINGLE_VALUE) +valueFunction: SINGLE_VALUE + +# List of Critical and Warning thresholds for the condition +terms: + - priority: CRITICAL + # Operator used to compare against the threshold. + operator: ABOVE + # Value that triggers a violation + threshold: 90 + # Time in seconds; 120 - 3600 + thresholdDuration: 300 + # How many data points must be in violation for the duration + thresholdOccurrences: ALL + - priority: WARNING + # Operator used to compare against the threshold. + operator: ABOVE + # Value that triggers a violation + threshold: 85 + # Time in seconds; 120 - 3600, must be a multiple of 60 for Baseline conditions + thresholdDuration: 300 + # How many data points must be in violation for the duration + thresholdOccurrences: ALL +# Duration after which a violation automatically closes +# Time in seconds; 300 - 2592000 (Default: 86400 [1 day]) +violationTimeLimitSeconds: 86400 \ No newline at end of file diff --git a/alert-policies/apache-traffic-server/SSLExpiredCertificate.yml b/alert-policies/apache-traffic-server/SSLExpiredCertificate.yml new file mode 100644 index 0000000000..45c9af48db --- /dev/null +++ b/alert-policies/apache-traffic-server/SSLExpiredCertificate.yml @@ -0,0 +1,30 @@ +# Name of the alert +name: SSL Expired Certificates + +# Description and details +description: |+ + This alert is triggered when at least 1 SSL connection to an origin server with an expired original certificate is connected. +# Type of alert +type: STATIC + +# NRQL query +nrql: + + query: "SELECT latest(global.proxy.process.ssl.origin_server_expired_cert) AS 'ssl expired' FROM ATSSampleMetrics" + +# Function used to aggregate the NRQL query value(s) for comparison to the terms.threshold (Default: SINGLE_VALUE) +valueFunction: SINGLE_VALUE + +# List of Critical and Warning thresholds for the condition +terms: + - priority: CRITICAL + # Operator used to compare against the threshold. + operator: ABOVE + # Value that triggers a violation + threshold: 1 + # Time in seconds; 120 - 3600 + thresholdDuration: 300 + # How many data points must be in violation for the duration + thresholdOccurrences: ALL +# Time in seconds; 300 - 2592000 (Default: 86400 [1 day]) +violationTimeLimitSeconds: 86400 \ No newline at end of file diff --git a/dashboards/apache-traffic-server/apache-traffic-server.json b/dashboards/apache-traffic-server/apache-traffic-server.json new file mode 100644 index 0000000000..ac569231f9 --- /dev/null +++ b/dashboards/apache-traffic-server/apache-traffic-server.json @@ -0,0 +1,1583 @@ +{ + "name": "Apache Traffic Server", + "description": null, + "pages": [ + { + "name": "Overview", + "description": null, + "widgets": [ + { + "title": "", + "layout": { + "column": 1, + "row": 1, + "width": 2, + "height": 1 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.markdown" + }, + "rawConfiguration": { + "text": "![logo](https://trafficserver.apache.org/images/press/ts_logo_tm_1960x375.png)" + } + }, + { + "title": "expired SSL certificates", + "layout": { + "column": 3, + "row": 1, + "width": 2, + "height": 1 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.billboard" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "SELECT latest(global.proxy.process.ssl.origin_server_expired_cert) AS 'expired SSL certificates' FROM ATSSampleMetrics" + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "thresholds": [ + { + "alertSeverity": "CRITICAL", + "value": 1 + } + ] + } + }, + { + "title": "ATS High Error Rate in Closed Connections", + "layout": { + "column": 5, + "row": 1, + "width": 2, + "height": 1 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.billboard" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "SELECT latest(global.proxy.process.http2.session_die_high_error_rate) AS 'closed connections error rate' FROM ATSHttpSampleMetrics" + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "thresholds": [ + { + "alertSeverity": "CRITICAL", + "value": 1 + } + ] + } + }, + { + "title": "ATS Free Cache RAM (%)", + "layout": { + "column": 7, + "row": 1, + "width": 2, + "height": 1 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.billboard" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "SELECT (latest(global.proxy.process.cache.ram_cache.total_bytes) - latest(global.proxy.process.cache.ram_cache.bytes_used)) / latest(global.proxy.process.cache.ram_cache.total_bytes)*100 AS '(%) free cache RAM' FROM ATSCacheSampleMetrics" + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "thresholds": [ + { + "alertSeverity": "CRITICAL", + "value": 10 + }, + { + "alertSeverity": "WARNING", + "value": 15 + } + ] + } + }, + { + "title": "Total HTTP Incoming Requests", + "layout": { + "column": 9, + "row": 1, + "width": 2, + "height": 1 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.billboard" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "SELECT latest(global.proxy.process.http.incoming_requests) AS 'incoming requests' FROM ATSHttpSampleMetrics" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "Number of HTTP Incoming Responses", + "layout": { + "column": 11, + "row": 1, + "width": 2, + "height": 1 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.billboard" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "SELECT latest(global.proxy.process.http.incoming_responses) AS 'incoming responses' FROM ATSHttpSampleMetrics" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "", + "layout": { + "column": 1, + "row": 2, + "width": 2, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.markdown" + }, + "rawConfiguration": { + "text": "\n\n**About**\n\nInstrument your application with New Relic - [Add Data](https://one.newrelic.com/marketplace?account=3510613).\n\nInstrument Apache Traffic Server with New Relic using the [documentation](https://docs.newrelic.com/docs/infrastructure/host-integrations/host-integrations-list/apache-traffic-server-monitoring-integration/).\n\n[Please rate this dashboard](https://docs.google.com/forms/d/e/1FAIpQLSclR38J8WbbB2J1tHnllKUkzWZkJhf4SrJGyavpMd4t82NjnQ/viewform?usp=pp_url&entry.1615922415=ApacheTrafficServer) here and let us know how we can improve it for you.\n" + } + }, + { + "title": "Cache Hit Ratio", + "layout": { + "column": 3, + "row": 2, + "width": 5, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.area" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "SELECT (latest(global.proxy.process.cache_total_hits) / (latest(global.proxy.process.cache_total_hits) + latest(global.proxy.process.cache_total_misses))) * 100 AS 'cache hit ratio' FROM ATSCacheSampleMetrics TIMESERIES AUTO " + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "Duration of HTTP Transaction Errors (milliseconds)", + "layout": { + "column": 8, + "row": 2, + "width": 5, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.line" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "SELECT latest(global.proxy.process.http.transaction_totaltime.errors.other) AS 'errors time' FROM ATSHttpSampleMetrics TIMESERIES AUTO " + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "yAxisLeft": { + "zero": true + } + } + }, + { + "title": "Total Client Connections", + "layout": { + "column": 1, + "row": 5, + "width": 2, + "height": 1 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.billboard" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "SELECT latest(global.proxy.process.http.total_client_connections) AS 'total client connections' FROM ATSHttpSampleMetrics " + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "Total HTTP Invalid Client Requests", + "layout": { + "column": 3, + "row": 5, + "width": 2, + "height": 1 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.billboard" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "SELECT latest(global.proxy.process.http.invalid_client_requests) AS 'invalid client requests' FROM ATSHttpSampleMetrics" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "Total Cache Hits", + "layout": { + "column": 5, + "row": 5, + "width": 2, + "height": 1 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.billboard" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "SELECT latest(global.proxy.process.cache_total_hits) AS 'total cache hits' FROM ATSCacheSampleMetrics" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "Number of Misses Cache", + "layout": { + "column": 7, + "row": 5, + "width": 2, + "height": 1 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.billboard" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "SELECT latest(global.proxy.process.cache_total_misses) AS 'total cache misses' FROM ATSCacheSampleMetrics" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "Start Time of Node Restarts Manager", + "layout": { + "column": 9, + "row": 5, + "width": 4, + "height": 1 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.billboard" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "SELECT latest(global.proxy.node.restarts.manager.start_time) AS 'restarts manager time' FROM ATSSampleMetrics" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "Network I/O", + "layout": { + "column": 1, + "row": 6, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.area" + }, + "rawConfiguration": { + "colors": { + "seriesOverrides": [ + { + "color": "#0c923f", + "seriesName": "incomeing requests" + }, + { + "color": "#ed0c0c", + "seriesName": "outgoing requests" + } + ] + }, + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "SELECT average(host.net.receiveBytesPerSecond) AS 'receive bytes per second', average(host.net.transmitBytesPerSecond) AS 'transmit bytes per second' FROM Metric TIMESERIES AUTO " + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "Latency", + "layout": { + "column": 5, + "row": 6, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.line" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "SELECT average(host.net.receivePacketsPerSecond) AS 'receive packets per second', average(host.net.transmitPacketsPerSecond) AS 'transmit packets per second' FROM Metric TIMESERIES AUTO " + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "yAxisLeft": { + "zero": true + } + } + }, + { + "title": "ATS Transaction Errors", + "layout": { + "column": 9, + "row": 6, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.stacked-bar" + }, + "rawConfiguration": { + "colors": { + "seriesOverrides": [ + { + "color": "#d90d0d", + "seriesName": "others" + } + ] + }, + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "SELECT latest(global.proxy.process.http.transaction_counts.errors.other) AS 'others', latest(global.proxy.process.http.transaction_counts.errors.aborts) AS 'aborts', latest(global.proxy.process.http.transaction_counts.errors.connect_failed) AS 'connect failed' FROM ATSHttpSampleMetrics TIMESERIES AUTO " + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + } + ] + }, + { + "name": "ATS Cache", + "description": null, + "widgets": [ + { + "title": "Total Cache Deletes", + "layout": { + "column": 1, + "row": 1, + "width": 2, + "height": 1 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.billboard" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "SELECT latest(global.proxy.process.http.cache_deletes) AS 'cache deletes' FROM ATSCacheSampleMetrics" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "HTTP Cache Lookups", + "layout": { + "column": 3, + "row": 1, + "width": 2, + "height": 1 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.billboard" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "SELECT latest(global.proxy.process.http.cache_lookups) AS 'cache lookups' FROM ATSCacheSampleMetrics" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "Total Cache Requests", + "layout": { + "column": 5, + "row": 1, + "width": 2, + "height": 1 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.billboard" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "SELECT latest(global.proxy.process.cache_total_requests) AS 'total cache requests' FROM ATSCacheSampleMetrics" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "Total RAM Cache", + "layout": { + "column": 7, + "row": 1, + "width": 3, + "height": 1 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.billboard" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "SELECT latest(global.proxy.process.cache.ram_cache.total_bytes) / 1e+6 AS 'total RAM cache (MB)' FROM ATSCacheSampleMetrics" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "Free RAM Cache", + "layout": { + "column": 10, + "row": 1, + "width": 3, + "height": 1 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.billboard" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "SELECT (latest(global.proxy.process.cache.ram_cache.total_bytes) - latest(global.proxy.process.cache.ram_cache.bytes_used)) / 1e+6 AS 'free RAM cache (MB)' FROM ATSCacheSampleMetrics" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "ATS Proxy Cache Write Statistics", + "layout": { + "column": 1, + "row": 2, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.area" + }, + "rawConfiguration": { + "colors": { + "seriesOverrides": [ + { + "color": "#1cd719", + "seriesName": "success" + }, + { + "color": "#df0c0c", + "seriesName": "failure" + } + ] + }, + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "SELECT latest(global.proxy.process.cache.write.success) AS 'success', latest(global.proxy.process.cache.write.failure) AS 'failure' FROM ATSCacheSampleMetrics TIMESERIES AUTO " + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "Cache Volume Ram Cache Hits & Misses", + "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": "SELECT latest(global.proxy.process.cache.volume_0.ram_cache.hits) AS 'volume_0 ram cache hits',latest(global.proxy.process.cache.volume_0.ram_cache.misses) AS 'volume_0 ram cache misses' FROM ATSCacheSampleMetrics TIMESERIES AUTO " + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "yAxisLeft": { + "zero": true + } + } + }, + { + "title": "Cache Volume Ram Cache Total & Used Bytes ", + "layout": { + "column": 9, + "row": 2, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.stacked-bar" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "SELECT latest(global.proxy.process.cache.volume_0.ram_cache.total_bytes) AS 'total volume_0 ram cache', latest(global.proxy.process.cache.volume_0.ram_cache.bytes_used) AS 'used volume_0 ram cache' FROM ATSCacheSampleMetrics TIMESERIES AUTO" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "HostDB Cache Statistics", + "layout": { + "column": 1, + "row": 5, + "width": 5, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.line" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "SELECT latest(global.proxy.process.hostdb.cache.current_items) AS 'hostdb cache items', latest(global.proxy.process.hostdb.cache.current_size) AS 'hostdb cache size', latest(global.proxy.process.hostdb.cache.total_lookups) AS 'hostdb cache lookups' FROM ATSCacheSampleMetrics TIMESERIES AUTO " + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "yAxisLeft": { + "zero": true + } + } + }, + { + "title": "Total Cache Size Statistics", + "layout": { + "column": 6, + "row": 5, + "width": 7, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.stacked-bar" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "SELECT latest(global.proxy.process.cache_total_bytes) AS 'total bytes', latest(global.proxy.process.cache_total_hits_bytes) AS 'hits bytes' , latest(global.proxy.process.cache_total_misses_bytes) AS 'misses bytes' FROM ATSCacheSampleMetrics TIMESERIES AUTO " + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "ATS Proxy Cache Success Statistics", + "layout": { + "column": 1, + "row": 8, + "width": 6, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.area" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "SELECT latest(global.proxy.process.cache.read.success) AS 'read success',latest(global.proxy.process.cache.read.failure) AS ' failure success', latest(global.proxy.process.cache.update.success) AS 'update success', latest(global.proxy.process.cache.remove.success) AS 'remove success' FROM ATSCacheSampleMetrics TIMESERIES AUTO" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "DNS Statistics", + "layout": { + "column": 7, + "row": 8, + "width": 6, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.stacked-bar" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "SELECT latest(global.proxy.process.dns.total_dns_lookups) AS 'total dns lookups',latest(global.proxy.process.dns.lookup_successes) AS 'dns lookup successes', latest(global.proxy.process.dns.lookup_failures) AS 'dns lookup failures', latest(global.proxy.process.dns.max_retries_exceeded) AS 'dns max retries exceeded' FROM ATSSampleMetrics TIMESERIES AUTO " + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + } + ] + }, + { + "name": "ATS HTTP ", + "description": null, + "widgets": [ + { + "title": "HTTP Request statistics", + "layout": { + "column": 1, + "row": 1, + "width": 5, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.area" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "SELECT latest(global.proxy.process.http.incoming_requests) AS 'incoming',latest(global.proxy.process.http.outgoing_requests) AS 'ougoing', latest(global.proxy.process.http.completed_requests) AS 'completed', latest(global.proxy.process.http.delete_requests) AS 'delete' FROM ATSHttpSampleMetrics TIMESERIES AUTO " + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "ATS Total Request and Response Size", + "layout": { + "column": 6, + "row": 1, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.line" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "SELECT latest(global.proxy.process.http.origin_server_total_request_bytes) AS 'request size', latest(global.proxy.process.http.origin_server_total_response_bytes) AS 'response size' FROM ATSHttpSampleMetrics TIMESERIES AUTO " + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "yAxisLeft": { + "zero": true + } + } + }, + { + "title": "Client Connections Statistics", + "layout": { + "column": 10, + "row": 1, + "width": 3, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.billboard" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "SELECT latest(global.proxy.process.http.total_client_connections) AS 'total client connections', latest(global.proxy.process.http.total_client_connections_ipv4) AS ' client connections ipv4', latest(global.proxy.process.http.total_client_connections_ipv6) AS ' client connections ipv6' FROM ATSHttpSampleMetrics" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "HTTP Current Active Client & Server Connections", + "layout": { + "column": 1, + "row": 4, + "width": 3, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.billboard" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "SELECT latest(global.proxy.process.http.current_active_client_connections) AS 'active connections', latest(global.proxy.process.http.total_server_connections) AS 'total server connections', latest(global.proxy.process.http.broken_server_connections) AS 'broken server connections' FROM ATSHttpSampleMetrics" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "HTTP Response Document Size (bytes)", + "layout": { + "column": 4, + "row": 4, + "width": 5, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.area" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "SELECT latest(global.proxy.process.http.response_document_size_100) AS 'size 100', latest(global.proxy.process.http.response_document_size_1K) AS 'size 1K',latest(global.proxy.process.http.response_document_size_5K) AS 'size 5K', latest(global.proxy.process.http.response_document_size_10K)AS 'size 10K',latest(global.proxy.process.http.response_document_size_1M)AS 'size 1M', latest(global.proxy.process.http.response_document_size_inf)AS 'size inf' FROM ATSHttpSampleMetrics TIMESERIES AUTO " + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "HTTP Request Document Size (bytes)", + "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": "SELECT latest(global.proxy.process.http.request_document_size_100) AS 'size 100', latest(global.proxy.process.http.request_document_size_1K)AS 'size 1K', latest(global.proxy.process.http.request_document_size_3K) AS 'size 3K', latest(global.proxy.process.http.request_document_size_5K) AS 'size 5K', latest(global.proxy.process.http.request_document_size_10K)AS 'size 10K', latest(global.proxy.process.http.request_document_size_1M) AS 'size 1M', latest(global.proxy.process.http.request_document_size_inf)AS 'size inf' FROM ATSHttpSampleMetrics TIMESERIES AUTO " + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "yAxisLeft": { + "zero": true + } + } + }, + { + "title": "HTTP Total Incoming Statistics", + "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": "SELECT latest(global.proxy.process.http.total_incoming_connections) AS 'incoming connections', latest(global.proxy.process.http.incoming_responses) AS 'incoming responses' FROM ATSHttpSampleMetrics TIMESERIES AUTO " + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "HTTP Average Transactions per Client & Server", + "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": "SELECT latest(global.proxy.process.http.avg_transactions_per_client_connection) AS 'client connection' , latest(global.proxy.process.http.avg_transactions_per_server_connection) AS 'server connection' FROM ATSHttpSampleMetrics TIMESERIES AUTO " + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "SSL Errors", + "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": "SELECT latest(global.proxy.process.ssl.origin_server_other_errors) AS 'origin server errors',latest(global.proxy.process.ssl.ssl_error_ssl) AS 'ssl error', latest(global.proxy.process.ssl.ssl_error_want_read) AS 'read errors', latest(global.proxy.process.ssl.ssl_error_want_write)AS 'write errors' FROM ATSSampleMetrics TIMESERIES AUTO " + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "yAxisLeft": { + "zero": true + } + } + } + ] + }, + { + "name": "Apache", + "description": null, + "widgets": [ + { + "title": "Apache Network Traffic", + "layout": { + "column": 1, + "row": 1, + "width": 5, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.line" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "SELECT latest(net.bytesPerSecond) AS 'bytes' , latest(net.requestsPerSecond) AS 'requests' FROM ApacheSample TIMESERIES AUTO " + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "yAxisLeft": { + "zero": true + } + } + }, + { + "title": "Apache Workers", + "layout": { + "column": 6, + "row": 1, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.billboard" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "SELECT latest(server.busyWorkers) AS 'busy workers', latest(server.idleWorkers) AS 'idle workers' FROM ApacheSample" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "Apache Scoreboard Total Workers", + "layout": { + "column": 10, + "row": 1, + "width": 3, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.billboard" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "SELECT latest(server.scoreboard.totalWorkers) AS 'total workers' FROM ApacheSample" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "Apache Scoreboard Workers", + "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 latest(server.scoreboard.loggingWorkers) AS 'logging workers', latest(server.scoreboard.keepAliveWorkers) AS 'keep alive workers', latest(server.scoreboard.startingWorkers) AS 'starting workers', latest(server.scoreboard.writingWorkers) AS 'writing workers', latest(server.scoreboard.readingWorkers) AS 'reading workers', latest(server.scoreboard.idleCleanupWorkers) AS 'idle cleanup workers', latest(server.scoreboard.finishingWorkers) AS 'finishing workers' FROM ApacheSample TIMESERIES AUTO " + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "Apache Memory (GB)", + "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": "SELECT latest(systemMemoryBytes) AS 'memory' FROM ApacheSample TIMESERIES AUTO " + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + } + ] + }, + { + "name": "Infrastructure", + "description": null, + "widgets": [ + { + "title": "CPU Usage (%)", + "layout": { + "column": 1, + "row": 2, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.area" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "SELECT average(host.cpuPercent) AS 'CPU used %' FROM Metric TIMESERIES auto" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "Memory Usage (%)", + "layout": { + "column": 5, + "row": 2, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.line" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": false + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "SELECT average(host.memoryUsedPercent) AS 'Memory used %' FROM Metric TIMESERIES auto" + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "yAxisLeft": { + "max": 100, + "min": 0, + "zero": true + } + } + }, + { + "title": "Storage Usage (%)", + "layout": { + "column": 9, + "row": 2, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.line" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": false + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "SELECT average(host.disk.usedPercent) as 'Storage used %' FROM Metric TIMESERIES auto" + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "yAxisLeft": { + "max": 100, + "min": 0, + "zero": true + } + } + }, + { + "title": "Free Disk (%)", + "layout": { + "column": 1, + "row": 5, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.stacked-bar" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "legend": { + "enabled": true + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "SELECT average(host.diskFreePercent) FROM Metric TIMESERIES auto" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "Load Average", + "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": "SELECT average(host.loadAverageOneMinute) as '1 minute', average(host.loadAverageFiveMinute) AS '5 minutes', average(host.loadAverageFifteenMinute) AS '15 minutes' FROM Metric TIMESERIES auto" + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "yAxisLeft": { + "zero": true + } + } + }, + { + "title": "Processes Running", + "layout": { + "column": 9, + "row": 5, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.table" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "SELECT latest(host.process.cpuPercent) as 'CPU %', latest(host.process.threadCount) as 'Threads' FROM Metric FACET processId, processDisplayName ORDER BY cpuPercent asc LIMIT 100" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + } + ] + }, + { + "name": "Logs", + "description": null, + "widgets": [ + { + "title": "", + "layout": { + "column": 1, + "row": 1, + "width": 4, + "height": 1 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.markdown" + }, + "rawConfiguration": { + "text": "**Logs forwarding** (optional)\n\nFollow New Relic [Apache Traffic Server Logs forwarding documentation](https://docs.newrelic.com/docs/infrastructure/host-integrations/host-integrations-list/apache-traffic-server-monitoring-integration/#forward-apache-traffic-server-logs-to-new-relic) to instrument Apache Traffic Server Logs." + } + }, + { + "title": "", + "layout": { + "column": 5, + "row": 1, + "width": 8, + "height": 1 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.markdown" + }, + "rawConfiguration": { + "text": "## Choose variable\nSelect your appropriate \"logtype\" variable(s) to display the related logs." + } + }, + { + "title": "Apache Traffic Server Logs", + "layout": { + "column": 1, + "row": 2, + "width": 12, + "height": 4 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "logger.log-table-widget" + }, + "rawConfiguration": { + "nrqlQueries": [ + { + "accountIds": [], + "query": "SELECT hostname, message FROM Log WHERE logtype = {{log_type}}" + } + ] + } + } + ] + } + ], + "variables": [ + { + "name": "log_type", + "items": null, + "defaultValues": [], + "nrqlQuery": { + "accountIds": [], + "query": "SELECT uniques(logtype) FROM Log since 1 month ago" + }, + "title": "Select your logtype", + "type": "NRQL", + "isMultiSelection": true, + "replacementStrategy": "STRING" + } + ] +} diff --git a/dashboards/apache-traffic-server/ats-01.png b/dashboards/apache-traffic-server/ats-01.png new file mode 100644 index 0000000000..7f5f01e4d0 Binary files /dev/null and b/dashboards/apache-traffic-server/ats-01.png differ diff --git a/dashboards/apache-traffic-server/ats-02.png b/dashboards/apache-traffic-server/ats-02.png new file mode 100644 index 0000000000..3604bffca2 Binary files /dev/null and b/dashboards/apache-traffic-server/ats-02.png differ diff --git a/dashboards/apache-traffic-server/ats-03.png b/dashboards/apache-traffic-server/ats-03.png new file mode 100644 index 0000000000..fbdb832946 Binary files /dev/null and b/dashboards/apache-traffic-server/ats-03.png differ diff --git a/dashboards/apache-traffic-server/ats-04.png b/dashboards/apache-traffic-server/ats-04.png new file mode 100644 index 0000000000..fff5fa3a21 Binary files /dev/null and b/dashboards/apache-traffic-server/ats-04.png differ diff --git a/dashboards/apache-traffic-server/ats-05.png b/dashboards/apache-traffic-server/ats-05.png new file mode 100644 index 0000000000..7f7ac7b012 Binary files /dev/null and b/dashboards/apache-traffic-server/ats-05.png differ diff --git a/dashboards/apache-traffic-server/ats-06.png b/dashboards/apache-traffic-server/ats-06.png new file mode 100644 index 0000000000..43ef4713ff Binary files /dev/null and b/dashboards/apache-traffic-server/ats-06.png differ diff --git a/dashboards/apache-traffic-server/ats-07.png b/dashboards/apache-traffic-server/ats-07.png new file mode 100644 index 0000000000..10b1a9379b Binary files /dev/null and b/dashboards/apache-traffic-server/ats-07.png differ diff --git a/dashboards/apache-traffic-server/ats-08.png b/dashboards/apache-traffic-server/ats-08.png new file mode 100644 index 0000000000..f6df88d54f Binary files /dev/null and b/dashboards/apache-traffic-server/ats-08.png differ diff --git a/data-sources/apache-traffic-server/config.yml b/data-sources/apache-traffic-server/config.yml new file mode 100644 index 0000000000..7b25269a6c --- /dev/null +++ b/data-sources/apache-traffic-server/config.yml @@ -0,0 +1,13 @@ +id: apache-traffic-server +displayName: Apache Traffic Server +description: | + Optimize your Apache Traffic Server performance using New Relic Apache Traffic Server monitoring. +icon: logo.png +install: + primary: + link: + url: https://docs.newrelic.com/docs/infrastructure/host-integrations/host-integrations-list/apache-traffic-server-monitoring-integration/ +keywords: + - apache-traffic-server + - apache + - ats \ No newline at end of file diff --git a/data-sources/apache-traffic-server/logo.png b/data-sources/apache-traffic-server/logo.png new file mode 100644 index 0000000000..3699d4a467 Binary files /dev/null and b/data-sources/apache-traffic-server/logo.png differ diff --git a/quickstarts/apache-traffic-server/config.yml b/quickstarts/apache-traffic-server/config.yml new file mode 100644 index 0000000000..cd70e7eff7 --- /dev/null +++ b/quickstarts/apache-traffic-server/config.yml @@ -0,0 +1,56 @@ + + +slug: apache-traffic-server +description: | + ## Comprehensive monitoring quickstart for Apache Traffic Server + By integrating Apache Traffic Server (ATS) with New Relic, you can efficiently set up a monitoring infrastructure that captures, visualizes, and alerts you to important ATS metrics. Monitoring ATS performance and health ensures smooth operation, rapid issue identification, and proactive problem resolution, ultimately enhancing the reliability and efficiency of your web infrastructure. + + ## Why is it important to monitor Apache Traffic Server? + Monitor Apache Traffic Server to understand the functionality, performance, and general health of this potent web caching and proxying solution. You will obtain a thorough insight of ATS's behavior, spot any problems before they become serious, and make sure that your web infrastructure is working as efficiently as possible by closely monitoring it. + + By leveraging New Relic, you can gain a more in-depth understanding of Monitoring Apache Traffic Server is an essential procedure that provides priceless information about the functionality, performance, and general health of this potent web caching and proxying solution. You will get a comprehensive understanding of ATS behavior, spot any problems before they become serious, and make sure that your web infrastructure is working as efficiently as possible by closely monitoring it. + + Install this quickstart as part of your proactive observability strategy to guarantee outstanding web performance, exceptional user experiences, and dependable functioning of your web infrastructure. You can efficiently manage ATS and keep up a solid, high-performance web infrastructure. + + + ## What’s included in this quickstart? + The Apache Traffic Server quickstart provides out-of-the-box reporting that covers the following areas: + + - Real-time visibility: Get insights into the performance of your ATS deployment in real time. + - Optimized performance: Identify performance bottlenecks and optimize your ATS configuration to improve performance. + - Early issue detection: Get alerts when there are potential problems with your ATS deployment so you can take action quickly. + - Capacity planning: Plan for future growth by understanding how your ATS deployment is currently being used. + - Efficient troubleshooting: Troubleshoot problems with your ATS deployment quickly and easily by using New Relic's tools. + - User experience enhancement: Improve the user experience of your applications by understanding how they are being used and making changes to improve performance. + - Security insights: Get insights into the security of your ATS deployment and identify potential threats. + - Continuous improvement: Use New Relic's data to continuously improve the performance and security of your ATS deployment. + + Monitoring Apache Traffic Server (ATS) with New Relic can help you improve the performance of your online services, which can lead to increased user engagement, longer site visits, and higher revenue. + +summary: | + Optimize your Apache Traffic Server performance using New Relic Apache Traffic Server monitoring. +icon: logo.png +level: New Relic +authors: + - New Relic +title: Apache Traffic Server +documentation: + - name: Documentation on how to integrate Apache Traffic Server + description: | + Monitor the performance metrics of your Apache Traffic Server instances in real-time with New Relic Apache Traffic Server. + url: >- + https://docs.newrelic.com/docs/infrastructure/host-integrations/host-integrations-list/apache-traffic-server-monitoring-integration/ +keywords: + - ats + - apache traffic server + - web proxy + - web proxy cache + - HTTP caching + - reverse proxy + - content filtering +dashboards: + - apache-traffic-server +alertPolicies: + - apache-traffic-server +dataSourceIds: + - apache-traffic-server diff --git a/quickstarts/apache-traffic-server/logo.png b/quickstarts/apache-traffic-server/logo.png new file mode 100644 index 0000000000..3699d4a467 Binary files /dev/null and b/quickstarts/apache-traffic-server/logo.png differ