import { Command as $Command } from "@smithy/smithy-client"; import type { MetadataBearer as __MetadataBearer } from "@smithy/types"; import type { CloudWatchClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../CloudWatchClient"; import type { GetMetricDataInput, GetMetricDataOutput } from "../models/models_0"; /** * @public */ export type { __MetadataBearer }; export { $Command }; /** * @public * * The input for {@link GetMetricDataCommand}. */ export interface GetMetricDataCommandInput extends GetMetricDataInput { } /** * @public * * The output of {@link GetMetricDataCommand}. */ export interface GetMetricDataCommandOutput extends GetMetricDataOutput, __MetadataBearer { } declare const GetMetricDataCommand_base: { new (input: GetMetricDataCommandInput): import("@smithy/smithy-client").CommandImpl; new (input: GetMetricDataCommandInput): import("@smithy/smithy-client").CommandImpl; getEndpointParameterInstructions(): import("@smithy/middleware-endpoint").EndpointParameterInstructions; }; /** *

You can use the GetMetricData API to retrieve CloudWatch metric * values. The operation can also include a CloudWatch Metrics Insights query, and * one or more metric math functions.

*

A GetMetricData operation that does not include a query can retrieve * as many as 500 different metrics in a single request, with a total of as many as 100,800 * data points. You can also optionally perform metric math expressions on the values of * the returned statistics, to create new time series that represent new insights into your * data. For example, using Lambda metrics, you could divide the Errors metric by the * Invocations metric to get an error rate time series. For more information about metric * math expressions, see Metric Math Syntax and Functions in the Amazon CloudWatch User * Guide.

*

If you include a Metrics Insights query, each GetMetricData operation can * include only one query. But the same GetMetricData operation can also * retrieve other metrics. Metrics Insights queries can query only the most recent three * hours of metric data. For more information about Metrics Insights, see Query your metrics with CloudWatch Metrics Insights.

*

Calls to the GetMetricData API have a different pricing structure than * calls to GetMetricStatistics. For more information about pricing, see * Amazon CloudWatch * Pricing.

*

Amazon CloudWatch retains metric data as follows:

* *

Data points that are initially published with a shorter period are aggregated * together for long-term storage. For example, if you collect data using a period of 1 * minute, the data remains available for 15 days with 1-minute resolution. After 15 days, * this data is still available, but is aggregated and retrievable only with a resolution * of 5 minutes. After 63 days, the data is further aggregated and is available with a * resolution of 1 hour.

*

If you omit Unit in your request, all data that was collected with any * unit is returned, along with the corresponding units that were specified when the data * was reported to CloudWatch. If you specify a unit, the operation returns only data that * was collected with that unit specified. If you specify a unit that does not match the * data collected, the results of the operation are null. CloudWatch does not perform unit * conversions.

*

* Using Metrics Insights queries with metric * math *

*

You can't mix a Metric Insights query and metric math syntax in the same expression, * but you can reference results from a Metrics Insights query within other Metric math * expressions. A Metrics Insights query without a GROUP * BY clause returns a single time-series (TS), and can be used as input for * a metric math expression that expects a single time series. A Metrics Insights query * with a GROUP BY clause returns an array of time-series * (TS[]), and can be used as input for a metric math expression that expects an array of * time series.

* @example * Use a bare-bones client and the command you need to make an API call. * ```javascript * import { CloudWatchClient, GetMetricDataCommand } from "@aws-sdk/client-cloudwatch"; // ES Modules import * // const { CloudWatchClient, GetMetricDataCommand } = require("@aws-sdk/client-cloudwatch"); // CommonJS import * // import type { CloudWatchClientConfig } from "@aws-sdk/client-cloudwatch"; * const config = {}; // type is CloudWatchClientConfig * const client = new CloudWatchClient(config); * const input = { // GetMetricDataInput * MetricDataQueries: [ // MetricDataQueries // required * { // MetricDataQuery * Id: "STRING_VALUE", // required * MetricStat: { // MetricStat * Metric: { // Metric * Namespace: "STRING_VALUE", * MetricName: "STRING_VALUE", * Dimensions: [ // Dimensions * { // Dimension * Name: "STRING_VALUE", // required * Value: "STRING_VALUE", // required * }, * ], * }, * Period: Number("int"), // required * Stat: "STRING_VALUE", // required * Unit: "Seconds" || "Microseconds" || "Milliseconds" || "Bytes" || "Kilobytes" || "Megabytes" || "Gigabytes" || "Terabytes" || "Bits" || "Kilobits" || "Megabits" || "Gigabits" || "Terabits" || "Percent" || "Count" || "Bytes/Second" || "Kilobytes/Second" || "Megabytes/Second" || "Gigabytes/Second" || "Terabytes/Second" || "Bits/Second" || "Kilobits/Second" || "Megabits/Second" || "Gigabits/Second" || "Terabits/Second" || "Count/Second" || "None", * }, * Expression: "STRING_VALUE", * Label: "STRING_VALUE", * ReturnData: true || false, * Period: Number("int"), * AccountId: "STRING_VALUE", * }, * ], * StartTime: new Date("TIMESTAMP"), // required * EndTime: new Date("TIMESTAMP"), // required * NextToken: "STRING_VALUE", * ScanBy: "TimestampDescending" || "TimestampAscending", * MaxDatapoints: Number("int"), * LabelOptions: { // LabelOptions * Timezone: "STRING_VALUE", * }, * }; * const command = new GetMetricDataCommand(input); * const response = await client.send(command); * // { // GetMetricDataOutput * // MetricDataResults: [ // MetricDataResults * // { // MetricDataResult * // Id: "STRING_VALUE", * // Label: "STRING_VALUE", * // Timestamps: [ // Timestamps * // new Date("TIMESTAMP"), * // ], * // Values: [ // DatapointValues * // Number("double"), * // ], * // StatusCode: "Complete" || "InternalError" || "PartialData" || "Forbidden", * // Messages: [ // MetricDataResultMessages * // { // MessageData * // Code: "STRING_VALUE", * // Value: "STRING_VALUE", * // }, * // ], * // }, * // ], * // NextToken: "STRING_VALUE", * // Messages: [ * // { * // Code: "STRING_VALUE", * // Value: "STRING_VALUE", * // }, * // ], * // }; * * ``` * * @param GetMetricDataCommandInput - {@link GetMetricDataCommandInput} * @returns {@link GetMetricDataCommandOutput} * @see {@link GetMetricDataCommandInput} for command's `input` shape. * @see {@link GetMetricDataCommandOutput} for command's `response` shape. * @see {@link CloudWatchClientResolvedConfig | config} for CloudWatchClient's `config` shape. * * @throws {@link InvalidNextToken} (client fault) *

The next token specified is invalid.

* * @throws {@link CloudWatchServiceException} *

Base exception class for all service exceptions from CloudWatch service.

* * * @public */ export declare class GetMetricDataCommand extends GetMetricDataCommand_base { /** @internal type navigation helper, not in runtime. */ protected static __types: { api: { input: GetMetricDataInput; output: GetMetricDataOutput; }; sdk: { input: GetMetricDataCommandInput; output: GetMetricDataCommandOutput; }; }; }