cdk-monitoring-constructs
Project description
CDK Monitoring Constructs
⚠️ This package isn't ready for use yet! ⚠️
Easy-to-use CDK constructs for monitoring your AWS infrastructure.
- Easily add commonly-used alarms using predefined properties
- Generate concise Cloudwatch dashboards that indicate your alarms
- Extend the library with your own extensions or custom metrics
- Consume the library in multiple languages (see below)
Usage
TypeScript (NPM)
Add the dependency to your package.json
:
{
"dependencies": {
"cdk-monitoring-constructs": "^0.0.11",
// peer dependencies
"constructs": "^3.3.69",
"monocdk": "^1.123.0",
// (your other dependencies)
}
}
Java
https://mvnrepository.com/artifact/io.github.cdklabs/cdkmonitoringconstructs
Maven
Add the following Maven project to your pom.xml
:
<dependency>
<groupId>io.github.cdklabs</groupId>
<artifactId>cdkmonitoringconstructs</artifactId>
<version>0.0.11</version>
</dependency>
Gradle
implementation("io.github.cdklabs:cdkmonitoringconstructs:0.0.11")
Python (PyPi)
TODO: describe usage
C# (Nuget)
https://www.nuget.org/packages/Cdklabs.CdkMonitoringConstructs/
TODO: describe usage
Features
See API for complete auto-generated documentation.
You can also browse the documentation at https://constructs.dev/packages/cdk-monitoring-constructs/
Item | Monitoring | Alarms | Notes |
---|---|---|---|
AWS API Gateway (REST API) (.monitorApiGateway() ) |
TPS, latency, errors | Latency, error count/rate | To see metrics, you have to enable Advanced Monitoring |
AWS API Gateway V2 (HTTP API) (.monitorApiGatewayV2HttpApi() ) |
TPS, latency, errors | Latency, error count/rate | To see route level metrics, you have to enable Advanced Monitoring |
AWS AppSync (GraphQL API) (.monitorAppSyncApi() ) |
TPS, latency, errors | Latency, error count/rate, low/high TPS | |
AWS Billing (.monitorBilling() ) |
AWS account cost | Requires enabling the Receive Billing Alerts option in AWS Console / Billing Preferences | |
AWS Certificate Manager (.monitorCertificate() ) |
Certificate expiration | Days until expiration | |
AWS CloudFront (.monitorCloudFrontDistribution() ) |
TPS, traffic, latency, errors | ||
AWS CodeBuild (.monitorCodeBuildProject() ) |
Build counts (total, successful, failed), failed rate, duration | Failed build count/rate, duration | |
AWS DynamoDB (.monitorDynamoTable() ) |
Read and write capacity provisioned / used | Consumed capacity, throttling, latency, errors | |
AWS DynamoDB Global Secondary Index (.monitorDynamoTableGlobalSecondaryIndex() ) |
Read and write capacity, indexing progress, throttled events | ||
AWS EC2 (.monitorEC2Instances() ) |
CPU, disk operations, network | ||
AWS EC2 Auto Scaling Groups (.monitorAutoScalingGroup() ) |
Group size, instance status | ||
AWS ECS (.monitorFargateService() , .monitorEc2Service() , .monitorSimpleFargateService() , monitorSimpleEc2Service() , .monitorQueueProcessingFargateService() , .monitorQueueProcessingEc2Service() ) |
System resources and task health | Unhealthy task count, running tasks count, CPU/memory usage, and bytes processed by load balancer (if any) | Use for ecs-patterns load balanced ec2/fargate constructs (NetworkLoadBalancedEc2Service, NetworkLoadBalancedFargateService, ApplicationLoadBalancedEc2Service, ApplicationLoadBalancedFargateService) |
AWS ElastiCache (.monitorElastiCacheCluster() ) |
CPU/memory usage, evictions and connections | ||
AWS Glue (.monitorGlueJob() ) |
Traffic, job status, memory/CPU usage | ||
AWS Kinesis Data Analytics (.monitorKinesisDataAnalytics ) |
Up/Downtime, CPU/memory usage, KPU usage, checkpoint metrics, and garbage collection metrics | Downtime | |
AWS Kinesis Data Stream (.monitorKinesisDataStream() ) |
Put/Get/Incoming Record/s and Throttling | Iterator max age | |
AWS Kinesis Firehose (.monitorKinesisFirehose() ) |
Number of records, requests, latency | ||
AWS Lambda (.monitorLambdaFunction() ) |
Latency, errors, iterator max age | Latency, errors, throttles, iterator max age | Optional Lambda Insights metrics (opt-in) support |
AWS Load Balancing (.monitorNetworkLoadBalancer() , .monitorFargateApplicationLoadBalancer() , .monitorFargateNetworkLoadBalancer() , .monitorEc2ApplicationLoadBalancer() , .monitorEc2NetworkLoadBalancer() ) |
System resources and task health | Unhealthy task count, running tasks count, (for Fargate/Ec2 apps) CPU/memory usage | Use for FargateService or Ec2Service backed by a NetworkLoadBalancer or ApplicationLoadBalancer |
AWS OpenSearch/Elasticsearch (.monitorOpenSearchCluster() , .monitorElasticsearchCluster() ) |
Indexing and search latency, disk/memory/CPU usage | Indexing and search latency, disk/memory/CPU usage, cluster status | |
AWS RDS (.monitorRdsCluster() ) |
Query duration, connections, latency, disk/CPU usage | Disk and CPU usage | |
AWS Redshift (.monitorRedshiftCluster() ) |
Query duration, connections, latency, disk/CPU usage | Disk and CPU usage | |
AWS S3 Bucket (.monitorS3Bucket() ) |
Bucket size and number of objects | ||
AWS SecretsManager (.monitorSecretsManagerSecret() ) |
Days since last rotation | Days since last rotation | Requires the @aws-cdk/aws-secretsmanager:parseOwnedSecretName feature flag |
AWS SNS Topic (.monitorSnsTopic() ) |
Message count, size, failed notifications | Failed notifications | |
AWS SQS Queue (.monitorSqsQueue() , .monitorSqsQueueWithDlq() ) |
Message count, age, size | Message count, age, DLQ incoming messages | |
AWS Step Functions (.monitorStepFunction() , .monitorStepFunctionActivity() , monitorStepFunctionLambdaIntegration() , .monitorStepFunctionServiceIntegration() ) |
Execution count and breakdown per state | Duration, failed, failed rate, aborted, throttled, timed out executions | |
CloudWatch Logs (.monitorLog() ) |
Patterns present in the log group | ||
Custom metrics (.monitorCustom() ) |
Addition of custom metrics into the dashboard (each group is a widget) | Supports anomaly detection |
Contributing/Security
See CONTRIBUTING for more information.
License
This project is licensed under the Apache-2.0 License.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for cdk-monitoring-constructs-0.0.15.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 10f5afc67763f115d6770b4df6caf45f39a84c368b797b5966ca03860e2f20ae |
|
MD5 | 72770eccb2e84e992b1aa286ebbd543c |
|
BLAKE2b-256 | 97e53d203b2aa1473e919ed8e72f37c029e57ad3d99ec3ecaaebb52dcc9ed155 |
Hashes for cdk_monitoring_constructs-0.0.15-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1a3ff0c9f40ef1d3b29c5d8077c4b9a9cec1332615bccfcdff1f07f6f76355be |
|
MD5 | f0ca58707f80762cb21b2b9ad7beb841 |
|
BLAKE2b-256 | 7533d9357e8a6a912309806629447ef72c4f68aced11d9f90bed02d2b15bb552 |