Class: AWSCDK::ApplicationSignals::CfnServiceLevelObjective::RequestBasedSliMetricProperty

Inherits:
Jsii::Struct
  • Object
show all
Defined in:
application_signals/cfn_service_level_objective.rb

Overview

This structure contains the information about the metric that is used for a request-based SLO.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(composite_sli_config: nil, dependency_config: nil, key_attributes: nil, metric_name: nil, metric_source: nil, metric_type: nil, monitored_request_count_metric: nil, operation_name: nil, total_request_count_metric: nil) ⇒ RequestBasedSliMetricProperty

Returns a new instance of RequestBasedSliMetricProperty.

Parameters:



1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
# File 'application_signals/cfn_service_level_objective.rb', line 1468

def initialize(composite_sli_config: nil, dependency_config: nil, key_attributes: nil, metric_name: nil, metric_source: nil, metric_type: nil, monitored_request_count_metric: nil, operation_name: nil, total_request_count_metric: nil)
  @composite_sli_config = composite_sli_config.is_a?(Hash) ? ::AWSCDK::ApplicationSignals::CfnServiceLevelObjective::CompositeSliConfigProperty.new(**composite_sli_config.transform_keys(&:to_sym)) : composite_sli_config
  Jsii::Type.check_type(@composite_sli_config, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19hcHBsaWNhdGlvbnNpZ25hbHMuQ2ZuU2VydmljZUxldmVsT2JqZWN0aXZlLkNvbXBvc2l0ZVNsaUNvbmZpZ1Byb3BlcnR5In1dfX0=")), "compositeSliConfig") unless @composite_sli_config.nil?
  @dependency_config = dependency_config.is_a?(Hash) ? ::AWSCDK::ApplicationSignals::CfnServiceLevelObjective::DependencyConfigProperty.new(**dependency_config.transform_keys(&:to_sym)) : dependency_config
  Jsii::Type.check_type(@dependency_config, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19hcHBsaWNhdGlvbnNpZ25hbHMuQ2ZuU2VydmljZUxldmVsT2JqZWN0aXZlLkRlcGVuZGVuY3lDb25maWdQcm9wZXJ0eSJ9XX19")), "dependencyConfig") unless @dependency_config.nil?
  @key_attributes = key_attributes
  Jsii::Type.check_type(@key_attributes, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImNvbGxlY3Rpb24iOnsiZWxlbWVudHR5cGUiOnsicHJpbWl0aXZlIjoic3RyaW5nIn0sImtpbmQiOiJtYXAifX1dfX0=")), "keyAttributes") unless @key_attributes.nil?
  @metric_name = metric_name
  Jsii::Type.check_type(@metric_name, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "metricName") unless @metric_name.nil?
  @metric_source = metric_source.is_a?(Hash) ? ::AWSCDK::ApplicationSignals::CfnServiceLevelObjective::MetricSourceProperty.new(**metric_source.transform_keys(&:to_sym)) : metric_source
  Jsii::Type.check_type(@metric_source, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19hcHBsaWNhdGlvbnNpZ25hbHMuQ2ZuU2VydmljZUxldmVsT2JqZWN0aXZlLk1ldHJpY1NvdXJjZVByb3BlcnR5In1dfX0=")), "metricSource") unless @metric_source.nil?
  @metric_type = metric_type
  Jsii::Type.check_type(@metric_type, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "metricType") unless @metric_type.nil?
  @monitored_request_count_metric = monitored_request_count_metric.is_a?(Hash) ? ::AWSCDK::ApplicationSignals::CfnServiceLevelObjective::MonitoredRequestCountMetricProperty.new(**monitored_request_count_metric.transform_keys(&:to_sym)) : monitored_request_count_metric
  Jsii::Type.check_type(@monitored_request_count_metric, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19hcHBsaWNhdGlvbnNpZ25hbHMuQ2ZuU2VydmljZUxldmVsT2JqZWN0aXZlLk1vbml0b3JlZFJlcXVlc3RDb3VudE1ldHJpY1Byb3BlcnR5In1dfX0=")), "monitoredRequestCountMetric") unless @monitored_request_count_metric.nil?
  @operation_name = operation_name
  Jsii::Type.check_type(@operation_name, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "operationName") unless @operation_name.nil?
  @total_request_count_metric = total_request_count_metric
  Jsii::Type.check_type(@total_request_count_metric, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImNvbGxlY3Rpb24iOnsiZWxlbWVudHR5cGUiOnsidW5pb24iOnsidHlwZXMiOlt7ImZxbiI6ImF3cy1jZGstbGliLklSZXNvbHZhYmxlIn0seyJmcW4iOiJhd3MtY2RrLWxpYi5hd3NfYXBwbGljYXRpb25zaWduYWxzLkNmblNlcnZpY2VMZXZlbE9iamVjdGl2ZS5NZXRyaWNEYXRhUXVlcnlQcm9wZXJ0eSJ9XX19LCJraW5kIjoiYXJyYXkifX1dfX0=")), "totalRequestCountMetric") unless @total_request_count_metric.nil?
end

Instance Attribute Details

#dependency_configAWSCDK::IResolvable, ... (readonly)

Identifies the dependency using the DependencyKeyAttributes and DependencyOperationName .



1496
1497
1498
# File 'application_signals/cfn_service_level_objective.rb', line 1496

def dependency_config
  @dependency_config
end

#key_attributesAWSCDK::IResolvable, ... (readonly)

This is a string-to-string map that contains information about the type of object that this SLO is related to.

It can include the following fields.

  • Type designates the type of object that this SLO is related to.
  • ResourceType specifies the type of the resource. This field is used only when the value of the Type field is Resource or AWS::Resource .
  • Name specifies the name of the object. This is used only if the value of the Type field is Service , RemoteService , or AWS::Service .
  • Identifier identifies the resource objects of this resource. This is used only if the value of the Type field is Resource or AWS::Resource .
  • Environment specifies the location where this object is hosted, or what it belongs to.
  • AwsAccountId allows you to create an SLO for an object that exists in another account.


1510
1511
1512
# File 'application_signals/cfn_service_level_objective.rb', line 1510

def key_attributes
  @key_attributes
end

#metric_nameString? (readonly)

The name of the metric for non-Application Signals services.



1515
1516
1517
# File 'application_signals/cfn_service_level_objective.rb', line 1515

def metric_name
  @metric_name
end

#metric_sourceAWSCDK::IResolvable, ... (readonly)

Configuration for identifying the source of metrics for non-Application Signals services.



1520
1521
1522
# File 'application_signals/cfn_service_level_objective.rb', line 1520

def metric_source
  @metric_source
end

#metric_typeString? (readonly)

If the SLO monitors either the LATENCY or AVAILABILITY metric that Application Signals collects, this field displays which of those metrics is used.



1525
1526
1527
# File 'application_signals/cfn_service_level_objective.rb', line 1525

def metric_type
  @metric_type
end

#monitored_request_count_metricAWSCDK::IResolvable, ... (readonly)

Use this structure to define the metric that you want to use as the "good request" or "bad request" value for a request-based SLO.

This value observed for the metric defined in TotalRequestCountMetric will be divided by the number found for MonitoredRequestCountMetric to determine the percentage of successful requests that this SLO tracks.



1532
1533
1534
# File 'application_signals/cfn_service_level_objective.rb', line 1532

def monitored_request_count_metric
  @monitored_request_count_metric
end

#operation_nameString? (readonly)

If the SLO monitors a specific operation of the service, this field displays that operation name.



1537
1538
1539
# File 'application_signals/cfn_service_level_objective.rb', line 1537

def operation_name
  @operation_name
end

#total_request_count_metricAWSCDK::IResolvable, ... (readonly)

This structure defines the metric that is used as the "total requests" number for a request-based SLO.

The number observed for this metric is divided by the number of "good requests" or "bad requests" that is observed for the metric defined in MonitoredRequestCountMetric .



1544
1545
1546
# File 'application_signals/cfn_service_level_objective.rb', line 1544

def total_request_count_metric
  @total_request_count_metric
end

Class Method Details

.jsii_propertiesObject



1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
# File 'application_signals/cfn_service_level_objective.rb', line 1546

def self.jsii_properties
  {
    :composite_sli_config => "compositeSliConfig",
    :dependency_config => "dependencyConfig",
    :key_attributes => "keyAttributes",
    :metric_name => "metricName",
    :metric_source => "metricSource",
    :metric_type => "metricType",
    :monitored_request_count_metric => "monitoredRequestCountMetric",
    :operation_name => "operationName",
    :total_request_count_metric => "totalRequestCountMetric",
  }
end

Instance Method Details

#to_jsiiObject



1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
# File 'application_signals/cfn_service_level_objective.rb', line 1560

def to_jsii
  result = {}
  result.merge!({
    "compositeSliConfig" => @composite_sli_config,
    "dependencyConfig" => @dependency_config,
    "keyAttributes" => @key_attributes,
    "metricName" => @metric_name,
    "metricSource" => @metric_source,
    "metricType" => @metric_type,
    "monitoredRequestCountMetric" => @monitored_request_count_metric,
    "operationName" => @operation_name,
    "totalRequestCountMetric" => @total_request_count_metric,
  })
  result.compact
end