getDimensionKeyDetails method

Future<GetDimensionKeyDetailsResponse> getDimensionKeyDetails({
  1. required String group,
  2. required String groupIdentifier,
  3. required String identifier,
  4. required ServiceType serviceType,
  5. List<String>? requestedDimensions,
})

Get the attributes of the specified dimension group for a DB instance or data source. For example, if you specify a SQL ID, GetDimensionKeyDetails retrieves the full text of the dimension db.sql.statement associated with this ID. This operation is useful because GetResourceMetrics and DescribeDimensionKeys don't support retrieval of large SQL statement text, lock snapshots, and execution plans.

May throw InternalServiceError. May throw InvalidArgumentException. May throw NotAuthorizedException.

Parameter group : The name of the dimension group. Performance Insights searches the specified group for the dimension group ID. The following group name values are valid:

  • db.execution_plan (Amazon RDS and Aurora only)
  • db.lock_snapshot (Aurora only)
  • db.query (Amazon DocumentDB only)
  • db.sql (Amazon RDS and Aurora only)

Parameter groupIdentifier : The ID of the dimension group from which to retrieve dimension details. For dimension group db.sql, the group ID is db.sql.id. The following group ID values are valid:

  • db.execution_plan.id for dimension group db.execution_plan (Aurora and RDS only)
  • db.sql.id for dimension group db.sql (Aurora and RDS only)
  • db.query.id for dimension group db.query (DocumentDB only)
  • For the dimension group db.lock_snapshot, the GroupIdentifier is the epoch timestamp when Performance Insights captured the snapshot, in seconds. You can retrieve this value with the GetResourceMetrics operation for a 1 second period.

Parameter identifier : The ID for a data source from which to gather dimension data. This ID must be immutable and unique within an Amazon Web Services Region. When a DB instance is the data source, specify its DbiResourceId value. For example, specify db-ABCDEFGHIJKLMNOPQRSTU1VW2X.

Parameter serviceType : The Amazon Web Services service for which Performance Insights returns data. The only valid value is RDS.

Parameter requestedDimensions : A list of dimensions to retrieve the detail data for within the given dimension group. If you don't specify this parameter, Performance Insights returns all dimension data within the specified dimension group. Specify dimension names for the following dimension groups:

  • db.execution_plan - Specify the dimension name db.execution_plan.raw_plan or the short dimension name raw_plan (Amazon RDS and Aurora only)
  • db.lock_snapshot - Specify the dimension name db.lock_snapshot.lock_trees or the short dimension name lock_trees. (Aurora only)
  • db.sql - Specify either the full dimension name db.sql.statement or the short dimension name statement (Aurora and RDS only).
  • db.query - Specify either the full dimension name db.query.statement or the short dimension name statement (DocumentDB only).

Implementation

Future<GetDimensionKeyDetailsResponse> getDimensionKeyDetails({
  required String group,
  required String groupIdentifier,
  required String identifier,
  required ServiceType serviceType,
  List<String>? requestedDimensions,
}) async {
  final headers = <String, String>{
    'Content-Type': 'application/x-amz-json-1.1',
    'X-Amz-Target': 'PerformanceInsightsv20180227.GetDimensionKeyDetails'
  };
  final jsonResponse = await _protocol.send(
    method: 'POST',
    requestUri: '/',
    exceptionFnMap: _exceptionFns,
    // TODO queryParams
    headers: headers,
    payload: {
      'Group': group,
      'GroupIdentifier': groupIdentifier,
      'Identifier': identifier,
      'ServiceType': serviceType.value,
      if (requestedDimensions != null)
        'RequestedDimensions': requestedDimensions,
    },
  );

  return GetDimensionKeyDetailsResponse.fromJson(jsonResponse.body);
}