amazonka-rum-2.0: Amazon CloudWatch RUM SDK.
Copyright(c) 2013-2023 Brendan Hay
LicenseMozilla Public License, v. 2.0.
MaintainerBrendan Hay
Stabilityauto-generated
Portabilitynon-portable (GHC extensions)
Safe HaskellSafe-Inferred
LanguageHaskell2010

Amazonka.Rum.Types.MetricDefinitionRequest

Description

 
Synopsis

Documentation

data MetricDefinitionRequest Source #

Use this structure to define one extended metric that RUM will send to CloudWatch or CloudWatch Evidently. For more information, see Additional metrics that you can send to CloudWatch and CloudWatch Evidently.

Only certain combinations of values for Name, ValueKey, and EventPattern are valid. In addition to what is displayed in the list below, the EventPattern can also include information used by the DimensionKeys field.

  • If Name is PerformanceNavigationDuration, then ValueKeymust be event_details.duration and the EventPattern must include {"event_type":["com.amazon.rum.performance_navigation_event"]}
  • If Name is PerformanceResourceDuration, then ValueKeymust be event_details.duration and the EventPattern must include {"event_type":["com.amazon.rum.performance_resource_event"]}
  • If Name is NavigationSatisfiedTransaction, then ValueKeymust be null and the EventPattern must include { "event_type": ["com.amazon.rum.performance_navigation_event"], "event_details": { "duration": [{ "numeric": [">",2000] }] } }
  • If Name is NavigationToleratedTransaction, then ValueKeymust be null and the EventPattern must include { "event_type": ["com.amazon.rum.performance_navigation_event"], "event_details": { "duration": [{ "numeric": [">=",2000,"<"8000] }] } }
  • If Name is NavigationFrustratedTransaction, then ValueKeymust be null and the EventPattern must include { "event_type": ["com.amazon.rum.performance_navigation_event"], "event_details": { "duration": [{ "numeric": [">=",8000] }] } }
  • If Name is WebVitalsCumulativeLayoutShift, then ValueKeymust be event_details.value and the EventPattern must include {"event_type":["com.amazon.rum.cumulative_layout_shift_event"]}
  • If Name is WebVitalsFirstInputDelay, then ValueKeymust be event_details.value and the EventPattern must include {"event_type":["com.amazon.rum.first_input_delay_event"]}
  • If Name is WebVitalsLargestContentfulPaint, then ValueKeymust be event_details.value and the EventPattern must include {"event_type":["com.amazon.rum.largest_contentful_paint_event"]}
  • If Name is JsErrorCount, then ValueKeymust be null and the EventPattern must include {"event_type":["com.amazon.rum.js_error_event"]}
  • If Name is HttpErrorCount, then ValueKeymust be null and the EventPattern must include {"event_type":["com.amazon.rum.http_event"]}
  • If Name is SessionCount, then ValueKeymust be null and the EventPattern must include {"event_type":["com.amazon.rum.session_start_event"]}

See: newMetricDefinitionRequest smart constructor.

Constructors

MetricDefinitionRequest' 

Fields

  • dimensionKeys :: Maybe (HashMap Text Text)

    Use this field only if you are sending the metric to CloudWatch.

    This field is a map of field paths to dimension names. It defines the dimensions to associate with this metric in CloudWatch. Valid values for the entries in this field are the following:

    • "metadata.pageId": "PageId"
    • "metadata.browserName": "BrowserName"
    • "metadata.deviceType": "DeviceType"
    • "metadata.osName": "OSName"
    • "metadata.countryCode": "CountryCode"
    • "event_details.fileType": "FileType"

    All dimensions listed in this field must also be included in EventPattern.

  • eventPattern :: Maybe Text

    The pattern that defines the metric, specified as a JSON object. RUM checks events that happen in a user's session against the pattern, and events that match the pattern are sent to the metric destination.

    When you define extended metrics, the metric definition is not valid if EventPattern is omitted.

    Example event patterns:

    • '{ "event_type": ["com.amazon.rum.js_error_event"], "metadata": { "browserName": [ "Chrome", "Safari" ], } }'
    • '{ "event_type": ["com.amazon.rum.performance_navigation_event"], "metadata": { "browserName": [ "Chrome", "Firefox" ] }, "event_details": { "duration": [{ "numeric": [ "<", 2000 ] }] } }'
    • '{ "event_type": ["com.amazon.rum.performance_navigation_event"], "metadata": { "browserName": [ "Chrome", "Safari" ], "countryCode": [ "US" ] }, "event_details": { "duration": [{ "numeric": [ ">=", 2000, "<", 8000 ] }] } }'

    If the metrics destination' is CloudWatch and the event also matches a value in DimensionKeys, then the metric is published with the specified dimensions.

  • unitLabel :: Maybe Text

    The CloudWatch metric unit to use for this metric. If you omit this field, the metric is recorded with no unit.

  • valueKey :: Maybe Text

    The field within the event object that the metric value is sourced from.

    If you omit this field, a hardcoded value of 1 is pushed as the metric value. This is useful if you just want to count the number of events that the filter catches.

    If this metric is sent to CloudWatch Evidently, this field will be passed to Evidently raw and Evidently will handle data extraction from the event.

  • name :: Text

    The name for the metric that is defined in this structure. Valid values are the following:

    • PerformanceNavigationDuration
    • PerformanceResourceDuration
    • NavigationSatisfiedTransaction
    • NavigationToleratedTransaction
    • NavigationFrustratedTransaction
    • WebVitalsCumulativeLayoutShift
    • WebVitalsFirstInputDelay
    • WebVitalsLargestContentfulPaint
    • JsErrorCount
    • HttpErrorCount
    • SessionCount

Instances

Instances details
FromJSON MetricDefinitionRequest Source # 
Instance details

Defined in Amazonka.Rum.Types.MetricDefinitionRequest

ToJSON MetricDefinitionRequest Source # 
Instance details

Defined in Amazonka.Rum.Types.MetricDefinitionRequest

Generic MetricDefinitionRequest Source # 
Instance details

Defined in Amazonka.Rum.Types.MetricDefinitionRequest

Associated Types

type Rep MetricDefinitionRequest :: Type -> Type #

Read MetricDefinitionRequest Source # 
Instance details

Defined in Amazonka.Rum.Types.MetricDefinitionRequest

Show MetricDefinitionRequest Source # 
Instance details

Defined in Amazonka.Rum.Types.MetricDefinitionRequest

NFData MetricDefinitionRequest Source # 
Instance details

Defined in Amazonka.Rum.Types.MetricDefinitionRequest

Methods

rnf :: MetricDefinitionRequest -> () #

Eq MetricDefinitionRequest Source # 
Instance details

Defined in Amazonka.Rum.Types.MetricDefinitionRequest

Hashable MetricDefinitionRequest Source # 
Instance details

Defined in Amazonka.Rum.Types.MetricDefinitionRequest

type Rep MetricDefinitionRequest Source # 
Instance details

Defined in Amazonka.Rum.Types.MetricDefinitionRequest

type Rep MetricDefinitionRequest = D1 ('MetaData "MetricDefinitionRequest" "Amazonka.Rum.Types.MetricDefinitionRequest" "amazonka-rum-2.0-2UnkV4TSIBwJW5RXOw3bOY" 'False) (C1 ('MetaCons "MetricDefinitionRequest'" 'PrefixI 'True) ((S1 ('MetaSel ('Just "dimensionKeys") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 (Maybe (HashMap Text Text))) :*: S1 ('MetaSel ('Just "eventPattern") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 (Maybe Text))) :*: (S1 ('MetaSel ('Just "unitLabel") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 (Maybe Text)) :*: (S1 ('MetaSel ('Just "valueKey") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 (Maybe Text)) :*: S1 ('MetaSel ('Just "name") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Text)))))

newMetricDefinitionRequest Source #

Create a value of MetricDefinitionRequest with all optional fields omitted.

Use generic-lens or optics to modify other optional fields.

The following record fields are available, with the corresponding lenses provided for backwards compatibility:

$sel:dimensionKeys:MetricDefinitionRequest', metricDefinitionRequest_dimensionKeys - Use this field only if you are sending the metric to CloudWatch.

This field is a map of field paths to dimension names. It defines the dimensions to associate with this metric in CloudWatch. Valid values for the entries in this field are the following:

  • "metadata.pageId": "PageId"
  • "metadata.browserName": "BrowserName"
  • "metadata.deviceType": "DeviceType"
  • "metadata.osName": "OSName"
  • "metadata.countryCode": "CountryCode"
  • "event_details.fileType": "FileType"

All dimensions listed in this field must also be included in EventPattern.

$sel:eventPattern:MetricDefinitionRequest', metricDefinitionRequest_eventPattern - The pattern that defines the metric, specified as a JSON object. RUM checks events that happen in a user's session against the pattern, and events that match the pattern are sent to the metric destination.

When you define extended metrics, the metric definition is not valid if EventPattern is omitted.

Example event patterns:

  • '{ "event_type": ["com.amazon.rum.js_error_event"], "metadata": { "browserName": [ "Chrome", "Safari" ], } }'
  • '{ "event_type": ["com.amazon.rum.performance_navigation_event"], "metadata": { "browserName": [ "Chrome", "Firefox" ] }, "event_details": { "duration": [{ "numeric": [ "<", 2000 ] }] } }'
  • '{ "event_type": ["com.amazon.rum.performance_navigation_event"], "metadata": { "browserName": [ "Chrome", "Safari" ], "countryCode": [ "US" ] }, "event_details": { "duration": [{ "numeric": [ ">=", 2000, "<", 8000 ] }] } }'

If the metrics destination' is CloudWatch and the event also matches a value in DimensionKeys, then the metric is published with the specified dimensions.

$sel:unitLabel:MetricDefinitionRequest', metricDefinitionRequest_unitLabel - The CloudWatch metric unit to use for this metric. If you omit this field, the metric is recorded with no unit.

$sel:valueKey:MetricDefinitionRequest', metricDefinitionRequest_valueKey - The field within the event object that the metric value is sourced from.

If you omit this field, a hardcoded value of 1 is pushed as the metric value. This is useful if you just want to count the number of events that the filter catches.

If this metric is sent to CloudWatch Evidently, this field will be passed to Evidently raw and Evidently will handle data extraction from the event.

$sel:name:MetricDefinitionRequest', metricDefinitionRequest_name - The name for the metric that is defined in this structure. Valid values are the following:

  • PerformanceNavigationDuration
  • PerformanceResourceDuration
  • NavigationSatisfiedTransaction
  • NavigationToleratedTransaction
  • NavigationFrustratedTransaction
  • WebVitalsCumulativeLayoutShift
  • WebVitalsFirstInputDelay
  • WebVitalsLargestContentfulPaint
  • JsErrorCount
  • HttpErrorCount
  • SessionCount

metricDefinitionRequest_dimensionKeys :: Lens' MetricDefinitionRequest (Maybe (HashMap Text Text)) Source #

Use this field only if you are sending the metric to CloudWatch.

This field is a map of field paths to dimension names. It defines the dimensions to associate with this metric in CloudWatch. Valid values for the entries in this field are the following:

  • "metadata.pageId": "PageId"
  • "metadata.browserName": "BrowserName"
  • "metadata.deviceType": "DeviceType"
  • "metadata.osName": "OSName"
  • "metadata.countryCode": "CountryCode"
  • "event_details.fileType": "FileType"

All dimensions listed in this field must also be included in EventPattern.

metricDefinitionRequest_eventPattern :: Lens' MetricDefinitionRequest (Maybe Text) Source #

The pattern that defines the metric, specified as a JSON object. RUM checks events that happen in a user's session against the pattern, and events that match the pattern are sent to the metric destination.

When you define extended metrics, the metric definition is not valid if EventPattern is omitted.

Example event patterns:

  • '{ "event_type": ["com.amazon.rum.js_error_event"], "metadata": { "browserName": [ "Chrome", "Safari" ], } }'
  • '{ "event_type": ["com.amazon.rum.performance_navigation_event"], "metadata": { "browserName": [ "Chrome", "Firefox" ] }, "event_details": { "duration": [{ "numeric": [ "<", 2000 ] }] } }'
  • '{ "event_type": ["com.amazon.rum.performance_navigation_event"], "metadata": { "browserName": [ "Chrome", "Safari" ], "countryCode": [ "US" ] }, "event_details": { "duration": [{ "numeric": [ ">=", 2000, "<", 8000 ] }] } }'

If the metrics destination' is CloudWatch and the event also matches a value in DimensionKeys, then the metric is published with the specified dimensions.

metricDefinitionRequest_unitLabel :: Lens' MetricDefinitionRequest (Maybe Text) Source #

The CloudWatch metric unit to use for this metric. If you omit this field, the metric is recorded with no unit.

metricDefinitionRequest_valueKey :: Lens' MetricDefinitionRequest (Maybe Text) Source #

The field within the event object that the metric value is sourced from.

If you omit this field, a hardcoded value of 1 is pushed as the metric value. This is useful if you just want to count the number of events that the filter catches.

If this metric is sent to CloudWatch Evidently, this field will be passed to Evidently raw and Evidently will handle data extraction from the event.

metricDefinitionRequest_name :: Lens' MetricDefinitionRequest Text Source #

The name for the metric that is defined in this structure. Valid values are the following:

  • PerformanceNavigationDuration
  • PerformanceResourceDuration
  • NavigationSatisfiedTransaction
  • NavigationToleratedTransaction
  • NavigationFrustratedTransaction
  • WebVitalsCumulativeLayoutShift
  • WebVitalsFirstInputDelay
  • WebVitalsLargestContentfulPaint
  • JsErrorCount
  • HttpErrorCount
  • SessionCount