From e254726bdb0620141694485bbcadaac08570760a Mon Sep 17 00:00:00 2001 From: Apoorv Kudesia Date: Mon, 27 Apr 2026 18:57:41 +0530 Subject: [PATCH 01/28] SUMO-282477 | Apoorv | Add. monitors to migrated v2 apps and small fixes --- docs/integrations/amazon-aws/api-gateway.md | 35 +++- .../amazon-aws/application-load-balancer.md | 32 ++++ .../amazon-aws/classic-load-balancer.md | 36 +++- docs/integrations/amazon-aws/dynamodb.md | 36 +++- .../amazon-aws/ec2-cloudwatch-metrics.md | 31 ++- .../amazon-aws/ec2-host-metrics.md | 31 ++- ...r-service-container-insights-cloudwatch.md | 181 ++++++++++-------- 7 files changed, 295 insertions(+), 87 deletions(-) diff --git a/docs/integrations/amazon-aws/api-gateway.md b/docs/integrations/amazon-aws/api-gateway.md index 1baf8144c5..a1232e6ba2 100644 --- a/docs/integrations/amazon-aws/api-gateway.md +++ b/docs/integrations/amazon-aws/api-gateway.md @@ -1,6 +1,7 @@ --- id: api-gateway title: AWS API Gateway +sidebar_label: AWS API Gateway description: Amazon API Gateway service allows you to create RESTful APIs, HTTP APIs, and WebSocket APIs for real-time two-way communication applications in containerized and serverless environments, as well as web applications. --- @@ -565,7 +566,7 @@ Enter a parse expression to create an `account` field that maps to the alias you Now that you have set up a collection for the **AWS API gateway**, install the Sumo Logic app to use the pre-configured dashboards that provide visibility into your environment for real-time analysis of overall usage. -import AppInstall from '../../reuse/apps/app-install.md'; +import AppInstall from '../../reuse/apps/app-install-v2.md'; @@ -715,3 +716,35 @@ Use these dashboards to: #### AWS API Gateway - Enhanced Monitoring (WebSocket API) Enhanced Monitoring (WebSocket API) + +## Create monitors for AWS API Gateway app + +import CreateMonitors from '../../reuse/apps/create-monitors.md'; + + + +### AWS API Gateway alerts + +| Name | Description | Alert Condition | Recover Condition | +|:-----|:------------|:----------------|:--| +| `AWS API Gateway - High Server-Side Errors` | This alert fires where there are too many API requests (>5%) with server-side errors within 5 minutes. | Count > = 0.05 | Count < 0.05 | +| `AWS API Gateway - High Client-Side Errors` | This alert fires where there are too many API requests (>5%) with client-side errors within 5 minutes. | Count > = 0.05 | Count < 0.05 | +| `AWS API Gateway - High Integration Latency` | This alert fires when we detect the high integration latency for the API requests in a stage within 5 minutes. | Count > = 2000 | Count < 2000 | +| `AWS API Gateway - High Latency` | This alert fires when we detect the high latency in a stage within 5 minutes for REST and HTTP API. | Count > = 2500 | Count < 2500 | +| `AWS API Gateway - Low Traffic API` | This alert fires where there is low message traffic volume for the API within 5 minutes. | Count < = 1 | Count > 1 | +| `AWS API Gateway - High Authorizer Errors` | This alert fires where there are too many API requests (>5%) with authorizer errors within 5 minutes. | Count > 5 | Count < = 5 | +| `AWS API Gateway - High Integration Errors` | This alert fires where there are too many API requests (>5%) with integration errors within 5 minutes. | Count > 5 | Count < = 5 | +| `AWS API Gateway - High WAF Errors` | This alert fires where there are too many API requests (>5%) with WAF errors within 5 minutes. | Count > 5 | Count < = 5 | +| `AWS API Gateway - High WAF Latency` | This alert fires when we detect the high WAF latency for the REST and WebSocket API requests in a stage within 5 minutes. | Count > 1000 | Count < = 1000 | + +## Upgrade/Downgrade the AWS API Gateway app (Optional) + +import AppUpdate from '../../reuse/apps/app-update.md'; + + + +## Uninstalling the AWS API Gateway app (Optional) + +import AppUninstall from '../../reuse/apps/app-uninstall.md'; + + diff --git a/docs/integrations/amazon-aws/application-load-balancer.md b/docs/integrations/amazon-aws/application-load-balancer.md index 02e999a555..3b57f7dd5f 100644 --- a/docs/integrations/amazon-aws/application-load-balancer.md +++ b/docs/integrations/amazon-aws/application-load-balancer.md @@ -1,6 +1,7 @@ --- id: application-load-balancer title: AWS Application Load Balancer +sidebar_label: AWS Application Load Balancer description: The Sumo Logic app for AWS Elastic Load Balancing ULM - Application is a unified logs and metrics (ULM) app that gives you visibility into the health of your Application Load Balancer and target groups. --- @@ -163,6 +164,8 @@ import AppInstallNoDataSourceV2 from '../../reuse/apps/app-install-index-apps-v2 ## Viewing AWS Application Load Balancer dashboards +We highly recommend you view these dashboards in the [AWS Observability view](/docs/dashboards/explore-view/#aws-observability) of the AWS Observability solution. + ### Overview The **AWS Application Load Balancer - Overview** dashboard provides visibility into the health of your Application Load Balancer and target groups, with at-a-glance views of latency, request and host status, requests from malicious sources, and HTTP backend codes. @@ -255,3 +258,32 @@ Use this dashboard to: * Identify the most common error types and the users experiencing the highest failure rates, facilitating targeted improvements and user support. AWS Application Load Balancer dashboard + +## Create monitors for AWS Application Load Balancer app + +import CreateMonitors from '../../reuse/apps/create-monitors.md'; + + + +### AWS Application Load Balancer alerts + +| Name | Description | Alert Condition | Recover Condition | +|:----------------------------------------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------|:------------------|:--| +| `AWS Application Load Balancer - Access from Highly Malicious Sources` | This alert fires when an Application load balancer is accessed from highly malicious IP addresses within last 5 minutes. | Count > 0 | Count < = 0 | +| `AWS Application Load Balancer - Deletion Alert` | This alert fires when an Application load balancer is deleted within last 5 minutes. | Count > = 2 | Count < 2 | +| `AWS Application Load Balancer - High 4XX Errors` | This alert fires where there are too many HTTP requests (>5%) with a response status of 4xx within an interval of 5 minutes. | Count > = 5 | Count < 5 | +| `AWS Application Load Balancer - High 5XX Errors` | This alert fires where there are too many HTTP requests (>5%) with a response status of 5xx within an interval of 5 minutes. | Count > = 5 | Count < 5 | +| `AWS Application Load Balancer - High Latency` | This alert fires when we detect that the average latency for a given Application load balancer within a time interval of 5 minutes is greater than or equal to three seconds. | Count > = 3000 | Count < 3000 | +| `AWS Application Load Balancer - Targets Deregistered` | This alert fires when targets are deregistered from an Application load balancer within last 5 minutes. | Count > = 1 | Count < 1 | + +## Upgrade/Downgrade the AWS Application Load Balancer app (Optional) + +import AppUpdate from '../../reuse/apps/app-update.md'; + + + +## Uninstalling the AWS Application Load Balancer app (Optional) + +import AppUninstall from '../../reuse/apps/app-uninstall.md'; + + diff --git a/docs/integrations/amazon-aws/classic-load-balancer.md b/docs/integrations/amazon-aws/classic-load-balancer.md index 37ec08d87b..186a5c67b9 100644 --- a/docs/integrations/amazon-aws/classic-load-balancer.md +++ b/docs/integrations/amazon-aws/classic-load-balancer.md @@ -1,6 +1,7 @@ --- id: classic-load-balancer title: AWS Classic Load Balancer +sidebar_label: AWS Classic Load Balancer description: The Sumo Logic app for AWS Elastic Load Balancing Classic is a unified logs and metrics (ULM) app which helps you monitor the classic load balancer. --- @@ -153,11 +154,11 @@ json "eventSource", "awsRegion", "recipientAccountId", "requestParameters.loadBa | fields region, namespace, loadbalancername, accountid ``` -## Install the AWS Classic Load Balancer app +## Installing the AWS Classic Load Balancer app Now that you have set up a collection for AWS Classic Load Balancer, install the Sumo Logic app to use the pre-configured searches and dashboards that provide visibility into your environment for real-time analysis of overall usage. -import AppInstall from '../../reuse/apps/app-install.md'; +import AppInstall from '../../reuse/apps/app-install-v2.md'; @@ -255,4 +256,33 @@ Use this dashboard to: * Investigate specific error events, including their details, frequency, and associated users, enabling faster troubleshooting and resolution of issues. * Identify the most common error types and the users experiencing highest failure rates, facilitating targeted improvements and user support. -AWS Elastic Load Balancer Classic \ No newline at end of file +AWS Elastic Load Balancer Classic + +## Create monitors for AWS Classic Load Balancer app + +import CreateMonitors from '../../reuse/apps/create-monitors.md'; + + + +### AWS Classic Load Balancer alerts + +| Name | Description | Alert Condition | Recover Condition | +|:-----|:------------|:----------------|:--| +| `AWS Classic Load Balancer - Access from Highly Malicious Sources` | This alert fires when the Classic load balancer is accessed from highly malicious IP addresses within last 5 minutes. | Count > 0 | Count < = 0 | +| `AWS Classic Load Balancer - Deletion Alert` | This alert fires when we detect greater than or equal to 2 application load balancers are deleted over a 5 minute time-period. | Count > = 2 | Count < 2 | +| `AWS Classic Load Balancer - High 4XX Errors` | This alert fires where there are too many HTTP requests (>5%) with a response status of 4xx within an interval of 5 minutes. | Count > = 5 | Count < 5 | +| `AWS Classic Load Balancer - High 5XX Errors` | This alert fires where there are too many HTTP requests (>5%) with a response status of 5xx within an interval of 5 minutes. | Count > = 5 | Count < 5 | +| `AWS Classic Load Balancer - High Latency` | This alert fires when we detect that the average latency for a given Classic load balancer within a time interval of 5 minutes is greater than or equal to three seconds. | Count > = 3000 | Count < 3000 | +| `AWS Classic Load Balancer - Targets Deregistered` | This alert fires when we detect greater than or equal to 1 target is de-registered over a 5 minute time-period. | Count > = 1 | Count < 1 | + +## Upgrade/Downgrade the AWS Classic Load Balancer app (Optional) + +import AppUpdate from '../../reuse/apps/app-update.md'; + + + +## Uninstalling the AWS Classic Load Balancer app (Optional) + +import AppUninstall from '../../reuse/apps/app-uninstall.md'; + + \ No newline at end of file diff --git a/docs/integrations/amazon-aws/dynamodb.md b/docs/integrations/amazon-aws/dynamodb.md index 317ff60932..85643d7ab7 100644 --- a/docs/integrations/amazon-aws/dynamodb.md +++ b/docs/integrations/amazon-aws/dynamodb.md @@ -1,6 +1,7 @@ --- id: dynamodb title: Amazon DynamoDB +sidebar_label: Amazon DynamoDB description: The Sumo Logic app for DynamoDB provides operational insight into your database environment and Dashboards displaying the events, errors, latency, and capacity of your DynamoDB environment. --- @@ -158,7 +159,7 @@ Enter a parse expression to create an “account” field that maps to the alias Now that you have set up a collection for **Amazon DynamoDB**, install the Sumo Logic app to use the pre-configured [dashboards](#viewing-amazon-dynamodb-dashboards) that provide visibility into your environment for real-time analysis of overall usage. -import AppInstall from '../../reuse/apps/app-install.md'; +import AppInstall from '../../reuse/apps/app-install-v2.md'; @@ -222,4 +223,35 @@ Use this dashboard to: * Identify malicious IPs performing operations on DynamoDB tables using Sumo Logic Threat Intel. -Amazon DynamoDB \ No newline at end of file +Amazon DynamoDB + +## Create monitors for Amazon DynamoDB app + +import CreateMonitors from '../../reuse/apps/create-monitors.md'; + + + +### Amazon DynamoDB alerts + +| Name | Description | Alert Condition | Recover Condition | +|:-----|:------------|:----------------|:--| +| `AWS DynamoDB - High Account Provisioned Read Capacity` | This alert fires when we detect that the average read capacity provisioned for an account for a time interval of 5 minutes is greater than or equal to 80%. | Count > = 80 | Count < 80 | +| `AWS DynamoDB - High Account Provisioned Write Capacity` | This alert fires when we detect that the average write capacity provisioned for an account for a time interval of 5 minutes is greater than or equal to 80%. | Count > = 80 | Count < 80 | +| `AWS DynamoDB - High Max Provisioned Table Read Capacity` | This alert fires when we detect that the average percentage of read provisioned capacity used by the highest read provisioned table of an account for a time interval of 5 minutes is greater than or equal to 80%. | Count > = 80 | Count < 80 | +| `AWS DynamoDB - High Max Provisioned Table Write Capacity` | This alert fires when we detect that the average percentage of write provisioned capacity used by the highest write provisioned table of an account for a time interval of 5 minutes is greater than or equal to 80%. | Count > = 80 | Count < 80 | +| `AWS DynamoDB - High Read Throttle` | This alert fires when we detect that the total read throttle events for a DynamoDB table is high (>5) for a time interval of 5 minutes. | Count > 5 | Count < = 5 | +| `AWS DynamoDB - High Write Throttle` | This alert fires when we detect that the total write throttle events for a DynamoDB table is high (>5) for a time interval of 5 minutes. | Count > 5 | Count < = 5 | +| `AWS DynamoDB - Multiple Tables deleted` | This alert fires when five or more tables are deleted within 15 minutes. | Count > = 5 | Count < 5 | +| `AWS DynamoDB - System Errors` | This alert fires when we detect system errors for a DynamoDB table is high (>10) for a time interval of 5 minutes. | Count > 10 | Count < = 10 | + +## Upgrade/Downgrade the Amazon DynamoDB app (Optional) + +import AppUpdate from '../../reuse/apps/app-update.md'; + + + +## Uninstalling the Amazon DynamoDB app (Optional) + +import AppUninstall from '../../reuse/apps/app-uninstall.md'; + + \ No newline at end of file diff --git a/docs/integrations/amazon-aws/ec2-cloudwatch-metrics.md b/docs/integrations/amazon-aws/ec2-cloudwatch-metrics.md index a25630b8da..e443b43bf6 100644 --- a/docs/integrations/amazon-aws/ec2-cloudwatch-metrics.md +++ b/docs/integrations/amazon-aws/ec2-cloudwatch-metrics.md @@ -219,7 +219,7 @@ Enter a parse expression to create an “account” field that maps to the alias Now that you have set up collection for AWS EC2 metrics install the Sumo Logic app to use the pre-configured searches and dashboards that provide visibility into your environment for real-time analysis of overall usage. -import AppInstall from '../../reuse/apps/app-install.md'; +import AppInstall from '../../reuse/apps/app-install-v2.md'; @@ -319,3 +319,32 @@ Use this dashboard to: * Monitor if an instance has passed the system status check at last minute AWS EC2 Status Check (CloudWatch Metrics) dashboard + +## Create monitors for AWS EC2 app + +import CreateMonitors from '../../reuse/apps/create-monitors.md'; + + + +### AWS EC2 alerts + +| Name | Description | Alert Condition | Recover Condition | +|:-----|:------------|:----------------|:--| +| `AWS EC2 CW - High CPU Utilization` | This alert fires when the average CPU Utilization based on cloud watch metrics, within a 5 minute interval for an EC2 instance is high (>=85%). | Count > 85 | Count < = 85 | +| `AWS EC2 CW - Status Check Failed` | This alert fires when there is a status check failures within a 5 minute interval for an EC2 instance. | Count > 0 | Count < = 0 | +| `AWS EC2 - High Disk Utilization` | This alert fires when the average disk utilization within a 5 minute time interval for an EC2 instance is high (>=85%). | Count > = 85 | Count < 85 | +| `AWS EC2 - High Memory Utilization` | This alert fires when the average memory utilization within a 5 minute interval for an EC2 instance is high (>=85%). | Count > = 85 | Count < 85 | +| `AWS EC2 - High System CPU Utilization` | This alert fires when the average system CPU utilization within a 5 minute interval for an EC2 instance is high (>=85%). | Count > = 85 | Count < 85 | +| `AWS EC2 - High Total CPU Utilization` | This alert fires when the average total CPU utilization within a 5 minute interval for an EC2 instance is high (>=85%). | Count > = 85 | Count < 85 | + +## Upgrade/Downgrade the AWS EC2 app (Optional) + +import AppUpdate from '../../reuse/apps/app-update.md'; + + + +## Uninstalling the AWS EC2 app (Optional) + +import AppUninstall from '../../reuse/apps/app-uninstall.md'; + + diff --git a/docs/integrations/amazon-aws/ec2-host-metrics.md b/docs/integrations/amazon-aws/ec2-host-metrics.md index 1984c4ee9f..3e8f1ffb61 100644 --- a/docs/integrations/amazon-aws/ec2-host-metrics.md +++ b/docs/integrations/amazon-aws/ec2-host-metrics.md @@ -117,11 +117,11 @@ You can also build your EC2 AMI machine image with these fields and settings. Fo Collectors running on AWS EC2 instances can optionally collect AWS Metadata such as EC2 tags to make it easier to search for Host Metrics. Only one AWS Metadata Source for Metrics is required to collect EC2 tags from multiple hosts. For more information, see [AWS Metadata Source for Metrics](/docs/send-data/hosted-collectors/amazon-aws/aws-metadata-tag-source). -## Install the Host Metrics (EC2) App +## Installing the Host Metrics (EC2) app Now that you have set up the collection for Host Metrics (EC2) metrics, install the Sumo Logic App to use the pre-configured searches and dashboards that provide visibility into your environment for real-time analysis of overall usage. -import AppInstall from '../../reuse/apps/app-install.md'; +import AppInstall from '../../reuse/apps/app-install-v2.md'; @@ -207,3 +207,30 @@ Use this dashboard to: * Identify if any improvements need to be made to optimize TCP traffic by analyzing various TCP connection states. EC2 host metrics dashboard + +## Create monitors for Host Metrics (EC2) app + +import CreateMonitors from '../../reuse/apps/create-monitors.md'; + + + +### Host Metrics (EC2) alerts + +| Name | Description | Alert Condition | Recover Condition | +|:-----|:------------|:----------------|:--| +| `AWS EC2 - High System CPU Utilization` | This alert fires when the average system CPU utilization within a 5 minute interval for an EC2 instance is high (>=85%). | Count > = 85 | Count < 85 | +| `AWS EC2 - High Total CPU Utilization` | This alert fires when the average total CPU utilization within a 5 minute interval for an EC2 instance is high (>=85%). | Count > = 85 | Count < 85 | +| `AWS EC2 - High Memory Utilization` | This alert fires when the average memory utilization within a 5 minute interval for an EC2 instance is high (>=85%). | Count > = 85 | Count < 85 | +| `AWS EC2 - High Disk Utilization` | This alert fires when the average disk utilization within a 5 minute time interval for an EC2 instance is high (>=85%). | Count > = 85 | Count < 85 | + +## Upgrade/Downgrade the Host Metrics (EC2) app (Optional) + +import AppUpdate from '../../reuse/apps/app-update.md'; + + + +## Uninstalling the Host Metrics (EC2) app (Optional) + +import AppUninstall from '../../reuse/apps/app-uninstall.md'; + + diff --git a/docs/integrations/amazon-aws/elastic-container-service-container-insights-cloudwatch.md b/docs/integrations/amazon-aws/elastic-container-service-container-insights-cloudwatch.md index 409a7e0533..5873249172 100644 --- a/docs/integrations/amazon-aws/elastic-container-service-container-insights-cloudwatch.md +++ b/docs/integrations/amazon-aws/elastic-container-service-container-insights-cloudwatch.md @@ -12,10 +12,10 @@ import useBaseUrl from '@docusaurus/useBaseUrl'; Amazon Elastic Container Service (Amazon ECS) is a container management service that allows you to manage Docker containers on a cluster of Amazon EC2 instances. The Sumo Logic app for Amazon ECS provides preconfigured searches and Dashboards that allow you to monitor various metrics (CPU and Memory Utilization, CPU and Memory Reservation) across ECS clusters and services. The app also monitors API calls made by or on behalf of Amazon ECS in your AWS account. We offer two different ECS versions, which have separate data collection steps: -* **[Collect Logs and Metrics for ECS](/docs/integrations/amazon-aws/elastic-container-service)**. This version collects [ECS CloudWatch Metrics](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/available-metrics.html) and [ECS Events using AWS CloudTrail](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/logging-using-cloudtrail.html#service-name-info-in-cloudtrail). For instructions on collecting this data, refer to the [Amazon Elastic Container Service (ECS)](/docs/integrations/amazon-aws/elastic-container-service/). -* **[Collect Logs, Metrics (Container Insights+CloudWatch) and Traces for ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/logging-using-cloudtrail.html#service-name-info-in-cloudtrail)**. This version collects [ECS CloudWatch Metrics](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/cloudwatch-metrics.html#available_cloudwatch_metrics), [Container Insights Metrics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Container-Insights-metrics-ECS.html), [ECS Events using AWS CloudTrail](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/logging-using-cloudtrail.html#service-name-info-in-cloudtrail), Application Logs and Traces. Metrics collected by Container Insights are charged as custom metrics. For more information about CloudWatch pricing, see[ Amazon CloudWatch Pricing](https://aws.amazon.com/cloudwatch/pricing/). This solution enables you to monitor both ec2 and fargate based ecs deployments. +* **[Collect Logs and Metrics for ECS](/docs/integrations/amazon-aws/elastic-container-service)**. This version collects[ECS CloudWatch Metrics](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/available-metrics.html)and[ECS Events using AWS CloudTrail](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/logging-using-cloudtrail.html#service-name-info-in-cloudtrail). For instructions on collecting this data, refer to the [Amazon Elastic Container Service (ECS)](/docs/integrations/amazon-aws/elastic-container-service/). +* **[Collect Logs, Metrics (Container Insights+CloudWatch) and Traces for ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/logging-using-cloudtrail.html#service-name-info-in-cloudtrail)**. This version collects [ECS CloudWatch Metrics](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/cloudwatch-metrics.html#available_cloudwatch_metrics),[Container Insights Metrics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Container-Insights-metrics-ECS.html),[ECS Events using AWS CloudTrail](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/logging-using-cloudtrail.html#service-name-info-in-cloudtrail), Application Logs and Traces. Metrics collected by Container Insights are charged as custom metrics. For more information about CloudWatch pricing, see[Amazon CloudWatch Pricing](https://aws.amazon.com/cloudwatch/pricing/). This solution enables you to monitor both ec2 and fargate based ecs deployments. -This page has instructions for collecting logs and metrics for the Amazon ECS app. It uses the following data: +This page has instructions for collecting logs and metrics for the Amazon ECS app.It uses the following data: * CloudWatch Metrics * Container Insights Metrics * AWS CloudTrail Events @@ -23,11 +23,11 @@ This page has instructions for collecting logs and metrics for the Amazon ECS ap * ECS Application Logs * Traces -## Creating Fields in Field Schema  +## Creating Fields in Field Schema 1. [**New UI**](/docs/get-started/sumo-logic-ui). In the main Sumo Logic menu select **Data Management**, and then under **Logs** select **Fields**. You can also click the **Go To...** menu at the top of the screen and select **Fields**.
[**Classic UI**](/docs/get-started/sumo-logic-ui-classic). In the main Sumo Logic menu, select **Manage Data > Logs > Fields**. 1. Search for the following fields: `account`, `namespace`, `region` field. -1. If not present, create it. Learn how to create and manage fields [here](/docs/manage/fields). +1. If not present, create it. Learn how to create and manage fields[here](/docs/manage/fields). ## Creating Field Extraction Rule(s) @@ -58,7 +58,7 @@ Parse Expression: | fields region, namespace, accountid ``` -## Collect Metrics for Amazon ECS  +## Collect Metrics for Amazon ECS Sumo Logic supports collecting metrics using two source types: @@ -69,44 +69,44 @@ Sumo Logic supports collecting metrics using two source types: **Metadata**: Add an **account** field to the source and assign it a value which is a friendly name / alias to your AWS account from which you are collecting metrics. Metrics can be queried via the `account field`. -### Collect Container Insights Metrics for Amazon ECS  +### Collect Container Insights Metrics for Amazon ECS -When you enable Container Insights, CloudWatch collects [additional metrics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Container-Insights-metrics-ECS.html) in the `ECS/ContainerInsights` namespace that describe the status of your ECS tasks, resource usage metrics and the number of running services, containers, and deployments. +When you enable Container Insights, CloudWatch collects[additional metrics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Container-Insights-metrics-ECS.html)in the`ECS/ContainerInsights`namespace that describe the status of your ECS tasks, resource usage metrics and the number of running services, containers, and deployments. In this step, you'll enable Container Insights and set up a collection to ingest those metrics. -1. Enable Container Insights by referring to the AWS [docs](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/deploy-container-insights-ECS-cluster.html) by using cli or AWS console. +1. Enable Container Insights by referring to the AWS[docs](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/deploy-container-insights-ECS-cluster.html)by using cli or AWS console. 2. If Cloudwatch source is selected for collecting metrics, update the source created in "Collect Metrics for Amazon ECS" section to include `ECS/ContainerInsights` in custom namespaces field; or
ECS/ContainerInsights 3. If Kinesis Firehose source is selected for collecting metrics, update the [Metrics Stream](/docs/send-data/hosted-collectors/amazon-aws/aws-kinesis-firehose-metrics-source/#include-metrics-by-namespace) to include `ECS/ContainerInsights` in custom namespaces field. ### Collect ECS events using CloudTrail -To set up an [AWS CloudTrail Source](/docs/send-data/hosted-collectors/amazon-aws/aws-cloudtrail-source) to collect ECS events: +To set up an[AWS CloudTrail Source](/docs/send-data/hosted-collectors/amazon-aws/aws-cloudtrail-source)to collectECSevents: -1. [Configure CloudTrail](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-add-a-trail-using-the-console.html "http://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-add-a-trail-using-the-console.html") in your AWS account. This will create an S3 bucket, if you so choose. +1. [Configure CloudTrail](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-add-a-trail-using-the-console.html "http://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-add-a-trail-using-the-console.html")in your AWS account. This will create an S3 bucket,if you so choose. 2. Grant Sumo Logic access to the Amazon S3 bucket. 3. Confirm that logs are being delivered to the Amazon S3 bucket. 4. [**New UI**](/docs/get-started/sumo-logic-ui). In the Sumo Logic main menu select **Data Management**, and then under **Data Collection** select **Collection**. You can also click the **Go To...** menu at the top of the screen and select **Collection**.
[**Classic UI**](/docs/get-started/sumo-logic-ui-classic). In the main Sumo Logic menu, select **Manage Data > Collection > Collection**. -5. Navigate to the hosted collector you configured above and select **Add > Add Source**. -6. Select AWS CloudTrail source. -7. **Name.** Enter a name to display the new Source. -8. **Description.** Enter an optional description. -9. **S3 Region.** Select the Amazon Region for your ECS S3 bucket. -10. **Bucket Name.** Enter the exact name of your ECS S3 bucket. -11. **Path Expression.** Enter the string that matches the S3 objects you'd like to collect. You can use a wildcard (`*`) in this string. (DO NOT use a leading forward slash. See [Amazon Path Expressions](/docs/send-data/hosted-collectors/amazon-aws/amazon-path-expressions).)  -12. **Source Category.** Enter `aws/observability/cloudtrail/logs`. -13. **Fields**. Add an **account** field and assign it a value that is a friendly name/alias to your AWS account from which you are collecting logs. Logs can be queried via the "account field". -14. **AWS Access**. There are two options for AWS access:  - - Role-based access. This is the preferred method. You can use this option if you granted access to Amazon ECS as described in [Grant Access to an AWS Product](/docs/send-data/hosted-collectors/amazon-aws/grant-access-aws-product).  For Role-based access enter the Role ARN that was provided by AWS after creating the role. - - For Key access enter the Access Key ID and Secret Access Key. For more information, see [Managing Access Keys for IAM Users](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html) in AWS help. -15. **Scan Interval.** Use the default of 5 minutes. Alternately, enter the frequency Sumo Logic will scan your S3 bucket for new data. +5. Navigate to the hosted collector you configured above and select**Add > Add Source**. +6. SelectAWS CloudTrail source. +7. **Name.**Enter a name to display the new Source. +8. **Description.**Enter an optional description. +9. **S3 Region.**Select the Amazon Region for your ECS S3 bucket. +10. **Bucket Name.**Enter the exact name of your ECS S3 bucket. +11. **Path Expression.**Enter the string that matches the S3 objects you'd like to collect. You can use a wildcard (`*`) in this string. (DO NOT use a leading forward slash. See[Amazon Path Expressions](/docs/send-data/hosted-collectors/amazon-aws/amazon-path-expressions).) +12. **Source Category.**Enter`aws/observability/cloudtrail/logs`. +13. **Fields**. Add an**account**field and assign it a value that is a friendly name/alias to your AWS account from which you are collecting logs. Logs can be queried via the "account field". +14. **AWS Access**. There are two options for AWS access: + - Role-based access. This is the preferred method. You can use this option if you granted access to Amazon ECS as described in[Grant Access to an AWS Product](/docs/send-data/hosted-collectors/amazon-aws/grant-access-aws-product).For Role-based access enter the Role ARN that was provided by AWS after creating the role. + - For Key access enter the Access Key ID and Secret Access Key. For more information, see[Managing Access Keys for IAM Users](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html)in AWShelp. +15. **Scan Interval.**Use the default of 5 minutes. Alternately, enter the frequency Sumo Logic will scan your S3 bucket for new data. 16. **Enable Timestamp Parsing**. Select the **Extract timestamp information from log file entries** check box. 17. **Time Zone**. Select **Ignore time zone from the log file and instead use**, and select **UTC** from the dropdown. 18. **Timestamp Format.** Select **Automatically detect the format**. 19. **Enable Multiline Processing**. Select the **Detect messages spanning multiple lines** check box, and select **Infer Boundaries**. -20. Click **Save**. +20. Click**Save**. -## Centralized AWS CloudTrail Log Collection  +## Centralized AWS CloudTrail Log Collection In case you have a centralized collection of CloudTrail logs and are ingesting them from all accounts into a single Sumo Logic CloudTrail log source, create or update the following Field Extraction Rule to map proper AWS account(s) friendly name/alias: @@ -130,17 +130,17 @@ Enter a parse expression to create an `account` field that maps to the alias you | fields account ``` -## Collect Container Insights performance log events for Task and Container  +## CollectContainer Insights performance log events for Task and Container -Container Insights collects data as performance log events using [embedded metric format](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Embedded_Metric_Format.html). More details [here](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/ContainerInsights.html). +Container Insights collects data asperformance log eventsusing[embedded metric format](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Embedded_Metric_Format.html). More details[here](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/ContainerInsights.html). In this step, you'll create a source to collect Task and Container level performance events, which are not converted as CloudWatch metrics. -1. Configure an [AWS Kinesis Firehose for Logs Source](/docs/send-data/hosted-collectors/amazon-aws/aws-kinesis-firehose-logs-source). Add the fields account, region and namespace as shown below.
ECS +1. Configure an[AWS Kinesis Firehose for Logs Source](/docs/send-data/hosted-collectors/amazon-aws/aws-kinesis-firehose-logs-source). Add the fields account, region and namespace as shown below.
ECS 2. Copy the `KinesisLogsRoleARN` and `KinesisLogsDeliveryStreamARN` values from the outputs tab of Cloudformation.
ECS 3. Go to your CloudWatch > Log Groups and click on your CloudWatch log group `/aws/ecs/containerinsights//performance`.
ECS 4. Click on Create and in opened window fill in the below parameters - 1. Get the delivery stream name from the arn copied in step 2 and fill in the KinesisLogsDeliverStream  field. + 1. Get the delivery stream name from the arn copied in step 2 and fill in the KinesisLogsDeliverStream field. 2. Get the role name from the arn copied in step 2 and fill in the role. 3. Specify the filter pattern `{ $.Type = "Container" || $.Type = "Task" }`. 4. Specify the filter name. @@ -148,22 +148,22 @@ In this step, you'll create a source to collect Task and Container level perform ## Collect Application Logs for Amazon ECS -Set up the Container logs collection using the steps in following [docs](/docs/send-data/collect-from-other-data-sources/aws-fargate-log-collection). You can use awsfirelens driver and avoid sending logs to CloudWatch log groups.  Put account, region and namespace fields also while configuring the source. +Set up the Container logs collection using the steps in following[docs](/docs/send-data/collect-from-other-data-sources/aws-fargate-log-collection). You can use awsfirelens driver and avoid sending logs to CloudWatch log groups. Put account, region and namespace fields also while configuring the source. If your logs are already going to CloudWatch logs groups then you can create a subscription filter to subscribe the log groups to the delivery stream created in the previous step. :::note -Application logs do not contain regions. You have to configure a new Sumo Logic source for each region if you want to avoid creating multiple sources, then you will have to put the [X-SUMO-Fields](/docs/manage/fields#x-sumo-fields-http-header) header inside logConfiguration by creating a custom fluent bit image and specify a custom fluent bit configuration. +Application logs do not contain regions. You have to configure a new Sumo Logic source for each region if you want to avoid creating multiple sources, then you will have to put the[X-SUMO-Fields](/docs/manage/fields#x-sumo-fields-http-header)header inside logConfiguration by creating a custom fluent bit image and specify a custom fluent bit configuration. -For more information, see, [Create a custom Fluent Bit image](/docs/send-data/collect-from-other-data-sources/aws-fargate-log-collection). +For more information, see,[Create a custom Fluent Bit image](/docs/send-data/collect-from-other-data-sources/aws-fargate-log-collection). ::: ## Collect Traces for Amazon ECS -To set up collection for traces: +To set upcollection for traces: -1. Create a HTTP Traces source by referring to the [docs](/docs/apm/traces/get-started-transaction-tracing/http-traces-source). -2. Install OpenTelemetry Collector by referring to the [docs](/docs/apm/traces/get-started-transaction-tracing/set-up-traces-collection-aws-environments).  +1. Create a HTTP Traces source by referring to the[docs](/docs/apm/traces/get-started-transaction-tracing/http-traces-source). +2. Install OpenTelemetry Collector by referring to the[docs](/docs/apm/traces/get-started-transaction-tracing/set-up-traces-collection-aws-environments). ### Sample log messages @@ -429,7 +429,7 @@ To set up collection for traces: -### Sample query +### Samplequery ```sumo title="Deleted Resources Over Time" _sourceCategory=ecs* (DeleteCluster or DeleteService or DeregisterContainerInstance or DeregisterTaskDefinition or StopTask) and !(InternalFailure) @@ -443,43 +443,43 @@ _sourceCategory=ecs* (DeleteCluster or DeleteService or DeregisterContainerInsta | transpose row _timeslice column resource_type ``` -### Install the Sumo Logic app  +## Installing the Amazon ECS app -Now that you have set up a collection for Amazon ECS with Container Insights and CloudWatch, install the Sumo Logic app for Amazon ECS with Container Insights and CloudWatch to use the pre-configured searches and dashboards that provide visibility into your environment for real-time analysis of overall usage. +Now that you have set up acollectionfor Amazon ECS with Container Insights and CloudWatch, install the Sumo Logic app for Amazon ECS with Container Insights and CloudWatch to use the pre-configured searches anddashboardsthat provide visibility into your environment for real-time analysis of overall usage. -import AppInstall from '../../reuse/apps/app-install.md'; +import AppInstall from '../../reuse/apps/app-install-v2.md'; -## Amazon ECS CloudWatch dashboards  +## Amazon ECS CloudWatch dashboards -### Cluster Overview  +### Cluster Overview -The **Amazon ECS - Cluster Overview** dashboard provides a high-level view of the cluster's health along with details on the utilized resources. +The**Amazon ECS - Cluster Overview**dashboard provides a high-level view of the cluster's health along with details on the utilized resources. Use this dashboard to: -- Monitor the memory and CPU utilization of your cluster. +- Monitor the memory and CPUutilization of your cluster. - View abnormal read-write activity and network incoming-outgoing bytes. -Amazon ECS - Cluster Overview dashboard +Amazon ECS - Cluster Overviewdashboard ### Cluster Performance Monitoring -The **Amazon ECS - Cluster Performance Monitoring** dashboard provides detailed information on the performance of your cluster, which you can use to fine-tune your cluster. +The**Amazon ECS - Cluster Performance Monitoring**dashboard provides detailed information on the performance of your cluster, which you can use to fine-tune your cluster. Use this dashboard to: - Identify patterns and outliers over time. -- Monitor the performance of your cluster and use linked dashboards to drill down further into the root cause.  +- Monitor the performance of your cluster and use linked dashboards to drill down further into the root cause. -Amazon ECS - Cluster Performance Monitoring dashboard +Amazon ECS - Cluster Performance Monitoringdashboard ### Cluster Resource Reservation -The **Amazon ECS - Cluster Resource Reservation** dashboard provides information on resource reservations which can be used to set the right resource limits. +The**Amazon ECS - Cluster Resource Reservation** dashboard provides information on resource reservations which can be used to set the right resource limits. -Use this dashboard to:  +Use this dashboard to: - Identify the right limits for CPU and memory reservations. @@ -487,51 +487,51 @@ Use this dashboard to:  ### Container Logs -The **Amazon ECS - Container Logs** dashboard provides detailed information on what is happening (errors or recent events) in a container.  +The**Amazon ECS - Container Logs**dashboard provides detailed information on what is happening (errors or recent events) in a container. Use this dashboard to: - View recent logs of your container. - Identify common errors and abnormal spikes in errors. -Amazon ECS - Container Logs** dashboard +Amazon ECS - Container Logs**dashboard ### Container Overview -The **Amazon ECS - Container Overview** dashboard provides a high-level view of the health of the container along with details on the utilized resources. +The**Amazon ECS - Container Overview**dashboard provides a high-level view of the health of the container along with details on the utilized resources. Use this dashboard to: - Track the container status and identify the container details like its task definition, image, account, etc. -- Monitor CPU, memory,  disk, and network activity of your container.  +- Monitor CPU, memory, disk, and network activity of your container. -Amazon ECS - Container Overview dashboard +Amazon ECS - Container Overviewdashboard ### EC2 LaunchType -The **Amazon ECS - EC2 LaunchType** dashboard provides a high-level view of the health of the cluster along with details on the utilized resources for EC2 launch types. +The**Amazon ECS - EC2LaunchType**dashboard provides a high-level view of the health of the cluster along with details on the utilized resources for EC2 launch types. Use this dashboard to: - Monitor CPU and memory utilization of clusters with EC2 launch type. - View the number of clusters and tasks with EC2 launch type. -Amazon ECS - EC2 LaunchType dashboard +Amazon ECS - EC2LaunchTypedashboard ### Service Overview -The **Amazon ECS - Service Overview** dashboard provides a high-level view of the health of the services along with details on the utilized resources. +The**Amazon ECS - Service Overview**dashboard provides a high-level view of the health of the services along with details on the utilized resources. Use this dashboard to: - Monitor the number of running, desired, and pending tasks. - Identify services with abnormal CPU, network, memory, and disk activity. -Amazon ECS - Service Overview dashboard +Amazon ECS - Service Overviewdashboard ### Service Performance Monitoring -The **Amazon ECS - Service Performance Monitoring** dashboard provides detailed information on the performance of your services which you can use to fine-tune your cluster. +The**Amazon ECS - Service Performance Monitoring**dashboard provides detailed information on the performance of your services which you can use to fine-tune your cluster. Use this dashboard to: @@ -539,22 +539,22 @@ Use this dashboard to: - Track the running, pending, and desired tasks trend. - Monitor the performance of your services and use linked dashboards to drill down further into the root cause. -Amazon ECS - Service Performance Monitoring dashboard +Amazon ECS - Service Performance Monitoringdashboard ### Tasks Definition Family Overview -The **Amazon ECS - Tasks Definition Family Overview** dashboard provides a high-level view of the health of the tasks belonging to a particular task definition family and details on the utilized resources. +The**Amazon ECS - Tasks Definition Family Overview**dashboard provides a high-level view of the health of the tasks belonging to a particular task definition family and details on the utilized resources. Use this dashboard to: - View the number of tasks running with a single task definition family. - Monitor CPU and memory usage by task definition family. -Amazon ECS - Tasks Definition Family Overview dashboard +Amazon ECS - Tasks Definition Family Overviewdashboard ### Tasks Overview -The **Amazon ECS - Tasks Overview** dashboard provides a high-level view of the health of the task along with details on the utilized resources and where they are running. +The**Amazon ECS - Tasks Overview**dashboard provides a high-level view of the health of the task along with details on the utilized resources and where they are running. Use this dashboard to: @@ -562,48 +562,73 @@ Use this dashboard to: - Track Network Errors and Dropped Packets - Monitor CPU, memory, disk, and network performance by task instances. -Amazon ECS - Tasks Overview dashboard +Amazon ECS - Tasks Overviewdashboard ### Tasks Definition Family Performance Monitoring -The **Amazon ECS - Tasks Definition Family Performance Monitoring** dashboard provides detailed information on the performance of your tasks which you can use to fine-tune your cluster. +The**Amazon ECS - Tasks Definition Family Performance Monitoring**dashboard provides detailed information on the performance of your tasks which you can use to fine-tune your cluster. Use this dashboard to: -- Identify patterns and outliers over time for each of the resource metrics like CPU, memory, network, and disk. -- Monitor the performance of your tasks and use linked dashboards to drill down further into the root cause. +- Identify patterns and outliers over time for each of the resource metrics like CPU,memory, network, and disk. +- Monitor the performance of your tasksand use linked dashboards to drill down further into the root cause. -Amazon ECS - Tasks Definition Family Performance Monitoring dashboard +Amazon ECS - Tasks Definition Family Performance Monitoringdashboard ### Task Definition Family Resource Reservation -The **Amazon ECS - Task Definition Family Resource Reservation** dashboard provides information on resource reservation which can be used to set the right resource limits at the task definition level. +The**Amazon ECS - Task Definition Family Resource Reservation**dashboard provides information on resource reservation which can be used to set the right resource limits at the task definition level. -Use this dashboard to:  +Use this dashboard to: - Identify the right limits for CPU and memory reservations. -Amazon ECS - Task Definition Family Resource Reservation dashboard +Amazon ECS - Task Definition Family Resource Reservationdashboard ### Fargate LaunchType -The **Amazon ECS - Fargate LaunchType** dashboard provides a high-level view of the cluster's health along with details on the utilized resources for Fargate launch types. +The**Amazon ECS - Fargate LaunchType**dashboard provides a high-level view of the cluster's health along with details on the utilized resources for Fargate launch types. Use this dashboard to: - Monitor network activity of your clusters with Fargate launch type. - View the number of clusters and tasks with Fargate launch type. -Amazon ECS - Fargate LaunchType dashboard +Amazon ECS - Fargate LaunchTypedashboard -### Audit Events  +### Audit Events -The **Amazon ECS - Audit Events** dashboard gives information on the type of request made to ECS, the IP making the request, who made it and when, and more. +The**Amazon ECS - Audit Events**dashboard gives information on the type of request made to ECS, the IP making the request, who made it and when, and more. Use this dashboard to: - View audit trail of actions taken by a user, role, or AWS service in Amazon ECS. -- Monitor container registration/deregistration events. +- Monitor container registration/deregistrationevents. - Identify location, IP address from where the request was made, and resource crud events over time. -Amazon ECS - Audit Events dashboard +Amazon ECS - Audit Eventsdashboard + +## Create monitors for Amazon ECS app + +import CreateMonitors from '../../reuse/apps/create-monitors.md'; + + + +### Amazon ECS alerts + +| Name | Description | Alert Condition | Recover Condition | +|:-----|:------------|:----------------|:--| +| `Amazon ECS - High CPU Utilization` | This alert fires when the average CPU utilization within a 5 minute interval for a service within a cluster is high (>=85%). | Count > = 85 | Count < 85 | +| `Amazon ECS - High Memory Utilization` | This alert fires when the average memory utilization within a 5 minute interval for a service within a cluster is high (>=85%). | Count > = 85 | Count < 85 | + +## Upgrade/Downgrade the Amazon ECS app (Optional) + +import AppUpdate from '../../reuse/apps/app-update.md'; + + + +## Uninstalling the Amazon ECS app (Optional) + +import AppUninstall from '../../reuse/apps/app-uninstall.md'; + + From 77a609f575947ec95fca54d8795f8f66ac18f28c Mon Sep 17 00:00:00 2001 From: John Pipkin Date: Mon, 27 Apr 2026 11:34:38 -0500 Subject: [PATCH 02/28] V1ToV2AWSMigrationSet1 --- .../amazon-aws/application-load-balancer.md | 8 +- .../amazon-aws/classic-load-balancer.md | 4 +- .../amazon-aws/ec2-cloudwatch-metrics.md | 2 +- ...r-service-container-insights-cloudwatch.md | 106 +++++++++--------- 4 files changed, 60 insertions(+), 60 deletions(-) diff --git a/docs/integrations/amazon-aws/application-load-balancer.md b/docs/integrations/amazon-aws/application-load-balancer.md index 3b57f7dd5f..88ceba3fcd 100644 --- a/docs/integrations/amazon-aws/application-load-balancer.md +++ b/docs/integrations/amazon-aws/application-load-balancer.md @@ -269,12 +269,12 @@ import CreateMonitors from '../../reuse/apps/create-monitors.md'; | Name | Description | Alert Condition | Recover Condition | |:----------------------------------------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------|:------------------|:--| -| `AWS Application Load Balancer - Access from Highly Malicious Sources` | This alert fires when an Application load balancer is accessed from highly malicious IP addresses within last 5 minutes. | Count > 0 | Count < = 0 | -| `AWS Application Load Balancer - Deletion Alert` | This alert fires when an Application load balancer is deleted within last 5 minutes. | Count > = 2 | Count < 2 | +| `AWS Application Load Balancer - Access from Highly Malicious Sources` | This alert fires when an application load balancer is accessed from highly malicious IP addresses within last 5 minutes. | Count > 0 | Count < = 0 | +| `AWS Application Load Balancer - Deletion Alert` | This alert fires when an application load balancer is deleted within last 5 minutes. | Count > = 2 | Count < 2 | | `AWS Application Load Balancer - High 4XX Errors` | This alert fires where there are too many HTTP requests (>5%) with a response status of 4xx within an interval of 5 minutes. | Count > = 5 | Count < 5 | | `AWS Application Load Balancer - High 5XX Errors` | This alert fires where there are too many HTTP requests (>5%) with a response status of 5xx within an interval of 5 minutes. | Count > = 5 | Count < 5 | -| `AWS Application Load Balancer - High Latency` | This alert fires when we detect that the average latency for a given Application load balancer within a time interval of 5 minutes is greater than or equal to three seconds. | Count > = 3000 | Count < 3000 | -| `AWS Application Load Balancer - Targets Deregistered` | This alert fires when targets are deregistered from an Application load balancer within last 5 minutes. | Count > = 1 | Count < 1 | +| `AWS Application Load Balancer - High Latency` | This alert fires when we detect that the average latency for a given application load balancer within a time interval of 5 minutes is greater than or equal to three seconds. | Count > = 3000 | Count < 3000 | +| `AWS Application Load Balancer - Targets Deregistered` | This alert fires when targets are deregistered from an application load balancer within last 5 minutes. | Count > = 1 | Count < 1 | ## Upgrade/Downgrade the AWS Application Load Balancer app (Optional) diff --git a/docs/integrations/amazon-aws/classic-load-balancer.md b/docs/integrations/amazon-aws/classic-load-balancer.md index 186a5c67b9..bbed23ea1b 100644 --- a/docs/integrations/amazon-aws/classic-load-balancer.md +++ b/docs/integrations/amazon-aws/classic-load-balancer.md @@ -268,11 +268,11 @@ import CreateMonitors from '../../reuse/apps/create-monitors.md'; | Name | Description | Alert Condition | Recover Condition | |:-----|:------------|:----------------|:--| -| `AWS Classic Load Balancer - Access from Highly Malicious Sources` | This alert fires when the Classic load balancer is accessed from highly malicious IP addresses within last 5 minutes. | Count > 0 | Count < = 0 | +| `AWS Classic Load Balancer - Access from Highly Malicious Sources` | This alert fires when the classic load balancer is accessed from highly malicious IP addresses within last 5 minutes. | Count > 0 | Count < = 0 | | `AWS Classic Load Balancer - Deletion Alert` | This alert fires when we detect greater than or equal to 2 application load balancers are deleted over a 5 minute time-period. | Count > = 2 | Count < 2 | | `AWS Classic Load Balancer - High 4XX Errors` | This alert fires where there are too many HTTP requests (>5%) with a response status of 4xx within an interval of 5 minutes. | Count > = 5 | Count < 5 | | `AWS Classic Load Balancer - High 5XX Errors` | This alert fires where there are too many HTTP requests (>5%) with a response status of 5xx within an interval of 5 minutes. | Count > = 5 | Count < 5 | -| `AWS Classic Load Balancer - High Latency` | This alert fires when we detect that the average latency for a given Classic load balancer within a time interval of 5 minutes is greater than or equal to three seconds. | Count > = 3000 | Count < 3000 | +| `AWS Classic Load Balancer - High Latency` | This alert fires when we detect that the average latency for a given classic load balancer within a time interval of 5 minutes is greater than or equal to three seconds. | Count > = 3000 | Count < 3000 | | `AWS Classic Load Balancer - Targets Deregistered` | This alert fires when we detect greater than or equal to 1 target is de-registered over a 5 minute time-period. | Count > = 1 | Count < 1 | ## Upgrade/Downgrade the AWS Classic Load Balancer app (Optional) diff --git a/docs/integrations/amazon-aws/ec2-cloudwatch-metrics.md b/docs/integrations/amazon-aws/ec2-cloudwatch-metrics.md index e443b43bf6..f3c59a8749 100644 --- a/docs/integrations/amazon-aws/ec2-cloudwatch-metrics.md +++ b/docs/integrations/amazon-aws/ec2-cloudwatch-metrics.md @@ -330,7 +330,7 @@ import CreateMonitors from '../../reuse/apps/create-monitors.md'; | Name | Description | Alert Condition | Recover Condition | |:-----|:------------|:----------------|:--| -| `AWS EC2 CW - High CPU Utilization` | This alert fires when the average CPU Utilization based on cloud watch metrics, within a 5 minute interval for an EC2 instance is high (>=85%). | Count > 85 | Count < = 85 | +| `AWS EC2 CW - High CPU Utilization` | This alert fires when the average CPU utilization based on cloud watch metrics, within a 5 minute interval for an EC2 instance is high (>=85%). | Count > 85 | Count < = 85 | | `AWS EC2 CW - Status Check Failed` | This alert fires when there is a status check failures within a 5 minute interval for an EC2 instance. | Count > 0 | Count < = 0 | | `AWS EC2 - High Disk Utilization` | This alert fires when the average disk utilization within a 5 minute time interval for an EC2 instance is high (>=85%). | Count > = 85 | Count < 85 | | `AWS EC2 - High Memory Utilization` | This alert fires when the average memory utilization within a 5 minute interval for an EC2 instance is high (>=85%). | Count > = 85 | Count < 85 | diff --git a/docs/integrations/amazon-aws/elastic-container-service-container-insights-cloudwatch.md b/docs/integrations/amazon-aws/elastic-container-service-container-insights-cloudwatch.md index 5873249172..36a2e0dcb1 100644 --- a/docs/integrations/amazon-aws/elastic-container-service-container-insights-cloudwatch.md +++ b/docs/integrations/amazon-aws/elastic-container-service-container-insights-cloudwatch.md @@ -12,10 +12,10 @@ import useBaseUrl from '@docusaurus/useBaseUrl'; Amazon Elastic Container Service (Amazon ECS) is a container management service that allows you to manage Docker containers on a cluster of Amazon EC2 instances. The Sumo Logic app for Amazon ECS provides preconfigured searches and Dashboards that allow you to monitor various metrics (CPU and Memory Utilization, CPU and Memory Reservation) across ECS clusters and services. The app also monitors API calls made by or on behalf of Amazon ECS in your AWS account. We offer two different ECS versions, which have separate data collection steps: -* **[Collect Logs and Metrics for ECS](/docs/integrations/amazon-aws/elastic-container-service)**. This version collects[ECS CloudWatch Metrics](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/available-metrics.html)and[ECS Events using AWS CloudTrail](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/logging-using-cloudtrail.html#service-name-info-in-cloudtrail). For instructions on collecting this data, refer to the [Amazon Elastic Container Service (ECS)](/docs/integrations/amazon-aws/elastic-container-service/). -* **[Collect Logs, Metrics (Container Insights+CloudWatch) and Traces for ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/logging-using-cloudtrail.html#service-name-info-in-cloudtrail)**. This version collects [ECS CloudWatch Metrics](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/cloudwatch-metrics.html#available_cloudwatch_metrics),[Container Insights Metrics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Container-Insights-metrics-ECS.html),[ECS Events using AWS CloudTrail](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/logging-using-cloudtrail.html#service-name-info-in-cloudtrail), Application Logs and Traces. Metrics collected by Container Insights are charged as custom metrics. For more information about CloudWatch pricing, see[Amazon CloudWatch Pricing](https://aws.amazon.com/cloudwatch/pricing/). This solution enables you to monitor both ec2 and fargate based ecs deployments. +* **[Collect Logs and Metrics for ECS](/docs/integrations/amazon-aws/elastic-container-service)**. This version collects [ECS CloudWatch Metrics](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/available-metrics.html) and [ECS Events using AWS CloudTrail](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/logging-using-cloudtrail.html#service-name-info-in-cloudtrail). For instructions on collecting this data, refer to the [Amazon Elastic Container Service (ECS)](/docs/integrations/amazon-aws/elastic-container-service/). +* **[Collect Logs, Metrics (Container Insights+CloudWatch) and Traces for ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/logging-using-cloudtrail.html#service-name-info-in-cloudtrail)**. This version collects [ECS CloudWatch Metrics](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/cloudwatch-metrics.html#available_cloudwatch_metrics), [Container Insights Metrics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Container-Insights-metrics-ECS.html), [ECS Events using AWS CloudTrail](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/logging-using-cloudtrail.html#service-name-info-in-cloudtrail), and Application Logs and Traces. Metrics collected by Container Insights are charged as custom metrics. For more information about CloudWatch pricing, see [Amazon CloudWatch Pricing](https://aws.amazon.com/cloudwatch/pricing/). This solution enables you to monitor both ec2 and fargate based ecs deployments. -This page has instructions for collecting logs and metrics for the Amazon ECS app.It uses the following data: +This page has instructions for collecting logs and metrics for the Amazon ECS app. It uses the following data: * CloudWatch Metrics * Container Insights Metrics * AWS CloudTrail Events @@ -25,9 +25,9 @@ This page has instructions for collecting logs and metrics for the Amazon ECS ap ## Creating Fields in Field Schema -1. [**New UI**](/docs/get-started/sumo-logic-ui). In the main Sumo Logic menu select **Data Management**, and then under **Logs** select **Fields**. You can also click the **Go To...** menu at the top of the screen and select **Fields**.
[**Classic UI**](/docs/get-started/sumo-logic-ui-classic). In the main Sumo Logic menu, select **Manage Data > Logs > Fields**. +1. [**New UI**](/docs/get-started/sumo-logic-ui). In the main Sumo Logic menu select **Data Management**, and then under **Logs** select **Fields**. You can also click the **Go To...** menu at the top of the screen and select **Fields**.
[**Classic UI**](/docs/get-started/sumo-logic-ui-classic). In the main Sumo Logic menu, select **Manage Data > Logs > Fields**. 1. Search for the following fields: `account`, `namespace`, `region` field. -1. If not present, create it. Learn how to create and manage fields[here](/docs/manage/fields). +1. If not present, create it. Learn how to create and manage fields [here](/docs/manage/fields). ## Creating Field Extraction Rule(s) @@ -71,40 +71,40 @@ Sumo Logic supports collecting metrics using two source types: ### Collect Container Insights Metrics for Amazon ECS -When you enable Container Insights, CloudWatch collects[additional metrics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Container-Insights-metrics-ECS.html)in the`ECS/ContainerInsights`namespace that describe the status of your ECS tasks, resource usage metrics and the number of running services, containers, and deployments. +When you enable Container Insights, CloudWatch collects [additional metrics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Container-Insights-metrics-ECS.html) in the `ECS/ContainerInsights` namespace that describe the status of your ECS tasks, resource usage metrics and the number of running services, containers, and deployments. In this step, you'll enable Container Insights and set up a collection to ingest those metrics. -1. Enable Container Insights by referring to the AWS[docs](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/deploy-container-insights-ECS-cluster.html)by using cli or AWS console. -2. If Cloudwatch source is selected for collecting metrics, update the source created in "Collect Metrics for Amazon ECS" section to include `ECS/ContainerInsights` in custom namespaces field; or
ECS/ContainerInsights +1. Enable Container Insights by referring to the AWS [docs](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/deploy-container-insights-ECS-cluster.html) by using cli or AWS console. +2. If Cloudwatch source is selected for collecting metrics, update the source created in "Collect Metrics for Amazon ECS" section to include `ECS/ContainerInsights` in custom namespaces field.
ECS/ContainerInsights 3. If Kinesis Firehose source is selected for collecting metrics, update the [Metrics Stream](/docs/send-data/hosted-collectors/amazon-aws/aws-kinesis-firehose-metrics-source/#include-metrics-by-namespace) to include `ECS/ContainerInsights` in custom namespaces field. ### Collect ECS events using CloudTrail -To set up an[AWS CloudTrail Source](/docs/send-data/hosted-collectors/amazon-aws/aws-cloudtrail-source)to collectECSevents: +To set up an [AWS CloudTrail Source](/docs/send-data/hosted-collectors/amazon-aws/aws-cloudtrail-source) to collect ECS events: -1. [Configure CloudTrail](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-add-a-trail-using-the-console.html "http://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-add-a-trail-using-the-console.html")in your AWS account. This will create an S3 bucket,if you so choose. +1. [Configure CloudTrail](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-add-a-trail-using-the-console.html) in your AWS account. This will create an S3 bucket, if you so choose. 2. Grant Sumo Logic access to the Amazon S3 bucket. 3. Confirm that logs are being delivered to the Amazon S3 bucket. 4. [**New UI**](/docs/get-started/sumo-logic-ui). In the Sumo Logic main menu select **Data Management**, and then under **Data Collection** select **Collection**. You can also click the **Go To...** menu at the top of the screen and select **Collection**.
[**Classic UI**](/docs/get-started/sumo-logic-ui-classic). In the main Sumo Logic menu, select **Manage Data > Collection > Collection**. -5. Navigate to the hosted collector you configured above and select**Add > Add Source**. -6. SelectAWS CloudTrail source. -7. **Name.**Enter a name to display the new Source. -8. **Description.**Enter an optional description. -9. **S3 Region.**Select the Amazon Region for your ECS S3 bucket. -10. **Bucket Name.**Enter the exact name of your ECS S3 bucket. -11. **Path Expression.**Enter the string that matches the S3 objects you'd like to collect. You can use a wildcard (`*`) in this string. (DO NOT use a leading forward slash. See[Amazon Path Expressions](/docs/send-data/hosted-collectors/amazon-aws/amazon-path-expressions).) -12. **Source Category.**Enter`aws/observability/cloudtrail/logs`. -13. **Fields**. Add an**account**field and assign it a value that is a friendly name/alias to your AWS account from which you are collecting logs. Logs can be queried via the "account field". +5. Navigate to the hosted collector you configured above and select **Add > Add Source**. +6. Select AWS CloudTrail source. +7. **Name.** Enter a name to display the new Source. +8. **Description.** Enter an optional description. +9. **S3 Region.** Select the Amazon Region for your ECS S3 bucket. +10. **Bucket Name.** Enter the exact name of your ECS S3 bucket. +11. **Path Expression.** Enter the string that matches the S3 objects you'd like to collect. You can use a wildcard (`*`) in this string. (DO NOT use a leading forward slash. See [Amazon Path Expressions](/docs/send-data/hosted-collectors/amazon-aws/amazon-path-expressions).) +12. **Source Category.** Enter `aws/observability/cloudtrail/logs`. +13. **Fields**. Add an **account** field and assign it a value that is a friendly name/alias to your AWS account from which you are collecting logs. Logs can be queried via the "account field". 14. **AWS Access**. There are two options for AWS access: - - Role-based access. This is the preferred method. You can use this option if you granted access to Amazon ECS as described in[Grant Access to an AWS Product](/docs/send-data/hosted-collectors/amazon-aws/grant-access-aws-product).For Role-based access enter the Role ARN that was provided by AWS after creating the role. - - For Key access enter the Access Key ID and Secret Access Key. For more information, see[Managing Access Keys for IAM Users](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html)in AWShelp. -15. **Scan Interval.**Use the default of 5 minutes. Alternately, enter the frequency Sumo Logic will scan your S3 bucket for new data. + - Role-based access. This is the preferred method. You can use this option if you granted access to Amazon ECS as described in [Grant Access to an AWS Product](/docs/send-data/hosted-collectors/amazon-aws/grant-access-aws-product). For role-based access enter the role ARN that was provided by AWS after creating the role. + - For key access enter the Access Key ID and Secret Access Key. For more information, see [Managing Access Keys for IAM Users](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html) in AWS help. +15. **Scan Interval.** Use the default of 5 minutes. Alternately, enter the frequency Sumo Logic will scan your S3 bucket for new data. 16. **Enable Timestamp Parsing**. Select the **Extract timestamp information from log file entries** check box. 17. **Time Zone**. Select **Ignore time zone from the log file and instead use**, and select **UTC** from the dropdown. 18. **Timestamp Format.** Select **Automatically detect the format**. 19. **Enable Multiline Processing**. Select the **Detect messages spanning multiple lines** check box, and select **Infer Boundaries**. -20. Click**Save**. +20. Click **Save**. ## Centralized AWS CloudTrail Log Collection @@ -130,40 +130,40 @@ Enter a parse expression to create an `account` field that maps to the alias you | fields account ``` -## CollectContainer Insights performance log events for Task and Container +## Collect Container Insights performance log events for Task and Container -Container Insights collects data asperformance log eventsusing[embedded metric format](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Embedded_Metric_Format.html). More details[here](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/ContainerInsights.html). +Container Insights collects data asperformance log events using [embedded metric format](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Embedded_Metric_Format.html). More details [here](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/ContainerInsights.html). In this step, you'll create a source to collect Task and Container level performance events, which are not converted as CloudWatch metrics. -1. Configure an[AWS Kinesis Firehose for Logs Source](/docs/send-data/hosted-collectors/amazon-aws/aws-kinesis-firehose-logs-source). Add the fields account, region and namespace as shown below.
ECS -2. Copy the `KinesisLogsRoleARN` and `KinesisLogsDeliveryStreamARN` values from the outputs tab of Cloudformation.
ECS -3. Go to your CloudWatch > Log Groups and click on your CloudWatch log group `/aws/ecs/containerinsights//performance`.
ECS -4. Click on Create and in opened window fill in the below parameters - 1. Get the delivery stream name from the arn copied in step 2 and fill in the KinesisLogsDeliverStream field. +1. Configure an [AWS Kinesis Firehose for Logs Source](/docs/send-data/hosted-collectors/amazon-aws/aws-kinesis-firehose-logs-source). Add the fields account, region and namespace as shown below.
ECS +2. Copy the `KinesisLogsRoleARN` and `KinesisLogsDeliveryStreamARN` values from the outputs tab of CloudFormation.
ECS +3. Go to your **CloudWatch > Log Groups** and click on your CloudWatch log group `/aws/ecs/containerinsights//performance`.
ECS +4. Click on Create and in opened window fill in the below parameters: + 1. Get the delivery stream name from the arn copied in step 2 and fill in the **KinesisLogsDeliverStream** field. 2. Get the role name from the arn copied in step 2 and fill in the role. 3. Specify the filter pattern `{ $.Type = "Container" || $.Type = "Task" }`. 4. Specify the filter name. - 5. Test the pattern and click Start streaming.
ECS + 5. Test the pattern and click **Start streaming**.
ECS ## Collect Application Logs for Amazon ECS -Set up the Container logs collection using the steps in following[docs](/docs/send-data/collect-from-other-data-sources/aws-fargate-log-collection). You can use awsfirelens driver and avoid sending logs to CloudWatch log groups. Put account, region and namespace fields also while configuring the source. +Set up the Container logs collection using the steps in the following [docs](/docs/send-data/collect-from-other-data-sources/aws-fargate-log-collection). You can use AWS FireLens driver and avoid sending logs to CloudWatch log groups. Put account, region, and namespace fields also while configuring the source. If your logs are already going to CloudWatch logs groups then you can create a subscription filter to subscribe the log groups to the delivery stream created in the previous step. :::note -Application logs do not contain regions. You have to configure a new Sumo Logic source for each region if you want to avoid creating multiple sources, then you will have to put the[X-SUMO-Fields](/docs/manage/fields#x-sumo-fields-http-header)header inside logConfiguration by creating a custom fluent bit image and specify a custom fluent bit configuration. +Application logs do not contain regions. You have to configure a new Sumo Logic source for each region if you want to avoid creating multiple sources, then you will have to put the [X-SUMO-Fields](/docs/manage/fields#x-sumo-fields-http-header) header inside logConfiguration by creating a custom fluent bit image and specify a custom fluent bit configuration. -For more information, see,[Create a custom Fluent Bit image](/docs/send-data/collect-from-other-data-sources/aws-fargate-log-collection). +For more information, see [Create a custom Fluent Bit image](/docs/send-data/collect-from-other-data-sources/aws-fargate-log-collection). ::: ## Collect Traces for Amazon ECS To set upcollection for traces: -1. Create a HTTP Traces source by referring to the[docs](/docs/apm/traces/get-started-transaction-tracing/http-traces-source). -2. Install OpenTelemetry Collector by referring to the[docs](/docs/apm/traces/get-started-transaction-tracing/set-up-traces-collection-aws-environments). +1. Create a HTTP Traces source by referring to the [docs](/docs/apm/traces/get-started-transaction-tracing/http-traces-source). +2. Install OpenTelemetry Collector by referring to the [docs](/docs/apm/traces/get-started-transaction-tracing/set-up-traces-collection-aws-environments). ### Sample log messages @@ -455,18 +455,18 @@ import AppInstall from '../../reuse/apps/app-install-v2.md'; ### Cluster Overview -The**Amazon ECS - Cluster Overview**dashboard provides a high-level view of the cluster's health along with details on the utilized resources. +The **Amazon ECS - Cluster Overview** dashboard provides a high-level view of the cluster's health along with details on the utilized resources. Use this dashboard to: -- Monitor the memory and CPUutilization of your cluster. +- Monitor the memory and CPU utilization of your cluster. - View abnormal read-write activity and network incoming-outgoing bytes. Amazon ECS - Cluster Overviewdashboard ### Cluster Performance Monitoring -The**Amazon ECS - Cluster Performance Monitoring**dashboard provides detailed information on the performance of your cluster, which you can use to fine-tune your cluster. +The **Amazon ECS - Cluster Performance Monitoring** dashboard provides detailed information on the performance of your cluster, which you can use to fine-tune your cluster. Use this dashboard to: @@ -477,7 +477,7 @@ Use this dashboard to: ### Cluster Resource Reservation -The**Amazon ECS - Cluster Resource Reservation** dashboard provides information on resource reservations which can be used to set the right resource limits. +The **Amazon ECS - Cluster Resource Reservation** dashboard provides information on resource reservations which can be used to set the right resource limits. Use this dashboard to: @@ -487,18 +487,18 @@ Use this dashboard to: ### Container Logs -The**Amazon ECS - Container Logs**dashboard provides detailed information on what is happening (errors or recent events) in a container. +The **Amazon ECS - Container Logs** dashboard provides detailed information on what is happening (errors or recent events) in a container. Use this dashboard to: - View recent logs of your container. - Identify common errors and abnormal spikes in errors. -Amazon ECS - Container Logs**dashboard +Amazon ECS - Container Logs dashboard ### Container Overview -The**Amazon ECS - Container Overview**dashboard provides a high-level view of the health of the container along with details on the utilized resources. +The **Amazon ECS - Container Overview** dashboard provides a high-level view of the health of the container along with details on the utilized resources. Use this dashboard to: @@ -509,7 +509,7 @@ Use this dashboard to: ### EC2 LaunchType -The**Amazon ECS - EC2LaunchType**dashboard provides a high-level view of the health of the cluster along with details on the utilized resources for EC2 launch types. +The **Amazon ECS - EC2LaunchType** dashboard provides a high-level view of the health of the cluster along with details on the utilized resources for EC2 launch types. Use this dashboard to: @@ -520,7 +520,7 @@ Use this dashboard to: ### Service Overview -The**Amazon ECS - Service Overview**dashboard provides a high-level view of the health of the services along with details on the utilized resources. +The **Amazon ECS - Service Overview** dashboard provides a high-level view of the health of the services along with details on the utilized resources. Use this dashboard to: @@ -531,7 +531,7 @@ Use this dashboard to: ### Service Performance Monitoring -The**Amazon ECS - Service Performance Monitoring**dashboard provides detailed information on the performance of your services which you can use to fine-tune your cluster. +The **Amazon ECS - Service Performance Monitoring** dashboard provides detailed information on the performance of your services which you can use to fine-tune your cluster. Use this dashboard to: @@ -543,7 +543,7 @@ Use this dashboard to: ### Tasks Definition Family Overview -The**Amazon ECS - Tasks Definition Family Overview**dashboard provides a high-level view of the health of the tasks belonging to a particular task definition family and details on the utilized resources. +The **Amazon ECS - Tasks Definition Family Overview** dashboard provides a high-level view of the health of the tasks belonging to a particular task definition family and details on the utilized resources. Use this dashboard to: @@ -554,7 +554,7 @@ Use this dashboard to: ### Tasks Overview -The**Amazon ECS - Tasks Overview**dashboard provides a high-level view of the health of the task along with details on the utilized resources and where they are running. +The **Amazon ECS - Tasks Overview** dashboard provides a high-level view of the health of the task along with details on the utilized resources and where they are running. Use this dashboard to: @@ -566,18 +566,18 @@ Use this dashboard to: ### Tasks Definition Family Performance Monitoring -The**Amazon ECS - Tasks Definition Family Performance Monitoring**dashboard provides detailed information on the performance of your tasks which you can use to fine-tune your cluster. +The **Amazon ECS - Tasks Definition Family Performance Monitoring** dashboard provides detailed information on the performance of your tasks which you can use to fine-tune your cluster. Use this dashboard to: -- Identify patterns and outliers over time for each of the resource metrics like CPU,memory, network, and disk. +- Identify patterns and outliers over time for each of the resource metrics like CPU, memory, network, and disk. - Monitor the performance of your tasksand use linked dashboards to drill down further into the root cause. Amazon ECS - Tasks Definition Family Performance Monitoringdashboard ### Task Definition Family Resource Reservation -The**Amazon ECS - Task Definition Family Resource Reservation**dashboard provides information on resource reservation which can be used to set the right resource limits at the task definition level. +The **Amazon ECS - Task Definition Family Resource Reservation** dashboard provides information on resource reservation which can be used to set the right resource limits at the task definition level. Use this dashboard to: @@ -587,7 +587,7 @@ Use this dashboard to: ### Fargate LaunchType -The**Amazon ECS - Fargate LaunchType**dashboard provides a high-level view of the cluster's health along with details on the utilized resources for Fargate launch types. +The **Amazon ECS - Fargate LaunchType** dashboard provides a high-level view of the cluster's health along with details on the utilized resources for Fargate launch types. Use this dashboard to: @@ -598,7 +598,7 @@ Use this dashboard to: ### Audit Events -The**Amazon ECS - Audit Events**dashboard gives information on the type of request made to ECS, the IP making the request, who made it and when, and more. +The **Amazon ECS - Audit Events** dashboard gives information on the type of request made to ECS, the IP making the request, who made it and when, and more. Use this dashboard to: From 770357518a3b1ea3d65ff269f5f16d32e3b5a34b Mon Sep 17 00:00:00 2001 From: Apoorv A Kudesia Date: Tue, 19 May 2026 11:28:47 +0530 Subject: [PATCH 03/28] Update docs/integrations/amazon-aws/elastic-container-service-container-insights-cloudwatch.md Co-authored-by: Kim Pohas <56411016+kimsauce@users.noreply.github.com> --- .../elastic-container-service-container-insights-cloudwatch.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/integrations/amazon-aws/elastic-container-service-container-insights-cloudwatch.md b/docs/integrations/amazon-aws/elastic-container-service-container-insights-cloudwatch.md index 36a2e0dcb1..3640d8c8c0 100644 --- a/docs/integrations/amazon-aws/elastic-container-service-container-insights-cloudwatch.md +++ b/docs/integrations/amazon-aws/elastic-container-service-container-insights-cloudwatch.md @@ -132,7 +132,7 @@ Enter a parse expression to create an `account` field that maps to the alias you ## Collect Container Insights performance log events for Task and Container -Container Insights collects data asperformance log events using [embedded metric format](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Embedded_Metric_Format.html). More details [here](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/ContainerInsights.html). +Container Insights collects data as performance log events using [embedded metric format](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Embedded_Metric_Format.html). More details [here](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/ContainerInsights.html). In this step, you'll create a source to collect Task and Container level performance events, which are not converted as CloudWatch metrics. From 72250e1c348974437e6baf8246d42417e4b28bf2 Mon Sep 17 00:00:00 2001 From: Apoorv A Kudesia Date: Tue, 19 May 2026 11:29:01 +0530 Subject: [PATCH 04/28] Update docs/integrations/amazon-aws/elastic-container-service-container-insights-cloudwatch.md Co-authored-by: Kim Pohas <56411016+kimsauce@users.noreply.github.com> --- .../elastic-container-service-container-insights-cloudwatch.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/integrations/amazon-aws/elastic-container-service-container-insights-cloudwatch.md b/docs/integrations/amazon-aws/elastic-container-service-container-insights-cloudwatch.md index 3640d8c8c0..11bc723fb0 100644 --- a/docs/integrations/amazon-aws/elastic-container-service-container-insights-cloudwatch.md +++ b/docs/integrations/amazon-aws/elastic-container-service-container-insights-cloudwatch.md @@ -160,7 +160,7 @@ For more information, see [Create a custom Fluent Bit image](/docs/send-data/col ## Collect Traces for Amazon ECS -To set upcollection for traces: +To set up collection for traces: 1. Create a HTTP Traces source by referring to the [docs](/docs/apm/traces/get-started-transaction-tracing/http-traces-source). 2. Install OpenTelemetry Collector by referring to the [docs](/docs/apm/traces/get-started-transaction-tracing/set-up-traces-collection-aws-environments). From 3b9e570c5ad580379b931a46f2813e39d0e884ce Mon Sep 17 00:00:00 2001 From: Apoorv A Kudesia Date: Tue, 19 May 2026 11:29:10 +0530 Subject: [PATCH 05/28] Update docs/integrations/amazon-aws/elastic-container-service-container-insights-cloudwatch.md Co-authored-by: Kim Pohas <56411016+kimsauce@users.noreply.github.com> --- .../elastic-container-service-container-insights-cloudwatch.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/integrations/amazon-aws/elastic-container-service-container-insights-cloudwatch.md b/docs/integrations/amazon-aws/elastic-container-service-container-insights-cloudwatch.md index 11bc723fb0..f2caf4cffb 100644 --- a/docs/integrations/amazon-aws/elastic-container-service-container-insights-cloudwatch.md +++ b/docs/integrations/amazon-aws/elastic-container-service-container-insights-cloudwatch.md @@ -429,7 +429,7 @@ To set up collection for traces: -### Samplequery +### Sample query ```sumo title="Deleted Resources Over Time" _sourceCategory=ecs* (DeleteCluster or DeleteService or DeregisterContainerInstance or DeregisterTaskDefinition or StopTask) and !(InternalFailure) From c215f3e3545aefa1028cb256956f61641a992b86 Mon Sep 17 00:00:00 2001 From: Apoorv A Kudesia Date: Tue, 19 May 2026 11:29:23 +0530 Subject: [PATCH 06/28] Update docs/integrations/amazon-aws/elastic-container-service-container-insights-cloudwatch.md Co-authored-by: Kim Pohas <56411016+kimsauce@users.noreply.github.com> --- .../elastic-container-service-container-insights-cloudwatch.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/integrations/amazon-aws/elastic-container-service-container-insights-cloudwatch.md b/docs/integrations/amazon-aws/elastic-container-service-container-insights-cloudwatch.md index f2caf4cffb..acf9425c9d 100644 --- a/docs/integrations/amazon-aws/elastic-container-service-container-insights-cloudwatch.md +++ b/docs/integrations/amazon-aws/elastic-container-service-container-insights-cloudwatch.md @@ -445,7 +445,7 @@ _sourceCategory=ecs* (DeleteCluster or DeleteService or DeregisterContainerInsta ## Installing the Amazon ECS app -Now that you have set up acollectionfor Amazon ECS with Container Insights and CloudWatch, install the Sumo Logic app for Amazon ECS with Container Insights and CloudWatch to use the pre-configured searches anddashboardsthat provide visibility into your environment for real-time analysis of overall usage. +Now that you have set up a collection for Amazon ECS with Container Insights and CloudWatch, install the Sumo Logic app for Amazon ECS with Container Insights and CloudWatch to use the pre-configured searches and dashboards that provide visibility into your environment for real-time analysis of overall usage. import AppInstall from '../../reuse/apps/app-install-v2.md'; From 378b448f4bd987411d3241a59809a1b5da141e50 Mon Sep 17 00:00:00 2001 From: Apoorv A Kudesia Date: Tue, 19 May 2026 11:29:34 +0530 Subject: [PATCH 07/28] Update docs/integrations/amazon-aws/elastic-container-service-container-insights-cloudwatch.md Co-authored-by: Kim Pohas <56411016+kimsauce@users.noreply.github.com> --- .../elastic-container-service-container-insights-cloudwatch.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/integrations/amazon-aws/elastic-container-service-container-insights-cloudwatch.md b/docs/integrations/amazon-aws/elastic-container-service-container-insights-cloudwatch.md index acf9425c9d..4c62a5fc41 100644 --- a/docs/integrations/amazon-aws/elastic-container-service-container-insights-cloudwatch.md +++ b/docs/integrations/amazon-aws/elastic-container-service-container-insights-cloudwatch.md @@ -462,7 +462,7 @@ Use this dashboard to: - Monitor the memory and CPU utilization of your cluster. - View abnormal read-write activity and network incoming-outgoing bytes. -Amazon ECS - Cluster Overviewdashboard +Amazon ECS - Cluster Overview dashboard ### Cluster Performance Monitoring From 2ec597a18bf041976684dac2a22b8af95ec38ca6 Mon Sep 17 00:00:00 2001 From: Apoorv A Kudesia Date: Tue, 19 May 2026 11:29:44 +0530 Subject: [PATCH 08/28] Update docs/integrations/amazon-aws/api-gateway.md Co-authored-by: Kim Pohas <56411016+kimsauce@users.noreply.github.com> --- docs/integrations/amazon-aws/api-gateway.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/integrations/amazon-aws/api-gateway.md b/docs/integrations/amazon-aws/api-gateway.md index a1232e6ba2..930e1b8834 100644 --- a/docs/integrations/amazon-aws/api-gateway.md +++ b/docs/integrations/amazon-aws/api-gateway.md @@ -731,7 +731,7 @@ import CreateMonitors from '../../reuse/apps/create-monitors.md'; | `AWS API Gateway - High Client-Side Errors` | This alert fires where there are too many API requests (>5%) with client-side errors within 5 minutes. | Count > = 0.05 | Count < 0.05 | | `AWS API Gateway - High Integration Latency` | This alert fires when we detect the high integration latency for the API requests in a stage within 5 minutes. | Count > = 2000 | Count < 2000 | | `AWS API Gateway - High Latency` | This alert fires when we detect the high latency in a stage within 5 minutes for REST and HTTP API. | Count > = 2500 | Count < 2500 | -| `AWS API Gateway - Low Traffic API` | This alert fires where there is low message traffic volume for the API within 5 minutes. | Count < = 1 | Count > 1 | +| `AWS API Gateway - Low Traffic API` | This alert fires when there is low message traffic volume for the API within 5 minutes. | Count < = 1 | Count > 1 | | `AWS API Gateway - High Authorizer Errors` | This alert fires where there are too many API requests (>5%) with authorizer errors within 5 minutes. | Count > 5 | Count < = 5 | | `AWS API Gateway - High Integration Errors` | This alert fires where there are too many API requests (>5%) with integration errors within 5 minutes. | Count > 5 | Count < = 5 | | `AWS API Gateway - High WAF Errors` | This alert fires where there are too many API requests (>5%) with WAF errors within 5 minutes. | Count > 5 | Count < = 5 | From 7ea4bb0ddf1cae339e1ea2dbcb4e6cb97eccd3bc Mon Sep 17 00:00:00 2001 From: Apoorv A Kudesia Date: Tue, 19 May 2026 11:29:54 +0530 Subject: [PATCH 09/28] Update docs/integrations/amazon-aws/application-load-balancer.md Co-authored-by: Kim Pohas <56411016+kimsauce@users.noreply.github.com> --- docs/integrations/amazon-aws/application-load-balancer.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/integrations/amazon-aws/application-load-balancer.md b/docs/integrations/amazon-aws/application-load-balancer.md index 88ceba3fcd..1ae2a706f1 100644 --- a/docs/integrations/amazon-aws/application-load-balancer.md +++ b/docs/integrations/amazon-aws/application-load-balancer.md @@ -271,7 +271,7 @@ import CreateMonitors from '../../reuse/apps/create-monitors.md'; |:----------------------------------------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------|:------------------|:--| | `AWS Application Load Balancer - Access from Highly Malicious Sources` | This alert fires when an application load balancer is accessed from highly malicious IP addresses within last 5 minutes. | Count > 0 | Count < = 0 | | `AWS Application Load Balancer - Deletion Alert` | This alert fires when an application load balancer is deleted within last 5 minutes. | Count > = 2 | Count < 2 | -| `AWS Application Load Balancer - High 4XX Errors` | This alert fires where there are too many HTTP requests (>5%) with a response status of 4xx within an interval of 5 minutes. | Count > = 5 | Count < 5 | +| `AWS Application Load Balancer - High 4XX Errors` | This alert fires when there are too many HTTP requests (>5%) with a response status of 4xx within an interval of 5 minutes. | Count > = 5 | Count < 5 | | `AWS Application Load Balancer - High 5XX Errors` | This alert fires where there are too many HTTP requests (>5%) with a response status of 5xx within an interval of 5 minutes. | Count > = 5 | Count < 5 | | `AWS Application Load Balancer - High Latency` | This alert fires when we detect that the average latency for a given application load balancer within a time interval of 5 minutes is greater than or equal to three seconds. | Count > = 3000 | Count < 3000 | | `AWS Application Load Balancer - Targets Deregistered` | This alert fires when targets are deregistered from an application load balancer within last 5 minutes. | Count > = 1 | Count < 1 | From aa3770420adec4e3fafd446761321c188676d6c5 Mon Sep 17 00:00:00 2001 From: Apoorv A Kudesia Date: Tue, 19 May 2026 11:30:04 +0530 Subject: [PATCH 10/28] Update docs/integrations/amazon-aws/application-load-balancer.md Co-authored-by: Kim Pohas <56411016+kimsauce@users.noreply.github.com> --- docs/integrations/amazon-aws/application-load-balancer.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/integrations/amazon-aws/application-load-balancer.md b/docs/integrations/amazon-aws/application-load-balancer.md index 1ae2a706f1..4c0fba033e 100644 --- a/docs/integrations/amazon-aws/application-load-balancer.md +++ b/docs/integrations/amazon-aws/application-load-balancer.md @@ -272,7 +272,7 @@ import CreateMonitors from '../../reuse/apps/create-monitors.md'; | `AWS Application Load Balancer - Access from Highly Malicious Sources` | This alert fires when an application load balancer is accessed from highly malicious IP addresses within last 5 minutes. | Count > 0 | Count < = 0 | | `AWS Application Load Balancer - Deletion Alert` | This alert fires when an application load balancer is deleted within last 5 minutes. | Count > = 2 | Count < 2 | | `AWS Application Load Balancer - High 4XX Errors` | This alert fires when there are too many HTTP requests (>5%) with a response status of 4xx within an interval of 5 minutes. | Count > = 5 | Count < 5 | -| `AWS Application Load Balancer - High 5XX Errors` | This alert fires where there are too many HTTP requests (>5%) with a response status of 5xx within an interval of 5 minutes. | Count > = 5 | Count < 5 | +| `AWS Application Load Balancer - High 5XX Errors` | This alert fires when there are too many HTTP requests (>5%) with a response status of 5xx within an interval of 5 minutes. | Count > = 5 | Count < 5 | | `AWS Application Load Balancer - High Latency` | This alert fires when we detect that the average latency for a given application load balancer within a time interval of 5 minutes is greater than or equal to three seconds. | Count > = 3000 | Count < 3000 | | `AWS Application Load Balancer - Targets Deregistered` | This alert fires when targets are deregistered from an application load balancer within last 5 minutes. | Count > = 1 | Count < 1 | From 44ac2492737b7817b0669583efe82599c58bc778 Mon Sep 17 00:00:00 2001 From: Apoorv A Kudesia Date: Tue, 19 May 2026 11:30:15 +0530 Subject: [PATCH 11/28] Update docs/integrations/amazon-aws/classic-load-balancer.md Co-authored-by: Kim Pohas <56411016+kimsauce@users.noreply.github.com> --- docs/integrations/amazon-aws/classic-load-balancer.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/integrations/amazon-aws/classic-load-balancer.md b/docs/integrations/amazon-aws/classic-load-balancer.md index bbed23ea1b..39464fa1aa 100644 --- a/docs/integrations/amazon-aws/classic-load-balancer.md +++ b/docs/integrations/amazon-aws/classic-load-balancer.md @@ -270,7 +270,7 @@ import CreateMonitors from '../../reuse/apps/create-monitors.md'; |:-----|:------------|:----------------|:--| | `AWS Classic Load Balancer - Access from Highly Malicious Sources` | This alert fires when the classic load balancer is accessed from highly malicious IP addresses within last 5 minutes. | Count > 0 | Count < = 0 | | `AWS Classic Load Balancer - Deletion Alert` | This alert fires when we detect greater than or equal to 2 application load balancers are deleted over a 5 minute time-period. | Count > = 2 | Count < 2 | -| `AWS Classic Load Balancer - High 4XX Errors` | This alert fires where there are too many HTTP requests (>5%) with a response status of 4xx within an interval of 5 minutes. | Count > = 5 | Count < 5 | +| `AWS Classic Load Balancer - High 4XX Errors` | This alert fires when there are too many HTTP requests (>5%) with a response status of 4xx within an interval of 5 minutes. | Count > = 5 | Count < 5 | | `AWS Classic Load Balancer - High 5XX Errors` | This alert fires where there are too many HTTP requests (>5%) with a response status of 5xx within an interval of 5 minutes. | Count > = 5 | Count < 5 | | `AWS Classic Load Balancer - High Latency` | This alert fires when we detect that the average latency for a given classic load balancer within a time interval of 5 minutes is greater than or equal to three seconds. | Count > = 3000 | Count < 3000 | | `AWS Classic Load Balancer - Targets Deregistered` | This alert fires when we detect greater than or equal to 1 target is de-registered over a 5 minute time-period. | Count > = 1 | Count < 1 | From 44f9fa20af078787be71113eca9a78e3bc48c331 Mon Sep 17 00:00:00 2001 From: Apoorv A Kudesia Date: Tue, 19 May 2026 11:31:03 +0530 Subject: [PATCH 12/28] Update docs/integrations/amazon-aws/classic-load-balancer.md Co-authored-by: Kim Pohas <56411016+kimsauce@users.noreply.github.com> --- docs/integrations/amazon-aws/classic-load-balancer.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/integrations/amazon-aws/classic-load-balancer.md b/docs/integrations/amazon-aws/classic-load-balancer.md index 39464fa1aa..1a99989976 100644 --- a/docs/integrations/amazon-aws/classic-load-balancer.md +++ b/docs/integrations/amazon-aws/classic-load-balancer.md @@ -271,7 +271,7 @@ import CreateMonitors from '../../reuse/apps/create-monitors.md'; | `AWS Classic Load Balancer - Access from Highly Malicious Sources` | This alert fires when the classic load balancer is accessed from highly malicious IP addresses within last 5 minutes. | Count > 0 | Count < = 0 | | `AWS Classic Load Balancer - Deletion Alert` | This alert fires when we detect greater than or equal to 2 application load balancers are deleted over a 5 minute time-period. | Count > = 2 | Count < 2 | | `AWS Classic Load Balancer - High 4XX Errors` | This alert fires when there are too many HTTP requests (>5%) with a response status of 4xx within an interval of 5 minutes. | Count > = 5 | Count < 5 | -| `AWS Classic Load Balancer - High 5XX Errors` | This alert fires where there are too many HTTP requests (>5%) with a response status of 5xx within an interval of 5 minutes. | Count > = 5 | Count < 5 | +| `AWS Classic Load Balancer - High 5XX Errors` | This alert fires when there are too many HTTP requests (>5%) with a response status of 5xx within an interval of 5 minutes. | Count > = 5 | Count < 5 | | `AWS Classic Load Balancer - High Latency` | This alert fires when we detect that the average latency for a given classic load balancer within a time interval of 5 minutes is greater than or equal to three seconds. | Count > = 3000 | Count < 3000 | | `AWS Classic Load Balancer - Targets Deregistered` | This alert fires when we detect greater than or equal to 1 target is de-registered over a 5 minute time-period. | Count > = 1 | Count < 1 | From f6140f74aff7fe1d05df5425b2946a268682393d Mon Sep 17 00:00:00 2001 From: Apoorv A Kudesia Date: Tue, 19 May 2026 11:31:59 +0530 Subject: [PATCH 13/28] Update docs/integrations/amazon-aws/api-gateway.md Co-authored-by: Kim Pohas <56411016+kimsauce@users.noreply.github.com> --- docs/integrations/amazon-aws/api-gateway.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/integrations/amazon-aws/api-gateway.md b/docs/integrations/amazon-aws/api-gateway.md index 930e1b8834..b04a9eab50 100644 --- a/docs/integrations/amazon-aws/api-gateway.md +++ b/docs/integrations/amazon-aws/api-gateway.md @@ -733,7 +733,7 @@ import CreateMonitors from '../../reuse/apps/create-monitors.md'; | `AWS API Gateway - High Latency` | This alert fires when we detect the high latency in a stage within 5 minutes for REST and HTTP API. | Count > = 2500 | Count < 2500 | | `AWS API Gateway - Low Traffic API` | This alert fires when there is low message traffic volume for the API within 5 minutes. | Count < = 1 | Count > 1 | | `AWS API Gateway - High Authorizer Errors` | This alert fires where there are too many API requests (>5%) with authorizer errors within 5 minutes. | Count > 5 | Count < = 5 | -| `AWS API Gateway - High Integration Errors` | This alert fires where there are too many API requests (>5%) with integration errors within 5 minutes. | Count > 5 | Count < = 5 | +| `AWS API Gateway - High Integration Errors` | This alert fires when there are too many API requests (>5%) with integration errors within 5 minutes. | Count > 5 | Count < = 5 | | `AWS API Gateway - High WAF Errors` | This alert fires where there are too many API requests (>5%) with WAF errors within 5 minutes. | Count > 5 | Count < = 5 | | `AWS API Gateway - High WAF Latency` | This alert fires when we detect the high WAF latency for the REST and WebSocket API requests in a stage within 5 minutes. | Count > 1000 | Count < = 1000 | From 31fcfb6f4613d9caf6900295c41ca57cbb113620 Mon Sep 17 00:00:00 2001 From: Apoorv A Kudesia Date: Tue, 19 May 2026 11:32:23 +0530 Subject: [PATCH 14/28] Update docs/integrations/amazon-aws/api-gateway.md Co-authored-by: Kim Pohas <56411016+kimsauce@users.noreply.github.com> --- docs/integrations/amazon-aws/api-gateway.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/integrations/amazon-aws/api-gateway.md b/docs/integrations/amazon-aws/api-gateway.md index b04a9eab50..95c6981cf5 100644 --- a/docs/integrations/amazon-aws/api-gateway.md +++ b/docs/integrations/amazon-aws/api-gateway.md @@ -732,7 +732,7 @@ import CreateMonitors from '../../reuse/apps/create-monitors.md'; | `AWS API Gateway - High Integration Latency` | This alert fires when we detect the high integration latency for the API requests in a stage within 5 minutes. | Count > = 2000 | Count < 2000 | | `AWS API Gateway - High Latency` | This alert fires when we detect the high latency in a stage within 5 minutes for REST and HTTP API. | Count > = 2500 | Count < 2500 | | `AWS API Gateway - Low Traffic API` | This alert fires when there is low message traffic volume for the API within 5 minutes. | Count < = 1 | Count > 1 | -| `AWS API Gateway - High Authorizer Errors` | This alert fires where there are too many API requests (>5%) with authorizer errors within 5 minutes. | Count > 5 | Count < = 5 | +| `AWS API Gateway - High Authorizer Errors` | This alert fires when there are too many API requests (>5%) with authorizer errors within 5 minutes. | Count > 5 | Count < = 5 | | `AWS API Gateway - High Integration Errors` | This alert fires when there are too many API requests (>5%) with integration errors within 5 minutes. | Count > 5 | Count < = 5 | | `AWS API Gateway - High WAF Errors` | This alert fires where there are too many API requests (>5%) with WAF errors within 5 minutes. | Count > 5 | Count < = 5 | | `AWS API Gateway - High WAF Latency` | This alert fires when we detect the high WAF latency for the REST and WebSocket API requests in a stage within 5 minutes. | Count > 1000 | Count < = 1000 | From b0ac552e0c8739aa37d447a856a412352b3630f4 Mon Sep 17 00:00:00 2001 From: Apoorv A Kudesia Date: Tue, 19 May 2026 11:32:45 +0530 Subject: [PATCH 15/28] Update docs/integrations/amazon-aws/api-gateway.md Co-authored-by: Kim Pohas <56411016+kimsauce@users.noreply.github.com> --- docs/integrations/amazon-aws/api-gateway.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/integrations/amazon-aws/api-gateway.md b/docs/integrations/amazon-aws/api-gateway.md index 95c6981cf5..4eb721fc7f 100644 --- a/docs/integrations/amazon-aws/api-gateway.md +++ b/docs/integrations/amazon-aws/api-gateway.md @@ -734,7 +734,7 @@ import CreateMonitors from '../../reuse/apps/create-monitors.md'; | `AWS API Gateway - Low Traffic API` | This alert fires when there is low message traffic volume for the API within 5 minutes. | Count < = 1 | Count > 1 | | `AWS API Gateway - High Authorizer Errors` | This alert fires when there are too many API requests (>5%) with authorizer errors within 5 minutes. | Count > 5 | Count < = 5 | | `AWS API Gateway - High Integration Errors` | This alert fires when there are too many API requests (>5%) with integration errors within 5 minutes. | Count > 5 | Count < = 5 | -| `AWS API Gateway - High WAF Errors` | This alert fires where there are too many API requests (>5%) with WAF errors within 5 minutes. | Count > 5 | Count < = 5 | +| `AWS API Gateway - High WAF Errors` | This alert fires when there are too many API requests (>5%) with WAF errors within 5 minutes. | Count > 5 | Count < = 5 | | `AWS API Gateway - High WAF Latency` | This alert fires when we detect the high WAF latency for the REST and WebSocket API requests in a stage within 5 minutes. | Count > 1000 | Count < = 1000 | ## Upgrade/Downgrade the AWS API Gateway app (Optional) From c9f5c17b5b3f9aa1cc2f1361de360d0abaa2264b Mon Sep 17 00:00:00 2001 From: Apoorv Kudesia Date: Wed, 10 Jun 2026 15:41:49 +0530 Subject: [PATCH 16/28] SUMO-282477 | Apoorv | update. docs --- .../amazon-aws/application-load-balancer.md | 1 + .../amazon-aws/classic-load-balancer.md | 2 + docs/integrations/amazon-aws/dynamodb.md | 1 + .../amazon-aws/ec2-cloudwatch-metrics.md | 2 + .../amazon-aws/ec2-host-metrics.md | 39 +++++++++++++++++++ .../amazon-aws/elastic-container-service.md | 13 +++++++ 6 files changed, 58 insertions(+) diff --git a/docs/integrations/amazon-aws/application-load-balancer.md b/docs/integrations/amazon-aws/application-load-balancer.md index 4c0fba033e..c9cb197794 100644 --- a/docs/integrations/amazon-aws/application-load-balancer.md +++ b/docs/integrations/amazon-aws/application-load-balancer.md @@ -275,6 +275,7 @@ import CreateMonitors from '../../reuse/apps/create-monitors.md'; | `AWS Application Load Balancer - High 5XX Errors` | This alert fires when there are too many HTTP requests (>5%) with a response status of 5xx within an interval of 5 minutes. | Count > = 5 | Count < 5 | | `AWS Application Load Balancer - High Latency` | This alert fires when we detect that the average latency for a given application load balancer within a time interval of 5 minutes is greater than or equal to three seconds. | Count > = 3000 | Count < 3000 | | `AWS Application Load Balancer - Targets Deregistered` | This alert fires when targets are deregistered from an application load balancer within last 5 minutes. | Count > = 1 | Count < 1 | +| `AWS Application Load Balancer - High Unhealthy Host Count` | This alert fires when we detect that the number of unhealthy hosts for a given Application load balancer within a time interval of 5 minutes is greater than or equal to one. | Count > = 1 | Count < 1 | ## Upgrade/Downgrade the AWS Application Load Balancer app (Optional) diff --git a/docs/integrations/amazon-aws/classic-load-balancer.md b/docs/integrations/amazon-aws/classic-load-balancer.md index 1a99989976..32e962004a 100644 --- a/docs/integrations/amazon-aws/classic-load-balancer.md +++ b/docs/integrations/amazon-aws/classic-load-balancer.md @@ -274,6 +274,8 @@ import CreateMonitors from '../../reuse/apps/create-monitors.md'; | `AWS Classic Load Balancer - High 5XX Errors` | This alert fires when there are too many HTTP requests (>5%) with a response status of 5xx within an interval of 5 minutes. | Count > = 5 | Count < 5 | | `AWS Classic Load Balancer - High Latency` | This alert fires when we detect that the average latency for a given classic load balancer within a time interval of 5 minutes is greater than or equal to three seconds. | Count > = 3000 | Count < 3000 | | `AWS Classic Load Balancer - Targets Deregistered` | This alert fires when we detect greater than or equal to 1 target is de-registered over a 5 minute time-period. | Count > = 1 | Count < 1 | +| `AWS Classic Load Balancer - Spillover Count` | This alert fires when a Classic load balancer spillover count is greater than 0 within a 5 minute interval, indicating that the surge queue is full and new connections are being rejected. | Count > 0 | Count < = 0 | +| `AWS Classic Load Balancer - High Unhealthy Host Count` | This alert fires when the unhealthy host percentage for a Classic load balancer is greater than or equal to 50% within a 5 minute interval. | Count > = 50 | Count < 50 | ## Upgrade/Downgrade the AWS Classic Load Balancer app (Optional) diff --git a/docs/integrations/amazon-aws/dynamodb.md b/docs/integrations/amazon-aws/dynamodb.md index 85643d7ab7..5b99553625 100644 --- a/docs/integrations/amazon-aws/dynamodb.md +++ b/docs/integrations/amazon-aws/dynamodb.md @@ -243,6 +243,7 @@ import CreateMonitors from '../../reuse/apps/create-monitors.md'; | `AWS DynamoDB - High Write Throttle` | This alert fires when we detect that the total write throttle events for a DynamoDB table is high (>5) for a time interval of 5 minutes. | Count > 5 | Count < = 5 | | `AWS DynamoDB - Multiple Tables deleted` | This alert fires when five or more tables are deleted within 15 minutes. | Count > = 5 | Count < 5 | | `AWS DynamoDB - System Errors` | This alert fires when we detect system errors for a DynamoDB table is high (>10) for a time interval of 5 minutes. | Count > 10 | Count < = 10 | +| `AWS DynamoDB - High Request Latency` | This alert fires when we detect that the average successful request latency for a DynamoDB table is high (>20ms) for a time interval of 5 minutes. High latency indicates potential issues such as hot partitions, oversized items, or degraded table performance. | Count > 20 | Count < = 20 | ## Upgrade/Downgrade the Amazon DynamoDB app (Optional) diff --git a/docs/integrations/amazon-aws/ec2-cloudwatch-metrics.md b/docs/integrations/amazon-aws/ec2-cloudwatch-metrics.md index f3c59a8749..73134426ec 100644 --- a/docs/integrations/amazon-aws/ec2-cloudwatch-metrics.md +++ b/docs/integrations/amazon-aws/ec2-cloudwatch-metrics.md @@ -336,6 +336,8 @@ import CreateMonitors from '../../reuse/apps/create-monitors.md'; | `AWS EC2 - High Memory Utilization` | This alert fires when the average memory utilization within a 5 minute interval for an EC2 instance is high (>=85%). | Count > = 85 | Count < 85 | | `AWS EC2 - High System CPU Utilization` | This alert fires when the average system CPU utilization within a 5 minute interval for an EC2 instance is high (>=85%). | Count > = 85 | Count < 85 | | `AWS EC2 - High Total CPU Utilization` | This alert fires when the average total CPU utilization within a 5 minute interval for an EC2 instance is high (>=85%). | Count > = 85 | Count < 85 | +| `AWS EC2 CW - Low EBS IO Credit Balance` | This alert fires when the average EBS IO Balance percentage within a 5 minute interval for an EC2 instance is low (<=10%), indicating the instance is close to being throttled on EBS IOPS. | Count < = 10 | Count > 10 | +| `AWS EC2 CW - Low CPU Credit Balance` | This alert fires when the average CPU Credit Balance within a 30 minute interval for an EC2 instance is low (<=5), indicating a burstable instance is close to losing burst capability and will be limited to baseline performance. | Count < = 5 | Count > 5 | ## Upgrade/Downgrade the AWS EC2 app (Optional) diff --git a/docs/integrations/amazon-aws/ec2-host-metrics.md b/docs/integrations/amazon-aws/ec2-host-metrics.md index 3e8f1ffb61..9146bb04d0 100644 --- a/docs/integrations/amazon-aws/ec2-host-metrics.md +++ b/docs/integrations/amazon-aws/ec2-host-metrics.md @@ -208,6 +208,43 @@ Use this dashboard to: EC2 host metrics dashboard +### AWS EC2 - Status Checks (Host Metrics) + +The **AWS EC2 Metrics - Status Checks** dashboard provides details about EC2 instance health status checks, EBS attachment health, and performance limit violations. + +Use this dashboard to: + +* Monitor instances with failed instance, system, or attached EBS status checks. +* Track status check failure trends over time to identify recurring issues. +* Identify Nitro instances exceeding EBS IOPS or throughput performance limits. + +EC2 host metrics dashboard + +### AWS EC2 - EBS Performance (Host Metrics) + +The **AWS EC2 Metrics - EBS Performance** dashboard provides details about EBS read/write IOPS, throughput, burst balance, and CloudWatch disk I/O for EC2 instances. + +Use this dashboard to: + +* Monitor EBS read and write IOPS rates and throughput across your EC2 instances. +* Track EBS IO and byte burst balance percentages to prevent performance throttling on gp2, st1, and sc1 volumes. +* Monitor CloudWatch disk read and write operation rates for overall disk performance. + +EC2 host metrics dashboard + +### AWS EC2 - CPU Credits and Security (Host Metrics) + +The **AWS EC2 Metrics - CPU Credits and Security** dashboard provides details about T2/T3 burstable instance CPU credit balance and usage, CloudWatch CPU utilization, IMDS security access patterns, and Dedicated Host CPU utilization. + +Use this dashboard to: + +* Monitor CPU credit balance and usage for T2/T3 burstable instances to avoid performance degradation. +* Track surplus credit charges to understand billing impact of T2/T3 Unlimited instances. +* Monitor IMDS security by identifying instances still using IMDSv1 (requests without token) or instances where IMDSv1 has been blocked. +* Monitor CloudWatch CPU utilization and Dedicated Host CPU utilization. + +EC2 host metrics dashboard + ## Create monitors for Host Metrics (EC2) app import CreateMonitors from '../../reuse/apps/create-monitors.md'; @@ -222,6 +259,8 @@ import CreateMonitors from '../../reuse/apps/create-monitors.md'; | `AWS EC2 - High Total CPU Utilization` | This alert fires when the average total CPU utilization within a 5 minute interval for an EC2 instance is high (>=85%). | Count > = 85 | Count < 85 | | `AWS EC2 - High Memory Utilization` | This alert fires when the average memory utilization within a 5 minute interval for an EC2 instance is high (>=85%). | Count > = 85 | Count < 85 | | `AWS EC2 - High Disk Utilization` | This alert fires when the average disk utilization within a 5 minute time interval for an EC2 instance is high (>=85%). | Count > = 85 | Count < 85 | +| `AWS EC2 - High CPU IO Wait` | This alert fires when the average CPU IO wait time within a 5 minute interval for an EC2 instance is high (>=20%), indicating disk I/O bottlenecks causing CPU stalls. | Count > = 20 | Count < 20 | +| `AWS EC2 - High CPU Steal Time` | This alert fires when the average CPU steal time within a 5 minute interval for an EC2 instance is high (>=10%), indicating hypervisor contention or noisy neighbor issues. | Count > = 10 | Count < 10 | ## Upgrade/Downgrade the Host Metrics (EC2) app (Optional) diff --git a/docs/integrations/amazon-aws/elastic-container-service.md b/docs/integrations/amazon-aws/elastic-container-service.md index 47adbba6f5..416081004c 100644 --- a/docs/integrations/amazon-aws/elastic-container-service.md +++ b/docs/integrations/amazon-aws/elastic-container-service.md @@ -407,3 +407,16 @@ Use this dashboard to: Amazon ECS - Resource Reservation + +## Create monitors for Amazon ECS app + +import CreateMonitors from '../../reuse/apps/create-monitors.md'; + + + +### Amazon ECS alerts + +| Name | Description | Alert Condition | Recover Condition | +|:-----|:------------|:----------------|:--| +| `Amazon ECS - High CPU Utilization` | This alert fires when the average CPU utilization within a 5 minute interval for a service within a cluster is high (>=85%). | Count > = 85 | Count < 85 | +| `Amazon ECS - High Memory Utilization` | This alert fires when the average memory utilization within a 5 minute interval for a service within a cluster is high (>=85%). | Count > = 85 | Count < 85 | From 937067d24eb271b98fa041c8ebfbeade0174daf2 Mon Sep 17 00:00:00 2001 From: Kim Pohas Date: Wed, 10 Jun 2026 16:13:43 -0700 Subject: [PATCH 17/28] Fix MDX build error by escaping < and <= in alert table Co-Authored-By: Claude Sonnet 4.6 --- .../amazon-aws/ec2-cloudwatch-metrics.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/docs/integrations/amazon-aws/ec2-cloudwatch-metrics.md b/docs/integrations/amazon-aws/ec2-cloudwatch-metrics.md index 73134426ec..3793b446cc 100644 --- a/docs/integrations/amazon-aws/ec2-cloudwatch-metrics.md +++ b/docs/integrations/amazon-aws/ec2-cloudwatch-metrics.md @@ -330,14 +330,14 @@ import CreateMonitors from '../../reuse/apps/create-monitors.md'; | Name | Description | Alert Condition | Recover Condition | |:-----|:------------|:----------------|:--| -| `AWS EC2 CW - High CPU Utilization` | This alert fires when the average CPU utilization based on cloud watch metrics, within a 5 minute interval for an EC2 instance is high (>=85%). | Count > 85 | Count < = 85 | -| `AWS EC2 CW - Status Check Failed` | This alert fires when there is a status check failures within a 5 minute interval for an EC2 instance. | Count > 0 | Count < = 0 | -| `AWS EC2 - High Disk Utilization` | This alert fires when the average disk utilization within a 5 minute time interval for an EC2 instance is high (>=85%). | Count > = 85 | Count < 85 | -| `AWS EC2 - High Memory Utilization` | This alert fires when the average memory utilization within a 5 minute interval for an EC2 instance is high (>=85%). | Count > = 85 | Count < 85 | -| `AWS EC2 - High System CPU Utilization` | This alert fires when the average system CPU utilization within a 5 minute interval for an EC2 instance is high (>=85%). | Count > = 85 | Count < 85 | -| `AWS EC2 - High Total CPU Utilization` | This alert fires when the average total CPU utilization within a 5 minute interval for an EC2 instance is high (>=85%). | Count > = 85 | Count < 85 | -| `AWS EC2 CW - Low EBS IO Credit Balance` | This alert fires when the average EBS IO Balance percentage within a 5 minute interval for an EC2 instance is low (<=10%), indicating the instance is close to being throttled on EBS IOPS. | Count < = 10 | Count > 10 | -| `AWS EC2 CW - Low CPU Credit Balance` | This alert fires when the average CPU Credit Balance within a 30 minute interval for an EC2 instance is low (<=5), indicating a burstable instance is close to losing burst capability and will be limited to baseline performance. | Count < = 5 | Count > 5 | +| `AWS EC2 CW - High CPU Utilization` | This alert fires when the average CPU utilization based on cloud watch metrics, within a 5 minute interval for an EC2 instance is high (>=85%). | Count > 85 | Count <= 85 | +| `AWS EC2 CW - Status Check Failed` | This alert fires when there is a status check failures within a 5 minute interval for an EC2 instance. | Count > 0 | Count <= 0 | +| `AWS EC2 - High Disk Utilization` | This alert fires when the average disk utilization within a 5 minute time interval for an EC2 instance is high (>=85%). | Count >= 85 | Count < 85 | +| `AWS EC2 - High Memory Utilization` | This alert fires when the average memory utilization within a 5 minute interval for an EC2 instance is high (>=85%). | Count >= 85 | Count < 85 | +| `AWS EC2 - High System CPU Utilization` | This alert fires when the average system CPU utilization within a 5 minute interval for an EC2 instance is high (>=85%). | Count >= 85 | Count < 85 | +| `AWS EC2 - High Total CPU Utilization` | This alert fires when the average total CPU utilization within a 5 minute interval for an EC2 instance is high (>=85%). | Count >= 85 | Count < 85 | +| `AWS EC2 CW - Low EBS IO Credit Balance` | This alert fires when the average EBS IO Balance percentage within a 5 minute interval for an EC2 instance is low (<=10%), indicating the instance is close to being throttled on EBS IOPS. | Count <= 10 | Count > 10 | +| `AWS EC2 CW - Low CPU Credit Balance` | This alert fires when the average CPU Credit Balance within a 30 minute interval for an EC2 instance is low (<=5), indicating a burstable instance is close to losing burst capability and will be limited to baseline performance. | Count <= 5 | Count > 5 | ## Upgrade/Downgrade the AWS EC2 app (Optional) From d2dec9ccb0f89540136a20fb9ec141231a282b27 Mon Sep 17 00:00:00 2001 From: Kim Pohas Date: Wed, 10 Jun 2026 16:33:01 -0700 Subject: [PATCH 18/28] Rename AppInstall to AppInstall2 to match app-install-v2.md import Co-Authored-By: Claude Sonnet 4.6 --- docs/integrations/amazon-aws/api-gateway.md | 4 ++-- docs/integrations/amazon-aws/classic-load-balancer.md | 4 ++-- docs/integrations/amazon-aws/dynamodb.md | 4 ++-- docs/integrations/amazon-aws/ec2-cloudwatch-metrics.md | 4 ++-- docs/integrations/amazon-aws/ec2-host-metrics.md | 4 ++-- ...elastic-container-service-container-insights-cloudwatch.md | 4 ++-- 6 files changed, 12 insertions(+), 12 deletions(-) diff --git a/docs/integrations/amazon-aws/api-gateway.md b/docs/integrations/amazon-aws/api-gateway.md index 4eb721fc7f..bdf513a7e8 100644 --- a/docs/integrations/amazon-aws/api-gateway.md +++ b/docs/integrations/amazon-aws/api-gateway.md @@ -566,9 +566,9 @@ Enter a parse expression to create an `account` field that maps to the alias you Now that you have set up a collection for the **AWS API gateway**, install the Sumo Logic app to use the pre-configured dashboards that provide visibility into your environment for real-time analysis of overall usage. -import AppInstall from '../../reuse/apps/app-install-v2.md'; +import AppInstall2 from '../../reuse/apps/app-install-v2.md'; - + ## Viewing AWS API Gateway dashboards diff --git a/docs/integrations/amazon-aws/classic-load-balancer.md b/docs/integrations/amazon-aws/classic-load-balancer.md index 32e962004a..e7bb410373 100644 --- a/docs/integrations/amazon-aws/classic-load-balancer.md +++ b/docs/integrations/amazon-aws/classic-load-balancer.md @@ -158,9 +158,9 @@ json "eventSource", "awsRegion", "recipientAccountId", "requestParameters.loadBa Now that you have set up a collection for AWS Classic Load Balancer, install the Sumo Logic app to use the pre-configured searches and dashboards that provide visibility into your environment for real-time analysis of overall usage. -import AppInstall from '../../reuse/apps/app-install-v2.md'; +import AppInstall2 from '../../reuse/apps/app-install-v2.md'; - + ## Viewing the AWS Classic Load Balancer dashboards diff --git a/docs/integrations/amazon-aws/dynamodb.md b/docs/integrations/amazon-aws/dynamodb.md index 5b99553625..c14bbc56ac 100644 --- a/docs/integrations/amazon-aws/dynamodb.md +++ b/docs/integrations/amazon-aws/dynamodb.md @@ -159,9 +159,9 @@ Enter a parse expression to create an “account” field that maps to the alias Now that you have set up a collection for **Amazon DynamoDB**, install the Sumo Logic app to use the pre-configured [dashboards](#viewing-amazon-dynamodb-dashboards) that provide visibility into your environment for real-time analysis of overall usage. -import AppInstall from '../../reuse/apps/app-install-v2.md'; +import AppInstall2 from '../../reuse/apps/app-install-v2.md'; - + ## Viewing Amazon DynamoDB dashboards diff --git a/docs/integrations/amazon-aws/ec2-cloudwatch-metrics.md b/docs/integrations/amazon-aws/ec2-cloudwatch-metrics.md index 3793b446cc..58e8c4ce5e 100644 --- a/docs/integrations/amazon-aws/ec2-cloudwatch-metrics.md +++ b/docs/integrations/amazon-aws/ec2-cloudwatch-metrics.md @@ -219,9 +219,9 @@ Enter a parse expression to create an “account” field that maps to the alias Now that you have set up collection for AWS EC2 metrics install the Sumo Logic app to use the pre-configured searches and dashboards that provide visibility into your environment for real-time analysis of overall usage. -import AppInstall from '../../reuse/apps/app-install-v2.md'; +import AppInstall2 from '../../reuse/apps/app-install-v2.md'; - + ## Viewing AWS EC2 dashboards diff --git a/docs/integrations/amazon-aws/ec2-host-metrics.md b/docs/integrations/amazon-aws/ec2-host-metrics.md index 9146bb04d0..ee5274c515 100644 --- a/docs/integrations/amazon-aws/ec2-host-metrics.md +++ b/docs/integrations/amazon-aws/ec2-host-metrics.md @@ -121,9 +121,9 @@ Collectors running on AWS EC2 instances can optionally collect AWS Metadata such Now that you have set up the collection for Host Metrics (EC2) metrics, install the Sumo Logic App to use the pre-configured searches and dashboards that provide visibility into your environment for real-time analysis of overall usage. -import AppInstall from '../../reuse/apps/app-install-v2.md'; +import AppInstall2 from '../../reuse/apps/app-install-v2.md'; - + ## Viewing EC2 Host Metrics Dashboards diff --git a/docs/integrations/amazon-aws/elastic-container-service-container-insights-cloudwatch.md b/docs/integrations/amazon-aws/elastic-container-service-container-insights-cloudwatch.md index 4c62a5fc41..bd49e66ee7 100644 --- a/docs/integrations/amazon-aws/elastic-container-service-container-insights-cloudwatch.md +++ b/docs/integrations/amazon-aws/elastic-container-service-container-insights-cloudwatch.md @@ -447,9 +447,9 @@ _sourceCategory=ecs* (DeleteCluster or DeleteService or DeregisterContainerInsta Now that you have set up a collection for Amazon ECS with Container Insights and CloudWatch, install the Sumo Logic app for Amazon ECS with Container Insights and CloudWatch to use the pre-configured searches and dashboards that provide visibility into your environment for real-time analysis of overall usage. -import AppInstall from '../../reuse/apps/app-install-v2.md'; +import AppInstall2 from '../../reuse/apps/app-install-v2.md'; - + ## Amazon ECS CloudWatch dashboards From 64f4dcabb55169692000b46d6d8c4ca03a4f0208 Mon Sep 17 00:00:00 2001 From: Sachin Magar Date: Thu, 11 Jun 2026 10:22:22 +0530 Subject: [PATCH 19/28] removed create fields section --- docs/integrations/amazon-aws/api-gateway.md | 90 ++++--------------- .../amazon-aws/application-load-balancer.md | 50 +++-------- .../amazon-aws/classic-load-balancer.md | 48 +++------- docs/integrations/amazon-aws/dynamodb.md | 29 ++---- .../amazon-aws/ec2-cloudwatch-metrics.md | 60 ++++--------- .../amazon-aws/ec2-host-metrics.md | 13 +-- .../amazon-aws/elastic-container-service.md | 33 +++---- 7 files changed, 78 insertions(+), 245 deletions(-) diff --git a/docs/integrations/amazon-aws/api-gateway.md b/docs/integrations/amazon-aws/api-gateway.md index 4eb721fc7f..828b4c9add 100644 --- a/docs/integrations/amazon-aws/api-gateway.md +++ b/docs/integrations/amazon-aws/api-gateway.md @@ -162,86 +162,17 @@ account=dev region=us-east-1 namespace=aws/apigateway apiname=* apiid stage doma ## Collecting logs and metrics for AWS API Gateway -### Fields in field schema +### Field Extraction Rule(s) -1. [**New UI**](/docs/get-started/sumo-logic-ui). In the main Sumo Logic menu select **Data Management**, and then under **Logs** select **Fields**. You can also click the **Go To...** menu at the top of the screen and select **Fields**.
[**Classic UI**](/docs/get-started/sumo-logic-ui-classic). In the main Sumo Logic menu, select **Manage Data > Logs > Fields**. -1. Search for the below fields: - * `apiname` - * `account` - * `namespace` - * `region` - * `accountid` -1. If not present, create it. To learn how to create and manage fields, see [Fields](/docs/manage/fields.md#manage-fields). +The FER **AwsObservabilityApiGatewayCloudTrailLogsFER** to extract fields `region`, `namespace`, `apiname`, and `accountid` from CloudTrail logs will be created as a part of app installation. -### Field extraction rules +The FER **AwsObservabilityApiGatewayAccessLogsFER** to extract fields `apiname`, `namespace`, and `apiid` from access logs will be created as a part of app installation. -To learn how to create field extraction rules, [Create a Field Extraction Rules](/docs/manage/field-extractions/create-field-extraction-rule). +The FER **AwsObservabilityApiGatewayCloudWatchLogsFER** to extract fields `namespace`, `apiid`, and `apiname` from CloudWatch logs will be created as a part of app installation. -Create a field extraction rule for cloudTrail logs: +### Metric Rule(s) -```sumo -Rule Name: AwsObservabilityApiGatewayCloudTrailLogsFER -Applied at: Ingest Time -Scope (Specific Data): -account=* eventname eventsource "apigateway.amazonaws.com" -Parse Expression: -| json "eventSource", "awsRegion", "responseElements", "recipientAccountId" as eventSource, region, responseElements, accountid nodrop -| where eventSource = "apigateway.amazonaws.com" -| "aws/apigateway" as namespace -| json field=responseElements "name" as ApiName nodrop -| tolowercase(ApiName) as apiname -| fields region, namespace, apiname, accountid -``` - -Create a field extraction rule for access logs: - -```sumo -Rule Name: AwsObservabilityApiGatewayAccessLogsFER -Applied at: Ingest Time -Scope (Specific Data): -account=* region=* apiId domainName stage requestId status -Parse Expression: -json "apiId", "domainName", "stage" as apiId, domainName, stage -| "aws/apigateway" as namespace -| apiId as apiName -| fields apiName, namespace, apiId -``` - -Create/Update field extraction rule(s) for cloudwatch logs: - -```sumo -Rule Name: AwsObservabilityGenericCloudWatchLogsFER -Applied at: Ingest Time -Scope (Specific Data): -account=* region=* (_sourceHost=/aws/* or _sourceHost=API*Gateway*Execution*Logs*) -Parse Expression: -if (isEmpty(namespace),"unknown",namespace) as namespace -| if (_sourceHost matches "/aws/lambda/*", "aws/lambda", namespace) as namespace -| if (_sourceHost matches "/aws/rds/*", "aws/rds", namespace) as namespace -| if (_sourceHost matches "/aws/ecs/containerinsights/*", "aws/ecs", namespace) as namespace -| if (_sourceHost matches "/aws/kinesisfirehose/*", "aws/firehose", namespace) as namespace -| if (_sourceHost matches "/aws/apigateway/*", "aws/apigateway", namespace) as namespace -| if (_sourceHost matches "API-Gateway-Execution-Logs*", "aws/apigateway", namespace) as namespace -| parse field=_sourceHost "/aws/lambda/*" as functionname nodrop | tolowercase(functionname) as functionname -| parse field=_sourceHost "/aws/rds/*/*/" as f1, dbidentifier nodrop -| parse field=_sourceHost "/aws/apigateway/*/*" as apiid, stage nodrop -| parse field=_sourceHost "API-Gateway-Execution-Logs_*/*" as apiid, stage nodrop -| apiid as apiName -| tolowercase(dbidentifier) as dbidentifier -| fields namespace, functionname, dbidentifier, apiid, apiName -``` - -### Metrics rules - -Create the following metrics rule for the AWS API Gateway app, if not already created. To learn how to create a metrics rule, see [Metrics Rules Editor](/docs/metrics/metric-rules-editor#create-a-metrics-rule). - -```sql -Rule name: AwsObservabilityApiGatewayApiNameMetricsEntityRule -Metric match expression: Namespace=AWS/ApiGateway apiid=* -Variable name: apiname -Tag sequence: $apiid._1 -Save it -``` +The Metric Rule **AwsObservabilityApiGatewayApiNameMetricsEntityRule** for the AWS/ApiGateway namespace will be created as a part of app installation. ### Configure Hosted Collector @@ -570,6 +501,15 @@ import AppInstall from '../../reuse/apps/app-install-v2.md'; +As part of the app installation process, the following fields will be created by default: + +- `account` Name / alias to the AWS account. +- `accountid` AWS account id. +- `region` The region to which the resource name belongs to. +- `namespace` Namespace for AWS API Gateway Service is AWS/ApiGateway. +- `apiname` API Gateway API name. +- `apiid` API Gateway API id. + ## Viewing AWS API Gateway dashboards import FilterDashboards from '../../reuse/filter-dashboards.md'; diff --git a/docs/integrations/amazon-aws/application-load-balancer.md b/docs/integrations/amazon-aws/application-load-balancer.md index c9cb197794..4509d44472 100644 --- a/docs/integrations/amazon-aws/application-load-balancer.md +++ b/docs/integrations/amazon-aws/application-load-balancer.md @@ -110,49 +110,11 @@ Before you begin to use the AWS Elastic Load Balancing (ELB) Application app, co Namespace for AWS Application Load Balancer Service is AWS/ApplicationELB. ::: -## Field in field schema - -1. [**New UI**](/docs/get-started/sumo-logic-ui). In the main Sumo Logic menu select **Data Management**, and then under **Logs** select **Fields**. You can also click the **Go To...** menu at the top of the screen and select **Fields**.
[**Classic UI**](/docs/get-started/sumo-logic-ui-classic). In the main Sumo Logic menu, select **Manage Data > Logs > Fields**. -1. Search for the `loadbalancer` field. -1. If not present, create it. Learn how to create and manage fields [here](/docs/manage/fields.md#manage-fields). - ## Field Extraction Rule(s) -Create Field Extraction Rule (FER) for AWS Application Load Balancer access logs and Cloudtrail logs. Learn how to create a Field Extraction Rule [here](/docs/manage/field-extractions/create-field-extraction-rule). - -**AWS Application Load Balancer access logs** - -```sql -Rule Name: AwsObservabilityAlbAccessLogsFER -Applied at: Ingest Time -Scope (Specific Data): account=* region=* (http or https or h2 or grpcs or ws or wss) -``` - -```sumo title="Parse Expression" -parse "* * * * * * * * * * * * \"*\" \"*\" * * * \"*\"" as Type, DateTime, loadbalancer, Client, Target, RequestProcessingTime, TargetProcessingTime, ResponseProcessingTime, ElbStatusCode, TargetStatusCode, ReceivedBytes, SentBytes, Request, UserAgent, SslCipher, SslProtocol, TargetGroupArn, TraceId | tolowercase(loadbalancer) as loadbalancer | fields loadbalancer -``` +The FER **AwsObservabilityAlbAccessLogFER** to extract the `loadbalancer` field from access logs will be created as a part of app installation. -**AWS Application Load Balancer CloudTrail logs** - -```sql -Rule Name: AwsObservabilityALBCloudTrailLogsFER -Applied at: Ingest Time -Scope (Specific Data): account=* eventSource eventName "elasticloadbalancing.amazonaws.com" "2015-12-01" -``` - -```sumo title="Parse Expression" -json "eventSource", "awsRegion", "recipientAccountId", "requestParameters.name", "requestParameters.type", "requestParameters.loadBalancerArn", "requestParameters.listenerArn", "apiVersion" as event_source, region, accountid, loadbalancer, loadbalancertype, loadbalancerarn, listenerarn, api_version nodrop -| where event_source = "elasticloadbalancing.amazonaws.com" and api_version matches "2015-12-01" -| "" as namespace -| parse field=loadbalancerarn ":loadbalancer/*/*/*" as balancertype1, loadbalancer1, f1 nodrop -| parse field=listenerarn ":listener/*/*/*/*" as balancertype2, loadbalancer2, f1, f2 nodrop -| if(loadbalancertype matches "network", "aws/networkelb", if(balancertype1 matches "net", "aws/networkelb", if(balancertype2 matches "net", "aws/networkelb", namespace))) as namespace -| if(loadbalancertype matches "application", "aws/applicationelb", if(balancertype1 matches "app", "aws/applicationelb", if(balancertype2 matches "app", "aws/applicationelb", namespace))) as namespace -| where namespace="aws/applicationelb" or isEmpty(namespace) -| if (!isEmpty(loadbalancer), loadbalancer, if (!isEmpty(loadbalancer1), loadbalancer1, loadbalancer2)) as loadbalancer -| toLowerCase(loadbalancer) as loadbalancer -| fields region, namespace, loadbalancer, accountid -``` +The FER **AwsObservabilityALBCloudTrailLogFER** to extract fields `region`, `namespace`, `loadbalancer`, and `accountid` from CloudTrail logs will be created as a part of app installation. ## Installing the AWS Application Load Balancer app @@ -162,6 +124,14 @@ import AppInstallNoDataSourceV2 from '../../reuse/apps/app-install-index-apps-v2 +As part of the app installation process, the following fields will be created by default: + +- `account` Name / alias to the AWS account. +- `accountid` AWS account id. +- `region` The region to which the resource name belongs to. +- `namespace` Namespace for AWS Application Load Balancer Service is AWS/ApplicationELB. +- `loadbalancer` Application Load Balancer name. + ## Viewing AWS Application Load Balancer dashboards We highly recommend you view these dashboards in the [AWS Observability view](/docs/dashboards/explore-view/#aws-observability) of the AWS Observability solution. diff --git a/docs/integrations/amazon-aws/classic-load-balancer.md b/docs/integrations/amazon-aws/classic-load-balancer.md index 32e962004a..fd1b5c4ee6 100644 --- a/docs/integrations/amazon-aws/classic-load-balancer.md +++ b/docs/integrations/amazon-aws/classic-load-balancer.md @@ -112,47 +112,11 @@ Before you can begin to use the AWS Classic Load Balancing (ELB) App, complete t Namespace for **AWS Classic Load Balancer** Service is **AWS/ELB**. ::: -## Field in field schema - -1. [**New UI**](/docs/get-started/sumo-logic-ui). In the main Sumo Logic menu select **Data Management**, and then under **Logs** select **Fields**. You can also click the **Go To...** menu at the top of the screen and select **Fields**.
[**Classic UI**](/docs/get-started/sumo-logic-ui-classic). In the main Sumo Logic menu, select **Manage Data > Logs > Fields**. -1. Search for the **loadbalancername** field. -1. If not present, create it. Learn how to create and manage fields [here](/docs/manage/fields#manage-fields). - ## Field Extraction Rule(s) -Create a Field Extraction Rule for AWS Classic Load Balancer access logs and Cloudtrail logs. Learn how to create Field Extraction Rules [here](/docs/manage/field-extractions/create-field-extraction-rule). - -**AWS Classic Load Balancer access logs** - -```sql -Rule Name: AwsObservabilityElbAccessLogsFER -Applied at: Ingest Time -Scope (Specific Data): account=* region=* _sourceCategory=aws/observability/clb/logs -``` -```sumo title="Parse Expression" -| parse "* * * * * * * * * * * \"*\" \"*\" * *" as datetime, loadbalancername, client, backend, request_processing_time, backend_processing_time, response_processing_time, elb_status_code, backend_status_code, received_bytes, sent_bytes, request, user_agent, ssl_cipher, ssl_protocol -| parse regex field=datetime "(?\d{0,4}-\d{0,2}-\d{0,2}T\d{0,2}:\d{0,2}:\d{0,2}\.\d+Z)" -| where !isBlank(loadbalancername) and !isBlank(datetimevalue) -| "aws/elb" as namespace -| tolowercase(loadbalancername) as loadbalancername -| fields loadbalancername, namespace -``` +The FER **AwsObservabilityClbAccessLogsFER** to extract fields `loadbalancername` and `namespace` from access logs will be created as a part of app installation. -**AWS Classic Load Balancer CloudTrail Logs** - -```sql -Rule Name: AwsObservabilityCLBCloudTrailLogsFER -Applied at: Ingest Time -Scope (Specific Data): account=* eventSource eventName "elasticloadbalancing.amazonaws.com" "2012-06-01" -``` - -```sumo title="Parse Expression" -json "eventSource", "awsRegion", "recipientAccountId", "requestParameters.loadBalancerName" as event_source, region, accountid, loadbalancername nodrop -| where event_source = "elasticloadbalancing.amazonaws.com" -| toLowerCase(loadbalancername) as loadbalancername -| "aws/elb" as namespace -| fields region, namespace, loadbalancername, accountid -``` +The FER **AwsObservabilityCLBCloudTrailLogsFER** to extract fields `region`, `namespace`, `loadbalancername`, and `accountid` from CloudTrail logs will be created as a part of app installation. ## Installing the AWS Classic Load Balancer app @@ -162,6 +126,14 @@ import AppInstall from '../../reuse/apps/app-install-v2.md'; +As part of the app installation process, the following fields will be created by default: + +- `account` Name / alias to the AWS account. +- `accountid` AWS account id. +- `region` The region to which the resource name belongs to. +- `namespace` Namespace for AWS Classic Load Balancer Service is AWS/ELB. +- `loadbalancername` Classic Load Balancer name. + ## Viewing the AWS Classic Load Balancer dashboards ### Overview diff --git a/docs/integrations/amazon-aws/dynamodb.md b/docs/integrations/amazon-aws/dynamodb.md index 5b99553625..6cecd3fed4 100644 --- a/docs/integrations/amazon-aws/dynamodb.md +++ b/docs/integrations/amazon-aws/dynamodb.md @@ -108,29 +108,9 @@ Namespace for **Amazon DynamoDB** Service is **AWS/DynamoDB**. 2. Click **Save**. -### Field in Field Schema - -1. [**New UI**](/docs/get-started/sumo-logic-ui). In the main Sumo Logic menu select **Data Management**, and then under **Logs** select **Fields**. You can also click the **Go To...** menu at the top of the screen and select **Fields**.
[**Classic UI**](/docs/get-started/sumo-logic-ui-classic). In the main Sumo Logic menu, select **Manage Data > Logs > Fields**. -1. Search for the “**tablename**” field. -1. If not present, create it. Learn how to create and manage fields [here](/docs/manage/fields.md#manage-fields). - - ### Field Extraction Rule(s) -Create Field Extraction Rule for CloudTrail Logs. Learn how to create Field Extraction Rule [here](/docs/manage/field-extractions/create-field-extraction-rule). - -```sql -Rule Name: AwsObservabilityDynamoDBCloudTrailLogsFER -Applied at: Ingest Time -Scope (Specific Data): -account=* eventname eventsource "dynamodb.amazonaws.com" -Parse Expression: -| json "eventSource", "awsRegion", "requestParameters.tableName", "recipientAccountId" as eventSource, region, tablename, accountid nodrop -| where eventSource = "dynamodb.amazonaws.com" -| "aws/dynamodb" as namespace -| tolowercase(tablename) as tablename -| fields region, namespace, tablename, accountid -``` +The FER **AwsObservabilityDynamoDBCloudTrailLogsFER** to extract fields `region`, `namespace`, `tablename`, and `accountid` will be created as a part of app installation. ### Centralized AWS CloudTrail Log Collection @@ -163,6 +143,13 @@ import AppInstall from '../../reuse/apps/app-install-v2.md'; +As part of the app installation process, the following fields will be created by default: + +- `account` Name / alias to the AWS account. +- `accountid` AWS account id. +- `region` The region to which the resource name belongs to. +- `namespace` Namespace for Amazon DynamoDB Service is AWS/DynamoDB. +- `tablename` DynamoDB table name. ## Viewing Amazon DynamoDB dashboards diff --git a/docs/integrations/amazon-aws/ec2-cloudwatch-metrics.md b/docs/integrations/amazon-aws/ec2-cloudwatch-metrics.md index 73134426ec..3b648562d9 100644 --- a/docs/integrations/amazon-aws/ec2-cloudwatch-metrics.md +++ b/docs/integrations/amazon-aws/ec2-cloudwatch-metrics.md @@ -152,41 +152,9 @@ To configure a CloudTrail Source, perform these steps: 12. **Enable Multiline Processing**. Select the **Detect messages spanning multiple lines** check box, and select **Infer Boundaries**. 13. Click **Save**. -### Field in Field Schema +### Field Extraction Rule(s) -1. [**New UI**](/docs/get-started/sumo-logic-ui). In the main Sumo Logic menu select **Data Management**, and then under **Logs** select **Fields**. You can also click the **Go To...** menu at the top of the screen and select **Fields**.
[**Classic UI**](/docs/get-started/sumo-logic-ui-classic). In the main Sumo Logic menu, select **Manage Data > Logs > Fields**. -1. Search for the “**instanceid**” field. -1. If not present, create it. Learn how to create and manage fields [here](/docs/manage/fields.md#manage-fields). - - -### CloudTrail Field Extraction Rule - -```sql -Rule Name: AwsObservabilityEC2CloudTrailLogsFER -Applied at: Ingest Time -Scope (Specific Data): account=* eventname eventsource "ec2.amazonaws.com" -``` - - -**Parse Expression** - -```sumo -| json "eventSource", "awsRegion", "requestParameters", "responseElements", "recipientAccountId" as eventSource, region, requestParameters, responseElements, accountid nodrop -| where eventSource = "ec2.amazonaws.com" -| "aws/ec2" as namespace -| json field=requestParameters "instanceType", "instancesSet", "instanceId", "DescribeInstanceCreditSpecificationsRequest.InstanceId.content" as req_instancetype, req_instancesSet, req_instanceid_1, req_instanceid_2 nodrop -| json field=req_instancesSet "item", "items" as req_instancesSet_item, req_instancesSet_items nodrop -| parse regex field=req_instancesSet_item "\"instanceId\":\s*\"(?.*?)\"" nodrop -| parse regex field=req_instancesSet_items "\"instanceId\":\s*\"(?.*?)\"" nodrop -| json field=responseElements "instancesSet.items" as res_responseElements_items nodrop -| parse regex field=res_responseElements_items "\"instanceType\":\s*\"(?.*?)\"" nodrop -| parse regex field=res_responseElements_items "\"instanceId\":\s*\"(?.*?)\"" nodrop -| if (!isBlank(req_instanceid_1), req_instanceid_1, if (!isBlank(req_instanceid_2), req_instanceid_2, if (!isBlank(req_instanceid_3), req_instanceid_3, if (!isBlank(req_instanceid_4), req_instanceid_4, "")))) as req_instanceid -| if (!isBlank(req_instanceid), req_instanceid, res_instanceid) as instanceid -| if (!isBlank(req_instancetype), req_instancetype, res_instancetype) as instanceType -| tolowercase(instanceid) as instanceid -| fields region, namespace, accountid, instanceid -``` +The FER **AwsObservabilityEC2CloudTrailLogsFER** to extract fields `region`, `namespace`, `accountid`, and `instanceid` will be created as a part of app installation. ### Centralized AWS CloudTrail log collection @@ -223,6 +191,14 @@ import AppInstall from '../../reuse/apps/app-install-v2.md'; +As part of the app installation process, the following fields will be created by default: + +- `account` Name / alias to the AWS account. +- `accountid` AWS account id. +- `region` The region to which the resource name belongs to. +- `namespace` Namespace for Amazon EC2 Service is AWS/EC2. +- `instanceid` EC2 instance id. + ## Viewing AWS EC2 dashboards ### Overview (CloudWatch Metrics) @@ -330,14 +306,14 @@ import CreateMonitors from '../../reuse/apps/create-monitors.md'; | Name | Description | Alert Condition | Recover Condition | |:-----|:------------|:----------------|:--| -| `AWS EC2 CW - High CPU Utilization` | This alert fires when the average CPU utilization based on cloud watch metrics, within a 5 minute interval for an EC2 instance is high (>=85%). | Count > 85 | Count < = 85 | -| `AWS EC2 CW - Status Check Failed` | This alert fires when there is a status check failures within a 5 minute interval for an EC2 instance. | Count > 0 | Count < = 0 | -| `AWS EC2 - High Disk Utilization` | This alert fires when the average disk utilization within a 5 minute time interval for an EC2 instance is high (>=85%). | Count > = 85 | Count < 85 | -| `AWS EC2 - High Memory Utilization` | This alert fires when the average memory utilization within a 5 minute interval for an EC2 instance is high (>=85%). | Count > = 85 | Count < 85 | -| `AWS EC2 - High System CPU Utilization` | This alert fires when the average system CPU utilization within a 5 minute interval for an EC2 instance is high (>=85%). | Count > = 85 | Count < 85 | -| `AWS EC2 - High Total CPU Utilization` | This alert fires when the average total CPU utilization within a 5 minute interval for an EC2 instance is high (>=85%). | Count > = 85 | Count < 85 | -| `AWS EC2 CW - Low EBS IO Credit Balance` | This alert fires when the average EBS IO Balance percentage within a 5 minute interval for an EC2 instance is low (<=10%), indicating the instance is close to being throttled on EBS IOPS. | Count < = 10 | Count > 10 | -| `AWS EC2 CW - Low CPU Credit Balance` | This alert fires when the average CPU Credit Balance within a 30 minute interval for an EC2 instance is low (<=5), indicating a burstable instance is close to losing burst capability and will be limited to baseline performance. | Count < = 5 | Count > 5 | +| `AWS EC2 CW - High CPU Utilization` | This alert fires when the average CPU utilization based on cloud watch metrics, within a 5 minute interval for an EC2 instance is high (>=85%). | Count > 85 | Count <= 85 | +| `AWS EC2 CW - Status Check Failed` | This alert fires when there is a status check failures within a 5 minute interval for an EC2 instance. | Count > 0 | Count <= 0 | +| `AWS EC2 - High Disk Utilization` | This alert fires when the average disk utilization within a 5 minute time interval for an EC2 instance is high (>=85%). | Count >= 85 | Count < 85 | +| `AWS EC2 - High Memory Utilization` | This alert fires when the average memory utilization within a 5 minute interval for an EC2 instance is high (>=85%). | Count >= 85 | Count < 85 | +| `AWS EC2 - High System CPU Utilization` | This alert fires when the average system CPU utilization within a 5 minute interval for an EC2 instance is high (>=85%). | Count >= 85 | Count < 85 | +| `AWS EC2 - High Total CPU Utilization` | This alert fires when the average total CPU utilization within a 5 minute interval for an EC2 instance is high (>=85%). | Count >= 85 | Count < 85 | +| `AWS EC2 CW - Low EBS IO Credit Balance` | This alert fires when the average EBS IO Balance percentage within a 5 minute interval for an EC2 instance is low (<=10%), indicating the instance is close to being throttled on EBS IOPS. | Count < = 10 | Count > 10 | +| `AWS EC2 CW - Low CPU Credit Balance` | This alert fires when the average CPU Credit Balance within a 30 minute interval for an EC2 instance is low (<=5), indicating a burstable instance is close to losing burst capability and will be limited to baseline performance. | Count < = 5 | Count > 5 | ## Upgrade/Downgrade the AWS EC2 app (Optional) diff --git a/docs/integrations/amazon-aws/ec2-host-metrics.md b/docs/integrations/amazon-aws/ec2-host-metrics.md index 9146bb04d0..6f2362eb5e 100644 --- a/docs/integrations/amazon-aws/ec2-host-metrics.md +++ b/docs/integrations/amazon-aws/ec2-host-metrics.md @@ -37,15 +37,6 @@ _sourceCategory=Labs/AWS/Host/Metrics metric=CPU_Total account=* region=* namesp The Host Metrics (EC2) app relies upon an Installed Collector with a [Host Metrics Source](/docs/send-data/installed-collectors/sources/host-metrics-source) on each of your AWS EC2 hosts. This page describes the data sources for the Host Metrics (EC2) app and has instructions for setting up metric collection. -### Field in Field Schema - -1. [**New UI**](/docs/get-started/sumo-logic-ui). In the main Sumo Logic menu select **Data Management**, and then under **Logs** select **Fields**. You can also click the **Go To...** menu at the top of the screen and select **Fields**.
[**Classic UI**](/docs/get-started/sumo-logic-ui-classic). In the main Sumo Logic menu, select **Manage Data > Logs > Fields**. -1. Search for the `instanceid` field. -1. If not present, create it. Learn how to create and manage fields [here](/docs/manage/fields#manage-fields). - -Fields Schema - - ### Configure Host Metrics sources Follow the instructions in this section to configure the Sumo Logic Installed Collector and a [Host Metrics Source](/docs/send-data/installed-collectors/sources/host-metrics-source) on each of your **AWS EC2** hosts. You will assign **account** and **namespace** metadata [fields](/docs/manage/fields) to the sources so that incoming logs and metrics will be appropriately tagged. @@ -125,6 +116,10 @@ import AppInstall from '../../reuse/apps/app-install-v2.md'; +As part of the app installation process, the following fields will be created by default: + +- `instanceid` EC2 instance id. + ## Viewing EC2 Host Metrics Dashboards ### AWS EC2 - Overview (Host OS Metrics) diff --git a/docs/integrations/amazon-aws/elastic-container-service.md b/docs/integrations/amazon-aws/elastic-container-service.md index 416081004c..3b77d78c7b 100644 --- a/docs/integrations/amazon-aws/elastic-container-service.md +++ b/docs/integrations/amazon-aws/elastic-container-service.md @@ -288,26 +288,11 @@ _sourceCategory=ecs* (DeleteCluster or DeleteService or DeregisterContainerInsta | count by resource_type, _timeslice | transpose row _timeslice column resource_type ``` -## Creating Fields in Field Schema - -1. [**New UI**](/docs/get-started/sumo-logic-ui). In the main Sumo Logic menu select **Data Management**, and then under **Logs** select **Fields**. You can also click the **Go To...** menu at the top of the screen and select **Fields**.
[**Classic UI**](/docs/get-started/sumo-logic-ui-classic). In the main Sumo Logic menu, select **Manage Data > Logs > Fields**. -1. Search for the following fields: `account`, `namespace`, `region` field. -1. If not present, create it. Learn how to create and manage fields [here](/docs/manage/fields). - -## Creating Field Extraction Rule(s) - -Create a Field Extraction Rule for CloudTrail Logs ([learn more](/docs/manage/field-extractions/create-field-extraction-rule)). -```sql -Rule Name: AwsObservabilityECSCloudTrailLogsFER -Applied at: Ingest Time -Scope (Specific Data): -account=* eventname eventsource "ecs.amazonaws.com" -Parse Expression: -| json "eventSource", "awsRegion", "requestParameters.tableName", "recipientAccountId" as eventSource, region, tablename, accountid nodrop -| where eventSource = "ecs.amazonaws.com" -| "aws/ecs" as namespace -| fields region, namespace, accountid -``` +## Field Extraction Rule(s) + +The FER **AwsObservabilityECSCloudTrailLogsFER** to extract fields `region`, `namespace`, `clustername`, and `accountid` will be created as a part of app installation. + +The FER **AwsObservabilityECSCloudWatchLogsFER** to extract the `namespace` field will be created as a part of app installation. ## Collect Logs and Metrics for Amazon ECS This section has instructions for collecting logs and metrics for the Amazon ECS app. @@ -345,6 +330,14 @@ import AppInstall from '../../reuse/apps/app-install.md'; +As part of the app installation process, the following fields will be created by default: + +- `account` Name / alias to the AWS account. +- `accountid` AWS account id. +- `region` The region to which the resource name belongs to. +- `namespace` Namespace for Amazon ECS Service is AWS/ECS. +- `clustername` The name of the ECS cluster. + ## Viewing the Amazon ECS app dashboards import ViewDashboards from '../../reuse/apps/view-dashboards.md'; From d911bad6aaef1e50cbbaf67e0e0a476d6518a1d6 Mon Sep 17 00:00:00 2001 From: Sachin Magar Date: Thu, 11 Jun 2026 13:48:39 +0530 Subject: [PATCH 20/28] updated app install section --- docs/integrations/amazon-aws/api-gateway.md | 4 ++-- .../amazon-aws/application-load-balancer.md | 4 ++-- .../amazon-aws/classic-load-balancer.md | 4 ++-- docs/integrations/amazon-aws/dynamodb.md | 4 ++-- .../amazon-aws/ec2-cloudwatch-metrics.md | 4 ++-- docs/integrations/amazon-aws/ec2-host-metrics.md | 4 ++-- .../amazon-aws/elastic-container-service.md | 14 +++++++++++++- 7 files changed, 25 insertions(+), 13 deletions(-) diff --git a/docs/integrations/amazon-aws/api-gateway.md b/docs/integrations/amazon-aws/api-gateway.md index 6fe02f5183..828b4c9add 100644 --- a/docs/integrations/amazon-aws/api-gateway.md +++ b/docs/integrations/amazon-aws/api-gateway.md @@ -497,9 +497,9 @@ Enter a parse expression to create an `account` field that maps to the alias you Now that you have set up a collection for the **AWS API gateway**, install the Sumo Logic app to use the pre-configured dashboards that provide visibility into your environment for real-time analysis of overall usage. -import AppInstall2 from '../../reuse/apps/app-install-v2.md'; +import AppInstall from '../../reuse/apps/app-install-v2.md'; - + As part of the app installation process, the following fields will be created by default: diff --git a/docs/integrations/amazon-aws/application-load-balancer.md b/docs/integrations/amazon-aws/application-load-balancer.md index 4509d44472..c148af13e7 100644 --- a/docs/integrations/amazon-aws/application-load-balancer.md +++ b/docs/integrations/amazon-aws/application-load-balancer.md @@ -120,9 +120,9 @@ The FER **AwsObservabilityALBCloudTrailLogFER** to extract fields `region`, `nam Now that you have set up collection for AWS Application Load Balancer, install the Sumo Logic App to use the pre-configured searches and dashboards that provide visibility into your environment for real-time analysis of overall usage. -import AppInstallNoDataSourceV2 from '../../reuse/apps/app-install-index-apps-v2.md'; +import AppInstall from '../../reuse/apps/app-install-index-apps-v2.md'; - + As part of the app installation process, the following fields will be created by default: diff --git a/docs/integrations/amazon-aws/classic-load-balancer.md b/docs/integrations/amazon-aws/classic-load-balancer.md index d43ec80d26..fd1b5c4ee6 100644 --- a/docs/integrations/amazon-aws/classic-load-balancer.md +++ b/docs/integrations/amazon-aws/classic-load-balancer.md @@ -122,9 +122,9 @@ The FER **AwsObservabilityCLBCloudTrailLogsFER** to extract fields `region`, `na Now that you have set up a collection for AWS Classic Load Balancer, install the Sumo Logic app to use the pre-configured searches and dashboards that provide visibility into your environment for real-time analysis of overall usage. -import AppInstall2 from '../../reuse/apps/app-install-v2.md'; +import AppInstall from '../../reuse/apps/app-install-v2.md'; - + As part of the app installation process, the following fields will be created by default: diff --git a/docs/integrations/amazon-aws/dynamodb.md b/docs/integrations/amazon-aws/dynamodb.md index 2629fae5a3..6cecd3fed4 100644 --- a/docs/integrations/amazon-aws/dynamodb.md +++ b/docs/integrations/amazon-aws/dynamodb.md @@ -139,9 +139,9 @@ Enter a parse expression to create an “account” field that maps to the alias Now that you have set up a collection for **Amazon DynamoDB**, install the Sumo Logic app to use the pre-configured [dashboards](#viewing-amazon-dynamodb-dashboards) that provide visibility into your environment for real-time analysis of overall usage. -import AppInstall2 from '../../reuse/apps/app-install-v2.md'; +import AppInstall from '../../reuse/apps/app-install-v2.md'; - + As part of the app installation process, the following fields will be created by default: diff --git a/docs/integrations/amazon-aws/ec2-cloudwatch-metrics.md b/docs/integrations/amazon-aws/ec2-cloudwatch-metrics.md index 91f51e94f3..a9cd302a52 100644 --- a/docs/integrations/amazon-aws/ec2-cloudwatch-metrics.md +++ b/docs/integrations/amazon-aws/ec2-cloudwatch-metrics.md @@ -187,9 +187,9 @@ Enter a parse expression to create an “account” field that maps to the alias Now that you have set up collection for AWS EC2 metrics install the Sumo Logic app to use the pre-configured searches and dashboards that provide visibility into your environment for real-time analysis of overall usage. -import AppInstall2 from '../../reuse/apps/app-install-v2.md'; +import AppInstall from '../../reuse/apps/app-install-v2.md'; - + ## Viewing AWS EC2 dashboards diff --git a/docs/integrations/amazon-aws/ec2-host-metrics.md b/docs/integrations/amazon-aws/ec2-host-metrics.md index 6a60d990df..6f2362eb5e 100644 --- a/docs/integrations/amazon-aws/ec2-host-metrics.md +++ b/docs/integrations/amazon-aws/ec2-host-metrics.md @@ -112,9 +112,9 @@ Collectors running on AWS EC2 instances can optionally collect AWS Metadata such Now that you have set up the collection for Host Metrics (EC2) metrics, install the Sumo Logic App to use the pre-configured searches and dashboards that provide visibility into your environment for real-time analysis of overall usage. -import AppInstall2 from '../../reuse/apps/app-install-v2.md'; +import AppInstall from '../../reuse/apps/app-install-v2.md'; - + As part of the app installation process, the following fields will be created by default: diff --git a/docs/integrations/amazon-aws/elastic-container-service.md b/docs/integrations/amazon-aws/elastic-container-service.md index 3b77d78c7b..068af0cb5d 100644 --- a/docs/integrations/amazon-aws/elastic-container-service.md +++ b/docs/integrations/amazon-aws/elastic-container-service.md @@ -326,7 +326,7 @@ This section has instructions for collecting logs and metrics for the Amazon ECS Now that you have set up collection for Amazon ECS, install the Sumo Logic app for Amazon ECS to use the pre-configured searches and dashboards that provide visibility into your environment for real-time analysis of overall usage. -import AppInstall from '../../reuse/apps/app-install.md'; +import AppInstall from '../../reuse/apps/app-install-v2.md'; @@ -413,3 +413,15 @@ import CreateMonitors from '../../reuse/apps/create-monitors.md'; |:-----|:------------|:----------------|:--| | `Amazon ECS - High CPU Utilization` | This alert fires when the average CPU utilization within a 5 minute interval for a service within a cluster is high (>=85%). | Count > = 85 | Count < 85 | | `Amazon ECS - High Memory Utilization` | This alert fires when the average memory utilization within a 5 minute interval for a service within a cluster is high (>=85%). | Count > = 85 | Count < 85 | + +## Upgrade/Downgrade the AWS EC2 app (Optional) + +import AppUpdate from '../../reuse/apps/app-update.md'; + + + +## Uninstalling the AWS EC2 app (Optional) + +import AppUninstall from '../../reuse/apps/app-uninstall.md'; + + \ No newline at end of file From 4a5ff7f22e1035ebf45717397f733a044f105ce2 Mon Sep 17 00:00:00 2001 From: Amee Lepcha Date: Wed, 17 Jun 2026 16:09:05 +0530 Subject: [PATCH 21/28] Update ec2-cloudwatch-metrics.md --- docs/integrations/amazon-aws/ec2-cloudwatch-metrics.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/docs/integrations/amazon-aws/ec2-cloudwatch-metrics.md b/docs/integrations/amazon-aws/ec2-cloudwatch-metrics.md index a9cd302a52..7a21e168e6 100644 --- a/docs/integrations/amazon-aws/ec2-cloudwatch-metrics.md +++ b/docs/integrations/amazon-aws/ec2-cloudwatch-metrics.md @@ -191,6 +191,14 @@ import AppInstall from '../../reuse/apps/app-install-v2.md'; +As part of the app installation process, the following fields will be created by default: + +- `account` Name/alias to the AWS account. +- `accountid` AWS account ID. +- `region` The region to which the resource name belongs. +- `namespace` Namespace for EC2 CW Metrics Service is (blank). +- `instanceid` (blank). + ## Viewing AWS EC2 dashboards ### Overview (CloudWatch Metrics) From 69380bbbba7d56af9d3c70cf2b62f6a8a376cb7f Mon Sep 17 00:00:00 2001 From: Sachin Magar Date: Wed, 17 Jun 2026 22:02:07 +0530 Subject: [PATCH 22/28] resolved feed comment --- docs/integrations/amazon-aws/ec2-cloudwatch-metrics.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/integrations/amazon-aws/ec2-cloudwatch-metrics.md b/docs/integrations/amazon-aws/ec2-cloudwatch-metrics.md index 7a21e168e6..9727f587c0 100644 --- a/docs/integrations/amazon-aws/ec2-cloudwatch-metrics.md +++ b/docs/integrations/amazon-aws/ec2-cloudwatch-metrics.md @@ -197,7 +197,7 @@ As part of the app installation process, the following fields will be created by - `accountid` AWS account ID. - `region` The region to which the resource name belongs. - `namespace` Namespace for EC2 CW Metrics Service is (blank). -- `instanceid` (blank). +- `instanceid` EC2 Instance Id. ## Viewing AWS EC2 dashboards From 1d883a242d80f62e87a7d1f3ef26a2c3dda41e79 Mon Sep 17 00:00:00 2001 From: Sachin Magar <159125519+sachin-sumologic@users.noreply.github.com> Date: Wed, 17 Jun 2026 22:17:53 +0530 Subject: [PATCH 23/28] Sumo 282478 docs (#6819) * app migration updated docs * SUMO-282478-docs * added doc for azure overview * added amazon overview documentation * Update cid-redirects.json * added enhanced dashboards * updated docs with latest app changes * removed create fields section * removed create fields section * updated to install v2 app * added uninstall * RDS FER name correction * Update network-load-balancer.md * Update rds.md --------- Co-authored-by: John Pipkin Co-authored-by: Amee Lepcha --- cid-redirects.json | 1 + .../amazon-aws/amazon-overview.md | 74 ++++++++++ docs/integrations/amazon-aws/elasticache.md | 65 +++++---- docs/integrations/amazon-aws/lambda.md | 91 ++++++------ .../amazon-aws/network-load-balancer.md | 82 +++++------ docs/integrations/amazon-aws/rds.md | 130 ++++++++---------- docs/integrations/amazon-aws/sns.md | 75 +++++----- docs/integrations/amazon-aws/sqs.md | 78 +++++++---- sidebars.ts | 1 + .../Amazon-Overview-AWS-Account-Overview.png | Bin 0 -> 752775 bytes .../Amazon-Overview-AWS-Region-Overview.png | Bin 0 -> 752823 bytes .../amazon-aws/amazon-overview.png | Bin 0 -> 4572 bytes 12 files changed, 354 insertions(+), 243 deletions(-) create mode 100644 docs/integrations/amazon-aws/amazon-overview.md create mode 100644 static/img/integrations/amazon-aws/Amazon-Overview-AWS-Account-Overview.png create mode 100644 static/img/integrations/amazon-aws/Amazon-Overview-AWS-Region-Overview.png create mode 100644 static/img/integrations/amazon-aws/amazon-overview.png diff --git a/cid-redirects.json b/cid-redirects.json index 94a13c3a01..da4a36be4e 100644 --- a/cid-redirects.json +++ b/cid-redirects.json @@ -3018,6 +3018,7 @@ "/cid/1152": "/docs/send-data/hosted-collectors/cloud-to-cloud-integration-framework/dropbox-source/", "/cid/1155": "/docs/manage/data-masking/", "/cid/1153": "/docs/send-data/opentelemetry-collector/install-collector/docker", + "/cid/1170": "/docs/integrations/amazon-aws/amazon-overview", "/cid/1154": "/docs/send-data/hosted-collectors/krutrim-object-storage", "/cid/1156": "/docs/send-data/opentelemetry-collector/data-source-configurations/windows-active-directory-inventory", "/release-notes-collector/2026/04/11/hosted/": "/release-notes-collector/2026/05/11/hosted/", diff --git a/docs/integrations/amazon-aws/amazon-overview.md b/docs/integrations/amazon-aws/amazon-overview.md new file mode 100644 index 0000000000..41db16b9da --- /dev/null +++ b/docs/integrations/amazon-aws/amazon-overview.md @@ -0,0 +1,74 @@ +--- +id: amazon-overview +title: Amazon Overview +description: The Sumo Logic app for Amazon Overview provides a unified view of your AWS infrastructure with key metrics and logs from multiple AWS services in a single dashboard. +--- + +import useBaseUrl from '@docusaurus/useBaseUrl'; + +Amazon Overview icon + +**Amazon Overview** + +[Amazon Web Services (AWS)](https://aws.amazon.com/) provides secure, scalable cloud computing services and solutions. The Sumo Logic app for Amazon Overview gives you a unified view of your entire AWS infrastructure by aggregating key metrics and logs from multiple AWS services into consolidated dashboards. + +The Sumo Logic Amazon Overview app dashboards provide visibility into your overall AWS environment: +* Monitor activity across all AWS services, including resource activity and geographic distribution of incoming requests. +* Track performance metrics for Application Load Balancer (ALB), Classic Load Balancer (ELB), and Network Load Balancer (NLB), including requests served, errors, healthy/unhealthy hosts, and TLS negotiation errors. +* View EC2 CPU utilization and free memory metrics. +* Monitor RDS CPU utilization and freeable memory. +* Track ElastiCache CPU utilization and freeable memory. +* View Lambda invocations and errors. +* Monitor DynamoDB requests by table and errors. +* Track API Gateway requests by API name and errors. +* Monitor SNS notifications delivered and failed. +* Track SQS messages received and empty receives. +* View ECS average CPU and memory utilization. + +## Installing the Amazon Overview app + +To install the app: + +1. Select **App Catalog**. +1. In the 🔎 **Search Apps** field, run a search for your desired app, then select it. +1. Click **Install App**. + :::note + Sometimes this button says **Add Integration**. + ::: +1. Click **Next**. +1. Look for the dialog confirming that your app was installed successfully.
App success dialog + +**Post-installation** + +Once your app is installed, it will appear in your **Personal** folder or the folder that you specified. From here, you can share it with other users in your organization. Dashboard panels will automatically start to fill with data matching the time range query received since you created the panel. Results won't be available immediately, but within about 20 minutes, you'll see completed graphs and maps. + +## Viewing the Amazon Overview dashboards + +The Sumo Logic app for Amazon Overview provides preconfigured dashboards that give you a unified view of your AWS infrastructure. These dashboards aggregate key metrics and logs from multiple AWS services, helping you monitor performance, track resource utilization, and identify issues across your entire AWS environment. + +### AWS Account Overview + +The **Amazon Overview - AWS Account Overview** dashboard provides a comprehensive view of your AWS account activity and resource performance across all services. + +Use this dashboard to: +* Get a high-level view of your entire AWS infrastructure from a single dashboard. +* Monitor incoming activity locations and AWS resource activity. +* Track load balancer performance, including requests served, errors, and active connections across ALB, ELB, and NLB. +* Monitor compute resource utilization for EC2, ECS, and Lambda. +* View database performance metrics for RDS, DynamoDB, and ElastiCache. +* Track messaging service health for SNS and SQS. +* Monitor API Gateway requests and errors. + +Amazon Overview - AWS Account Overview + +### AWS Region Overview + +The **Amazon Overview - AWS Region Overview** dashboard provides detailed information about your AWS infrastructure filtered by region. + +Use this dashboard to: +* View AWS resource activity and performance metrics for a specific region. +* Compare service performance across different regions. +* Identify region-specific issues with load balancers, compute, databases, or messaging services. +* Monitor regional resource utilization trends. + +Amazon Overview - AWS Region Overview diff --git a/docs/integrations/amazon-aws/elasticache.md b/docs/integrations/amazon-aws/elasticache.md index 85b7315187..92b8102deb 100644 --- a/docs/integrations/amazon-aws/elasticache.md +++ b/docs/integrations/amazon-aws/elasticache.md @@ -133,33 +133,9 @@ account={{account}} region={{region}} namespace={{namespace}} "\"eventSource\":\ 2. Click **Save**. -### Field in Field Schema - -1. [**New UI**](/docs/get-started/sumo-logic-ui). In the main Sumo Logic menu select **Data Management**, and then under **Logs** select **Fields**. You can also click the **Go To...** menu at the top of the screen and select **Fields**.
[**Classic UI**](/docs/get-started/sumo-logic-ui-classic). In the main Sumo Logic menu, select **Manage Data > Logs > Fields**. -1. Search for the “**cacheclusterid**” field. -1. If not present, create it. Learn how to create and manage fields [here](/docs/manage/fields.md#manage-fields). - - ### Field Extraction Rule(s) -Create a Field Extraction Rule for CloudTrail Logs. Learn how to create a Field Extraction Rule [here](/docs/manage/field-extractions/create-field-extraction-rule). - -```sql -Rule Name: AwsObservabilityElastiCacheCloudTrailLogsFER -Applied at: Ingest Time -Scope (Specific Data): account=* eventname eventsource "elasticache.amazonaws.com" -``` - -**Parse Expression** - -```sumo -| json "eventSource", "awsRegion", "requestParameters.cacheClusterId", "responseElements.cacheClusterId", "recipientAccountId" as eventSource, region, req_cacheClusterId, res_cacheClusterId, accountid nodrop -| where eventSource = "elasticache.amazonaws.com" -| if (!isEmpty(req_cacheClusterId), req_cacheClusterId, res_cacheClusterId) as cacheclusterid -| "aws/elasticache" as namespace -| tolowercase(cacheclusterid) as cacheclusterid -| fields region, namespace, cacheclusterid, accountid -``` +The FER **AwsObservabilityElastiCacheCloudTrailLogsFER** to extract fields `eventSource`, `region`, `req_cacheClusterId`, `res_cacheClusterId`, and `accountid` will be created as a part of app installation. ### Centralized AWS CloudTrail Log Collection @@ -190,10 +166,18 @@ This section has instructions for installing the Sumo Logic app for **Amazon Ela Now that you have set up a collection for **Amazon ElastiCache**, install the Sumo Logic app to use the pre-configured dashboards that provide visibility into your environment for real-time analysis of overall usage. -import AppInstall from '../../reuse/apps/app-install.md'; +import AppInstall from '../../reuse/apps/app-install-v2.md'; +As part of the app installation process, the following fields will be created by default: + +- `account` Name / alias to the AWS account. +- `accountid` AWS account id. +- `region` The region to which the resource name belongs to. +- `namespace` Namespace for Amazon ElastiCache service is AWS/ElastiCache. +- `cacheclusterid` A cache cluster ID is a user-supplied, unique name used to identify and manage an Amazon ElastiCache cluster. + ## Viewing Amazon ElastiCache dashboards @@ -280,3 +264,32 @@ Use this dashboard to: If high latency commands are not being processed frequently, you will want to look into monitoring and potentially allocating more CPU resources. Amazon ElastiCache + +## Create monitors for Amazon ElastiCache app + +import CreateMonitors from '../../reuse/apps/create-monitors.md'; + + + +### Amazon ElastiCache alerts + +| Alert Name | Alert Description and Conditions | Alert Condition | Recover Condition | +|:--|:--|:--|:--| +| `Amazon Elasticache - High CPU Utilization` | This alert fires when the average CPU utilization within a 5 minute interval for a host is high (>=90%). The CPUUtilization metric includes total CPU utilization across application, operating system and management processes. We highly recommend monitoring CPU utilization for hosts with two vCPUs or less. | Count >= 90 | Count < 90 | +| `Amazon Elasticache - High Engine CPU Utilization` | This alert fires when the average CPU utilization for the Redis engine process within a 5 minute interval is high (>=90%). For larger node types with four vCPUs or more, use the EngineCPUUtilization metric to monitor and set thresholds for scaling. | Count >= 90 | Count < 90 | +| `Amazon Elasticache - High Redis Database Memory Usage` | This alert fires when the average database memory usage within a 5 minute interval for the Redis engine is high (>=95%). When the value reaches 100%, eviction may happen or write operations may fail based on ElastiCache policies thereby impacting application performance. | Count >= 95 | Count < 95 | +| `Amazon Elasticache - High Redis Memory Fragmentation Ratio` | This alert fires when the average Redis memory fragmentation ratio within a 5 minute interval is high (>=1.5). Value equal to or greater than 1.5 indicates significant memory fragmentation. | Count >= 1.5 | Count < 1.5 | +| `Amazon Elasticache - Low Redis Cache Hit Rate` | This alert fires when the average cache hit rate for Redis within a 5 minute interval is low (<=80%). This indicates low efficiency of the Redis instance. If cache ratio is lower than 80%, that indicates a significant amount of keys are either evicted, expired, or don't exist. | Count <= 80 | Count > 80 | +| `Amazon Elasticache - Multiple Failed Operations` | This alert fires when we detect multiple failed operations within a 15 minute interval for an ElastiCache service. | Count >= 10 | Count < 10 | + +## Upgrade/Downgrade the AWS API Gateway app (Optional) + +import AppUpdate from '../../reuse/apps/app-update.md'; + + + +## Uninstalling the AWS API Gateway app (Optional) + +import AppUninstall from '../../reuse/apps/app-uninstall.md'; + + \ No newline at end of file diff --git a/docs/integrations/amazon-aws/lambda.md b/docs/integrations/amazon-aws/lambda.md index b25ae89dc0..8e81cad043 100644 --- a/docs/integrations/amazon-aws/lambda.md +++ b/docs/integrations/amazon-aws/lambda.md @@ -211,37 +211,11 @@ These metrics can then be queried using Sumo Logic [Metrics queries](/docs/metri Search Provisioned Concurrency Metrics -### Field in Field Schema - -1. [**New UI**](/docs/get-started/sumo-logic-ui). In the main Sumo Logic menu select **Data Management**, and then under **Logs** select **Fields**. You can also click the **Go To...** menu at the top of the screen and select **Fields**.
[**Classic UI**](/docs/get-started/sumo-logic-ui-classic). In the main Sumo Logic menu, select **Manage Data > Logs > Fields**. -1. Search for the “**functionname**” field. -1. If not present, create it. Learn how to create and manage fields [here](/docs/manage/fields.md#manage-fields). - - ### Field Extraction Rule(s) -Create a Field Extraction Rule for AWS Lambda. Learn how to create a Field Extraction Rule [here](/docs/manage/field-extractions/create-field-extraction-rule). - - -### Cloud Trail FER - -```sql -Rule Name: AwsObservabilityFieldExtractionRule -Applied at: Ingest Time -Scope (Specific Data): account=* eventname eventsource "lambda.amazonaws.com" -``` +The FER **AwsObservabilityLambdaCloudTrailLogsFER** to extract fields `region`, `namespace`, `accountid`, and `functionname` will be created as a part of app installation. -```sumo title="Parse Expression" -| json "eventSource", "awsRegion", "requestParameters", "recipientAccountId" as eventSource, region, requestParameters, accountid nodrop -| where eventSource = "lambda.amazonaws.com" -| json field=requestParameters "functionName", "resource" as functionname, resource nodrop -| parse regex field=functionname "\w+:\w+:\S+:[\w-]+:\S+:\S+:(?[\S]+)$" nodrop -| parse field=resource "arn:aws:lambda:*:function:*" as f1, functionname2 nodrop -| if (isEmpty(functionname), functionname2, functionname) as functionname -| "aws/lambda" as namespace -| tolowercase(functionname) as functionname -| fields region, namespace, functionname, accountid -``` +The FER **AwsObservabilityLambdaCloudWatchLogsFER** to extract fields `functionname` and `namespace` will be created as a part of app installation. ### Centralized AWS CloudTrail Log Collection @@ -266,27 +240,22 @@ Enter a parse expression to create an “account” field that maps to the alias | fields account ``` -### Cloud Watch FER - -```yml -Rule Name: AwsObservabilityLambdaCloudWatchLogsFER -Applied at: Ingest Time -Scope (Specific Data): account=* region* _sourceHost=/aws/lambda/* -Parse Expression: -| parse field=_sourceHost "/aws/lambda/*" as functionname -| tolowercase(functionname) as functionname -| "aws/lambda" as namespace -| fields functionname, namespace -``` - ## Installing the AWS Lambda App Now that you have set up collection for AWS Lambda, install the Sumo Logic App to use the pre-configured searches and dashboards that provide visibility into your environment for real-time analysis of overall usage. -import AppInstall from '../../reuse/apps/app-install.md'; +import AppInstall from '../../reuse/apps/app-install-v2.md'; +As part of the app installation process, the following fields will be created by default: + +- `account` Name / alias to the AWS account. +- `accountid` AWS account id. +- `region` The region to which the resource name belongs to. +- `namespace` Namespace for Amazon Lambda Service is AWS/Lambda. +- `functionname` Lambda resource function name. + ## Viewing AWS Lambda dashboards The following measurements and calculations drive the information shown in the dashboard panels: @@ -317,7 +286,7 @@ Use this dashboard to: ### Request Analysis -**The AWS Lambda - Request Analysis** dashboard provides deeper insights into the invocations, operations, and performance of your AWS Lambda functions. +The **AWS Lambda - Request Analysis** dashboard provides deeper insights into the invocations, operations, and performance of your AWS Lambda functions. Use this dashboard to: * Monitor the invocation of an AWS Lambda function against all other functions. @@ -331,7 +300,7 @@ Use this dashboard to: ### Usage Analysis -**AWS Lambda - Usage Analysis** dashboard offers insights into function usage, including invocations, calling AWS services, user agents, IAM users, and detailed information about function callers. +The **AWS Lambda - Usage Analysis** dashboard offers insights into function usage, including invocations, calling AWS services, user agents, IAM users, and detailed information about function callers. :::note This dashboard provides analysis of AWS CloudTrail Data Events. By default, AWS CloudTrail does not log data events. To enable AWS CloudTrail data events, refer to [AWS Lambda Data Event](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-data-events-with-cloudtrail.html#logging-data-events-console) @@ -367,7 +336,7 @@ Use this dashboard to: ### Resource Usage -**AWS Lambda - Resource Usage** dashboard provides insights on recent AWS Lambda request details, memory usage trends, function duration, claimed concurrency, and compute usage. +The **AWS Lambda - Resource Usage** dashboard provides insights on recent AWS Lambda request details, memory usage trends, function duration, claimed concurrency, and compute usage. Use this dashboard to: * Monitor the memory usage pattern of a Lambda function during its execution. @@ -380,7 +349,7 @@ Use this dashboard to: ### Performance Trends -**AWS Lambda - Performance Trends** dashboard displays log data analytics to provide insights on memory usage, function duration, recent request details, and compute usage. +The **AWS Lambda - Performance Trends** dashboard displays log data analytics to provide insights on memory usage, function duration, recent request details, and compute usage. Use this dashboard to: * Monitor concurrent executions of an AWS Lambda function and understand trends over time. @@ -393,10 +362,38 @@ Use this dashboard to: ### Threat Intel -**AWS Lambda - Threat Intel** dashboard provides insights into incoming requests to your AWS Lambda functions from malicious sources determined via Sumo Logic [threat intelligence](/docs/security/threat-intelligence/). Panels show detailed information on malicious IPs and the malicious confidence of each threat. +The **AWS Lambda - Threat Intel** dashboard provides insights into incoming requests to your AWS Lambda functions from malicious sources determined via Sumo Logic [threat intelligence](/docs/security/threat-intelligence/). Panels show detailed information on malicious IPs and the malicious confidence of each threat. Use this dashboard to: * Identify known malicious IPs that are accessing your load-balancers and use firewall access control lists to prevent them from sending you traffic going forward * Monitor the malicious confidence level for all incoming malicious IP address threats. AWS Lambda + + +## Create monitors for AWS Lambda app + +import CreateMonitors from '../../reuse/apps/create-monitors.md'; + + + +### AWS Lambda alerts + +| Alert Name | Alert Description and Conditions | Alert Condition | Recover Condition | +|:--|:--|:--|:--| +| `AWS Lambda - High Memory Utilization` | This alert fires when we detect a Lambda execution with memory usage of more than 85% within an interval of 10 minutes. | Count > 0 | Count <= 0 | +| `AWS Lambda - High Percentage of Failed Requests` | This alert fires when we detect a large number of failed Lambda requests (>5%) within an interval of 5 minutes. | Count >= 5 | Count < 5 | +| `AWS Lambda - Low Provisioned Concurrency Utilization` | This alert fires when the average provisioned concurrency utilization for 5 minutes is low (<= 50%). This indicates low provisioned concurrency utilization efficiency. | Count <= 50 | Count > 50 | +| `AWS Lambda - Throttling` | This alert fires when we detect a Lambda running into throttling within an interval of 10 minutes. | Count > 0 | Count <= 0 | + +## Upgrade/Downgrade the AWS API Gateway app (Optional) + +import AppUpdate from '../../reuse/apps/app-update.md'; + + + +## Uninstalling the AWS API Gateway app (Optional) + +import AppUninstall from '../../reuse/apps/app-uninstall.md'; + + \ No newline at end of file diff --git a/docs/integrations/amazon-aws/network-load-balancer.md b/docs/integrations/amazon-aws/network-load-balancer.md index 213460afd2..8d07ef461c 100644 --- a/docs/integrations/amazon-aws/network-load-balancer.md +++ b/docs/integrations/amazon-aws/network-load-balancer.md @@ -50,57 +50,31 @@ When you create an AWS Source, you'll need to identify the Hosted Collector you Namespace for AWS Network Load Balancer Service is AWS/NetworkELB. ::: -## Field in field schema - -1. [**New UI**](/docs/get-started/sumo-logic-ui). In the main Sumo Logic menu select **Data Management**, and then under **Logs** select **Fields**. You can also click the **Go To...** menu at the top of the screen and select **Fields**.
[**Classic UI**](/docs/get-started/sumo-logic-ui-classic). In the main Sumo Logic menu, select **Manage Data > Logs > Fields**. -1. Search for the “**networkloadbalancer**” field. -1. If not present, create it. Learn how to create and manage fields [here](/docs/manage/fields.md#manage-fields). - ## Field Extraction Rule(s) -Create a Field Extraction Rule for AWS Network Load Balancer Cloudtrail Logs. Learn how to create Field Extraction Rule [here](/docs/manage/field-extractions/create-field-extraction-rule). - -**AWS Network Load Balancer CloudTrail Logs** -```sql -Rule Name: AwsObservabilityNLBCloudTrailLogsFER -Applied at: Ingest Time -Scope (Specific Data): account=* eventSource eventName "elasticloadbalancing.amazonaws.com" "2015-12-01" -``` +The FER **AwsObservabilityNLBCloudTrailLogsFER** to extract fields `region`, `namespace`, `accountid`, and `networkloadbalancer` will be created as a part of app installation. -```sumo title="Parse Expression" -json "eventSource", "awsRegion", "recipientAccountId", "requestParameters.name", "requestParameters.type", "requestParameters.loadBalancerArn", "requestParameters.listenerArn", "apiVersion" as event_source, region, accountid, networkloadbalancer, loadbalancertype, loadbalancerarn, listenerarn, api_version nodrop -| where event_source = "elasticloadbalancing.amazonaws.com" and api_version matches "2015-12-01" -| "" as namespace -| parse field=loadbalancerarn ":loadbalancer/*/*/*" as balancertype1, networkloadbalancer1, f1 nodrop -| parse field=listenerarn ":listener/*/*/*/*" as balancertype2, networkloadbalancer2, f1, f2 nodrop -| if(loadbalancertype matches "network", "aws/networkelb", if(balancertype1 matches "net", "aws/networkelb", if(balancertype2 matches "net", "aws/networkelb", namespace))) as namespace -| if(loadbalancertype matches "application", "aws/applicationelb", if(balancertype1 matches "app", "aws/applicationelb", if(balancertype2 matches "app", "aws/applicationelb", namespace))) as namespace -| where namespace="aws/networkelb" or isEmpty(namespace) -| if (!isEmpty(networkloadbalancer), networkloadbalancer, if (!isEmpty(networkloadbalancer1), networkloadbalancer1, networkloadbalancer2)) as networkloadbalancer -| toLowerCase(networkloadbalancer) as networkloadbalancer -| fields region, namespace, networkloadbalancer, accountid -``` -## Metric rules +## Metric rule(s) -Create the following Metric Rule for the AWS/NetworkELB namespace if not already created. Learn how to create a Metrics Rule [here](/docs/metrics/metric-rules-editor#create-a-metrics-rule). - -```sql title="Rule 1*" -Rule name: AwsObservabilityNLBMetricsAddonEntityRule -Metric match expression: Namespace=AWS/NetworkELB LoadBalancer=* -Variable name: networkloadbalancer -Tag sequence: $LoadBalancer._1 -Save it -``` +The Metric Rule **AwsObservabilityNLBMetricsRule** for the AWS/NetworkELB namespace will be created as a part of app installation. ## Installing the AWS Network Load Balancer app Now that you have set up a collection for **AWS Network Load Balancer**, install the Sumo Logic app to use the pre-configured dashboards that provide visibility into your environment for real-time analysis of overall usage. -import AppInstall from '../../reuse/apps/app-install.md'; +import AppInstall from '../../reuse/apps/app-install-v2.md'; +As part of the app installation process, the following fields will be created by default: + +- `account` Name / alias to the AWS account. +- `accountid` AWS account id. +- `region` The region to which the resource name belongs to. +- `namespace` Namespace for AWS Network Load Balancer Service is AWS/NetworkELB. +- `networkloadbalancer` Network Load Balancer name. + ## Viewing AWS Network Load Balancer dashboards import FilterDashboards from '../../reuse/filter-dashboards.md'; @@ -109,7 +83,7 @@ import FilterDashboards from '../../reuse/filter-dashboards.md'; ### Overview -The **The AWS Network Load Balancer - Overview** dashboard provides detailed insights into a view of network utilization and performance. The dashboard provides information about the errors, health, and traffic handled by the load balancer. +The **AWS Network Load Balancer - Overview** dashboard provides detailed insights into a view of network utilization and performance. The dashboard provides information about the errors, health, and traffic handled by the load balancer. Use this dashboard to: * Get an at-a-glance view of the number of errors and status of backend hosts. @@ -185,3 +159,33 @@ Use this dashboard to: * Identify the most common error types and the users experiencing highest failure rates, facilitating targeted improvements and user support. AWS Network Load Balancer dashboards + +## Create monitors for AWS Network Load Balancer app + +import CreateMonitors from '../../reuse/apps/create-monitors.md'; + + + +### AWS Network Load Balancer alerts + +These alerts are available for the AWS Network Load Balancer app. + +| Alert Name | Alert Description and Conditions | Alert Condition | Recover Condition | +|:--|:--|:--|:--| +| `AWS Network Load Balancer - Deletion Alert` | This alert fires when we detect greater than or equal to 2 network load balancers are deleted over a 5 minute time-period. | Count >= 2 | Count < 2 | +| `AWS Network Load Balancer - High TLS Negotiation Errors` | This alert fires when we detect that there are too many TLS Negotiation Errors (>=10%) within an interval of 5 minutes for a given network load balancer. | Percentage >= 10% | Percentage < 10% | +| `AWS Network Load Balancer - High Unhealthy Hosts` | This alert fires when we detect that there are too many unhealthy hosts (>=10%) within an interval of 5 minutes for a given network load balancer. | Percentage >= 10% | Percentage < 10% | +| `AWS Network Load Balancer - Targets Deregistered` | This alert fires when we detect greater than or equal to 1 target is de-registered over a 5 minute time-period. | Count >= 1 | Count < 1 | + + +## Upgrade/Downgrade the AWS API Gateway app (Optional) + +import AppUpdate from '../../reuse/apps/app-update.md'; + + + +## Uninstalling the AWS API Gateway app (Optional) + +import AppUninstall from '../../reuse/apps/app-uninstall.md'; + + diff --git a/docs/integrations/amazon-aws/rds.md b/docs/integrations/amazon-aws/rds.md index e105ebc9d6..7af797e985 100644 --- a/docs/integrations/amazon-aws/rds.md +++ b/docs/integrations/amazon-aws/rds.md @@ -424,37 +424,12 @@ Sumo Logic supports several methods for collecting logs from Amazon CloudWatch. Fields -### Field in Field Schema - -1. [**New UI**](/docs/get-started/sumo-logic-ui). In the main Sumo Logic menu select **Data Management**, and then under **Logs** select **Fields**. You can also click the **Go To...** menu at the top of the screen and select **Fields**.
[**Classic UI**](/docs/get-started/sumo-logic-ui-classic). In the main Sumo Logic menu, select **Manage Data > Logs > Fields**. -1. Search for the `dbidentifier`, `proxyname` fields. -1. If not present, create it. Learn how to create and manage fields [here](/docs/manage/fields#manage-fields). - ### Field Extraction Rule(s) -Create a Field Extraction Rule for CloudTrail Logs. Learn how to create a Field Extraction Rule [here](/docs/manage/field-extractions/create-field-extraction-rule). +The FER **AwsObservabilityRDSCloudTrailLogsFER** to extract fields `region`, `namespace`, `dBInstanceIdentifier`, `dBClusterIdentifier`, `dbidentifier`, `proxyname`, and `accountid` will be created as a part of app installation. -```sql -Rule Name: AwsObservabilityRdsCloudTrailLogsFER -Applied at: Ingest Time -Scope (Specific Data): account=* eventname eventsource "rds.amazonaws.com" -``` +The FER **AwsObservabilityRDSCloudWatchLogsFER** to extract fields `namespace`, `dbidentifier`, and `proxyname` will be created as a part of app installation. -```sumo title="Parse Expression" -| json "eventSource", "awsRegion", "requestParameters", "responseElements", "recipientAccountId" as eventSource, region, requestParameters, responseElements, accountid nodrop -| where eventSource = "rds.amazonaws.com" | "aws/rds" as namespace -| json field=requestParameters "dBInstanceIdentifier", "resourceName", "dBClusterIdentifier", "dBProxyName" as dBInstanceIdentifier1, resourceName, dBClusterIdentifier1, dBProxyName1 nodrop -| json field=responseElements "dBInstanceIdentifier", "dBClusterIdentifier", "dBProxy.dBProxyName", "dBProxyTargetGroup.dBProxyName" as dBInstanceIdentifier3, dBClusterIdentifier3, dBProxyName2, dBProxyName3 nodrop -| parse field=resourceName "arn:aws:rds:*:db:*" as f1, dBInstanceIdentifier2 nodrop -| parse field=resourceName "arn:aws:rds:*:cluster:*" as f1, dBClusterIdentifier2 nodrop -| if (resourceName matches "arn:aws:rds:*:db:*", dBInstanceIdentifier2, if (!isEmpty(dBInstanceIdentifier1), dBInstanceIdentifier1, dBInstanceIdentifier3) ) as dBInstanceIdentifier -| if (resourceName matches "arn:aws:rds:*:cluster:*", dBClusterIdentifier2, if (!isEmpty(dBClusterIdentifier1), dBClusterIdentifier1, dBClusterIdentifier3) ) as dBClusterIdentifier -| if (isEmpty(dBInstanceIdentifier), dBClusterIdentifier, dBInstanceIdentifier) as dbidentifier -| tolowercase(dbidentifier) as dbidentifier -| if (!isEmpty(dBProxyName1), dBProxyName1, if (!isEmpty(dBProxyName2), dBProxyName2, dBProxyName3)) as proxyname -| tolowercase(proxyname) as proxyname -| fields region, namespace, dBInstanceIdentifier, dBClusterIdentifier, dbidentifier, proxyname, accountid -``` ### Centralized AWS CloudTrail log collection @@ -479,60 +454,29 @@ Enter a parse expression to create an “account” field that maps to the alias | fields account ``` -#### Create/Update Field Extraction Rule(s) for RDS CloudWatch logs - - -``` -Rule Name: AwsObservabilityGenericCloudWatchLogsFER -Applied at: Ingest Time -Scope (Specific Data): -account=* region=* (_sourceHost=/aws/* or _sourceHost=API*Gateway*Execution*Logs*) -Parse Expression: -if (isEmpty(namespace),"unknown",namespace) as namespace -| if (_sourceHost matches "/aws/lambda/*", "aws/lambda", namespace) as namespace -| if (_sourceHost matches "/aws/rds/*", "aws/rds", namespace) as namespace -| if (_sourceHost matches "/aws/ecs/containerinsights/*", "aws/ecs", namespace) as namespace -| if (_sourceHost matches "/aws/kinesisfirehose/*", "aws/firehose", namespace) as namespace -| if (_sourceHost matches "/aws/apigateway/*", "aws/apigateway", namespace) as namespace -| if (_sourceHost matches "API-Gateway-Execution-Logs*", "aws/apigateway", namespace) as namespace -| parse field=_sourceHost "/aws/lambda/*" as functionname nodrop | tolowercase(functionname) as functionname -| parse field=_sourceHost "/aws/rds/proxy/*" as proxyname nodrop -| parse field=_sourceHost "/aws/rds/instance/*/" as dbidentifier nodrop -| parse field=_sourceHost "/aws/rds/cluster/*/" as dbidentifier nodrop -| parse field=_sourceHost "/aws/apigateway/*/*" as apiid, stage nodrop -| parse field=_sourceHost "API-Gateway-Execution-Logs_*/*" as apiid, stage nodrop | apiid as apiName -| tolowercase(dbidentifier) as dbidentifier -| fields namespace, functionname, proxyname, dbidentifier, apiid, apiName -``` - ### Metric Rules -Create the following two Metric Rules for the aws/rds namespace if not already created. Learn how to create a Metrics Rule [here](/docs/metrics/metric-rules-editor#create-a-metrics-rule). - -```sql title="Rule 1" -Rule name: AwsObservabilityRDSClusterMetricsEntityRule -Metric match expression: Namespace=AWS/RDS DBClusterIdentifier=* -Variable name: dbidentifier -Tag sequence: $DBClusterIdentifier._1 -Save it -``` - -```sql title="Rule 2" -Rule name: AwsObservabilityRDSInstanceMetricsEntityRule -Metric match expression: Namespace=AWS/RDS DBInstanceIdentifier=* -Variable name: dbidentifier -Tag sequence: $DBInstanceIdentifier._1 -Save it -``` +The Metric Rules **AwsObservabilityRDSClusterMetricsRule** and **AwsObservabilityRDSInstanceMetricsRule** for the aws/rds namespace will be created as a part of app installation. ## Installing the RDS app Now that you have set up a collection for **Amazon RDS**, install the Sumo Logic app to use the pre-configured [dashboards](#viewing-the-rds-dashboards) that provide visibility into your environment for real-time analysis of overall usage. -import AppInstall from '../../reuse/apps/app-install.md'; +import AppInstall from '../../reuse/apps/app-install-v2.md'; +As part of the app installation process, the following fields will be created by default: + +- `account` Name / alias to the AWS account. +- `accountid` AWS account id. +- `region` The region to which the resource name belongs to. +- `namespace` Namespace for Amazon RDS service is aws/rds. +- `dbidentifier` The RDS database instance identifier. +- `dBInstanceIdentifier` The identifier of the RDS DB instance. +- `dBClusterIdentifier` The identifier of the RDS DB cluster. +- `proxyname` The name of the RDS Proxy. + ## Viewing the RDS dashboards We highly recommend you view these dashboards in the [AWS Observability view](/docs/dashboards/explore-view/#aws-observability) of the AWS Observability solution. @@ -915,3 +859,47 @@ Use this dashboard to: * Troubleshoot proxy operations effectively using log insights. Amazon RDS dashboard + +## Create monitors for Amazon RDS app + +import CreateMonitors from '../../reuse/apps/create-monitors.md'; + + + +### Amazon RDS alerts + +These alerts are available for the Amazon RDS app. + +| Alert Name | Alert Description and Conditions | Alert Condition | Recover Condition | +|:--|:--|:--|:--| +| `Amazon RDS - High CPU Utilization` | This alert fires when we detect that the average CPU utilization for a database is high (>=85%) for an interval of 5 minutes. | Percentage >= 85% | Percentage < 85% | +| `Amazon RDS - High Disk Queue Depth` | This alert fires when the average disk queue depth for a database is high (>=5) for an interval of 5 minutes. Higher this value, higher will be the number of outstanding I/Os (read/write requests) waiting to access the disk, which will impact the performance of your application. | Count >= 5 | Count < 5 | +| `Amazon RDS - High Read Latency` | This alert fires when the average read latency of a database within a 5 minutes time interval is high (>=5 seconds). High read latency will affect the performance of your application. | Seconds >= 5 | Seconds < 5 | +| `Amazon RDS - High Write Latency` | This alert fires when the average write latency of a database within a 5 minute interval is high (>=5 seconds). High write latencies will affect the performance of your application. | Seconds >= 5 | Seconds < 5 | +| `Amazon RDS - Low Aurora Buffer Cache Hit Ratio` | This alert fires when the average RDS Aurora buffer cache hit ratio within a 5 minute interval is low (<= 50%). This indicates that a lower percentage of requests were served by the buffer cache, which could further indicate a degradation in application performance. | Percentage <= 50% | Percentage > 50% | +| `Amazon RDS - Low Burst Balance` | This alert fires when we observe a low burst balance (<= 50%) for a given database. A low burst balance indicates you won't be able to scale up as fast for burstable database workloads on gp2 volumes. | Percentage <= 50% | Percentage > 50% | +| `Amazon RDS - Low Free Storage` | This alert fires when the average free storage space of a RDS instance is low (< 512MB) for an interval of 15 minutes. | MB < 512 | MB >= 512 | +| `Amazon RDS - Low Freeable Memory` | This alert fires when the average Freeable memory of an RDS instance is < 128 MB for an interval of 15 minutes. If this value is lower you may need to scale up to a larger instance class. | MB <= 128 | MB > 128 | +| `Amazon RDS MSSQL - Authentication failures from the same client IP on multiple databases` | This alert fires when we detect a specific client IP attempting authentication failures on more than or equal to 10 databases over a 15 minute time-period. | Count >= 1 | Count < 1 | +| `Amazon RDS MSSQL - Database observing authentication failures from multiple client IPs` | This alert fires when we detect more than or equal to 10 client IPs attempting authentication failures on the database over a 15-minute period. | Count >= 1 | Count < 1 | +| `Amazon RDS MySQL - Excessive Slow Query Detected` | This alert fires when we detect the average time to execute a query is more than 5 seconds over last 10 minutes. | Count >= 1 | Count < 1 | +| `Amazon RDS MySQL - High Authentication Failure` | This alert fires when we detect more than 10 authentication failures over a 5 minute time-period. | Count > 10 | Count <= 10 | +| `Amazon RDS - Oracle Logs - DB Crash` | This alert fires when we detect greater than or equal to 1 Oracle DB crash over a 5 minute time-period. | Count >= 1 | Count < 1 | +| `Amazon RDS - Oracle Logs - Failed Connection Attempts` | This alert fires when we detect greater than or equal to 25 failed connection attempts over a 5 minute time-period. | Count >= 25 | Count < 25 | +| `Amazon RDS PostgreSQL - Excessive Slow Query Detected` | This alert fires when we detect the average time to execute a query is more than 5 seconds over a 10 minutes. | Count > 0 | Count <= 0 | +| `Amazon RDS PostgreSQL - High Authentication Failure` | This alert fires when we detect more than 10 authentication failures in Postgres logs over a 5 minute time-period. | Count > 10 | Count <= 10 | +| `Amazon RDS PostgreSQL - High Errors` | This alert fires when we detect high number (>10) of error/fatal logs in Postgres logs over a 5 minutes time period. | Count > 10 | Count <= 10 | +| `Amazon RDS PostgreSQL - Statement Timeouts` | This alert fires when we detect Postgres logs show statement timeouts. | Count > 0 | Count <= 0 | +| `Amazon RDS - Unencrypted RDS resources created` | This alert fires when an rds:CreateDBCluster or rds:CreateDBInstance CloudTrail event is detected where StorageEncrypted is not set to true, indicating an unencrypted RDS resource was created. | Count >= 1 | Count < 1 | + +## Upgrade/Downgrade the AWS API Gateway app (Optional) + +import AppUpdate from '../../reuse/apps/app-update.md'; + + + +## Uninstalling the AWS API Gateway app (Optional) + +import AppUninstall from '../../reuse/apps/app-uninstall.md'; + + diff --git a/docs/integrations/amazon-aws/sns.md b/docs/integrations/amazon-aws/sns.md index a4d9504ea1..ac4fc28e90 100644 --- a/docs/integrations/amazon-aws/sns.md +++ b/docs/integrations/amazon-aws/sns.md @@ -103,41 +103,9 @@ account={{account}} region={{region}} namespace={{namespace}} TopicName={{topicn * **Enable Multiline Processing**. Select the **Detect messages spanning multiple lines** check box, and select **Infer Boundaries**. 2. Click **Save**. -### Field in Field Schema - -1. [**New UI**](/docs/get-started/sumo-logic-ui). In the main Sumo Logic menu select **Data Management**, and then under **Logs** select **Fields**. You can also click the **Go To...** menu at the top of the screen and select **Fields**.
[**Classic UI**](/docs/get-started/sumo-logic-ui-classic). In the main Sumo Logic menu, select **Manage Data > Logs > Fields**. -1. Search for the `"topicname"` field. -1. If not present, create it. Learn how to create and manage fields [here](/docs/manage/fields#manage-fields). - ### Field Extraction Rule(s) -Create a Field Extraction Rule for CloudTrail Logs. Learn how to create a Field Extraction Rule [here](/docs/manage/field-extractions/create-field-extraction-rule). - -```sql -Rule Name: AwsObservabilitySNSCloudTrailLogsFER -Applied at: Ingest Time -Scope (Specific Data): account=* eventname eventsource \"sns.amazonaws.com\" -``` - -**Parse Expression**: - -```sumo -| json "userIdentity", "eventSource", "eventName", "awsRegion", "recipientAccountId", "requestParameters", "responseElements" as userIdentity, event_source, event_name, region, recipient_account_id, requestParameters, responseElements nodrop -| where event_source = "sns.amazonaws.com" -| json field=userIdentity "accountId", "type", "arn", "userName" as accountid, type, arn, username nodrop -| parse field=arn ":assumed-role/*" as user nodrop -| parse field=arn "arn:aws:iam::*:*" as accountid, user nodrop -| json field=requestParameters "topicArn", "name", "resourceArn", "subscriptionArn" as req_topic_arn, req_topic_name, resource_arn, subscription_arn nodrop -| json field=responseElements "topicArn" as res_topic_arn nodrop -| if (isBlank(req_topic_arn), res_topic_arn, req_topic_arn) as topic_arn -| if (isBlank(topic_arn), resource_arn, topic_arn) as topic_arn -| parse field=topic_arn "arn:aws:sns:*:*:*" as region_temp, accountid_temp, topic_arn_name_temp nodrop -| parse field=subscription_arn "arn:aws:sns:*:*:*:*" as region_temp, accountid_temp, topic_arn_name_temp, arn_value_temp nodrop -| if (isBlank(req_topic_name), topic_arn_name_temp, req_topic_name) as topicname -| if (isBlank(accountid), recipient_account_id, accountid) as accountid -| "aws/sns" as namespace -| fields region, namespace, topicname, accountid -``` +The FER **AwsObservabilitySNSCloudTrailLogsFER** to extract fields `region`, `namespace`, `accountid`, and `topicname` will be created as a part of app installation. ## Centralized AWS CloudTrail Log Collection In case, you have a centralized collection of CloudTrail logs and are ingesting them from all accounts into a single Sumo Logic CloudTrail log source, create the following **Field Extraction Rule** to map a proper AWS account(s) friendly name/alias. Create it if not already present or update it as required. @@ -160,10 +128,18 @@ In case, you have a centralized collection of CloudTrail logs and are ingesting Now that you have set up collection for Amazon SNS, install the Sumo Logic app to use the pre-configured searches and dashboards that provide visibility into your environment for real-time analysis of overall usage. -import AppInstall from '../../reuse/apps/app-install.md'; +import AppInstall from '../../reuse/apps/app-install-v2.md'; +As part of the app installation process, the following fields will be created by default: + +- `account` Name / alias to the AWS account. +- `accountid` AWS account id. +- `region` The region to which the resource name belongs to. +- `namespace` Namespace for Amazon SNS service is aws/sns. +- `topicname` Amazon SNS a Topic Name. + ## Viewing Amazon SNS dashboards ### Overview @@ -226,3 +202,34 @@ Use this dashboard to: * Get details of all read only and non read only events. Amazon SNS + +## Create monitors for AWS SNS app + +import CreateMonitors from '../../reuse/apps/create-monitors.md'; + + + +### AWS SNS alerts + +These alerts are available for the AWS SNS app. + +| Alert Name | Alert Description and Conditions | Alert Condition | Recover Condition | +|:--|:--|:--|:--| +| `AWS SNS - Access from Highly Malicious Sources` | This alert fires when an Application AWS - SNS is accessed from highly malicious IP addresses within last 5 minutes. | Count > 0 | Count <= 0 | +| `AWS SNS - Failed Events` | This alert fires when an SNS app has high number of failed events (>5) within last 5 minutes. | Count > 5 | Count <= 5 | +| `AWS SNS - Failed Notifications` | This alert fires where there are many failed notifications (>=5) within an interval of 5 minutes. | Count > 2 | Count <= 2 | +| `AWS SNS - Notification to DLQ` | This alert fires when an SNS topic messages are moved to a dead-letter queue. | Count > 0 | Count <= 0 | +| `AWS SNS - Notification to DLQ Failure` | This alert fires when an SNS topic messages that couldn't be moved to a dead-letter queue. | Count > 0 | Count <= 0 | + + +## Upgrade/Downgrade the AWS API Gateway app (Optional) + +import AppUpdate from '../../reuse/apps/app-update.md'; + + + +## Uninstalling the AWS API Gateway app (Optional) + +import AppUninstall from '../../reuse/apps/app-uninstall.md'; + + \ No newline at end of file diff --git a/docs/integrations/amazon-aws/sqs.md b/docs/integrations/amazon-aws/sqs.md index 57c34e69a3..f71c6e4078 100644 --- a/docs/integrations/amazon-aws/sqs.md +++ b/docs/integrations/amazon-aws/sqs.md @@ -126,33 +126,9 @@ Sumo Logic supports collecting metrics using two source types: * **Enable Multiline Processing**. Select the **Detect messages spanning multiple lines** check box, and select **Infer Boundaries**. 2. Click **Save**. -## Field in Field Schema - -1. [**New UI**](/docs/get-started/sumo-logic-ui). In the main Sumo Logic menu select **Data Management**, and then under **Logs** select **Fields**. You can also click the **Go To...** menu at the top of the screen and select **Fields**.
[**Classic UI**](/docs/get-started/sumo-logic-ui-classic). In the main Sumo Logic menu, select **Manage Data > Logs > Fields**. -1. Search for the `queuename` field. -1. If not present, create it. Learn how to create and manage fields [here](/docs/manage/fields/#manage-fields). - ## Field Extraction Rule(s) -Create a Field Extraction Rule for CloudTrail Logs. Learn how to create a Field Extraction Rule [here](/docs/manage/field-extractions/create-field-extraction-rule). -* **Rule Name**: AwsObservabilitySQSCloudTrailLogsFER -* **Applied at**: Ingest Time -* **Scope (Specific Data)**: account=* eventname eventsource "sqs.amazonaws.com" -* **Parse Expression**: - -```sumo -json "userIdentity", "eventSource", "eventName", "awsRegion", "recipientAccountId", "requestParameters", "responseElements", "sourceIPAddress" as userIdentity, event_source, event_name, region, recipient_account_id, requestParameters, responseElements, src_ip nodrop -| json field=userIdentity "accountId", "type", "arn", "userName" as accountid, type, arn, username nodrop -| json field=requestParameters "queueUrl" as queueUrlReq nodrop -| json field=responseElements "queueUrl" as queueUrlRes nodrop -| where event_source="sqs.amazonaws.com" -| if(event_name="CreateQueue", queueUrlRes, queueUrlReq) as queueUrl -| parse regex field=queueUrl "(?[^\/]*$)" -| if (isBlank(recipient_account_id), accountid, recipient_account_id) as accountid -|! toLowerCase(queuename) as queuename -| "aws/sqs" as namespace -| fields region, namespace, queuename, accountid -``` +The FER **AwsObservabilitySQSCloudTrailLogsFER** to extract fields `region`, `namespace`, `accountid`, and `queuename` will be created as a part of app installation. ## Centralized AWS CloudTrail Log Collection @@ -176,10 +152,18 @@ In case you have a centralized collection of CloudTrail logs and are ingesting t Now that you have set up collection for Amazon SQS, install the Sumo Logic app to use the pre-configured dashboards that provide visibility into your environment for real-time analysis of overall usage. -import AppInstall from '../../reuse/apps/app-install.md'; +import AppInstall from '../../reuse/apps/app-install-v2.md'; +As part of the app installation process, the following fields will be created by default: + +- `account` Name / alias to the AWS account. +- `accountid` AWS account id. +- `region` The region to which the resource name belongs to. +- `namespace` Namespace for Amazon SQS Service is AWS/SQS. +- `queuename` Amazon SQS Service Queue Name. + ## Viewing Amazon SQS dashboards Amazon Simple Queue Service (Amazon SQS) is a fully managed message queuing service that makes it easy to decouple and scale microservices, distributed systems, and serverless applications. @@ -231,3 +215,45 @@ Use this dashboard to: * Get details of all threats by IPs. 3. Amazon SQS - Threat Intel + +### Performance Trends + +The **1. Amazon SQS - Performance Trends** dashboard provides derived performance insights including true consumer lag, empty receive rate trends, and cross-queue rankings by backlog and message staleness. + +Use this dashboard to: +* Monitor true consumer lag by tracking combined visible and delayed messages in the backlog. +* Identify queues with high empty receive rates to optimize polling behavior and reduce costs. +* Rank queues by consumer backlog size to prioritize capacity planning. +* Identify message staleness risks by tracking the age of the oldest message per queue. + +1. Amazon SQS - Performance Trends + +## Create monitors for AWS SQS app + +import CreateMonitors from '../../reuse/apps/create-monitors.md'; + + + +### AWS SQS alerts + +These alerts are available for the AWS SQS app. + +| Alert Name | Alert Description and Conditions | Alert Condition | Recover Condition | +|:--|:--|:--|:--| +| `AWS SQS - Access from Highly Malicious Sources` | This alert fires when an Application AWS - SQS is accessed from highly malicious IP addresses within last 5 minutes. | Count > 0 | Count <= 0 | +| `AWS SQS - Message processing not fast enough` | This alert fires when we detect message processing is not fast enough. That is, the average approximate age of the oldest non-deleted message in the queue is more than 5 seconds for an interval of 5 minutes. | Seconds > 5 | Seconds <= 5 | +| `AWS SQS - Messages not processed` | This alert fires when we detect messages that have been received by a consumer, but have not been processed (deleted/failed). That is, the average number of messages that are in flight are >=20 for an interval of 5 minutes. | Count >= 20 | Count < 20 | +| `AWS SQS - Queue has stopped receiving messages` | This alert fires when we detect that the queue has stopped receiving messages. That is, the average number of messages received in the queue <1 for an interval of 30 minutes. | Count < 1 | Count >= 1 | + + +## Upgrade/Downgrade the AWS API Gateway app (Optional) + +import AppUpdate from '../../reuse/apps/app-update.md'; + + + +## Uninstalling the AWS API Gateway app (Optional) + +import AppUninstall from '../../reuse/apps/app-uninstall.md'; + + \ No newline at end of file diff --git a/sidebars.ts b/sidebars.ts index d1b757a8b7..f7c644a769 100644 --- a/sidebars.ts +++ b/sidebars.ts @@ -2153,6 +2153,7 @@ integrations: [ collapsed: true, link: {type: 'doc', id: 'integrations/amazon-aws/index'}, items: [ + 'integrations/amazon-aws/amazon-overview', 'integrations/amazon-aws/amazon-appflow', 'integrations/amazon-aws/amazon-appstream2', 'integrations/amazon-aws/amazon-athena', diff --git a/static/img/integrations/amazon-aws/Amazon-Overview-AWS-Account-Overview.png b/static/img/integrations/amazon-aws/Amazon-Overview-AWS-Account-Overview.png new file mode 100644 index 0000000000000000000000000000000000000000..7c22989358f8d3da8a677697c678128dc8202a58 GIT binary patch literal 752775 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�s(PyZ_r2>=-8*sv-wSV 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