Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 4 additions & 2 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,11 @@ require (
github.com/stretchr/testify v1.6.1
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cbs v1.0.334
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cdb v1.0.413
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cdn v1.0.423
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/ckafka v1.0.334
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/clb v1.0.334
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cmq v1.0.334
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.413
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.430
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cvm v1.0.334
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cynosdb v1.0.413
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/dc v1.0.334
Expand All @@ -28,8 +29,9 @@ require (
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/redis v1.0.334
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/sqlserver v1.0.334
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tdmq v1.0.413
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tse v1.0.413
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tse v1.0.430
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vpc v1.0.334
github.com/tencentyun/cos-go-sdk-v5 v0.7.35
golang.org/x/time v0.0.0-20200630173020-3af7569d3a1e
gopkg.in/alecthomas/kingpin.v2 v2.2.6
gopkg.in/yaml.v2 v2.2.5
Expand Down
29 changes: 29 additions & 0 deletions go.sum
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
github.com/QcloudApi/qcloud_sign_golang v0.0.0-20141224014652-e4130a326409/go.mod h1:1pk82RBxDY/JZnPQrtqHlUFfCctgdorsd9M06fMynOM=
github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751 h1:JYp7IbQjafoB+tBA3gMyHYHrpOtNuDiK/uB5uXxq5wM=
github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
Expand All @@ -10,6 +11,8 @@ github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM=
github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw=
github.com/cespare/xxhash/v2 v2.1.1 h1:6MnRN8NT7+YBpUIWxHtefFZOKTAPgGjpQSxqLNn0+qY=
github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
github.com/clbanning/mxj v1.8.4 h1:HuhwZtbyvyOw+3Z1AowPkU87JkJUSv751ELWaiTpj8I=
github.com/clbanning/mxj v1.8.4/go.mod h1:BVjHeAH+rl9rs6f+QIpeRl0tfu10SXn1pUSa5PVGJng=
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
Expand All @@ -31,7 +34,10 @@ github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5y
github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
github.com/google/go-cmp v0.4.0 h1:xsAVV57WRhGj6kEIi8ReJzQlHHqcBYCElAvkovg3B/4=
github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/google/go-querystring v1.0.0 h1:Xkwi/a1rcvNg1PPYe5vI8GbeBY/jrVuDX5ASuANWTrk=
github.com/google/go-querystring v1.0.0/go.mod h1:odCYkC5MyYFN7vkCjXpyrEuKhc/BUO6wN/zVPAxq5ck=
github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU=
github.com/json-iterator/go v1.1.9/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w=
Expand All @@ -45,10 +51,14 @@ github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE=
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
github.com/matttproud/golang_protobuf_extensions v1.0.1 h1:4hp9jkHxhMHkqkrB3Ix0jegS5sx/RkqARlsWZ6pIwiU=
github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0=
github.com/mitchellh/mapstructure v1.4.3 h1:OVowDSCllw/YjdLkam3/sm7wEtOy59d8ndGgCcyj8cs=
github.com/mitchellh/mapstructure v1.4.3/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo=
github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0=
github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0=
github.com/mozillazg/go-httpheader v0.2.1 h1:geV7TrjbL8KXSyvghnFm+NyTux/hxwueTSrwhe88TQQ=
github.com/mozillazg/go-httpheader v0.2.1/go.mod h1:jJ8xECTlalr6ValeXYdOF8fFUISeBAdw6E61aqQma60=
github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U=
github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
github.com/pkg/errors v0.8.1 h1:iURUrRGxPUNPdy5/HRSm+Yj6okJ6UtLINN0Q9M4+h3I=
Expand Down Expand Up @@ -81,22 +91,34 @@ github.com/stretchr/testify v1.6.1 h1:hDPOHmpOpP40lSULcqw7IrRb/u7w6RpDC9399XyoNd
github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
github.com/tencentcloud/tencentcloud-sdk-go v1.0.413 h1:6mBQybv/rsrOCnzhifwJnSE7ki2EGfzRKb8+yPIijl8=
github.com/tencentcloud/tencentcloud-sdk-go v1.0.414 h1:1fAd3HgD+emgJBh0+q1SL04PfTZuy7iBfcY4Mvvkd1U=
github.com/tencentcloud/tencentcloud-sdk-go v1.0.427 h1:AY1eqZmNax/PBqmSn5GVKqOSxLF3oJaLNTS5ANIcCrY=
github.com/tencentcloud/tencentcloud-sdk-go v1.0.429 h1:prdy8TCzdpyBctZq0jBFU1VvRs7cqTS1gUf4hCZ0UA4=
github.com/tencentcloud/tencentcloud-sdk-go v1.0.430 h1:jr8NBcOk/avNLLJkU6iPGdP2X+izenwSkp5uX+P1wy8=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cbs v1.0.334 h1:GijOjoDBcWXtra6hmzpj4IXOahWmsTE3bwpOcp5VBDw=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cbs v1.0.334/go.mod h1:PTp058qpOV//RukBVdYQT962rZg71lIt6eHLK1zdvEc=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cdb v1.0.334 h1:1NDpg/jeMASV09JFLMe7yU53QA9gY55H4X1j39JZ78w=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cdb v1.0.334/go.mod h1:BMLd7J4LnIxw3fSl9vo3UCudJbH1wZutP8Uo3sQGQTk=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cdb v1.0.413 h1:6cQPfHc3I1pKUj23csRd9P/xxUPcnGRLRK2e5NGqtzc=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cdb v1.0.413/go.mod h1:TEuicyMWitW1zPkLbknGYg+VBGNE5N7GckvCF+hurWo=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cdn v1.0.423 h1:MPJZWpBsOepykukmQD6GWIuv4uOy6JqEbPc8+G/rdGQ=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cdn v1.0.423/go.mod h1:tfvvxesOH0nCkIvWC53uVjzM4bEShcI8jBUE5FONAec=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/ckafka v1.0.334 h1:LOXFeP3NHL/0PFFXA2GhYH/i7rDbcBwhcJJvqRdFO/w=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/ckafka v1.0.334/go.mod h1:toYhD7pJDpz6XY3cf/zhUXtKDRt1CbLkgmOidQ2j8kA=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/clb v1.0.334 h1:NeYNgw78v+qhxWbROjHaazaeEWigt6xTvg7CUS1dt6g=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/clb v1.0.334/go.mod h1:zgARzAnsLzpLhdpAHrHTUilOXytH9aEJy5ssCdizVV0=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cmq v1.0.334 h1:NlMAh8vTnQdXzRSA0DTZ+KZ+/ZM2/UPIFUUNFIiDfbg=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cmq v1.0.334/go.mod h1:lMGRATy+K7bKhXtxNTqRbSmaCy48xSQXPJqc1tYV50k=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.194/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.334 h1:tNkXg+cTnESAX6EmQWfF05NsYfD7U8qKtk/3YbWOCKk=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.334/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.413 h1:DvydszksqriOr0Zze9OREt8OrIrtMSFcVD8lz3xNAQA=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.413/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.423 h1:3Tv9gpsf9YuaNsbAE2ybDjrRrQqG3PiBOq/HoOJxSZY=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.423/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.429 h1:9c+9TDjfAjIYLQQtr1FV6qeYyNfTz1O0vFmQHbT4vYY=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.429/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.430 h1:mGlGWepu+R50WZX9YwNs0VaoSLOTEr323rjiRfiD1fE=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.430/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cvm v1.0.334 h1:ulfSODMy8rpKa8MfnTIPbe5HyOArnlB4RJ1qmpj09to=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cvm v1.0.334/go.mod h1:AqyM/ZZMD7q5mHBqNY9YImbSpEpoEe7E/vrTbUWX+po=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cynosdb v1.0.413 h1:MomwSkFrSLB16s51Yu1h4JO+p3Pzc1yesIj+oNwAVM0=
Expand All @@ -107,6 +129,7 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/dcdb v1.0.334 h1:Xxe889
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/dcdb v1.0.334/go.mod h1:uvcrduqH3pPyyZoZyEX0WXlXIR554ys3ctSsKoeJp64=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/es v1.0.334 h1:oXOMQ2EmNjqMfpShQeCrWS5QH2MwrAhJfd0rLJOxccE=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/es v1.0.334/go.mod h1:UegCt4vv9jAlzpgDu31ZJTuRP5T2BTV8w+jZBTsZIzg=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/kms v1.0.194/go.mod h1:yrBKWhChnDqNz1xuXdSbWXG56XawEq0G5j1lg4VwBD4=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/lighthouse v1.0.334 h1:druwbDkTAvVwEGW4nHVuTuOX0bjk1CtLUDiC3r4gmgY=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/lighthouse v1.0.334/go.mod h1:r8txjlw4DjLDZFOpnPC/hOFHr1VckZc0jjBK6XIFLP0=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/mariadb v1.0.334 h1:nfyRQ4PDwJ20Kze2D+axcdPx4gKz8DWM89dZRFnRjsU=
Expand All @@ -127,8 +150,14 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tdmq v1.0.413 h1:nNYCih
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tdmq v1.0.413/go.mod h1:rMQYgt5anP1/ME1c+0Apo1W9250pbEn5oQ+cNMAo1U0=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tse v1.0.413 h1:CniS5OHzPsajRc5cWqJ9X62QKm9mbdTv9yhp5qY7uSs=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tse v1.0.413/go.mod h1:6ZY4UsmCp2fvcLsahzBtSeLOc0IXxCHrPDmccBaOpJs=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tse v1.0.429 h1:bEN8pkNwpc2kbsxIxeXtPVSWG9JNPNBKChg+xUbbqmM=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tse v1.0.429/go.mod h1:ID5dRwzba+NlOYHEoo9F8A+eDeQohJ8LoLCP3OzO4uo=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tse v1.0.430 h1:Brvrm1ZzBcS1q1XXpPx//zlVIbUZ4+cryrMYYHFGn3g=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tse v1.0.430/go.mod h1:rJoqfhS+Y0GmdZuS/N4bFXfDJeh/N59W6hojoTRQ6v0=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vpc v1.0.334 h1:rcM2H2e8kqxv7pZcsBdaIMitNd65+3iTM8aK/q6LS7U=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vpc v1.0.334/go.mod h1:SKgeSsIfPEM6BeoIFiGHsWG9UsEXzkK0SkWx51H/OS8=
github.com/tencentyun/cos-go-sdk-v5 v0.7.35 h1:XVk5GQ4eH1q+DBUJfpaMMdU9TJZWMjwNNwv0PG5nbLQ=
github.com/tencentyun/cos-go-sdk-v5 v0.7.35/go.mod h1:4dCEtLHGh8QPxHEkgq+nFaky7yZxQuYwgSJM87icDaw=
golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
Expand Down
32 changes: 32 additions & 0 deletions pkg/client/client.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ package client
import (
cbs "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cbs/v20170312"
cdb "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cdb/v20170320"
cdn "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cdn/v20180606"
kafka "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/ckafka/v20190819"
clb "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/clb/v20180317"
cmq "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cmq/v20190304"
Expand All @@ -24,6 +25,10 @@ import (
tdmq "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tdmq/v20200217"
tse "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tse/v20201207"
vpc "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vpc/v20170312"
"net/http"
"net/url"

cos "github.com/tencentyun/cos-go-sdk-v5"

"github.com/tencentyun/tencentcloud-exporter/pkg/config"
)
Expand Down Expand Up @@ -321,3 +326,30 @@ func NewCynosdbClient(conf *config.TencentConfig) (*cynosdb.Client, error) {
}
return cynosdb.NewClient(credential, conf.Credential.Region, cpf)
}

func NewCdnClient(conf *config.TencentConfig) (*cdn.Client, error) {
credential := common.NewCredential(
conf.Credential.AccessKey,
conf.Credential.SecretKey,
)
cpf := profile.NewClientProfile()
if conf.Credential.IsInternal == true {
cpf.HttpProfile.Endpoint = "cdn.internal.tencentcloudapi.com"
} else {
cpf.HttpProfile.Endpoint = "cdn.tencentcloudapi.com"
}
return cdn.NewClient(credential, "", cpf)
}

func NewCosClient(conf *config.TencentConfig) (*cos.Client, error) {
// 用于Get Service 查询, service域名暂时只支持外网
su, _ := url.Parse("http://cos." + conf.Credential.Region + ".tencentcos.cn")
b := &cos.BaseURL{BucketURL: nil, ServiceURL: su}
client := cos.NewClient(b, &http.Client{
Transport: &cos.AuthorizationTransport{
SecretID: conf.Credential.AccessKey,
SecretKey: conf.Credential.SecretKey,
},
})
return client, nil
}
93 changes: 90 additions & 3 deletions pkg/collector/handler_cdn.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,15 @@ package collector

import (
"fmt"

"github.com/go-kit/kit/log"
"github.com/go-kit/kit/log/level"
"github.com/tencentyun/tencentcloud-exporter/pkg/metric"
"github.com/tencentyun/tencentcloud-exporter/pkg/util"
)

const (
CdnNamespace = "QCE/CDN"
CdnNamespace = "QCE/CDN"
CdnInstanceidKey = "domain"
)

func init() {
Expand All @@ -30,10 +30,97 @@ func (h *cdnHandler) GetNamespace() string {
}

func (h *cdnHandler) IsMetricVaild(m *metric.TcmMetric) bool {
_, ok := excludeMetricName[m.Meta.MetricName]
if ok {
return false
}
p, err := m.Meta.GetPeriod(m.Conf.StatPeriodSeconds)
if err != nil {
return false
}
if p != m.Conf.StatPeriodSeconds {
return false
}
return true
}

func (h *cdnHandler) GetSeries(m *metric.TcmMetric) (slist []*metric.TcmSeries, err error) {
if m.Conf.IsIncludeOnlyInstance() {
return h.GetSeriesByOnly(m)
}

if m.Conf.IsIncludeAllInstance() {
return h.GetSeriesByAll(m)
}

if m.Conf.IsCustomQueryDimensions() {
return h.GetSeriesByCustom(m)
}

return nil, fmt.Errorf("must config all_instances or only_include_instances or custom_query_dimensions")
}
func (h *cdnHandler) GetSeriesByOnly(m *metric.TcmMetric) ([]*metric.TcmSeries, error) {
var slist []*metric.TcmSeries
for _, insId := range m.Conf.OnlyIncludeInstances {
ins, err := h.collector.InstanceRepo.Get(insId)
if err != nil {
level.Error(h.logger).Log("msg", "Instance not found", "id", insId)
continue
}
projectId, err := ins.GetFieldValueByName("ProjectId")
domain, err := ins.GetFieldValueByName("Domain")
if err != nil {
level.Error(h.logger).Log("msg", "projectId not found")
continue
}
ql := map[string]string{
"domain": domain,
"projectId": projectId,
}
s, err := metric.NewTcmSeries(m, ql, ins)
if err != nil {
level.Error(h.logger).Log("msg", "Create metric series fail",
"metric", m.Meta.MetricName, "instacne", insId)
continue
}
slist = append(slist, s)
}
return slist, nil
}

func (h *cdnHandler) GetSeriesByAll(m *metric.TcmMetric) ([]*metric.TcmSeries, error) {
var slist []*metric.TcmSeries
insList, err := h.collector.InstanceRepo.ListByFilters(m.Conf.InstanceFilters)
if err != nil {
return nil, err
}
for _, ins := range insList {
if len(m.Conf.ExcludeInstances) != 0 && util.IsStrInList(m.Conf.ExcludeInstances, ins.GetInstanceId()) {
continue
}
projectId, err := ins.GetFieldValueByName("ProjectId")
domain, err := ins.GetFieldValueByName("Domain")
if err != nil {
level.Error(h.logger).Log("msg", "projectId not found")
continue
}
ql := map[string]string{
"domain": domain,
"projectId": projectId,
}
s, err := metric.NewTcmSeries(m, ql, ins)
if err != nil {
level.Error(h.logger).Log("msg", "Create metric series fail",
"metric", m.Meta.MetricName, "instacne", ins.GetInstanceId())
continue
}
slist = append(slist, s)
}
return slist, nil
}

func (h *cdnHandler) GetSeriesByCustom(m *metric.TcmMetric) ([]*metric.TcmSeries, error) {
var slist []*metric.TcmSeries
for _, ql := range m.Conf.CustomQueryDimensions {
if !h.checkMonitorQueryKeys(m, ql) {
continue
Expand All @@ -47,7 +134,7 @@ func (h *cdnHandler) GetSeries(m *metric.TcmMetric) (slist []*metric.TcmSeries,
}
slist = append(slist, s)
}
return
return slist, nil
}

func (h *cdnHandler) checkMonitorQueryKeys(m *metric.TcmMetric, ql map[string]string) bool {
Expand Down
46 changes: 45 additions & 1 deletion pkg/collector/handler_cos.go
Original file line number Diff line number Diff line change
Expand Up @@ -40,8 +40,52 @@ func (h *cosHandler) IsMetricVaild(m *metric.TcmMetric) bool {
}
return true
}

func (h *cosHandler) GetSeries(m *metric.TcmMetric) (slist []*metric.TcmSeries, err error) {
if m.Conf.IsIncludeOnlyInstance() {
return h.GetSeriesByOnly(m)
}

if m.Conf.IsIncludeAllInstance() {
return h.GetSeriesByAll(m)
}

if m.Conf.IsCustomQueryDimensions() {
return h.GetSeriesByCustom(m)
}

return nil, fmt.Errorf("must config all_instances or only_include_instances or custom_query_dimensions")
}

func (h *cosHandler) GetSeriesByAll(m *metric.TcmMetric) ([]*metric.TcmSeries, error) {
var slist []*metric.TcmSeries
insList, err := h.collector.InstanceRepo.ListByFilters(m.Conf.InstanceFilters)
if err != nil {
return nil, err
}
for _, ins := range insList {
if len(m.Conf.ExcludeInstances) != 0 && util.IsStrInList(m.Conf.ExcludeInstances, ins.GetInstanceId()) {
continue
}
bucket, err := ins.GetFieldValueByName("Name")
if err != nil {
level.Error(h.logger).Log("msg", "projectId not found")
continue
}
ql := map[string]string{
"bucket": bucket,
}
s, err := metric.NewTcmSeries(m, ql, ins)
if err != nil {
level.Error(h.logger).Log("msg", "Create metric series fail",
"metric", m.Meta.MetricName, "instacne", ins.GetInstanceId())
continue
}
slist = append(slist, s)
}
return slist, nil
}

func (h *cosHandler) GetSeriesByCustom(m *metric.TcmMetric) (slist []*metric.TcmSeries, err error) {
for _, ql := range m.Conf.CustomQueryDimensions {
if !h.checkMonitorQueryKeys(m, ql) {
continue
Expand Down
Loading