/* * Copyright 2018-2023 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with * the License. A copy of the License is located at * * http://aws.amazon.com/apache2.0 * * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions * and limitations under the License. */ package com.amazonaws.services.pi.model; import java.io.Serializable; import javax.annotation.Generated; import com.amazonaws.protocol.StructuredPojo; import com.amazonaws.protocol.ProtocolMarshaller; /** *

* A single query to be processed. You must provide the metric to query. If no other parameters are specified, * Performance Insights returns all data points for the specified metric. Optionally, you can request that the data * points be aggregated by dimension group (GroupBy), and return only those data points that match your * criteria (Filter). *

* * @see AWS API * Documentation */ @Generated("com.amazonaws:aws-java-sdk-code-generator") public class MetricQuery implements Serializable, Cloneable, StructuredPojo { /** *

* The name of a Performance Insights metric to be measured. *

*

* Valid values for Metric are: *

* *

* 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. *

*/ private String metric; /** *

* A specification for how to aggregate the data points from a query result. You must specify a valid dimension * group. Performance Insights will return 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. *

*/ private DimensionGroup groupBy; /** *

* One or more filters to apply in the request. Restrictions: *

* */ private java.util.Map filter; /** *

* The name of a Performance Insights metric to be measured. *

*

* Valid values for Metric are: *

* *

* 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. *

* * @param metric * The name of a Performance Insights metric to be measured.

*

* Valid values for Metric are: *

* *

* 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. */ public void setMetric(String metric) { this.metric = metric; } /** *

* The name of a Performance Insights metric to be measured. *

*

* Valid values for Metric are: *

* *

* 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. *

* * @return The name of a Performance Insights metric to be measured.

*

* Valid values for Metric are: *

* *

* 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. */ public String getMetric() { return this.metric; } /** *

* The name of a Performance Insights metric to be measured. *

*

* Valid values for Metric are: *

* *

* 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. *

* * @param metric * The name of a Performance Insights metric to be measured.

*

* Valid values for Metric are: *

* *

* 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. * @return Returns a reference to this object so that method calls can be chained together. */ public MetricQuery withMetric(String metric) { setMetric(metric); return this; } /** *

* A specification for how to aggregate the data points from a query result. You must specify a valid dimension * group. Performance Insights will return 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. *

* * @param groupBy * A specification for how to aggregate the data points from a query result. You must specify a valid * dimension group. Performance Insights will return 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. */ public void setGroupBy(DimensionGroup groupBy) { this.groupBy = groupBy; } /** *

* A specification for how to aggregate the data points from a query result. You must specify a valid dimension * group. Performance Insights will return 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. *

* * @return A specification for how to aggregate the data points from a query result. You must specify a valid * dimension group. Performance Insights will return 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. */ public DimensionGroup getGroupBy() { return this.groupBy; } /** *

* A specification for how to aggregate the data points from a query result. You must specify a valid dimension * group. Performance Insights will return 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. *

* * @param groupBy * A specification for how to aggregate the data points from a query result. You must specify a valid * dimension group. Performance Insights will return 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. * @return Returns a reference to this object so that method calls can be chained together. */ public MetricQuery withGroupBy(DimensionGroup groupBy) { setGroupBy(groupBy); return this; } /** *

* One or more filters to apply in the request. Restrictions: *

* * * @return One or more filters to apply in the request. Restrictions:

*