// Copyright 2019 Yunion // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License 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 aws import ( "time" "github.com/aws/aws-sdk-go/aws" "github.com/aws/aws-sdk-go/service/cloudwatch" ) func (self *SRegion) GetMonitorData(name string, ns string, instanceId string, since time.Time, until time.Time) (*cloudwatch.GetMetricStatisticsOutput, error) { params := cloudwatch.GetMetricStatisticsInput{} params.MetricName = &name params.Namespace = &ns params.Period = aws.Int64(int64(1)) params.Statistics = []*string{aws.String("Average")} params.Dimensions = []*cloudwatch.Dimension{&cloudwatch.Dimension{ Name: aws.String("InstanceId"), Value: aws.String(instanceId), }} if !since.IsZero() { params.StartTime = aws.Time(since) } if !until.IsZero() { params.EndTime = aws.Time(until) } dataPoints := cloudwatch.GetMetricStatisticsOutput{} err := self.cloudWatchRequest("GetMetricStatistics", ¶ms, &dataPoints) return &dataPoints, err }