Skip to content

aws.cloudwatchlogs-metric-filter resource

Description

MetricFilter extracts metric observations from matching CloudWatch Logs events. PutMetricFilter is an upsert, so Create and Update use the same call and Read then returns the described server state. The filter name and log group name are the identity and force replacement; the pattern, transformed log flag, and single metric-transformation block update in place.

Source: internal/service/cloudwatchlogs/metric_filter_rsrc.go:40

Example usage:

imports: {
  aws: 'github.com/cloudboss/unobin-library-aws'
}

resources: {
  example: aws.cloudwatchlogs-metric-filter {
    # Set input fields here.
  }
}

Inputs

filter-name

string

required

log-group-name

string

required

filter-pattern

string

required

apply-on-transformed-logs

optional(boolean)

metric-transformation

object
object({
  default-value: optional(number)
  dimensions: optional(map(string))
  metric-name: string
  metric-namespace: string
  metric-value: string
  unit: optional(string)
})

required

Input Constraints

Metric transformation rules

metric-transformation unit must be a valid CloudWatch unit.

Rule logic
When
input.metric-transformation.unit != null
Require
input.metric-transformation.unit == 'Seconds'
|| input.metric-transformation.unit == 'Microseconds'
|| input.metric-transformation.unit == 'Milliseconds'
|| input.metric-transformation.unit == 'Bytes'
|| input.metric-transformation.unit == 'Kilobytes'
|| input.metric-transformation.unit == 'Megabytes'
|| input.metric-transformation.unit == 'Gigabytes'
|| input.metric-transformation.unit == 'Terabytes'
|| input.metric-transformation.unit == 'Bits'
|| input.metric-transformation.unit == 'Kilobits'
|| input.metric-transformation.unit == 'Megabits'
|| input.metric-transformation.unit == 'Gigabits'
|| input.metric-transformation.unit == 'Terabits'
|| input.metric-transformation.unit == 'Percent'
|| input.metric-transformation.unit == 'Count'
|| input.metric-transformation.unit == 'Bytes/Second'
|| input.metric-transformation.unit == 'Kilobytes/Second'
|| input.metric-transformation.unit == 'Megabytes/Second'
|| input.metric-transformation.unit == 'Gigabytes/Second'
|| input.metric-transformation.unit == 'Terabytes/Second'
|| input.metric-transformation.unit == 'Bits/Second'
|| input.metric-transformation.unit == 'Kilobits/Second'
|| input.metric-transformation.unit == 'Megabits/Second'
|| input.metric-transformation.unit == 'Gigabits/Second'
|| input.metric-transformation.unit == 'Terabits/Second'
|| input.metric-transformation.unit == 'Count/Second'
|| input.metric-transformation.unit == 'None'

Outputs

filter-name

string

log-group-name

string

filter-pattern

string

apply-on-transformed-logs

boolean

metric-transformation

object
object({
  default-value: optional(number)
  dimensions: optional(map(string))
  metric-name: string
  metric-namespace: string
  metric-value: string
  unit: string
})