/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include namespace Aws { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace DevOpsGuru { namespace Model { /** *

A single query to be processed. Use these parameters to query the Performance * Insights GetResourceMetrics API to retrieve the metrics for an * anomaly. For more information, see GetResourceMetrics * in the Amazon RDS Performance Insights API Reference.

*

Amazon RDS Performance Insights enables you to monitor and explore different * dimensions of database load based on data captured from a running DB instance. * DB load is measured as average active sessions. Performance Insights provides * the data to API consumers as a two-dimensional time-series dataset. The time * dimension provides DB load data for each time point in the queried time range. * Each time point decomposes overall load in relation to the requested dimensions, * measured at that time point. Examples include SQL, Wait event, User, and Host. *

See Also:

AWS * API Reference

*/ class PerformanceInsightsMetricQuery { public: AWS_DEVOPSGURU_API PerformanceInsightsMetricQuery(); AWS_DEVOPSGURU_API PerformanceInsightsMetricQuery(Aws::Utils::Json::JsonView jsonValue); AWS_DEVOPSGURU_API PerformanceInsightsMetricQuery& operator=(Aws::Utils::Json::JsonView jsonValue); AWS_DEVOPSGURU_API Aws::Utils::Json::JsonValue Jsonize() const; /** *

The name of the meteric used used when querying an Performance Insights * GetResourceMetrics API for anomaly metrics.

Valid values for * Metric are:

  • db.load.avg - a scaled * representation of the number of active sessions for the database engine.

    *
  • db.sampledload.avg - the raw number of active * sessions for the database engine.

If the number of active * sessions is less than an internal Performance Insights threshold, * db.load.avg and db.sampledload.avg are the same value. * If the number of active sessions is greater than the internal threshold, * Performance Insights samples the active sessions, with db.load.avg * showing the scaled values, db.sampledload.avg showing the raw * values, and db.sampledload.avg less than db.load.avg. * For most use cases, you can query db.load.avg only.

*/ inline const Aws::String& GetMetric() const{ return m_metric; } /** *

The name of the meteric used used when querying an Performance Insights * GetResourceMetrics API for anomaly metrics.

Valid values for * Metric are:

  • db.load.avg - a scaled * representation of the number of active sessions for the database engine.

    *
  • db.sampledload.avg - the raw number of active * sessions for the database engine.

If the number of active * sessions is less than an internal Performance Insights threshold, * db.load.avg and db.sampledload.avg are the same value. * If the number of active sessions is greater than the internal threshold, * Performance Insights samples the active sessions, with db.load.avg * showing the scaled values, db.sampledload.avg showing the raw * values, and db.sampledload.avg less than db.load.avg. * For most use cases, you can query db.load.avg only.

*/ inline bool MetricHasBeenSet() const { return m_metricHasBeenSet; } /** *

The name of the meteric used used when querying an Performance Insights * GetResourceMetrics API for anomaly metrics.

Valid values for * Metric are:

  • db.load.avg - a scaled * representation of the number of active sessions for the database engine.

    *
  • db.sampledload.avg - the raw number of active * sessions for the database engine.

If the number of active * sessions is less than an internal Performance Insights threshold, * db.load.avg and db.sampledload.avg are the same value. * If the number of active sessions is greater than the internal threshold, * Performance Insights samples the active sessions, with db.load.avg * showing the scaled values, db.sampledload.avg showing the raw * values, and db.sampledload.avg less than db.load.avg. * For most use cases, you can query db.load.avg only.

*/ inline void SetMetric(const Aws::String& value) { m_metricHasBeenSet = true; m_metric = value; } /** *

The name of the meteric used used when querying an Performance Insights * GetResourceMetrics API for anomaly metrics.

Valid values for * Metric are:

  • db.load.avg - a scaled * representation of the number of active sessions for the database engine.

    *
  • db.sampledload.avg - the raw number of active * sessions for the database engine.

If the number of active * sessions is less than an internal Performance Insights threshold, * db.load.avg and db.sampledload.avg are the same value. * If the number of active sessions is greater than the internal threshold, * Performance Insights samples the active sessions, with db.load.avg * showing the scaled values, db.sampledload.avg showing the raw * values, and db.sampledload.avg less than db.load.avg. * For most use cases, you can query db.load.avg only.

*/ inline void SetMetric(Aws::String&& value) { m_metricHasBeenSet = true; m_metric = std::move(value); } /** *

The name of the meteric used used when querying an Performance Insights * GetResourceMetrics API for anomaly metrics.

Valid values for * Metric are:

  • db.load.avg - a scaled * representation of the number of active sessions for the database engine.

    *
  • db.sampledload.avg - the raw number of active * sessions for the database engine.

If the number of active * sessions is less than an internal Performance Insights threshold, * db.load.avg and db.sampledload.avg are the same value. * If the number of active sessions is greater than the internal threshold, * Performance Insights samples the active sessions, with db.load.avg * showing the scaled values, db.sampledload.avg showing the raw * values, and db.sampledload.avg less than db.load.avg. * For most use cases, you can query db.load.avg only.

*/ inline void SetMetric(const char* value) { m_metricHasBeenSet = true; m_metric.assign(value); } /** *

The name of the meteric used used when querying an Performance Insights * GetResourceMetrics API for anomaly metrics.

Valid values for * Metric are:

  • db.load.avg - a scaled * representation of the number of active sessions for the database engine.

    *
  • db.sampledload.avg - the raw number of active * sessions for the database engine.

If the number of active * sessions is less than an internal Performance Insights threshold, * db.load.avg and db.sampledload.avg are the same value. * If the number of active sessions is greater than the internal threshold, * Performance Insights samples the active sessions, with db.load.avg * showing the scaled values, db.sampledload.avg showing the raw * values, and db.sampledload.avg less than db.load.avg. * For most use cases, you can query db.load.avg only.

*/ inline PerformanceInsightsMetricQuery& WithMetric(const Aws::String& value) { SetMetric(value); return *this;} /** *

The name of the meteric used used when querying an Performance Insights * GetResourceMetrics API for anomaly metrics.

Valid values for * Metric are:

  • db.load.avg - a scaled * representation of the number of active sessions for the database engine.

    *
  • db.sampledload.avg - the raw number of active * sessions for the database engine.

If the number of active * sessions is less than an internal Performance Insights threshold, * db.load.avg and db.sampledload.avg are the same value. * If the number of active sessions is greater than the internal threshold, * Performance Insights samples the active sessions, with db.load.avg * showing the scaled values, db.sampledload.avg showing the raw * values, and db.sampledload.avg less than db.load.avg. * For most use cases, you can query db.load.avg only.

*/ inline PerformanceInsightsMetricQuery& WithMetric(Aws::String&& value) { SetMetric(std::move(value)); return *this;} /** *

The name of the meteric used used when querying an Performance Insights * GetResourceMetrics API for anomaly metrics.

Valid values for * Metric are:

  • db.load.avg - a scaled * representation of the number of active sessions for the database engine.

    *
  • db.sampledload.avg - the raw number of active * sessions for the database engine.

If the number of active * sessions is less than an internal Performance Insights threshold, * db.load.avg and db.sampledload.avg are the same value. * If the number of active sessions is greater than the internal threshold, * Performance Insights samples the active sessions, with db.load.avg * showing the scaled values, db.sampledload.avg showing the raw * values, and db.sampledload.avg less than db.load.avg. * For most use cases, you can query db.load.avg only.

*/ inline PerformanceInsightsMetricQuery& WithMetric(const char* value) { SetMetric(value); return *this;} /** *

The specification for how to aggregate the data points from a Performance * Insights GetResourceMetrics API query. The Performance Insights * query returns all of the dimensions within that group, unless you provide the * names of specific dimensions within that group. You can also request that * Performance Insights return a limited number of values for a dimension.

*/ inline const PerformanceInsightsMetricDimensionGroup& GetGroupBy() const{ return m_groupBy; } /** *

The specification for how to aggregate the data points from a Performance * Insights GetResourceMetrics API query. The Performance Insights * query returns all of the dimensions within that group, unless you provide the * names of specific dimensions within that group. You can also request that * Performance Insights return a limited number of values for a dimension.

*/ inline bool GroupByHasBeenSet() const { return m_groupByHasBeenSet; } /** *

The specification for how to aggregate the data points from a Performance * Insights GetResourceMetrics API query. The Performance Insights * query returns all of the dimensions within that group, unless you provide the * names of specific dimensions within that group. You can also request that * Performance Insights return a limited number of values for a dimension.

*/ inline void SetGroupBy(const PerformanceInsightsMetricDimensionGroup& value) { m_groupByHasBeenSet = true; m_groupBy = value; } /** *

The specification for how to aggregate the data points from a Performance * Insights GetResourceMetrics API query. The Performance Insights * query returns all of the dimensions within that group, unless you provide the * names of specific dimensions within that group. You can also request that * Performance Insights return a limited number of values for a dimension.

*/ inline void SetGroupBy(PerformanceInsightsMetricDimensionGroup&& value) { m_groupByHasBeenSet = true; m_groupBy = std::move(value); } /** *

The specification for how to aggregate the data points from a Performance * Insights GetResourceMetrics API query. The Performance Insights * query returns all of the dimensions within that group, unless you provide the * names of specific dimensions within that group. You can also request that * Performance Insights return a limited number of values for a dimension.

*/ inline PerformanceInsightsMetricQuery& WithGroupBy(const PerformanceInsightsMetricDimensionGroup& value) { SetGroupBy(value); return *this;} /** *

The specification for how to aggregate the data points from a Performance * Insights GetResourceMetrics API query. The Performance Insights * query returns all of the dimensions within that group, unless you provide the * names of specific dimensions within that group. You can also request that * Performance Insights return a limited number of values for a dimension.

*/ inline PerformanceInsightsMetricQuery& WithGroupBy(PerformanceInsightsMetricDimensionGroup&& value) { SetGroupBy(std::move(value)); return *this;} /** *

One or more filters to apply to a Performance Insights * GetResourceMetrics API query. Restrictions:

  • Any * number of filters by the same dimension, as specified in the * GroupBy parameter.

  • A single filter for any other * dimension in this dimension group.

*/ inline const Aws::Map& GetFilter() const{ return m_filter; } /** *

One or more filters to apply to a Performance Insights * GetResourceMetrics API query. Restrictions:

  • Any * number of filters by the same dimension, as specified in the * GroupBy parameter.

  • A single filter for any other * dimension in this dimension group.

*/ inline bool FilterHasBeenSet() const { return m_filterHasBeenSet; } /** *

One or more filters to apply to a Performance Insights * GetResourceMetrics API query. Restrictions:

  • Any * number of filters by the same dimension, as specified in the * GroupBy parameter.

  • A single filter for any other * dimension in this dimension group.

*/ inline void SetFilter(const Aws::Map& value) { m_filterHasBeenSet = true; m_filter = value; } /** *

One or more filters to apply to a Performance Insights * GetResourceMetrics API query. Restrictions:

  • Any * number of filters by the same dimension, as specified in the * GroupBy parameter.

  • A single filter for any other * dimension in this dimension group.

*/ inline void SetFilter(Aws::Map&& value) { m_filterHasBeenSet = true; m_filter = std::move(value); } /** *

One or more filters to apply to a Performance Insights * GetResourceMetrics API query. Restrictions:

  • Any * number of filters by the same dimension, as specified in the * GroupBy parameter.

  • A single filter for any other * dimension in this dimension group.

*/ inline PerformanceInsightsMetricQuery& WithFilter(const Aws::Map& value) { SetFilter(value); return *this;} /** *

One or more filters to apply to a Performance Insights * GetResourceMetrics API query. Restrictions:

  • Any * number of filters by the same dimension, as specified in the * GroupBy parameter.

  • A single filter for any other * dimension in this dimension group.

*/ inline PerformanceInsightsMetricQuery& WithFilter(Aws::Map&& value) { SetFilter(std::move(value)); return *this;} /** *

One or more filters to apply to a Performance Insights * GetResourceMetrics API query. Restrictions:

  • Any * number of filters by the same dimension, as specified in the * GroupBy parameter.

  • A single filter for any other * dimension in this dimension group.

*/ inline PerformanceInsightsMetricQuery& AddFilter(const Aws::String& key, const Aws::String& value) { m_filterHasBeenSet = true; m_filter.emplace(key, value); return *this; } /** *

One or more filters to apply to a Performance Insights * GetResourceMetrics API query. Restrictions:

  • Any * number of filters by the same dimension, as specified in the * GroupBy parameter.

  • A single filter for any other * dimension in this dimension group.

*/ inline PerformanceInsightsMetricQuery& AddFilter(Aws::String&& key, const Aws::String& value) { m_filterHasBeenSet = true; m_filter.emplace(std::move(key), value); return *this; } /** *

One or more filters to apply to a Performance Insights * GetResourceMetrics API query. Restrictions:

  • Any * number of filters by the same dimension, as specified in the * GroupBy parameter.

  • A single filter for any other * dimension in this dimension group.

*/ inline PerformanceInsightsMetricQuery& AddFilter(const Aws::String& key, Aws::String&& value) { m_filterHasBeenSet = true; m_filter.emplace(key, std::move(value)); return *this; } /** *

One or more filters to apply to a Performance Insights * GetResourceMetrics API query. Restrictions:

  • Any * number of filters by the same dimension, as specified in the * GroupBy parameter.

  • A single filter for any other * dimension in this dimension group.

*/ inline PerformanceInsightsMetricQuery& AddFilter(Aws::String&& key, Aws::String&& value) { m_filterHasBeenSet = true; m_filter.emplace(std::move(key), std::move(value)); return *this; } /** *

One or more filters to apply to a Performance Insights * GetResourceMetrics API query. Restrictions:

  • Any * number of filters by the same dimension, as specified in the * GroupBy parameter.

  • A single filter for any other * dimension in this dimension group.

*/ inline PerformanceInsightsMetricQuery& AddFilter(const char* key, Aws::String&& value) { m_filterHasBeenSet = true; m_filter.emplace(key, std::move(value)); return *this; } /** *

One or more filters to apply to a Performance Insights * GetResourceMetrics API query. Restrictions:

  • Any * number of filters by the same dimension, as specified in the * GroupBy parameter.

  • A single filter for any other * dimension in this dimension group.

*/ inline PerformanceInsightsMetricQuery& AddFilter(Aws::String&& key, const char* value) { m_filterHasBeenSet = true; m_filter.emplace(std::move(key), value); return *this; } /** *

One or more filters to apply to a Performance Insights * GetResourceMetrics API query. Restrictions:

  • Any * number of filters by the same dimension, as specified in the * GroupBy parameter.

  • A single filter for any other * dimension in this dimension group.

*/ inline PerformanceInsightsMetricQuery& AddFilter(const char* key, const char* value) { m_filterHasBeenSet = true; m_filter.emplace(key, value); return *this; } private: Aws::String m_metric; bool m_metricHasBeenSet = false; PerformanceInsightsMetricDimensionGroup m_groupBy; bool m_groupByHasBeenSet = false; Aws::Map m_filter; bool m_filterHasBeenSet = false; }; } // namespace Model } // namespace DevOpsGuru } // namespace Aws