Files
cloudpods/pkg/multicloud/aws/monitor.go
2020-01-17 10:28:00 +08:00

45 lines
1.4 KiB
Go

// 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", &params, &dataPoints)
return &dataPoints, err
}