Skip to content

Commit b2a8971

Browse files
authored
Merge pull request #55 from tencentyun/dev/yueyue1
Dev/yueyue1
2 parents 8d82d18 + 546478e commit b2a8971

19 files changed

+1252
-137
lines changed

go.mod

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,11 @@ require (
1010
github.com/stretchr/testify v1.6.1
1111
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cbs v1.0.334
1212
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cdb v1.0.413
13+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cdn v1.0.423
1314
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/ckafka v1.0.334
1415
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/clb v1.0.334
1516
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cmq v1.0.334
16-
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.413
17+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.430
1718
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cvm v1.0.334
1819
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cynosdb v1.0.413
1920
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/dc v1.0.334
@@ -28,8 +29,9 @@ require (
2829
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/redis v1.0.334
2930
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/sqlserver v1.0.334
3031
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tdmq v1.0.413
31-
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tse v1.0.413
32+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tse v1.0.430
3233
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vpc v1.0.334
34+
github.com/tencentyun/cos-go-sdk-v5 v0.7.35
3335
golang.org/x/time v0.0.0-20200630173020-3af7569d3a1e
3436
gopkg.in/alecthomas/kingpin.v2 v2.2.6
3537
gopkg.in/yaml.v2 v2.2.5

go.sum

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
github.com/QcloudApi/qcloud_sign_golang v0.0.0-20141224014652-e4130a326409/go.mod h1:1pk82RBxDY/JZnPQrtqHlUFfCctgdorsd9M06fMynOM=
12
github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
23
github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751 h1:JYp7IbQjafoB+tBA3gMyHYHrpOtNuDiK/uB5uXxq5wM=
34
github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
@@ -10,6 +11,8 @@ github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM=
1011
github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw=
1112
github.com/cespare/xxhash/v2 v2.1.1 h1:6MnRN8NT7+YBpUIWxHtefFZOKTAPgGjpQSxqLNn0+qY=
1213
github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
14+
github.com/clbanning/mxj v1.8.4 h1:HuhwZtbyvyOw+3Z1AowPkU87JkJUSv751ELWaiTpj8I=
15+
github.com/clbanning/mxj v1.8.4/go.mod h1:BVjHeAH+rl9rs6f+QIpeRl0tfu10SXn1pUSa5PVGJng=
1316
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
1417
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
1518
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
@@ -31,7 +34,10 @@ github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5y
3134
github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
3235
github.com/google/go-cmp v0.4.0 h1:xsAVV57WRhGj6kEIi8ReJzQlHHqcBYCElAvkovg3B/4=
3336
github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
37+
github.com/google/go-querystring v1.0.0 h1:Xkwi/a1rcvNg1PPYe5vI8GbeBY/jrVuDX5ASuANWTrk=
38+
github.com/google/go-querystring v1.0.0/go.mod h1:odCYkC5MyYFN7vkCjXpyrEuKhc/BUO6wN/zVPAxq5ck=
3439
github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
40+
github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
3541
github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU=
3642
github.com/json-iterator/go v1.1.9/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
3743
github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w=
@@ -45,10 +51,14 @@ github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE=
4551
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
4652
github.com/matttproud/golang_protobuf_extensions v1.0.1 h1:4hp9jkHxhMHkqkrB3Ix0jegS5sx/RkqARlsWZ6pIwiU=
4753
github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0=
54+
github.com/mitchellh/mapstructure v1.4.3 h1:OVowDSCllw/YjdLkam3/sm7wEtOy59d8ndGgCcyj8cs=
55+
github.com/mitchellh/mapstructure v1.4.3/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo=
4856
github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
4957
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
5058
github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0=
5159
github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0=
60+
github.com/mozillazg/go-httpheader v0.2.1 h1:geV7TrjbL8KXSyvghnFm+NyTux/hxwueTSrwhe88TQQ=
61+
github.com/mozillazg/go-httpheader v0.2.1/go.mod h1:jJ8xECTlalr6ValeXYdOF8fFUISeBAdw6E61aqQma60=
5262
github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U=
5363
github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
5464
github.com/pkg/errors v0.8.1 h1:iURUrRGxPUNPdy5/HRSm+Yj6okJ6UtLINN0Q9M4+h3I=
@@ -81,22 +91,34 @@ github.com/stretchr/testify v1.6.1 h1:hDPOHmpOpP40lSULcqw7IrRb/u7w6RpDC9399XyoNd
8191
github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
8292
github.com/tencentcloud/tencentcloud-sdk-go v1.0.413 h1:6mBQybv/rsrOCnzhifwJnSE7ki2EGfzRKb8+yPIijl8=
8393
github.com/tencentcloud/tencentcloud-sdk-go v1.0.414 h1:1fAd3HgD+emgJBh0+q1SL04PfTZuy7iBfcY4Mvvkd1U=
94+
github.com/tencentcloud/tencentcloud-sdk-go v1.0.427 h1:AY1eqZmNax/PBqmSn5GVKqOSxLF3oJaLNTS5ANIcCrY=
95+
github.com/tencentcloud/tencentcloud-sdk-go v1.0.429 h1:prdy8TCzdpyBctZq0jBFU1VvRs7cqTS1gUf4hCZ0UA4=
96+
github.com/tencentcloud/tencentcloud-sdk-go v1.0.430 h1:jr8NBcOk/avNLLJkU6iPGdP2X+izenwSkp5uX+P1wy8=
8497
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cbs v1.0.334 h1:GijOjoDBcWXtra6hmzpj4IXOahWmsTE3bwpOcp5VBDw=
8598
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cbs v1.0.334/go.mod h1:PTp058qpOV//RukBVdYQT962rZg71lIt6eHLK1zdvEc=
8699
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cdb v1.0.334 h1:1NDpg/jeMASV09JFLMe7yU53QA9gY55H4X1j39JZ78w=
87100
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cdb v1.0.334/go.mod h1:BMLd7J4LnIxw3fSl9vo3UCudJbH1wZutP8Uo3sQGQTk=
88101
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cdb v1.0.413 h1:6cQPfHc3I1pKUj23csRd9P/xxUPcnGRLRK2e5NGqtzc=
89102
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cdb v1.0.413/go.mod h1:TEuicyMWitW1zPkLbknGYg+VBGNE5N7GckvCF+hurWo=
103+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cdn v1.0.423 h1:MPJZWpBsOepykukmQD6GWIuv4uOy6JqEbPc8+G/rdGQ=
104+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cdn v1.0.423/go.mod h1:tfvvxesOH0nCkIvWC53uVjzM4bEShcI8jBUE5FONAec=
90105
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/ckafka v1.0.334 h1:LOXFeP3NHL/0PFFXA2GhYH/i7rDbcBwhcJJvqRdFO/w=
91106
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/ckafka v1.0.334/go.mod h1:toYhD7pJDpz6XY3cf/zhUXtKDRt1CbLkgmOidQ2j8kA=
92107
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/clb v1.0.334 h1:NeYNgw78v+qhxWbROjHaazaeEWigt6xTvg7CUS1dt6g=
93108
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/clb v1.0.334/go.mod h1:zgARzAnsLzpLhdpAHrHTUilOXytH9aEJy5ssCdizVV0=
94109
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cmq v1.0.334 h1:NlMAh8vTnQdXzRSA0DTZ+KZ+/ZM2/UPIFUUNFIiDfbg=
95110
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cmq v1.0.334/go.mod h1:lMGRATy+K7bKhXtxNTqRbSmaCy48xSQXPJqc1tYV50k=
111+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.194/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y=
96112
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.334 h1:tNkXg+cTnESAX6EmQWfF05NsYfD7U8qKtk/3YbWOCKk=
97113
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.334/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y=
98114
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.413 h1:DvydszksqriOr0Zze9OREt8OrIrtMSFcVD8lz3xNAQA=
99115
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.413/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y=
116+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.423 h1:3Tv9gpsf9YuaNsbAE2ybDjrRrQqG3PiBOq/HoOJxSZY=
117+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.423/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y=
118+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.429 h1:9c+9TDjfAjIYLQQtr1FV6qeYyNfTz1O0vFmQHbT4vYY=
119+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.429/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y=
120+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.430 h1:mGlGWepu+R50WZX9YwNs0VaoSLOTEr323rjiRfiD1fE=
121+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.430/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y=
100122
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cvm v1.0.334 h1:ulfSODMy8rpKa8MfnTIPbe5HyOArnlB4RJ1qmpj09to=
101123
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cvm v1.0.334/go.mod h1:AqyM/ZZMD7q5mHBqNY9YImbSpEpoEe7E/vrTbUWX+po=
102124
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cynosdb v1.0.413 h1:MomwSkFrSLB16s51Yu1h4JO+p3Pzc1yesIj+oNwAVM0=
@@ -107,6 +129,7 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/dcdb v1.0.334 h1:Xxe889
107129
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/dcdb v1.0.334/go.mod h1:uvcrduqH3pPyyZoZyEX0WXlXIR554ys3ctSsKoeJp64=
108130
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/es v1.0.334 h1:oXOMQ2EmNjqMfpShQeCrWS5QH2MwrAhJfd0rLJOxccE=
109131
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/es v1.0.334/go.mod h1:UegCt4vv9jAlzpgDu31ZJTuRP5T2BTV8w+jZBTsZIzg=
132+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/kms v1.0.194/go.mod h1:yrBKWhChnDqNz1xuXdSbWXG56XawEq0G5j1lg4VwBD4=
110133
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/lighthouse v1.0.334 h1:druwbDkTAvVwEGW4nHVuTuOX0bjk1CtLUDiC3r4gmgY=
111134
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/lighthouse v1.0.334/go.mod h1:r8txjlw4DjLDZFOpnPC/hOFHr1VckZc0jjBK6XIFLP0=
112135
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/mariadb v1.0.334 h1:nfyRQ4PDwJ20Kze2D+axcdPx4gKz8DWM89dZRFnRjsU=
@@ -127,8 +150,14 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tdmq v1.0.413 h1:nNYCih
127150
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tdmq v1.0.413/go.mod h1:rMQYgt5anP1/ME1c+0Apo1W9250pbEn5oQ+cNMAo1U0=
128151
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tse v1.0.413 h1:CniS5OHzPsajRc5cWqJ9X62QKm9mbdTv9yhp5qY7uSs=
129152
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tse v1.0.413/go.mod h1:6ZY4UsmCp2fvcLsahzBtSeLOc0IXxCHrPDmccBaOpJs=
153+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tse v1.0.429 h1:bEN8pkNwpc2kbsxIxeXtPVSWG9JNPNBKChg+xUbbqmM=
154+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tse v1.0.429/go.mod h1:ID5dRwzba+NlOYHEoo9F8A+eDeQohJ8LoLCP3OzO4uo=
155+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tse v1.0.430 h1:Brvrm1ZzBcS1q1XXpPx//zlVIbUZ4+cryrMYYHFGn3g=
156+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tse v1.0.430/go.mod h1:rJoqfhS+Y0GmdZuS/N4bFXfDJeh/N59W6hojoTRQ6v0=
130157
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vpc v1.0.334 h1:rcM2H2e8kqxv7pZcsBdaIMitNd65+3iTM8aK/q6LS7U=
131158
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vpc v1.0.334/go.mod h1:SKgeSsIfPEM6BeoIFiGHsWG9UsEXzkK0SkWx51H/OS8=
159+
github.com/tencentyun/cos-go-sdk-v5 v0.7.35 h1:XVk5GQ4eH1q+DBUJfpaMMdU9TJZWMjwNNwv0PG5nbLQ=
160+
github.com/tencentyun/cos-go-sdk-v5 v0.7.35/go.mod h1:4dCEtLHGh8QPxHEkgq+nFaky7yZxQuYwgSJM87icDaw=
132161
golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
133162
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
134163
golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=

pkg/client/client.go

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package client
33
import (
44
cbs "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cbs/v20170312"
55
cdb "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cdb/v20170320"
6+
cdn "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cdn/v20180606"
67
kafka "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/ckafka/v20190819"
78
clb "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/clb/v20180317"
89
cmq "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cmq/v20190304"
@@ -24,6 +25,10 @@ import (
2425
tdmq "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tdmq/v20200217"
2526
tse "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tse/v20201207"
2627
vpc "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vpc/v20170312"
28+
"net/http"
29+
"net/url"
30+
31+
cos "github.com/tencentyun/cos-go-sdk-v5"
2732

2833
"github.com/tencentyun/tencentcloud-exporter/pkg/config"
2934
)
@@ -321,3 +326,30 @@ func NewCynosdbClient(conf *config.TencentConfig) (*cynosdb.Client, error) {
321326
}
322327
return cynosdb.NewClient(credential, conf.Credential.Region, cpf)
323328
}
329+
330+
func NewCdnClient(conf *config.TencentConfig) (*cdn.Client, error) {
331+
credential := common.NewCredential(
332+
conf.Credential.AccessKey,
333+
conf.Credential.SecretKey,
334+
)
335+
cpf := profile.NewClientProfile()
336+
if conf.Credential.IsInternal == true {
337+
cpf.HttpProfile.Endpoint = "cdn.internal.tencentcloudapi.com"
338+
} else {
339+
cpf.HttpProfile.Endpoint = "cdn.tencentcloudapi.com"
340+
}
341+
return cdn.NewClient(credential, "", cpf)
342+
}
343+
344+
func NewCosClient(conf *config.TencentConfig) (*cos.Client, error) {
345+
// 用于Get Service 查询, service域名暂时只支持外网
346+
su, _ := url.Parse("http://cos." + conf.Credential.Region + ".tencentcos.cn")
347+
b := &cos.BaseURL{BucketURL: nil, ServiceURL: su}
348+
client := cos.NewClient(b, &http.Client{
349+
Transport: &cos.AuthorizationTransport{
350+
SecretID: conf.Credential.AccessKey,
351+
SecretKey: conf.Credential.SecretKey,
352+
},
353+
})
354+
return client, nil
355+
}

pkg/collector/handler_cdn.go

Lines changed: 90 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,15 @@ package collector
22

33
import (
44
"fmt"
5-
65
"github.com/go-kit/kit/log"
76
"github.com/go-kit/kit/log/level"
87
"github.com/tencentyun/tencentcloud-exporter/pkg/metric"
98
"github.com/tencentyun/tencentcloud-exporter/pkg/util"
109
)
1110

1211
const (
13-
CdnNamespace = "QCE/CDN"
12+
CdnNamespace = "QCE/CDN"
13+
CdnInstanceidKey = "domain"
1414
)
1515

1616
func init() {
@@ -30,10 +30,97 @@ func (h *cdnHandler) GetNamespace() string {
3030
}
3131

3232
func (h *cdnHandler) IsMetricVaild(m *metric.TcmMetric) bool {
33+
_, ok := excludeMetricName[m.Meta.MetricName]
34+
if ok {
35+
return false
36+
}
37+
p, err := m.Meta.GetPeriod(m.Conf.StatPeriodSeconds)
38+
if err != nil {
39+
return false
40+
}
41+
if p != m.Conf.StatPeriodSeconds {
42+
return false
43+
}
3344
return true
3445
}
3546

3647
func (h *cdnHandler) GetSeries(m *metric.TcmMetric) (slist []*metric.TcmSeries, err error) {
48+
if m.Conf.IsIncludeOnlyInstance() {
49+
return h.GetSeriesByOnly(m)
50+
}
51+
52+
if m.Conf.IsIncludeAllInstance() {
53+
return h.GetSeriesByAll(m)
54+
}
55+
56+
if m.Conf.IsCustomQueryDimensions() {
57+
return h.GetSeriesByCustom(m)
58+
}
59+
60+
return nil, fmt.Errorf("must config all_instances or only_include_instances or custom_query_dimensions")
61+
}
62+
func (h *cdnHandler) GetSeriesByOnly(m *metric.TcmMetric) ([]*metric.TcmSeries, error) {
63+
var slist []*metric.TcmSeries
64+
for _, insId := range m.Conf.OnlyIncludeInstances {
65+
ins, err := h.collector.InstanceRepo.Get(insId)
66+
if err != nil {
67+
level.Error(h.logger).Log("msg", "Instance not found", "id", insId)
68+
continue
69+
}
70+
projectId, err := ins.GetFieldValueByName("ProjectId")
71+
domain, err := ins.GetFieldValueByName("Domain")
72+
if err != nil {
73+
level.Error(h.logger).Log("msg", "projectId not found")
74+
continue
75+
}
76+
ql := map[string]string{
77+
"domain": domain,
78+
"projectId": projectId,
79+
}
80+
s, err := metric.NewTcmSeries(m, ql, ins)
81+
if err != nil {
82+
level.Error(h.logger).Log("msg", "Create metric series fail",
83+
"metric", m.Meta.MetricName, "instacne", insId)
84+
continue
85+
}
86+
slist = append(slist, s)
87+
}
88+
return slist, nil
89+
}
90+
91+
func (h *cdnHandler) GetSeriesByAll(m *metric.TcmMetric) ([]*metric.TcmSeries, error) {
92+
var slist []*metric.TcmSeries
93+
insList, err := h.collector.InstanceRepo.ListByFilters(m.Conf.InstanceFilters)
94+
if err != nil {
95+
return nil, err
96+
}
97+
for _, ins := range insList {
98+
if len(m.Conf.ExcludeInstances) != 0 && util.IsStrInList(m.Conf.ExcludeInstances, ins.GetInstanceId()) {
99+
continue
100+
}
101+
projectId, err := ins.GetFieldValueByName("ProjectId")
102+
domain, err := ins.GetFieldValueByName("Domain")
103+
if err != nil {
104+
level.Error(h.logger).Log("msg", "projectId not found")
105+
continue
106+
}
107+
ql := map[string]string{
108+
"domain": domain,
109+
"projectId": projectId,
110+
}
111+
s, err := metric.NewTcmSeries(m, ql, ins)
112+
if err != nil {
113+
level.Error(h.logger).Log("msg", "Create metric series fail",
114+
"metric", m.Meta.MetricName, "instacne", ins.GetInstanceId())
115+
continue
116+
}
117+
slist = append(slist, s)
118+
}
119+
return slist, nil
120+
}
121+
122+
func (h *cdnHandler) GetSeriesByCustom(m *metric.TcmMetric) ([]*metric.TcmSeries, error) {
123+
var slist []*metric.TcmSeries
37124
for _, ql := range m.Conf.CustomQueryDimensions {
38125
if !h.checkMonitorQueryKeys(m, ql) {
39126
continue
@@ -47,7 +134,7 @@ func (h *cdnHandler) GetSeries(m *metric.TcmMetric) (slist []*metric.TcmSeries,
47134
}
48135
slist = append(slist, s)
49136
}
50-
return
137+
return slist, nil
51138
}
52139

53140
func (h *cdnHandler) checkMonitorQueryKeys(m *metric.TcmMetric, ql map[string]string) bool {

pkg/collector/handler_cos.go

Lines changed: 45 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,52 @@ func (h *cosHandler) IsMetricVaild(m *metric.TcmMetric) bool {
4040
}
4141
return true
4242
}
43-
4443
func (h *cosHandler) GetSeries(m *metric.TcmMetric) (slist []*metric.TcmSeries, err error) {
44+
if m.Conf.IsIncludeOnlyInstance() {
45+
return h.GetSeriesByOnly(m)
46+
}
47+
48+
if m.Conf.IsIncludeAllInstance() {
49+
return h.GetSeriesByAll(m)
50+
}
51+
52+
if m.Conf.IsCustomQueryDimensions() {
53+
return h.GetSeriesByCustom(m)
54+
}
55+
56+
return nil, fmt.Errorf("must config all_instances or only_include_instances or custom_query_dimensions")
57+
}
58+
59+
func (h *cosHandler) GetSeriesByAll(m *metric.TcmMetric) ([]*metric.TcmSeries, error) {
60+
var slist []*metric.TcmSeries
61+
insList, err := h.collector.InstanceRepo.ListByFilters(m.Conf.InstanceFilters)
62+
if err != nil {
63+
return nil, err
64+
}
65+
for _, ins := range insList {
66+
if len(m.Conf.ExcludeInstances) != 0 && util.IsStrInList(m.Conf.ExcludeInstances, ins.GetInstanceId()) {
67+
continue
68+
}
69+
bucket, err := ins.GetFieldValueByName("Name")
70+
if err != nil {
71+
level.Error(h.logger).Log("msg", "projectId not found")
72+
continue
73+
}
74+
ql := map[string]string{
75+
"bucket": bucket,
76+
}
77+
s, err := metric.NewTcmSeries(m, ql, ins)
78+
if err != nil {
79+
level.Error(h.logger).Log("msg", "Create metric series fail",
80+
"metric", m.Meta.MetricName, "instacne", ins.GetInstanceId())
81+
continue
82+
}
83+
slist = append(slist, s)
84+
}
85+
return slist, nil
86+
}
87+
88+
func (h *cosHandler) GetSeriesByCustom(m *metric.TcmMetric) (slist []*metric.TcmSeries, err error) {
4589
for _, ql := range m.Conf.CustomQueryDimensions {
4690
if !h.checkMonitorQueryKeys(m, ql) {
4791
continue

0 commit comments

Comments
 (0)