getInsightRuleReport method

Future<GetInsightRuleReportOutput> getInsightRuleReport({
  1. required DateTime endTime,
  2. required int period,
  3. required String ruleName,
  4. required DateTime startTime,
  5. int? maxContributorCount,
  6. List<String>? metrics,
  7. String? orderBy,
})

This operation returns the time series data collected by a Contributor Insights rule. The data includes the identity and number of contributors to the log group.

You can also optionally return one or more statistics about each data point in the time series. These statistics can include the following:

  • UniqueContributors -- the number of unique contributors for each data point.
  • MaxContributorValue -- the value of the top contributor for each data point. The identity of the contributor might change for each data point in the graph.

    If this rule aggregates by COUNT, the top contributor for each data point is the contributor with the most occurrences in that period. If the rule aggregates by SUM, the top contributor is the contributor with the highest sum in the log field specified by the rule's Value, during that period.

  • SampleCount -- the number of data points matched by the rule.
  • Sum -- the sum of the values from all contributors during the time period represented by that data point.
  • Minimum -- the minimum value from a single observation during the time period represented by that data point.
  • Maximum -- the maximum value from a single observation during the time period represented by that data point.
  • Average -- the average value from all contributors during the time period represented by that data point.

May throw InvalidParameterValueException. May throw MissingRequiredParameterException. May throw ResourceNotFoundException.

Parameter endTime : The end time of the data to use in the report. When used in a raw HTTP Query API, it is formatted as yyyy-MM-dd'T'HH:mm:ss. For example, 2019-07-01T23:59:59.

Parameter period : The period, in seconds, to use for the statistics in the InsightRuleMetricDatapoint results.

Parameter ruleName : The name of the rule that you want to see data from.

Parameter startTime : The start time of the data to use in the report. When used in a raw HTTP Query API, it is formatted as yyyy-MM-dd'T'HH:mm:ss. For example, 2019-07-01T23:59:59.

Parameter maxContributorCount : The maximum number of contributors to include in the report. The range is 1 to 100. If you omit this, the default of 10 is used.

Parameter metrics : Specifies which metrics to use for aggregation of contributor values for the report. You can specify one or more of the following metrics:

  • UniqueContributors -- the number of unique contributors for each data point.
  • MaxContributorValue -- the value of the top contributor for each data point. The identity of the contributor might change for each data point in the graph.

    If this rule aggregates by COUNT, the top contributor for each data point is the contributor with the most occurrences in that period. If the rule aggregates by SUM, the top contributor is the contributor with the highest sum in the log field specified by the rule's Value, during that period.

  • SampleCount -- the number of data points matched by the rule.
  • Sum -- the sum of the values from all contributors during the time period represented by that data point.
  • Minimum -- the minimum value from a single observation during the time period represented by that data point.
  • Maximum -- the maximum value from a single observation during the time period represented by that data point.
  • Average -- the average value from all contributors during the time period represented by that data point.

Parameter orderBy : Determines what statistic to use to rank the contributors. Valid values are SUM and MAXIMUM.

Implementation

Future<GetInsightRuleReportOutput> getInsightRuleReport({
  required DateTime endTime,
  required int period,
  required String ruleName,
  required DateTime startTime,
  int? maxContributorCount,
  List<String>? metrics,
  String? orderBy,
}) async {
  ArgumentError.checkNotNull(endTime, 'endTime');
  ArgumentError.checkNotNull(period, 'period');
  _s.validateNumRange(
    'period',
    period,
    1,
    1152921504606846976,
    isRequired: true,
  );
  ArgumentError.checkNotNull(ruleName, 'ruleName');
  _s.validateStringLength(
    'ruleName',
    ruleName,
    1,
    128,
    isRequired: true,
  );
  ArgumentError.checkNotNull(startTime, 'startTime');
  _s.validateStringLength(
    'orderBy',
    orderBy,
    1,
    32,
  );
  final $request = <String, dynamic>{};
  $request['EndTime'] = _s.iso8601ToJson(endTime);
  $request['Period'] = period;
  $request['RuleName'] = ruleName;
  $request['StartTime'] = _s.iso8601ToJson(startTime);
  maxContributorCount?.also((arg) => $request['MaxContributorCount'] = arg);
  metrics?.also((arg) => $request['Metrics'] = arg);
  orderBy?.also((arg) => $request['OrderBy'] = arg);
  final $result = await _protocol.send(
    $request,
    action: 'GetInsightRuleReport',
    version: '2010-08-01',
    method: 'POST',
    requestUri: '/',
    exceptionFnMap: _exceptionFns,
    shape: shapes['GetInsightRuleReportInput'],
    shapes: shapes,
    resultWrapper: 'GetInsightRuleReportResult',
  );
  return GetInsightRuleReportOutput.fromXml($result);
}