This is an automated email from the ASF dual-hosted git repository.

hanahmily pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/skywalking-swck.git


The following commit(s) were added to refs/heads/master by this push:
     new 45b1554  Upgrade skywalking-cli dependency (#26)
45b1554 is described below

commit 45b1554457b95de177ea8311ff1e85fef4bd6922
Author: Gao Hongtao <[email protected]>
AuthorDate: Thu Mar 25 13:17:59 2021 +0800

    Upgrade skywalking-cli dependency (#26)
    
    * Some enchancements for HPA metric adapter:
    
     * Support special characters in label selectors
     * Add namespace to HPA metrics
    
    Signed-off-by: Gao Hongtao <[email protected]>
    
    * Document namespace
    
    Signed-off-by: Gao Hongtao <[email protected]>
    
    * Upgrade skywalking-cli
    
    Signed-off-by: Gao Hongtao <[email protected]>
    
    * Update release version
    
    Signed-off-by: Gao Hongtao <[email protected]>
    
    * Fix lint issues
    
    Signed-off-by: Gao Hongtao <[email protected]>
---
 CHANGES.md               |   5 ++-
 go.mod                   |   8 ++--
 go.sum                   |  30 +++++---------
 pkg/provider/provider.go | 105 +++++++++++++++++++++++++----------------------
 pkg/provider/registry.go |  13 +-----
 5 files changed, 78 insertions(+), 83 deletions(-)

diff --git a/CHANGES.md b/CHANGES.md
index 94597ca..695cc65 100644
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -2,13 +2,16 @@ Changes by Version
 ==================
 Release Notes.
 
-0.2.1
+0.3.0
 ------------------
 
 #### Features
 - Support special characters in the metric selector of HPA metric adapter.
 - Add the namespace to HPA metric name.
 
+#### Chores
+- Upgrade skywalking-cli dependency.
+
 0.2.0
 ------------------
 
diff --git a/go.mod b/go.mod
index 306cda6..c3aa8ce 100644
--- a/go.mod
+++ b/go.mod
@@ -4,18 +4,16 @@ go 1.14
 
 require (
        github.com/Masterminds/sprig/v3 v3.1.0
-       github.com/apache/skywalking-cli v0.0.0-20201125155244-ffee47d2e83d
+       github.com/apache/skywalking-cli v0.0.0-20210209032327-04a0ce08990f
        github.com/evanphx/json-patch v4.9.0+incompatible
        github.com/ghodss/yaml v1.0.0
        github.com/go-logr/logr v0.3.0
        github.com/kubernetes-sigs/custom-metrics-apiserver 
v0.0.0-20201110135240-8c12d6d92362
-       github.com/machinebox/graphql v0.2.2
        github.com/sirupsen/logrus v1.7.0
        github.com/spf13/cobra v1.1.1
        github.com/stretchr/testify v1.6.1
        github.com/urfave/cli v1.22.1
        k8s.io/api v0.20.1
-       k8s.io/apiextensions-apiserver v0.20.1 // indirect
        k8s.io/apimachinery v0.20.1
        k8s.io/apiserver v0.20.1
        k8s.io/client-go v0.20.1
@@ -26,3 +24,7 @@ require (
 )
 
 replace github.com/googleapis/gnostic => github.com/googleapis/gnostic v0.4.1
+
+replace skywalking/network => 
github.com/apache/skywalking-cli/gen-codes/skywalking/network 
v0.0.0-20210209032327-04a0ce08990f
+
+replace google.golang.org/grpc => google.golang.org/grpc v1.29.1
diff --git a/go.sum b/go.sum
index 7b28650..27f1b01 100644
--- a/go.sum
+++ b/go.sum
@@ -1,4 +1,3 @@
-cloud.google.com/go v0.26.0/go.mod 
h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
 cloud.google.com/go v0.34.0/go.mod 
h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
 cloud.google.com/go v0.38.0 h1:ROfEUZz+Gh5pa62DJWXSaonyu3StP6EA6lPEXPI6mCo=
 cloud.google.com/go v0.38.0/go.mod 
h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU=
@@ -75,6 +74,10 @@ github.com/alecthomas/units 
v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRF
 github.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883/go.mod 
h1:rCTlJbsFo29Kk6CurOXKm700vrz8f0KW0JNfpkRJY/8=
 github.com/apache/skywalking-cli v0.0.0-20201125155244-ffee47d2e83d 
h1:vJeCfqKTLGQXGUy3+dYRNclCJgRsj3VQiCff/+yvfMA=
 github.com/apache/skywalking-cli v0.0.0-20201125155244-ffee47d2e83d/go.mod 
h1:kUqj2ESaiYz89JFJUr+cL6EDmzlEYSrlEMOkWg9wuS4=
+github.com/apache/skywalking-cli v0.0.0-20210209032327-04a0ce08990f 
h1:DknnvUn5ZR1hRtS42stGr3O6REwBFh6iyotoCJ2jFZ8=
+github.com/apache/skywalking-cli v0.0.0-20210209032327-04a0ce08990f/go.mod 
h1:EMKZ5MAEnCrNTPxqWu3s1QgnoUDQEO0oS+ohNB09JE8=
+github.com/apache/skywalking-cli/gen-codes/skywalking/network 
v0.0.0-20210209032327-04a0ce08990f/go.mod 
h1:kacAwfQjKgotVA/J4v4LZLo682UCOb1AktGep9oDDxw=
+github.com/apache/skywalking-swck v0.2.0/go.mod 
h1:kU75U5Tb3aEi1Vk1KX7hzyh8Hv7sUMNx0Djq5PLEPWI=
 github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod 
h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o=
 github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod 
h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8=
 github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod 
h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY=
@@ -101,7 +104,7 @@ github.com/cespare/xxhash/v2 v2.1.1/go.mod 
h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XL
 github.com/chzyer/logex v1.1.10/go.mod 
h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI=
 github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod 
h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI=
 github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod 
h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU=
-github.com/client9/misspell v0.3.4/go.mod 
h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
+github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod 
h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc=
 github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa 
h1:OaNxuTZr7kxeODyLWsRMC+OD03aFUH+mW6r2d+MWa5Y=
 github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod 
h1:zn76sxSg3SzpJ0PPJaLDCu+Bu0Lg3sKTORVIj19EIF8=
 github.com/coreos/bbolt v1.3.2/go.mod 
h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk=
@@ -141,7 +144,7 @@ github.com/emicklei/go-restful v2.14.3+incompatible 
h1:i59XyRHAxKCVBw3vHzQlpP/+p
 github.com/emicklei/go-restful v2.14.3+incompatible/go.mod 
h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs=
 github.com/emicklei/go-restful-swagger12 v0.0.0-20201014110547-68ccff494617 
h1:jri9taV4TK9oItoWJCofXJi21Dp/k25u32NnfphqLAY=
 github.com/emicklei/go-restful-swagger12 
v0.0.0-20201014110547-68ccff494617/go.mod 
h1:qr0VowGBT4CS4Q8vFF8BSeKz34PuqKGxs/L0IAQA9DQ=
-github.com/envoyproxy/go-control-plane 
v0.9.1-0.20191026205805-5f8ba28d4473/go.mod 
h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
+github.com/envoyproxy/go-control-plane v0.9.4/go.mod 
h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98=
 github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod 
h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
 github.com/evanphx/json-patch v4.5.0+incompatible 
h1:ouOWdg56aJriqS0huScTkVXPC5IcNrDCXZ6OoTAWu7M=
 github.com/evanphx/json-patch v4.5.0+incompatible/go.mod 
h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=
@@ -404,6 +407,7 @@ github.com/mitchellh/iochan v1.0.0/go.mod 
h1:JwYml1nuB7xOzsp52dPpHFffvOCDupsG0Qu
 github.com/mitchellh/mapstructure v0.0.0-20160808181253-ca63d7c062ee/go.mod 
h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y=
 github.com/mitchellh/mapstructure v1.1.2/go.mod 
h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y=
 github.com/mitchellh/mapstructure v1.3.3/go.mod 
h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo=
+github.com/mitchellh/mapstructure v1.4.0/go.mod 
h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo=
 github.com/mitchellh/reflectwalk v1.0.0 
h1:9D+8oIskB4VJBN5SFlmc27fSlIBZaov1Wpk/IfikLNY=
 github.com/mitchellh/reflectwalk v1.0.0/go.mod 
h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw=
 github.com/moby/term v0.0.0-20200312100748-672ec06f55cd/go.mod 
h1:DdlQx2hp0Ss5/fLikoLlEeIYiATotOjgB//nb973jeo=
@@ -610,7 +614,6 @@ golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod 
h1:J/WKrq2StrnmMY6+EH
 golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod 
h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU=
 golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod 
h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js=
 golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod 
h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
-golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod 
h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
 golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod 
h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU=
 golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod 
h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
 golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod 
h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
@@ -632,7 +635,6 @@ golang.org/x/mod v0.2.0/go.mod 
h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
 golang.org/x/mod v0.3.0 h1:RM4zey1++hCTbCVQfnWeKs9/IEsaBLA8vTkd0WVtmH4=
 golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
 golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod 
h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
-golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod 
h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
 golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod 
h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
 golang.org/x/net v0.0.0-20181005035420-146acd28ed58/go.mod 
h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
 golang.org/x/net v0.0.0-20181023162649-9b4f9f5ad519/go.mod 
h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
@@ -682,7 +684,6 @@ golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod 
h1:RxMgew5VJxzue5/jJ
 golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e 
h1:vcxGaoTs7kV8m5Np9uUNQin4BrLOthgV7252N8V+FwY=
 golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod 
h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod 
h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
-golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod 
h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
 golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod 
h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
 golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod 
h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
 golang.org/x/sys v0.0.0-20181026203630-95b1ffbd15a5/go.mod 
h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
@@ -747,7 +748,6 @@ golang.org/x/tools 
v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGm
 golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod 
h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
 golang.org/x/tools v0.0.0-20181011042414-1f849cf54d09/go.mod 
h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
 golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod 
h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
-golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod 
h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
 golang.org/x/tools v0.0.0-20190125232054-d66bd3c5d5a6/go.mod 
h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
 golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod 
h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY=
 golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod 
h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
@@ -807,7 +807,6 @@ google.golang.org/api v0.15.0/go.mod 
h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsb
 google.golang.org/api v0.17.0/go.mod 
h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE=
 google.golang.org/api v0.18.0/go.mod 
h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE=
 google.golang.org/api v0.20.0/go.mod 
h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE=
-google.golang.org/appengine v1.1.0/go.mod 
h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=
 google.golang.org/appengine v1.4.0/go.mod 
h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
 google.golang.org/appengine v1.5.0 
h1:KxkO13IPW4Lslp2bz+KHP2E3gtFlrIGNThxkZQ3g+4c=
 google.golang.org/appengine v1.5.0/go.mod 
h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
@@ -838,17 +837,8 @@ google.golang.org/genproto 
v0.0.0-20200526211855-cb27e3aa2013 h1:+kGHl1aib/qcwaR
 google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod 
h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo=
 google.golang.org/genproto v0.0.0-20201110150050-8816d57aaa9a 
h1:pOwg4OoaRYScjmR4LlLgdtnyoHYTSAVhhqe5uPdpII8=
 google.golang.org/genproto v0.0.0-20201110150050-8816d57aaa9a/go.mod 
h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
-google.golang.org/grpc v1.19.0/go.mod 
h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
-google.golang.org/grpc v1.20.1/go.mod 
h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38=
-google.golang.org/grpc v1.21.0/go.mod 
h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM=
-google.golang.org/grpc v1.21.1/go.mod 
h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM=
-google.golang.org/grpc v1.23.0/go.mod 
h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg=
-google.golang.org/grpc v1.24.0/go.mod 
h1:XDChyiUovWa60DnaeDeZmSW86xtLtjtZbwvSiRnRtcA=
-google.golang.org/grpc v1.26.0/go.mod 
h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk=
-google.golang.org/grpc v1.27.0 h1:rRYRFMVgRv6E0D70Skyfsr28tDXIuuPZyWGMPdMcnXg=
-google.golang.org/grpc v1.27.0/go.mod 
h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk=
-google.golang.org/grpc v1.27.1 h1:zvIju4sqAGvwKspUQOhwnpcqSbzi7/H6QomNNjTL4sk=
-google.golang.org/grpc v1.27.1/go.mod 
h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk=
+google.golang.org/grpc v1.29.1 h1:EC2SB8S04d2r73uptxphDSUG+kTKVgjRPF+N3xpxRB4=
+google.golang.org/grpc v1.29.1/go.mod 
h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk=
 google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod 
h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
 google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod 
h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
 google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod 
h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=
@@ -889,6 +879,8 @@ gopkg.in/yaml.v2 v2.2.5/go.mod 
h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
 gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
 gopkg.in/yaml.v2 v2.3.0 h1:clyUAQHOM3G0M3f5vQj7LuJrETvjVot3Z5el9nffUtU=
 gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
+gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY=
+gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=
 gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c 
h1:dUUwHk2QECo/6vqA44rthZ8ie2QXMNeKRTHCNY2nXvo=
 gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod 
h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
 gotest.tools v2.2.0+incompatible/go.mod 
h1:DsYFclhRJ6vuDpmuTbkuFWG+y2sxOXAzmJt81HFBacw=
diff --git a/pkg/provider/provider.go b/pkg/provider/provider.go
index 0033251..220cb7a 100644
--- a/pkg/provider/provider.go
+++ b/pkg/provider/provider.go
@@ -26,13 +26,9 @@ import (
        "sync"
        "time"
 
-       "github.com/apache/skywalking-cli/assets"
-       "github.com/apache/skywalking-cli/commands/interceptor"
-       "github.com/apache/skywalking-cli/graphql/client"
-       swctlschema "github.com/apache/skywalking-cli/graphql/schema"
-       "github.com/apache/skywalking-cli/graphql/utils"
+       swctlapi "github.com/apache/skywalking-cli/api"
+       "github.com/apache/skywalking-cli/pkg/graphql/metrics"
        apiprovider 
"github.com/kubernetes-sigs/custom-metrics-apiserver/pkg/provider"
-       "github.com/machinebox/graphql"
        "github.com/urfave/cli"
        apierr "k8s.io/apimachinery/pkg/api/errors"
        "k8s.io/apimachinery/pkg/api/resource"
@@ -45,6 +41,7 @@ import (
 
 const labelValueTypeStr string = "str"
 const labelValueTypeByte string = "byte"
+const stepMinute string = "2006-01-02 1504"
 
 var (
        NsGroupResource = apischema.GroupResource{Resource: "namespaces"}
@@ -52,7 +49,7 @@ var (
 
 // externalMetricsProvider is a implementation of provider.MetricsProvider 
which provides metrics from OAP
 type externalMetricsProvider struct {
-       metricDefines           []*swctlschema.MetricDefinition
+       metricDefines           []*swctlapi.MetricDefinition
        lock                    sync.RWMutex
        ctx                     *cli.Context
        regex                   string
@@ -165,7 +162,7 @@ func bufferEntity(buff []string, index int, requirement 
labels.Requirement, dec
 
 func (p *externalMetricsProvider) GetExternalMetric(namespace string, 
metricSelector labels.Selector,
        info apiprovider.ExternalMetricInfo) 
(*external_metrics.ExternalMetricValueList, error) {
-       var md *swctlschema.MetricDefinition
+       var md *swctlapi.MetricDefinition
        for _, m := range p.metricDefines {
                if p.getMetricNameWithNamespace(m.Name) == info.Metric {
                        md = m
@@ -193,61 +190,50 @@ func (p *externalMetricsProvider) 
GetExternalMetric(namespace string, metricSele
        now := time.Now()
        startTime := now.Add(-3 * time.Minute)
        endTime := now
-       step := swctlschema.StepMinute
-       duration := swctlschema.Duration{
-               Start: startTime.Format(utils.StepFormats[step]),
-               End:   endTime.Format(utils.StepFormats[step]),
+       step := swctlapi.StepMinute
+       duration := swctlapi.Duration{
+               Start: startTime.Format(stepMinute),
+               End:   endTime.Format(stepMinute),
                Step:  step,
        }
 
        normal := true
-       condition := swctlschema.MetricsCondition{
-               Name: md.Name,
-               Entity: &swctlschema.Entity{
-                       Scope:               interceptor.ParseScope(md.Name),
-                       ServiceName:         svc.val,
-                       ServiceInstanceName: instance.val,
-                       EndpointName:        endpoint.val,
-                       Normal:              &normal,
-               },
+       empty := ""
+       entity := &swctlapi.Entity{
+               ServiceName:             svc.val,
+               ServiceInstanceName:     instance.val,
+               EndpointName:            endpoint.val,
+               Normal:                  &normal,
+               DestServiceName:         &empty,
+               DestNormal:              &normal,
+               DestServiceInstanceName: &empty,
+               DestEndpointName:        &empty,
        }
-       var metricsValues swctlschema.MetricsValues
-       if md.Type == swctlschema.MetricsTypeRegularValue {
-               var response map[string]swctlschema.MetricsValues
-
-               request := 
graphql.NewRequest(assets.Read("graphqls/metrics/MetricsValues.graphql"))
-
-               request.Var("condition", condition)
-               request.Var("duration", duration)
-
-               if err := client.ExecuteQuery(p.ctx, request, &response); err 
!= nil {
+       entity.Scope = parseScope(entity)
+       condition := swctlapi.MetricsCondition{
+               Name:   md.Name,
+               Entity: entity,
+       }
+       var metricsValues swctlapi.MetricsValues
+       if md.Type == swctlapi.MetricsTypeRegularValue {
+               var err error
+               metricsValues, err = metrics.LinearIntValues(p.ctx, condition, 
duration)
+               if err != nil {
                        return nil, apierr.NewInternalError(fmt.Errorf("unable 
to fetch metrics: %v", err))
                }
-
-               klog.V(4).Infof("Linear request{condition:%s, duration:%s}  
response %s", display(condition), display(duration), display(response))
-
-               metricsValues = response["result"]
-       } else if md.Type == swctlschema.MetricsTypeLabeledValue {
+               klog.V(4).Infof("Linear request{condition:%s, duration:%s}  
response %s", display(condition), display(duration), display(metricsValues))
+       } else if md.Type == swctlapi.MetricsTypeLabeledValue {
                if *label.val == "" {
                        klog.Errorf("%s is lack of required label 'label'", 
md.Name)
                        return nil, apierr.NewBadRequest(fmt.Sprintf("%s is 
lack of required label 'label'", md.Name))
                }
-               var response map[string][]swctlschema.MetricsValues
-
-               request := 
graphql.NewRequest(assets.Read("graphqls/metrics/LabeledMetricsValues.graphql"))
-
-               request.Var("duration", duration)
-               request.Var("condition", condition)
-               request.Var("labels", []string{*label.val})
-
-               if err := client.ExecuteQuery(p.ctx, request, &response); err 
!= nil {
+               result, err := metrics.MultipleLinearIntValues(p.ctx, 
condition, []string{*label.val}, duration)
+               if err != nil {
                        return nil, apierr.NewInternalError(fmt.Errorf("unable 
to fetch metrics: %v", err))
                }
 
                klog.V(4).Infof("Labeled request{condition:%s, duration:%s, 
labels:%s}  response %s",
-                       display(condition), display(duration), *label.val, 
display(response))
-
-               result := response["result"]
+                       display(condition), display(duration), *label.val, 
display(result))
 
                for _, r := range result {
                        if *r.Label == *label.val {
@@ -272,7 +258,7 @@ func (p *externalMetricsProvider) 
GetExternalMetric(namespace string, metricSele
        if sValue == 0 {
                sTime = endTime
        }
-       klog.V(4).Infof("metric value: %d, timestamp: %s", sValue, 
sTime.Format(utils.StepFormats[step]))
+       klog.V(4).Infof("metric value: %d, timestamp: %s", sValue, 
sTime.Format(stepMinute))
 
        return &external_metrics.ExternalMetricValueList{
                Items: []external_metrics.ExternalMetricValue{
@@ -310,3 +296,24 @@ func (p *externalMetricsProvider) 
selectGroupResource(namespace string) apischem
 func (p *externalMetricsProvider) getMetricNameWithNamespace(metricName 
string) string {
        return strings.Join([]string{p.namespace, metricName}, "|")
 }
+
+// TODO: remove this function once cli move it from internal module to pkg
+func parseScope(entity *swctlapi.Entity) swctlapi.Scope {
+       scope := swctlapi.ScopeAll
+
+       if *entity.DestEndpointName != "" {
+               scope = swctlapi.ScopeEndpointRelation
+       } else if *entity.DestServiceInstanceName != "" {
+               scope = swctlapi.ScopeServiceInstanceRelation
+       } else if *entity.DestServiceName != "" {
+               scope = swctlapi.ScopeServiceRelation
+       } else if *entity.EndpointName != "" {
+               scope = swctlapi.ScopeEndpoint
+       } else if *entity.ServiceInstanceName != "" {
+               scope = swctlapi.ScopeServiceInstance
+       } else if *entity.ServiceName != "" {
+               scope = swctlapi.ScopeService
+       }
+
+       return scope
+}
diff --git a/pkg/provider/registry.go b/pkg/provider/registry.go
index e468a10..e8ef5cc 100644
--- a/pkg/provider/registry.go
+++ b/pkg/provider/registry.go
@@ -20,11 +20,8 @@ package provider
 import (
        "encoding/json"
 
-       "github.com/apache/skywalking-cli/assets"
-       "github.com/apache/skywalking-cli/graphql/client"
-       swctlschema "github.com/apache/skywalking-cli/graphql/schema"
+       "github.com/apache/skywalking-cli/pkg/graphql/metrics"
        apiprovider 
"github.com/kubernetes-sigs/custom-metrics-apiserver/pkg/provider"
-       "github.com/machinebox/graphql"
        "k8s.io/apimachinery/pkg/util/wait"
        "k8s.io/klog/v2"
 )
@@ -51,16 +48,10 @@ func (p *externalMetricsProvider) sync() {
 }
 
 func (p *externalMetricsProvider) updateMetrics() error {
-       var response map[string][]*swctlschema.MetricDefinition
-       request := 
graphql.NewRequest(assets.Read("graphqls/metrics/ListMetrics.graphql"))
-       request.Var("regex", p.regex)
-
-       err := client.ExecuteQuery(p.ctx, request, &response)
+       mdd, err := metrics.ListMetrics(p.ctx, p.regex)
        if err != nil {
                return err
        }
-
-       mdd := response["result"]
        klog.Infof("Get service metrics: %s", display(mdd))
        if len(mdd) > 0 {
                p.lock.Lock()

Reply via email to