@@ -5,13 +5,16 @@ import (
55 "fmt"
66 "time"
77
8+ "github.com/tencentyun/tencentcloud-exporter/pkg/util"
9+
810 "github.com/tencentyun/tencentcloud-exporter/pkg/common"
911
1012 "github.com/go-kit/log"
1113 "github.com/go-kit/log/level"
1214 "golang.org/x/time/rate"
1315
1416 monitor "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/monitor/v20180724"
17+ v20180724 "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/monitor/v20180724"
1518 "github.com/tencentyun/tencentcloud-exporter/pkg/client"
1619 "github.com/tencentyun/tencentcloud-exporter/pkg/config"
1720)
@@ -33,10 +36,11 @@ type TcmMetricRepository interface {
3336}
3437
3538type TcmMetricRepositoryImpl struct {
36- credential common.CredentialIface
37- monitorClient * monitor.Client
38- limiter * rate.Limiter // 限速
39- ctx context.Context
39+ credential common.CredentialIface
40+ monitorClient * monitor.Client
41+ monitorClientInGuangzhou * monitor.Client
42+ limiter * rate.Limiter // 限速
43+ ctx context.Context
4044
4145 queryMetricBatchSize int
4246
@@ -121,14 +125,20 @@ func (repo *TcmMetricRepositoryImpl) GetSamples(s *TcmSeries, st int64, et int64
121125 }
122126 request .Instances = []* monitor.Instance {instanceFilters }
123127
124- stStr := time .Unix (st , 0 ). Format ( timeStampFormat )
128+ stStr := util . FormatTime ( time .Unix (st , 0 ), timeStampFormat )
125129 request .StartTime = & stStr
126130 if et != 0 {
127- etStr := time .Unix (et , 0 ). Format ( timeStampFormat )
128- request .StartTime = & etStr
131+ etStr := util . FormatTime ( time .Unix (et , 0 ), timeStampFormat )
132+ request .EndTime = & etStr
129133 }
130134
131- response , err := repo .monitorClient .GetMonitorData (request )
135+ response := & v20180724.GetMonitorDataResponse {}
136+ if util .IsStrInList (config .QcloudNamespace , s .Metric .Meta .ProductName ) {
137+ response , err = repo .monitorClientInGuangzhou .GetMonitorData (request )
138+ } else {
139+ response , err = repo .monitorClient .GetMonitorData (request )
140+ }
141+ level .Info (repo .logger ).Log ("reqid" ,response .Response .RequestId )
132142 if err != nil {
133143 return
134144 }
@@ -174,7 +184,14 @@ func (repo *TcmMetricRepositoryImpl) listSampleByBatch(
174184 }
175185
176186 request := repo .buildGetMonitorDataRequest (m , seriesList , st , et )
177- response , err := repo .monitorClient .GetMonitorData (request )
187+
188+ response := & v20180724.GetMonitorDataResponse {}
189+ if util .IsStrInList (config .QcloudNamespace , m .Meta .ProductName ) {
190+ response , err = repo .monitorClientInGuangzhou .GetMonitorData (request )
191+ } else {
192+ response , err = repo .monitorClient .GetMonitorData (request )
193+ }
194+ level .Info (repo .logger ).Log ("reqid" ,response .Response .RequestId )
178195 if err != nil {
179196 return nil , err
180197 }
@@ -217,11 +234,11 @@ func (repo *TcmMetricRepositoryImpl) buildGetMonitorDataRequest(
217234 request .Instances = append (request .Instances , ifilters )
218235 }
219236
220- stStr := time .Unix (st , 0 ). Format ( timeStampFormat )
237+ stStr := util . FormatTime ( time .Unix (st , 0 ), timeStampFormat )
221238 request .StartTime = & stStr
222239 if et != 0 {
223- etStr := time .Unix (et , 0 ). Format ( timeStampFormat )
224- request .StartTime = & etStr
240+ etStr := util . FormatTime ( time .Unix (et , 0 ), timeStampFormat )
241+ request .EndTime = & etStr
225242 }
226243 return request
227244}
@@ -259,18 +276,23 @@ func (repo *TcmMetricRepositoryImpl) buildSamples(
259276}
260277
261278func NewTcmMetricRepository (cred common.CredentialIface , conf * config.TencentConfig , logger log.Logger ) (repo TcmMetricRepository , err error ) {
262- monitorClient , err := client .NewMonitorClient (cred , conf )
279+ monitorClient , err := client .NewMonitorClient (cred , conf , conf .Credential .Region )
280+ if err != nil {
281+ return
282+ }
283+ monitorClientInGuangzhou , err := client .NewMonitorClient (cred , conf , "ap-guangzhou" )
263284 if err != nil {
264285 return
265286 }
266287
267288 repo = & TcmMetricRepositoryImpl {
268- credential : cred ,
269- monitorClient : monitorClient ,
270- limiter : rate .NewLimiter (rate .Limit (conf .RateLimit ), 1 ),
271- ctx : context .Background (),
272- queryMetricBatchSize : conf .MetricQueryBatchSize ,
273- logger : logger ,
289+ credential : cred ,
290+ monitorClient : monitorClient ,
291+ monitorClientInGuangzhou : monitorClientInGuangzhou ,
292+ limiter : rate .NewLimiter (rate .Limit (conf .RateLimit ), 1 ),
293+ ctx : context .Background (),
294+ queryMetricBatchSize : conf .MetricQueryBatchSize ,
295+ logger : logger ,
274296 }
275297
276298 return
0 commit comments