getLoadBalancerMetricData method
- required DateTime endTime,
- required String loadBalancerName,
- required LoadBalancerMetricName metricName,
- required int period,
- required DateTime startTime,
- required List<
MetricStatistic> statistics, - required MetricUnit unit,
Returns information about health metrics for your Lightsail load balancer.
Metrics report the utilization of your resources, and the error counts generated by them. Monitor and collect metric data regularly to maintain the reliability, availability, and performance of your resources.
May throw ServiceException. May throw InvalidInputException. May throw NotFoundException. May throw OperationFailureException. May throw AccessDeniedException. May throw AccountSetupInProgressException. May throw UnauthenticatedException.
Parameter endTime
:
The end time of the period.
Parameter loadBalancerName
:
The name of the load balancer.
Parameter metricName
:
The metric for which you want to return information.
Valid load balancer metric names are listed below, along with the most
useful statistics
to include in your request, and the
published unit
value.
-
ClientTLSNegotiationErrorCount
- The number of TLS connections initiated by the client that did not establish a session with the load balancer due to a TLS error generated by the load balancer. Possible causes include a mismatch of ciphers or protocols.Statistics
: The most useful statistic isSum
.Unit
: The published unit isCount
. -
HealthyHostCount
- The number of target instances that are considered healthy.Statistics
: The most useful statistic areAverage
,Minimum
, andMaximum
.Unit
: The published unit isCount
. -
HTTPCode_Instance_2XX_Count
- The number of HTTP 2XX response codes generated by the target instances. This does not include any response codes generated by the load balancer.Statistics
: The most useful statistic isSum
. Note thatMinimum
,Maximum
, andAverage
all return1
.Unit
: The published unit isCount
. -
HTTPCode_Instance_3XX_Count
- The number of HTTP 3XX response codes generated by the target instances. This does not include any response codes generated by the load balancer.Statistics
: The most useful statistic isSum
. Note thatMinimum
,Maximum
, andAverage
all return1
.Unit
: The published unit isCount
. -
HTTPCode_Instance_4XX_Count
- The number of HTTP 4XX response codes generated by the target instances. This does not include any response codes generated by the load balancer.Statistics
: The most useful statistic isSum
. Note thatMinimum
,Maximum
, andAverage
all return1
.Unit
: The published unit isCount
. -
HTTPCode_Instance_5XX_Count
- The number of HTTP 5XX response codes generated by the target instances. This does not include any response codes generated by the load balancer.Statistics
: The most useful statistic isSum
. Note thatMinimum
,Maximum
, andAverage
all return1
.Unit
: The published unit isCount
. -
HTTPCode_LB_4XX_Count
- The number of HTTP 4XX client error codes that originated from the load balancer. Client errors are generated when requests are malformed or incomplete. These requests were not received by the target instance. This count does not include response codes generated by the target instances.Statistics
: The most useful statistic isSum
. Note thatMinimum
,Maximum
, andAverage
all return1
.Unit
: The published unit isCount
. -
HTTPCode_LB_5XX_Count
- The number of HTTP 5XX server error codes that originated from the load balancer. This does not include any response codes generated by the target instance. This metric is reported if there are no healthy instances attached to the load balancer, or if the request rate exceeds the capacity of the instances (spillover) or the load balancer.Statistics
: The most useful statistic isSum
. Note thatMinimum
,Maximum
, andAverage
all return1
.Unit
: The published unit isCount
. -
InstanceResponseTime
- The time elapsed, in seconds, after the request leaves the load balancer until a response from the target instance is received.Statistics
: The most useful statistic isAverage
.Unit
: The published unit isSeconds
. -
RejectedConnectionCount
- The number of connections that were rejected because the load balancer had reached its maximum number of connections.Statistics
: The most useful statistic isSum
.Unit
: The published unit isCount
. -
RequestCount
- The number of requests processed over IPv4. This count includes only the requests with a response generated by a target instance of the load balancer.Statistics
: The most useful statistic isSum
. Note thatMinimum
,Maximum
, andAverage
all return1
.Unit
: The published unit isCount
. -
UnhealthyHostCount
- The number of target instances that are considered unhealthy.Statistics
: The most useful statistic areAverage
,Minimum
, andMaximum
.Unit
: The published unit isCount
.
Parameter period
:
The granularity, in seconds, of the returned data points.
Parameter startTime
:
The start time of the period.
Parameter statistics
:
The statistic for the metric.
The following statistics are available:
-
Minimum
- The lowest value observed during the specified period. Use this value to determine low volumes of activity for your application. -
Maximum
- The highest value observed during the specified period. Use this value to determine high volumes of activity for your application. -
Sum
- All values submitted for the matching metric added together. You can use this statistic to determine the total volume of a metric. -
Average
- The value of Sum / SampleCount during the specified period. By comparing this statistic with the Minimum and Maximum values, you can determine the full scope of a metric and how close the average use is to the Minimum and Maximum values. This comparison helps you to know when to increase or decrease your resources. -
SampleCount
- The count, or number, of data points used for the statistical calculation.
Parameter unit
:
The unit for the metric data request. Valid units depend on the metric
data being requested. For the valid units with each available metric, see
the metricName
parameter.
Implementation
Future<GetLoadBalancerMetricDataResult> getLoadBalancerMetricData({
required DateTime endTime,
required String loadBalancerName,
required LoadBalancerMetricName metricName,
required int period,
required DateTime startTime,
required List<MetricStatistic> statistics,
required MetricUnit unit,
}) async {
ArgumentError.checkNotNull(endTime, 'endTime');
ArgumentError.checkNotNull(loadBalancerName, 'loadBalancerName');
ArgumentError.checkNotNull(metricName, 'metricName');
ArgumentError.checkNotNull(period, 'period');
_s.validateNumRange(
'period',
period,
60,
86400,
isRequired: true,
);
ArgumentError.checkNotNull(startTime, 'startTime');
ArgumentError.checkNotNull(statistics, 'statistics');
ArgumentError.checkNotNull(unit, 'unit');
final headers = <String, String>{
'Content-Type': 'application/x-amz-json-1.1',
'X-Amz-Target': 'Lightsail_20161128.GetLoadBalancerMetricData'
};
final jsonResponse = await _protocol.send(
method: 'POST',
requestUri: '/',
exceptionFnMap: _exceptionFns,
// TODO queryParams
headers: headers,
payload: {
'endTime': unixTimestampToJson(endTime),
'loadBalancerName': loadBalancerName,
'metricName': metricName.toValue(),
'period': period,
'startTime': unixTimestampToJson(startTime),
'statistics': statistics.map((e) => e.toValue()).toList(),
'unit': unit.toValue(),
},
);
return GetLoadBalancerMetricDataResult.fromJson(jsonResponse.body);
}