Monitor AWS App Runner with CloudWatch metrics

  • How-to guide
  • 1-min read
  • Published Aug 11, 2021

Dynatrace ingests metrics for multiple preselected namespaces, including AWS App Runner. You can view metrics for each service instance, split metrics into multiple dimensions, and create custom charts that you can pin to your dashboards.

Prerequisites

To enable monitoring for this service, you need

  • ActiveGate version 1.197+

    • For Dynatrace SaaS deployments, you need an Environment ActiveGate or a Multi-environment ActiveGate.

    • For Dynatrace Managed deployments, you can use any kind of ActiveGate.

      For role-based access (whether in a SaaS or Managed deployment), you need an Environment ActiveGate installed on an Amazon EC2 host.

  • Dynatrace version 1.222+

  • An updated AWS monitoring policy to include the additional AWS services.
    To update the AWS IAM policy, use the JSON below, containing the monitoring policy (permissions) for all supporting services.

{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": [
"acm-pca:ListCertificateAuthorities",
"apigateway:GET",
"apprunner:ListServices",
"appstream:DescribeFleets",
"appsync:ListGraphqlApis",
"athena:ListWorkGroups",
"autoscaling:DescribeAutoScalingGroups",
"cloudformation:ListStackResources",
"cloudfront:ListDistributions",
"cloudhsm:DescribeClusters",
"cloudsearch:DescribeDomains",
"cloudwatch:GetMetricData",
"cloudwatch:GetMetricStatistics",
"cloudwatch:ListMetrics",
"codebuild:ListProjects",
"datasync:ListTasks",
"dax:DescribeClusters",
"directconnect:DescribeConnections",
"dms:DescribeReplicationInstances",
"dynamodb:ListTables",
"dynamodb:ListTagsOfResource",
"ec2:DescribeAvailabilityZones",
"ec2:DescribeInstances",
"ec2:DescribeNatGateways",
"ec2:DescribeSpotFleetRequests",
"ec2:DescribeTransitGateways",
"ec2:DescribeVolumes",
"ec2:DescribeVpnConnections",
"ecs:ListClusters",
"eks:ListClusters",
"elasticache:DescribeCacheClusters",
"elasticbeanstalk:DescribeEnvironmentResources",
"elasticbeanstalk:DescribeEnvironments",
"elasticfilesystem:DescribeFileSystems",
"elasticloadbalancing:DescribeInstanceHealth",
"elasticloadbalancing:DescribeListeners",
"elasticloadbalancing:DescribeLoadBalancers",
"elasticloadbalancing:DescribeRules",
"elasticloadbalancing:DescribeTags",
"elasticloadbalancing:DescribeTargetHealth",
"elasticmapreduce:ListClusters",
"elastictranscoder:ListPipelines",
"es:ListDomainNames",
"events:ListEventBuses",
"firehose:ListDeliveryStreams",
"fsx:DescribeFileSystems",
"gamelift:ListFleets",
"glue:GetJobs",
"inspector:ListAssessmentTemplates",
"kafka:ListClusters",
"kinesis:ListStreams",
"kinesisanalytics:ListApplications",
"kinesisvideo:ListStreams",
"lambda:ListFunctions",
"lambda:ListTags",
"lex:GetBots",
"logs:DescribeLogGroups",
"mediaconnect:ListFlows",
"mediaconvert:DescribeEndpoints",
"mediapackage-vod:ListPackagingConfigurations",
"mediapackage:ListChannels",
"mediatailor:ListPlaybackConfigurations",
"opsworks:DescribeStacks",
"qldb:ListLedgers",
"rds:DescribeDBClusters",
"rds:DescribeDBInstances",
"rds:DescribeEvents",
"rds:ListTagsForResource",
"redshift:DescribeClusters",
"robomaker:ListSimulationJobs",
"route53:ListHostedZones",
"route53resolver:ListResolverEndpoints",
"s3:ListAllMyBuckets",
"sagemaker:ListEndpoints",
"sns:ListTopics",
"sqs:ListQueues",
"storagegateway:ListGateways",
"sts:GetCallerIdentity",
"swf:ListDomains",
"tag:GetResources",
"tag:GetTagKeys",
"transfer:ListServers",
"workmail:ListOrganizations",
"workspaces:DescribeWorkspaces"
],
"Resource": "*"
}
]
}

If you don't want to add permissions to all services, and just select permissions for certain services, consult the table below. The table contains a set of permissions that are required for All AWS cloud services and, for each supporting service, a list of optional permissions specific to that service.

Permissions required for AWS monitoring integration:
  • "cloudwatch:GetMetricData"
  • "cloudwatch:GetMetricStatistics"
  • "cloudwatch:ListMetrics"
  • "sts:GetCallerIdentity"
  • "tag:GetResources"
  • "tag:GetTagKeys"
  • "ec2:DescribeAvailabilityZones"
NamePermissions
All monitored Amazon services requiredcloudwatch:GetMetricData,
cloudwatch:GetMetricStatistics,
cloudwatch:ListMetrics,
sts:GetCallerIdentity,
tag:GetResources,
tag:GetTagKeys,
ec2:DescribeAvailabilityZones
AWS Certificate Manager Private Certificate Authorityacm-pca:ListCertificateAuthorities
Amazon MQ
Amazon API Gatewayapigateway:GET
AWS App Runnerapprunner:ListServices
Amazon AppStreamappstream:DescribeFleets
AWS AppSyncappsync:ListGraphqlApis
Amazon Athenaathena:ListWorkGroups
Amazon Aurorards:DescribeDBClusters
Amazon EC2 Auto Scalingautoscaling:DescribeAutoScalingGroups
Amazon EC2 Auto Scaling (built-in)autoscaling:DescribeAutoScalingGroups
AWS Billing
Amazon Keyspaces
AWS Chatbot
Amazon CloudFrontcloudfront:ListDistributions
AWS CloudHSMcloudhsm:DescribeClusters
Amazon CloudSearchcloudsearch:DescribeDomains
AWS CodeBuildcodebuild:ListProjects
Amazon Cognito
Amazon Connect
Amazon Elastic Kubernetes Service (EKS)eks:ListClusters
AWS DataSyncdatasync:ListTasks
Amazon DynamoDB Accelerator (DAX)dax:DescribeClusters
AWS Database Migration Service (AWS DMS)dms:DescribeReplicationInstances
Amazon DocumentDBrds:DescribeDBClusters
AWS Direct Connectdirectconnect:DescribeConnections
Amazon DynamoDBdynamodb:ListTables
Amazon DynamoDB (built-in)dynamodb:ListTables,
dynamodb:ListTagsOfResource
Amazon EBSec2:DescribeVolumes
Amazon EBS (built-in)ec2:DescribeVolumes
Amazon EC2 API
Amazon EC2 (built-in)ec2:DescribeInstances
Amazon EC2 Spot Fleetec2:DescribeSpotFleetRequests
Amazon Elastic Container Service (ECS)ecs:ListClusters
Amazon ECS Container Insightsecs:ListClusters
Amazon ElastiCache (EC)elasticache:DescribeCacheClusters
AWS Elastic Beanstalkelasticbeanstalk:DescribeEnvironments
Amazon Elastic File System (EFS)elasticfilesystem:DescribeFileSystems
Amazon Elastic Inference
Amazon Elastic Map Reduce (EMR)elasticmapreduce:ListClusters
Amazon Elasticsearch Service (ES)es:ListDomainNames
Amazon Elastic Transcoderelastictranscoder:ListPipelines
Amazon Elastic Load Balancer (ELB) (built-in)elasticloadbalancing:DescribeInstanceHealth,
elasticloadbalancing:DescribeListeners,
elasticloadbalancing:DescribeLoadBalancers,
elasticloadbalancing:DescribeRules,
elasticloadbalancing:DescribeTags,
elasticloadbalancing:DescribeTargetHealth
Amazon EventBridgeevents:ListEventBuses
Amazon FSxfsx:DescribeFileSystems
Amazon GameLiftgamelift:ListFleets
AWS Glueglue:GetJobs
Amazon Inspectorinspector:ListAssessmentTemplates
AWS Internet of Things (IoT)
AWS IoT Analytics
Amazon Managed Streaming for Kafkakafka:ListClusters
Amazon Kinesis Data Analyticskinesisanalytics:ListApplications
Amazon Data Firehosefirehose:ListDeliveryStreams
Amazon Kinesis Data Streamskinesis:ListStreams
Amazon Kinesis Video Streamskinesisvideo:ListStreams
AWS Lambdalambda:ListFunctions
AWS Lambda (built-in)lambda:ListFunctions,
lambda:ListTags
Amazon Lexlex:GetBots
Amazon Application and Network Load Balancer (built-in)elasticloadbalancing:DescribeInstanceHealth,
elasticloadbalancing:DescribeListeners,
elasticloadbalancing:DescribeLoadBalancers,
elasticloadbalancing:DescribeRules,
elasticloadbalancing:DescribeTags,
elasticloadbalancing:DescribeTargetHealth
Amazon CloudWatch Logslogs:DescribeLogGroups
AWS Elemental MediaConnectmediaconnect:ListFlows
AWS Elemental MediaConvertmediaconvert:DescribeEndpoints
AWS Elemental MediaPackage Livemediapackage:ListChannels
AWS Elemental MediaPackage Video on Demandmediapackage-vod:ListPackagingConfigurations
AWS Elemental MediaTailormediatailor:ListPlaybackConfigurations
Amazon VPC NAT Gatewaysec2:DescribeNatGateways
Amazon Neptunerds:DescribeDBClusters
AWS OpsWorksopsworks:DescribeStacks
Amazon Polly
Amazon QLDBqldb:ListLedgers
Amazon RDSrds:DescribeDBInstances
Amazon RDS (built-in)rds:DescribeDBInstances,
rds:DescribeEvents,
rds:ListTagsForResource
Amazon Redshiftredshift:DescribeClusters
Amazon Rekognition
AWS RoboMakerrobomaker:ListSimulationJobs
Amazon Route 53route53:ListHostedZones
Amazon Route 53 Resolverroute53resolver:ListResolverEndpoints
Amazon S3s3:ListAllMyBuckets
Amazon S3 (built-in)s3:ListAllMyBuckets
Amazon SageMaker Batch Transform Jobs
Amazon SageMaker Endpoint Instancessagemaker:ListEndpoints
Amazon SageMaker Endpointssagemaker:ListEndpoints
Amazon SageMaker Ground Truth
Amazon SageMaker Processing Jobs
Amazon SageMaker Training Jobs
AWS Service Catalog
Amazon Simple Email Service (SES)
Amazon Simple Notification Service (SNS)sns:ListTopics
Amazon Simple Queue Service (SQS)sqs:ListQueues
AWS Systems Manager - Run Command
AWS Step Functions
AWS Storage Gatewaystoragegateway:ListGateways
Amazon SWFswf:ListDomains
Amazon Textract
AWS IoT Things Graph
AWS Transfer Familytransfer:ListServers
AWS Transit Gatewayec2:DescribeTransitGateways
Amazon Translate
AWS Trusted Advisor
AWS API Usage
AWS Site-to-Site VPNec2:DescribeVpnConnections
AWS WAF Classic
AWS WAF
Amazon WorkMailworkmail:ListOrganizations
Amazon WorkSpacesworkspaces:DescribeWorkspaces

Example of JSON policy for one single service.

{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": [
"apigateway:GET",
"cloudwatch:GetMetricData",
"cloudwatch:GetMetricStatistics",
"cloudwatch:ListMetrics",
"sts:GetCallerIdentity",
"tag:GetResources",
"tag:GetTagKeys",
"ec2:DescribeAvailabilityZones"
],
"Resource": "*"
}
]
}

In this example, from the complete list of permissions you need to select

  • "apigateway:GET" for Amazon API Gateway
  • "cloudwatch:GetMetricData", "cloudwatch:GetMetricStatistics", "cloudwatch:ListMetrics", "sts:GetCallerIdentity", "tag:GetResources", "tag:GetTagKeys", and "ec2:DescribeAvailabilityZones" for All AWS cloud services.
EndpointService
autoscaling.<REGION>.amazonaws.comAmazon EC2 Auto Scaling (built-in), Amazon EC2 Auto Scaling
lambda.<REGION>.amazonaws.comAWS Lambda (built-in), AWS Lambda
elasticloadbalancing.<REGION>.amazonaws.comAmazon Application and Network Load Balancer (built-in), Amazon Elastic Load Balancer (ELB) (built-in)
dynamodb.<REGION>.amazonaws.comAmazon DynamoDB (built-in), Amazon DynamoDB
ec2.<REGION>.amazonaws.comAmazon EBS (built-in), Amazon EC2 (built-in), Amazon EBS, Amazon EC2 Spot Fleet, Amazon VPC NAT Gateways, AWS Transit Gateway, AWS Site-to-Site VPN
rds.<REGION>.amazonaws.comAmazon RDS (built-in), Amazon Aurora, Amazon DocumentDB, Amazon Neptune, Amazon RDS
s3.<REGION>.amazonaws.comAmazon S3 (built-in)
acm-pca.<REGION>.amazonaws.comAWS Certificate Manager Private Certificate Authority
apigateway.<REGION>.amazonaws.comAmazon API Gateway
apprunner.<REGION>.amazonaws.comAWS App Runner
appstream2.<REGION>.amazonaws.comAmazon AppStream
appsync.<REGION>.amazonaws.comAWS AppSync
athena.<REGION>.amazonaws.comAmazon Athena
cloudfront.amazonaws.comAmazon CloudFront
cloudhsmv2.<REGION>.amazonaws.comAWS CloudHSM
cloudsearch.<REGION>.amazonaws.comAmazon CloudSearch
codebuild.<REGION>.amazonaws.comAWS CodeBuild
datasync.<REGION>.amazonaws.comAWS DataSync
dax.<REGION>.amazonaws.comAmazon DynamoDB Accelerator (DAX)
dms.<REGION>.amazonaws.comAWS Database Migration Service (AWS DMS)
directconnect.<REGION>.amazonaws.comAWS Direct Connect
ecs.<REGION>.amazonaws.comAmazon Elastic Container Service (ECS), Amazon ECS Container Insights
elasticfilesystem.<REGION>.amazonaws.comAmazon Elastic File System (EFS)
eks.<REGION>.amazonaws.comAmazon Elastic Kubernetes Service (EKS)
elasticache.<REGION>.amazonaws.comAmazon ElastiCache (EC)
elasticbeanstalk.<REGION>.amazonaws.comAWS Elastic Beanstalk
elastictranscoder.<REGION>.amazonaws.comAmazon Elastic Transcoder
es.<REGION>.amazonaws.comAmazon Elasticsearch Service (ES)
events.<REGION>.amazonaws.comAmazon EventBridge
fsx.<REGION>.amazonaws.comAmazon FSx
gamelift.<REGION>.amazonaws.comAmazon GameLift
glue.<REGION>.amazonaws.comAWS Glue
inspector.<REGION>.amazonaws.comAmazon Inspector
kafka.<REGION>.amazonaws.comAmazon Managed Streaming for Kafka
models.lex.<REGION>.amazonaws.comAmazon Lex
logs.<REGION>.amazonaws.comAmazon CloudWatch Logs
api.mediatailor.<REGION>.amazonaws.comAWS Elemental MediaTailor
mediaconnect.<REGION>.amazonaws.comAWS Elemental MediaConnect
mediapackage.<REGION>.amazonaws.comAWS Elemental MediaPackage Live
mediapackage-vod.<REGION>.amazonaws.comAWS Elemental MediaPackage Video on Demand
opsworks.<REGION>.amazonaws.comAWS OpsWorks
qldb.<REGION>.amazonaws.comAmazon QLDB
redshift.<REGION>.amazonaws.comAmazon Redshift
robomaker.<REGION>.amazonaws.comAWS RoboMaker
route53.amazonaws.comAmazon Route 53
route53resolver.<REGION>.amazonaws.comAmazon Route 53 Resolver
api.sagemaker.<REGION>.amazonaws.comAmazon SageMaker Endpoints, Amazon SageMaker Endpoint Instances
sns.<REGION>.amazonaws.comAmazon Simple Notification Service (SNS)
sqs.<REGION>.amazonaws.comAmazon Simple Queue Service (SQS)
storagegateway.<REGION>.amazonaws.comAWS Storage Gateway
swf.<REGION>.amazonaws.comAmazon SWF
transfer.<REGION>.amazonaws.comAWS Transfer Family
workmail.<REGION>.amazonaws.comAmazon WorkMail
workspaces.<REGION>.amazonaws.comAmazon WorkSpaces

Enable monitoring

To learn how to enable service monitoring, see Enable service monitoring.

View service metrics

You can view the service metrics in your Dynatrace environment either on the custom device overview page or on your Dashboards page.

View metrics on the custom device overview page

To access the custom device overview page

  1. Go to Technologies & Processes Classic.
  2. Filter by service name and select the relevant custom device group.
  3. Once you select the custom device group, you're on the custom device group overview page.
  4. The custom device group overview page lists all instances (custom devices) belonging to the group. Select an instance to view the custom device overview page.

App runner

Available metrics

ServiceName is the main dimension.

NameDescriptionUnitStatisticsDimensionsRecommended
2xxStatusResponsesThe number of HTTP requests that returned each response status, grouped by category (2XX)CountSumServiceID, ServiceNameyes
4xxStatusResponsesThe number of HTTP requests that returned each response status, grouped by category (4XX)CountSumServiceID, ServiceNameyes
ActiveInstancesThe number of instances that are processing HTTP requests for your serviceCountMultiServiceID, ServiceNameyes
CPUUtilizationThe average CPU usage during one-minute periodsPercentMultiInstance, ServiceID, ServiceName
MemoryUtilizationThe average memory usage during one-minute periodsMegabytesMultiInstance, ServiceID, ServiceName
RequestLatencyThe time, in milliseconds, that it took your web service to process HTTP requestsMillisecondsMultiServiceID, ServiceNameyes
RequestsThe number of HTTP requests that the service receivedCountSumServiceID, ServiceName
Related tags
Infrastructure Observability