modd

monitor of datadog monitors
modd uniformly targets the resources belonging to the metrics monitored by Datadog monitors, and detects their leakage.
How to use
# Filters out monitors with arbitrary metrics name prefixes.
$ ./modd | jq '.Monitors[] | select(.Name | contains("aws.rds"))'
{
"Name": "aws.rds.burst_balance",
"NotMonitored": [
"test-db-1",
"test-db-2"
]
}
{
"Name": "aws.rds.disk_queue_depth",
"NotMonitored": [
"test-db-1",
"test-db-2"
]
}
{
"Name": "aws.rds.total_storage_space",
"NotMonitored": [
"test-db-1",
"test-db-2"
]
}
{
"Name": "aws.rds.database_connections",
"NotMonitored": [
"test-db-1",
"test-db-2"
]
}
{
"Name": "aws.rds.free_storage_space",
"NotMonitored": [
"test-db-1",
"test-db-2"
]
}
{
"Name": "aws.rds.cpuutilization",
"NotMonitored": [
"test-db-1",
"test-db-2"
]
}
{
"Name": "aws.rds.replica_lag",
"NotMonitored": [
"test-db-1",
"test-db-2"
]
}
Requirements
To run modd, datadog API/App keys environment variables are required.
export DD_CLIENT_API_KEY=xxxx
export DD_CLIENT_APP_KEY=yyyy
Also, permissions to get resources that should be monitored are required.
# for AWS
aws sts get-caller-identity
{
"UserId": "xxxxxx:yyyyyy@example.com",
"Account": "zzzzzz",
"Arn": "arn:aws:sts::zzzzzz:assumed-role/my-role/xxxxxx:yyyyyy@example.com"
}
Tag Matcher Configuration
In some cases, it is necessary to control in detail whether a resource that belongs to a metric is a resource that should be monitored or not.
For example, the metrics of aws rds are different by db engine.
In this case, it can be controlled by setting up rules for matching monitor tags with resource tags from environment variables.
export AWS_RDS_AWS_TAG_KEY=dbengine
export AWS_RDS_DATADOG_TAG_KEY=dbengine
Supported Integration
AWS
- API Gateway
- AutoScalingGroup
- DynamoDB
- Elasticache
- ELB (CLB, ALB, NLB)
- Firehose
- Kinesis
- OpenSearch Service
- RDS
- SNS
- StepFunction
- SQS