Reference: AWS: CloudWatch
dependencies {
implementation(platform("org.http4k:http4k-bom:6.24.0.0"))
implementation("org.http4k:http4k-connect-amazon-cloudwatch")
implementation("org.http4k:http4k-connect-amazon-cloudwatch-fake")
}
The CloudWatch connector provides the following Actions:
- DeleteAlarms
- DescribeAlarms
- DescribeAlarmsForMetric
- DisableAlarmActions
- EnableAlarmActions
- GetMetricData
- GetMetricStatistics
- ListMetrics
- ListTagsForResource
- PutCompositeAlarm
- PutMetricAlarm
- PutMetricData
- SetAlarmState
- TagResource
- UntagResource
The client APIs utilise the http4k-platform-aws module for request signing, which means no dependencies on the incredibly fat
Amazon-SDK JARs. This means this integration is perfect for running Serverless Lambdas where binary size is a
performance factor.
Example usage
const val USE_REAL_CLIENT = false
val http: HttpHandler = if (USE_REAL_CLIENT) JavaHttpClient() else FakeCloudWatch()
// create a client
val cloudWatch =
CloudWatch.Http(Region.US_EAST_1, { AwsCredentials("accessKeyId", "secretKey") }, http.debug())
// all operations return a Result monad of the API type
val result: Result<Metrics, RemoteFailure> = cloudWatch.listMetrics(
Namespace.of("foobar")
)
println(result)
Default Fake port: 57564
To start:
FakeCloudWatch().start()
