Skip to content

Commit 76d1a26

Browse files
authored
chore: update readme with initial content (#30)
Fixes #
1 parent 47a6026 commit 76d1a26

File tree

1 file changed

+161
-3
lines changed

1 file changed

+161
-3
lines changed

README.md

Lines changed: 161 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,175 @@
1-
## cdk-monitoring-constructs
1+
# CDK Monitoring Constructs
22

33
⚠️ This package isn't ready for use yet! ⚠️
44

5-
> Easy-to-use CDK constructs for monitoring your AWS infrastructure
5+
[![Gitpod Ready-to-Code](https://img.shields.io/badge/Gitpod-ready--to--code-blue?logo=gitpod)](https://gitpod.io/#https://github.com/cdklabs/cdk-monitoring-constructs)
6+
[![NPM version](https://badge.fury.io/js/cdk-monitoring-constructs.svg)](https://badge.fury.io/js/cdk-monitoring-constructs)
7+
[![PyPI version](https://badge.fury.io/py/cdk-monitoring-constructs.svg)](https://badge.fury.io/py/cdk-monitoring-constructs)
8+
[![NuGet version](https://badge.fury.io/nu/Cdklabs.CdkMonitoringConstructs.svg)](https://badge.fury.io/nu/Cdklabs.CdkMonitoringConstructs)
9+
[![Maven Central](https://maven-badges.herokuapp.com/maven-central/io.github.cdklabs/cdkmonitoringconstructs/badge.svg)](https://maven-badges.herokuapp.com/maven-central/io.github.cdklabs/cdkmonitoringconstructs)
10+
[![Mergify](https://img.shields.io/endpoint.svg?url=https://gh.mergify.io/badges/cdklabs/cdk-monitoring-constructs&style=flat)](https://mergify.io)
11+
12+
Easy-to-use CDK constructs for monitoring your AWS infrastructure.
13+
14+
* Easily add commonly-used alarms using predefined properties
15+
* Generate concise Cloudwatch dashboards that indicate your alarms
16+
* Extend the library with your own extensions or custom metrics
17+
* Consume the library in multiple languages (see below)
618

719
## Usage
820

9-
Coming soon!
21+
### TypeScript (NPM)
22+
23+
> Repository: https://www.npmjs.com/package/cdk-monitoring-constructs
24+
25+
Add the dependency to your `package.json`:
26+
27+
```json
28+
{
29+
"dependencies": {
30+
"cdk-monitoring-constructs": "^0.0.11",
31+
32+
// peer dependencies
33+
"constructs": "^3.3.69",
34+
"monocdk": "^1.123.0",
35+
36+
// (your other dependencies)
37+
}
38+
}
39+
```
40+
41+
### Java (Maven)
42+
43+
> Repository: https://mvnrepository.com/artifact/io.github.cdklabs/cdkmonitoringconstructs
44+
45+
Add the following Maven project to your `pom.xml`:
46+
47+
```xml
48+
<dependency>
49+
<groupId>io.github.cdklabs</groupId>
50+
<artifactId>cdkmonitoringconstructs</artifactId>
51+
<version>0.0.11</version>
52+
</dependency>
53+
```
54+
55+
### Python (PyPi)
56+
57+
> Repository: https://pypi.org/project/cdk-monitoring-constructs/
58+
59+
TODO: describe usage
60+
61+
### C# (Nuget)
62+
63+
> Repository: https://www.nuget.org/packages/Cdklabs.CdkMonitoringConstructs/
64+
65+
TODO: describe usage
66+
67+
## Documentation
68+
69+
See [API](API.md) for complete auto-generated documentation.
1070

1171
## Contributing/Security
1272

1373
See [CONTRIBUTING](CONTRIBUTING.md) for more information.
1474

75+
## Features
76+
77+
- AWS API Gateway (REST API) (`.monitorApiGateway()`)
78+
- **To see metrics, you have to enable Advanced Monitoring**
79+
- monitoring of TPS, latency, errors
80+
- alarm on latency, error count/rate
81+
- AWS API Gateway V2 (HTTP API) (`.monitorApiGatewayV2HttpApi()`)
82+
- **To see route level metrics, you have to enable Advanced Monitoring**
83+
- monitoring of TPS, latency, errors
84+
- alarm on latency, error count/rate
85+
- AWS AppSync (GraphQL API) (`.monitorAppSyncApi()`)
86+
- monitoring of TPS, latency, errors
87+
- alarm on latency, error count/rate, low/high TPS
88+
- AWS Certificate Manager (`.monitorCertificate()`)
89+
- monitoring of certificate expiration
90+
- alarm on days until expiration
91+
- AWS CloudFront (`.monitorCloudFrontDistribution()`)
92+
- monitoring of TPS, traffic, latency, errors
93+
- no alarms supported yet
94+
- AWS CodeBuild (`.monitorCodeBuildProject()`)
95+
- monitoring of build counts (total, successful, failed), failed rate, duration
96+
- alarm on failed build count/rate, duration
97+
- AWS DynamoDB (`.monitorDynamoTable()`)
98+
- monitoring of read and write capacity provisioned / used
99+
- alarm on consumed capacity, throttling, latency, errors
100+
- AWS DynamoDB Global Secondary Index (`.monitorDynamoTableGlobalSecondaryIndex()`)
101+
- monitoring of read and write capacity, indexing progress, throttled events
102+
- no alarm support yet
103+
- AWS EC2 (`.monitorEC2Instances()`)
104+
- monitoring of CPU, disk operations, network
105+
- no alarms supported yet
106+
- AWS EC2 Auto Scaling Groups (`.monitorAutoScalingGroup()`)
107+
- monitoring of group size, instance status
108+
- no alarms supported yet
109+
- AWS ECS (`.monitorFargateService()`, `.monitorEc2Service()`, `.monitorSimpleFargateService()`, `monitorSimpleEc2Service()`, `.monitorQueueProcessingFargateService()`, `.monitorQueueProcessingEc2Service()`)
110+
- monitoring of system resources and task health
111+
- alarm on unhealthy task count, running tasks count, CPU/memory usage, and bytes processed by load balancer (if any)
112+
- use for ecs-patterns load balanced ec2/fargate constructs (NetworkLoadBalancedEc2Service, NetworkLoadBalancedFargateService, ApplicationLoadBalancedEc2Service, ApplicationLoadBalancedFargateService)
113+
- AWS ElastiCache (`.monitorElastiCacheCluster()`)
114+
- monitoring of CPU/memory usage, evictions and connections
115+
- no alarms supported yet
116+
- AWS Glue (`.monitorGlueJob()`)
117+
- monitoring of traffic, job status, memory/CPU usage
118+
- no alarms supported yet
119+
- AWS Kinesis Data Analytics (`.monitorKinesisDataAnalytics`)
120+
- monitoring of Up/Downtime, CPU/memory usage, KPU usage, checkpoint metrics, and garbage collection metrics
121+
- alarm on downtime
122+
- AWS Kinesis Data Stream (`.monitorKinesisDataStream()`)
123+
- monitoring of Put/Get/Incoming Record/s and Throttling
124+
- alarm on iterator max age
125+
- AWS Kinesis Firehose (`.monitorKinesisFirehose()`)
126+
- monitoring of number of records, requests, latency
127+
- no alarms supported yet
128+
- AWS Lambda (`.monitorLambdaFunction()`)
129+
- monitoring of latency, errors, iterator max age
130+
- alarm on latency, errors, throttles, iterator max age
131+
- monitoring of Lambda Insights metrics (opt-in)
132+
- AWS Load Balancing (`.monitorNetworkLoadBalancer()`, `.monitorFargateApplicationLoadBalancer()`, `.monitorFargateNetworkLoadBalancer()`, `.monitorEc2ApplicationLoadBalancer()`, `.monitorEc2NetworkLoadBalancer()`)
133+
- monitoring of system resources and task health
134+
- alarm on unhealthy task count, running tasks count, (for Fargate/Ec2 apps) CPU/memory usage
135+
- use for FargateService or Ec2Service backed by a NetworkLoadBalancer or ApplicationLoadBalancer.
136+
- AWS OpenSearch/Elasticsearch (`.monitorOpenSearchCluster()`/`.monitorElasticsearchCluster()`)
137+
- monitoring of indexing and search latency, disk/memory/CPU usage
138+
- alarm on indexing and search latency, disk/memory/CPU usage, cluster status
139+
- AWS RDS (`.monitorRdsCluster()`)
140+
- monitoring of query duration, connections, latency, disk/CPU usage
141+
- alarm on disk and CPU usage
142+
- AWS Redshift (`.monitorRedshiftCluster()`)
143+
- monitoring of query duration, connections, latency, disk/CPU usage
144+
- alarm on disk and CPU usage
145+
- AWS S3 Bucket (`.monitorS3Bucket()`)
146+
- monitoring of bucket size and number of objects
147+
- no alarms supported yet
148+
- AWS SecretsManager (`.monitorSecretsManagerSecret()`)
149+
- monitoring of days since last rotation
150+
- alarm on days since last rotation
151+
- requires the `@aws-cdk/aws-secretsmanager:parseOwnedSecretName` [feature flag](https://docs.aws.amazon.com/cdk/latest/guide/featureflags.html)
152+
- AWS SNS Topic (`.monitorSnsTopic()`)
153+
- monitoring of message count, size, failed notifications
154+
- alarm on failed notifications
155+
- AWS SQS Queue (`.monitorSqsQueue()`, `.monitorSqsQueueWithDlq()`)
156+
- monitoring of message count, age, size
157+
- alarm on message count, age
158+
- the same alarms for dead letter queue (DLQ)
159+
- DLQ alarm on incoming messages
160+
- AWS Step Functions (`.monitorStepFunction()`, `.monitorStepFunctionActivity()`,
161+
`.monitorStepFunctionLambdaIntegration()`, `.monitorStepFunctionServiceIntegration()`)
162+
- monitoring of execution count and breakdown per state
163+
- alarms on duration, failed, failed rate, aborted, throttled, timed out executions
164+
- AWS Billing (`.monitorBilling()`)
165+
- monitoring AWS account cost ([you need to enable](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/gs_monitor_estimated_charges_with_cloudwatch.html#gs_turning_on_billing_metrics) the **Receive Billing Alerts** option in AWS Console / Billing Preferences)
166+
- no alarms support yet
167+
- CloudWatch Logs (`.monitorLog()`)
168+
- monitoring of patterns present in the log group
169+
- Custom metrics (`.monitorCustom()`)
170+
- simple addition of custom metrics into the dashboard (each group is a widget)
171+
- supports anomaly detection
172+
15173
## License
16174

17175
This project is licensed under the Apache-2.0 License.

0 commit comments

Comments
 (0)