Skip to content

PutMetricData

Source: src/AWS/CloudWatch/PutMetricData.ts

Runtime binding for cloudwatch:PutMetricData — publish custom metric datums from inside a function runtime.

Provide CloudWatch.PutMetricDataHttp on the hosting Lambda Function to satisfy the requirement. For high-volume publishing prefer the batching MetricSink, which packs datums into 1000-datum PutMetricData calls.

export default MyFunction.make(
{ main: import.meta.url, functionUrl: true },
Effect.gen(function* () {
// init — grants cloudwatch:PutMetricData to the function
const putMetricData = yield* AWS.CloudWatch.PutMetricData();
return {
fetch: Effect.gen(function* () {
// runtime — publish a datum on every request
yield* putMetricData({
Namespace: "MyApp/Payments",
MetricData: [
{ MetricName: "PaymentProcessed", Value: 1, Unit: "Count" },
],
});
return HttpServerResponse.text("ok");
}).pipe(Effect.orDie),
};
}).pipe(Effect.provide(AWS.CloudWatch.PutMetricDataHttp)),
);