Class: AWSCDK::Logs::CfnMetricFilter::DimensionProperty

Inherits:
Jsii::Struct
  • Object
show all
Defined in:
logs/cfn_metric_filter.rb

Overview

Specifies the CloudWatch metric dimensions to publish with this metric.

Because dimensions are part of the unique identifier for a metric, whenever a unique dimension name/value pair is extracted from your logs, you are creating a new variation of that metric.

For more information about publishing dimensions with metrics created by metric filters, see Publishing dimensions with metrics from values in JSON or space-delimited log events .

Metrics extracted from log events are charged as custom metrics. To prevent unexpected high charges, do not specify high-cardinality fields such as IPAddress or request_id as dimensions. Each different value found for a dimension is treated as a separate metric and accrues charges as a separate custom metric.

To help prevent accidental high charges, Amazon disables a metric filter if it generates 1000 different name/value pairs for the dimensions that you have specified within a certain amount of time.

You can also set up a billing alarm to alert you if your charges are higher than expected. For more information, see Creating a Billing Alarm to Monitor Your Estimated AWS Charges .

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(key:, value:) ⇒ DimensionProperty

Returns a new instance of DimensionProperty.

Parameters:

  • key (String)

    The name for the CloudWatch metric dimension that the metric filter creates.

  • value (String)

    The log event field that will contain the value for this dimension.



585
586
587
588
589
590
# File 'logs/cfn_metric_filter.rb', line 585

def initialize(key:, value:)
  @key = key
  Jsii::Type.check_type(@key, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "key")
  @value = value
  Jsii::Type.check_type(@value, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "value")
end

Instance Attribute Details

#keyString (readonly)

The name for the CloudWatch metric dimension that the metric filter creates.

Dimension names must contain only ASCII characters, must include at least one non-whitespace character, and cannot start with a colon (:).



598
599
600
# File 'logs/cfn_metric_filter.rb', line 598

def key
  @key
end

#valueString (readonly)

The log event field that will contain the value for this dimension.

This dimension will only be published for a metric if the value is found in the log event. For example, $.eventType for JSON log events, or $server for space-delimited log events.



605
606
607
# File 'logs/cfn_metric_filter.rb', line 605

def value
  @value
end

Class Method Details

.jsii_propertiesObject



607
608
609
610
611
612
# File 'logs/cfn_metric_filter.rb', line 607

def self.jsii_properties
  {
    :key => "key",
    :value => "value",
  }
end

Instance Method Details

#to_jsiiObject



614
615
616
617
618
619
620
621
# File 'logs/cfn_metric_filter.rb', line 614

def to_jsii
  result = {}
  result.merge!({
    "key" => @key,
    "value" => @value,
  })
  result.compact
end