You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@skywalking.apache.org by li...@apache.org on 2021/06/03 15:20:51 UTC

[skywalking-goapi] 01/01: add satellite api

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

liujiapeng pushed a commit to branch satellite-goapi
in repository https://gitbox.apache.org/repos/asf/skywalking-goapi.git

commit 23361c8f2bdb0388871f0750a270c5be2462ee2a
Author: Evan <ev...@outlook.com>
AuthorDate: Thu Jun 3 23:20:31 2021 +0800

    add satellite api
---
 Makefile                                          |   4 +
 go.mod                                            |   4 +-
 go.sum                                            |  59 ---
 protocol/satellite-protocol/satellite/Event.proto |  71 ++++
 satellite/event/v1/Event.pb.go                    | 495 ++++++++++++++++++++++
 scripts/update.sh                                 |   1 +
 scripts/update_satellite_protocol.sh              |  63 +++
 7 files changed, 636 insertions(+), 61 deletions(-)

diff --git a/Makefile b/Makefile
index 05a624d..5622b22 100644
--- a/Makefile
+++ b/Makefile
@@ -25,6 +25,10 @@ update-collect:
 update-query:
 	bash scripts/update_query_protocol.sh
 
+.PHONY: update-satellite
+update-query:
+	bash scripts/update_satellite_protocol.sh
+
 .PHONY: update
 update:
 	bash scripts/update.sh
diff --git a/go.mod b/go.mod
index a6c4bd0..777b40e 100644
--- a/go.mod
+++ b/go.mod
@@ -3,8 +3,8 @@ module skywalking.apache.org/repo/goapi
 go 1.16
 
 require (
-	github.com/99designs/gqlgen v0.13.0
-	github.com/vektah/gqlparser/v2 v2.1.0
+	golang.org/x/net v0.0.0-20190620200207-3b0461eec859 // indirect
+	golang.org/x/sys v0.0.0-20200116001909-b77594299b42 // indirect
 	google.golang.org/grpc v1.36.1
 	google.golang.org/protobuf v1.26.0
 )
diff --git a/go.sum b/go.sum
index a50ffb7..5d659e1 100644
--- a/go.sum
+++ b/go.sum
@@ -1,29 +1,13 @@
 cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
-github.com/99designs/gqlgen v0.13.0 h1:haLTcUp3Vwp80xMVEg5KRNwzfUrgFdRmtBY8fuB8scA=
-github.com/99designs/gqlgen v0.13.0/go.mod h1:NV130r6f4tpRWuAI+zsrSdooO/eWUv+Gyyoi3rEfXIk=
 github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
-github.com/agnivade/levenshtein v1.0.1/go.mod h1:CURSv5d9Uaml+FovSIICkLbAUZ9S4RqaHDIsdSBg7lM=
-github.com/agnivade/levenshtein v1.0.3 h1:M5ZnqLOoZR8ygVq0FfkXsNOKzMCk0xRiow0R5+5VkQ0=
-github.com/agnivade/levenshtein v1.0.3/go.mod h1:4SFRZbbXWLF4MU1T9Qg0pGgH3Pjs+t6ie5efyrwRJXs=
-github.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883 h1:bvNMNQO63//z+xNgfBlViaCIJKLlCJ6/fmUseuG0wVQ=
-github.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883/go.mod h1:rCTlJbsFo29Kk6CurOXKm700vrz8f0KW0JNfpkRJY/8=
-github.com/arbovm/levenshtein v0.0.0-20160628152529-48b4e1c0c4d0 h1:jfIu9sQUG6Ig+0+Ap1h4unLjW6YQJpKZVmUzxsD4E/Q=
-github.com/arbovm/levenshtein v0.0.0-20160628152529-48b4e1c0c4d0/go.mod h1:t2tdKJDJF9BV14lnkjHmOQgcvEKgtqs5a1N3LNdJhGE=
 github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
 github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
 github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk=
-github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU=
 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=
-github.com/dgryski/trifles v0.0.0-20190318185328-a8d75aae118c h1:TUuUh0Xgj97tLMNtWtNvI9mIV6isjEb9lBMNv+77IGM=
-github.com/dgryski/trifles v0.0.0-20190318185328-a8d75aae118c/go.mod h1:if7Fbed8SFyPtHLHbg49SI7NAdJiC5WIA09pe59rfAA=
 github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
 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.9-0.20201210154907-fd9021fe5dad/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk=
 github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
-github.com/go-chi/chi v3.3.2+incompatible/go.mod h1:eB3wogJHnLi3x/kFX2A+IbTBlXxmMeXJVKy9tTv1XzQ=
-github.com/gogo/protobuf v1.0.0/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=
 github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
 github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A=
 github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
@@ -45,53 +29,21 @@ github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/
 github.com/google/go-cmp v0.5.5 h1:Khx7svrCpmxxtHBq5j2mp/xVjsi8hQMfNLvJFAlrGgU=
 github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
 github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
-github.com/gorilla/context v0.0.0-20160226214623-1ea25387ff6f/go.mod h1:kBGZzfjB9CEq2AlWe17Uuf7NDRt0dE0s8S51q0aT7Yg=
-github.com/gorilla/mux v1.6.1/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs=
-github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=
-github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
-github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
-github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
-github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
-github.com/logrusorgru/aurora v0.0.0-20200102142835-e9ef32dff381/go.mod h1:7rIyQOR62GCctdiQpZ/zOJlFyk6y+94wXzv6RNZgaR4=
-github.com/matryer/moq v0.0.0-20200106131100-75d0ddfc0007/go.mod h1:9ELz6aaclSIGnZBoaSLZ3NAl1VTufbOrXBPvtcy6WiQ=
-github.com/mattn/go-colorable v0.1.4/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE=
-github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s=
-github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU=
-github.com/mitchellh/mapstructure v0.0.0-20180203102830-a4e142e9c047/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y=
-github.com/opentracing/basictracer-go v1.0.0/go.mod h1:QfBfYuafItcjQuMwinw9GhYKwFXS9KnPs5lxoYwgW74=
-github.com/opentracing/opentracing-go v1.0.2/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o=
-github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
 github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
 github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
 github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
-github.com/rs/cors v1.6.0/go.mod h1:gFx+x8UowdsKA9AchylcLynDq+nNFfI8FkUZdN/jGCU=
-github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
-github.com/sergi/go-diff v1.1.0 h1:we8PVUC3FE2uYfodKH/nBHMSetSfHDR6scGdBi+erh0=
-github.com/sergi/go-diff v1.1.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM=
-github.com/shurcooL/httpfs v0.0.0-20171119174359-809beceb2371/go.mod h1:ZY1cvUeJuFPAdZ/B6v7RHavJWZn2YPVFQ1OSXhCGOkg=
-github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc=
-github.com/shurcooL/vfsgen v0.0.0-20180121065927-ffb13db8def0/go.mod h1:TrYk7fJVaAttu97ZZKrO9UbRa8izdowaMIZcxYMbVaw=
 github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
-github.com/stretchr/testify v1.2.1/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
-github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
 github.com/stretchr/testify v1.5.1 h1:nOGnQDM7FYENwehXlg/kFVnos3rEvtKTjRvOWSzb6H4=
 github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA=
-github.com/urfave/cli/v2 v2.1.1/go.mod h1:SE9GqnLQmjVa0iPEY0f1w3ygNIYcIJ0OKPMoW2caLfQ=
-github.com/vektah/dataloaden v0.2.1-0.20190515034641-a19b9a6e7c9e/go.mod h1:/HUdMve7rvxZma+2ZELQeNh88+003LL7Pf/CZ089j8U=
-github.com/vektah/gqlparser/v2 v2.1.0 h1:uiKJ+T5HMGGQM2kRKQ8Pxw8+Zq9qhhZhz/lieYvCMns=
-github.com/vektah/gqlparser/v2 v2.1.0/go.mod h1:SyUiHgLATUR8BiYURfTirrTcGpcE+4XkV2se04Px1Ms=
 golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
-golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
 golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
 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-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
-golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg=
 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-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
 golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
-golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
 golang.org/x/net v0.0.0-20190620200207-3b0461eec859 h1:R/3boaszxrf1GEUWTVDzSKVwLmSJpwZ1yqXm8j0v2QI=
 golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
 golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
@@ -100,20 +52,14 @@ golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJ
 golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
 golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
-golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
-golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20200116001909-b77594299b42 h1:vEOn+mP2zCOVzKckCZy6YsCtDblrpj/w7B9nxGNELpg=
 golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg=
 golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
 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=
-golang.org/x/tools v0.0.0-20190515012406-7d7faa4812bd/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
 golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
-golang.org/x/tools v0.0.0-20200114235610-7ae403b6b589/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
-golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
 golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4=
 golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
 google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=
@@ -141,11 +87,6 @@ google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp0
 google.golang.org/protobuf v1.26.0 h1:bxAC2xTBsZGibn2RTntX0oH50xLsqy1OxA9tTL3p/lk=
 google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
 gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
-gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
 gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
-gopkg.in/yaml.v2 v2.2.4 h1:/eiJrUcujPVeJ3xlSWaiNi3uSVmDGBK1pDHUHAnao1I=
-gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
 honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
 honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
-sourcegraph.com/sourcegraph/appdash v0.0.0-20180110180208-2cc67fd64755/go.mod h1:hI742Nqp5OhwiqlzhgfbWU4mW4yO10fP+LoT9WOswdU=
-sourcegraph.com/sourcegraph/appdash-data v0.0.0-20151005221446-73f23eafcf67/go.mod h1:L5q+DGLGOQFpo1snNEkLOJT2d1YTW66rWNzatr3He1k=
diff --git a/protocol/satellite-protocol/satellite/Event.proto b/protocol/satellite-protocol/satellite/Event.proto
new file mode 100644
index 0000000..34a8592
--- /dev/null
+++ b/protocol/satellite-protocol/satellite/Event.proto
@@ -0,0 +1,71 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You 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.
+ *
+ */
+
+syntax = "proto3";
+
+package skywalking.v3;
+
+option go_package = "skywalking.apache.org/repo/goapi/satellite/event/v1";
+
+import "language-agent/CLRMetric.proto";
+import "language-agent/JVMMetric.proto";
+import "language-agent/Meter.proto";
+import "language-agent/Tracing.proto";
+import "logging/Logging.proto";
+import "management/Management.proto";
+import "profile/Profile.proto";
+import "service-mesh-probe/service-mesh.proto";
+
+// EventType declares the supported transfer data type.
+enum EventType{
+  CLRMetricType = 0;
+  JVMMetricType = 1;
+  MeterType = 2;
+  TracingType = 3;
+  Logging = 4;
+  ManagementType = 5;
+  ProfileType = 6;
+  ServiceMeshType = 7;
+}
+
+// Event is the transfer unit in Satellite.
+message Event {
+
+  // The occur time.
+  int64 timestamp = 1;
+  // unique event name.
+  string name=2;
+  // The data type.
+  EventType type = 3;
+  // Whether to send to remote. It is used in sampling.
+  bool remote = 4;
+  // Additional meta-information.
+  map<string, string> meta = 5;
+
+  // Transfer data.
+  oneof data{
+    CLRMetricCollection clr = 6;
+    JVMMetricCollection jvm = 7;
+    MeterData meter = 8;
+    SegmentObject segment = 9;
+    LogData log = 10;
+    InstanceProperties instance = 11;
+    ThreadSnapshot profile = 12;
+    ServiceMeshMetric serviceMesh = 13;
+  }
+}
\ No newline at end of file
diff --git a/satellite/event/v1/Event.pb.go b/satellite/event/v1/Event.pb.go
new file mode 100644
index 0000000..6a41c6c
--- /dev/null
+++ b/satellite/event/v1/Event.pb.go
@@ -0,0 +1,495 @@
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements.  See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You 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.
+//
+
+// Code generated by protoc-gen-go. DO NOT EDIT.
+// versions:
+// 	protoc-gen-go v1.26.0
+// 	protoc        v3.14.0
+// source: satellite/Event.proto
+
+package v1
+
+import (
+	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
+	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+	reflect "reflect"
+	v3 "skywalking.apache.org/repo/goapi/collect/language/agent/v3"
+	v33 "skywalking.apache.org/repo/goapi/collect/language/profile/v3"
+	v31 "skywalking.apache.org/repo/goapi/collect/logging/v3"
+	v32 "skywalking.apache.org/repo/goapi/collect/management/v3"
+	v34 "skywalking.apache.org/repo/goapi/collect/servicemesh/v3"
+	sync "sync"
+)
+
+const (
+	// Verify that this generated code is sufficiently up-to-date.
+	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
+	// Verify that runtime/protoimpl is sufficiently up-to-date.
+	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
+)
+
+// EventType declares the supported transfer data type.
+type EventType int32
+
+const (
+	EventType_CLRMetricType   EventType = 0
+	EventType_JVMMetricType   EventType = 1
+	EventType_MeterType       EventType = 2
+	EventType_TracingType     EventType = 3
+	EventType_Logging         EventType = 4
+	EventType_ManagementType  EventType = 5
+	EventType_ProfileType     EventType = 6
+	EventType_ServiceMeshType EventType = 7
+)
+
+// Enum value maps for EventType.
+var (
+	EventType_name = map[int32]string{
+		0: "CLRMetricType",
+		1: "JVMMetricType",
+		2: "MeterType",
+		3: "TracingType",
+		4: "Logging",
+		5: "ManagementType",
+		6: "ProfileType",
+		7: "ServiceMeshType",
+	}
+	EventType_value = map[string]int32{
+		"CLRMetricType":   0,
+		"JVMMetricType":   1,
+		"MeterType":       2,
+		"TracingType":     3,
+		"Logging":         4,
+		"ManagementType":  5,
+		"ProfileType":     6,
+		"ServiceMeshType": 7,
+	}
+)
+
+func (x EventType) Enum() *EventType {
+	p := new(EventType)
+	*p = x
+	return p
+}
+
+func (x EventType) String() string {
+	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
+}
+
+func (EventType) Descriptor() protoreflect.EnumDescriptor {
+	return file_satellite_Event_proto_enumTypes[0].Descriptor()
+}
+
+func (EventType) Type() protoreflect.EnumType {
+	return &file_satellite_Event_proto_enumTypes[0]
+}
+
+func (x EventType) Number() protoreflect.EnumNumber {
+	return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use EventType.Descriptor instead.
+func (EventType) EnumDescriptor() ([]byte, []int) {
+	return file_satellite_Event_proto_rawDescGZIP(), []int{0}
+}
+
+// Event is the transfer unit in Satellite.
+type Event struct {
+	state         protoimpl.MessageState
+	sizeCache     protoimpl.SizeCache
+	unknownFields protoimpl.UnknownFields
+
+	// The occur time.
+	Timestamp int64 `protobuf:"varint,1,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
+	// unique event name.
+	Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
+	// The data type.
+	Type EventType `protobuf:"varint,3,opt,name=type,proto3,enum=skywalking.v3.EventType" json:"type,omitempty"`
+	// Whether to send to remote. It is used in sampling.
+	Remote bool `protobuf:"varint,4,opt,name=remote,proto3" json:"remote,omitempty"`
+	// Additional meta-information.
+	Meta map[string]string `protobuf:"bytes,5,rep,name=meta,proto3" json:"meta,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
+	// Transfer data.
+	//
+	// Types that are assignable to Data:
+	//	*Event_Clr
+	//	*Event_Jvm
+	//	*Event_Meter
+	//	*Event_Segment
+	//	*Event_Log
+	//	*Event_Instance
+	//	*Event_Profile
+	//	*Event_ServiceMesh
+	Data isEvent_Data `protobuf_oneof:"data"`
+}
+
+func (x *Event) Reset() {
+	*x = Event{}
+	if protoimpl.UnsafeEnabled {
+		mi := &file_satellite_Event_proto_msgTypes[0]
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		ms.StoreMessageInfo(mi)
+	}
+}
+
+func (x *Event) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*Event) ProtoMessage() {}
+
+func (x *Event) ProtoReflect() protoreflect.Message {
+	mi := &file_satellite_Event_proto_msgTypes[0]
+	if protoimpl.UnsafeEnabled && x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use Event.ProtoReflect.Descriptor instead.
+func (*Event) Descriptor() ([]byte, []int) {
+	return file_satellite_Event_proto_rawDescGZIP(), []int{0}
+}
+
+func (x *Event) GetTimestamp() int64 {
+	if x != nil {
+		return x.Timestamp
+	}
+	return 0
+}
+
+func (x *Event) GetName() string {
+	if x != nil {
+		return x.Name
+	}
+	return ""
+}
+
+func (x *Event) GetType() EventType {
+	if x != nil {
+		return x.Type
+	}
+	return EventType_CLRMetricType
+}
+
+func (x *Event) GetRemote() bool {
+	if x != nil {
+		return x.Remote
+	}
+	return false
+}
+
+func (x *Event) GetMeta() map[string]string {
+	if x != nil {
+		return x.Meta
+	}
+	return nil
+}
+
+func (m *Event) GetData() isEvent_Data {
+	if m != nil {
+		return m.Data
+	}
+	return nil
+}
+
+func (x *Event) GetClr() *v3.CLRMetricCollection {
+	if x, ok := x.GetData().(*Event_Clr); ok {
+		return x.Clr
+	}
+	return nil
+}
+
+func (x *Event) GetJvm() *v3.JVMMetricCollection {
+	if x, ok := x.GetData().(*Event_Jvm); ok {
+		return x.Jvm
+	}
+	return nil
+}
+
+func (x *Event) GetMeter() *v3.MeterData {
+	if x, ok := x.GetData().(*Event_Meter); ok {
+		return x.Meter
+	}
+	return nil
+}
+
+func (x *Event) GetSegment() *v3.SegmentObject {
+	if x, ok := x.GetData().(*Event_Segment); ok {
+		return x.Segment
+	}
+	return nil
+}
+
+func (x *Event) GetLog() *v31.LogData {
+	if x, ok := x.GetData().(*Event_Log); ok {
+		return x.Log
+	}
+	return nil
+}
+
+func (x *Event) GetInstance() *v32.InstanceProperties {
+	if x, ok := x.GetData().(*Event_Instance); ok {
+		return x.Instance
+	}
+	return nil
+}
+
+func (x *Event) GetProfile() *v33.ThreadSnapshot {
+	if x, ok := x.GetData().(*Event_Profile); ok {
+		return x.Profile
+	}
+	return nil
+}
+
+func (x *Event) GetServiceMesh() *v34.ServiceMeshMetric {
+	if x, ok := x.GetData().(*Event_ServiceMesh); ok {
+		return x.ServiceMesh
+	}
+	return nil
+}
+
+type isEvent_Data interface {
+	isEvent_Data()
+}
+
+type Event_Clr struct {
+	Clr *v3.CLRMetricCollection `protobuf:"bytes,6,opt,name=clr,proto3,oneof"`
+}
+
+type Event_Jvm struct {
+	Jvm *v3.JVMMetricCollection `protobuf:"bytes,7,opt,name=jvm,proto3,oneof"`
+}
+
+type Event_Meter struct {
+	Meter *v3.MeterData `protobuf:"bytes,8,opt,name=meter,proto3,oneof"`
+}
+
+type Event_Segment struct {
+	Segment *v3.SegmentObject `protobuf:"bytes,9,opt,name=segment,proto3,oneof"`
+}
+
+type Event_Log struct {
+	Log *v31.LogData `protobuf:"bytes,10,opt,name=log,proto3,oneof"`
+}
+
+type Event_Instance struct {
+	Instance *v32.InstanceProperties `protobuf:"bytes,11,opt,name=instance,proto3,oneof"`
+}
+
+type Event_Profile struct {
+	Profile *v33.ThreadSnapshot `protobuf:"bytes,12,opt,name=profile,proto3,oneof"`
+}
+
+type Event_ServiceMesh struct {
+	ServiceMesh *v34.ServiceMeshMetric `protobuf:"bytes,13,opt,name=serviceMesh,proto3,oneof"`
+}
+
+func (*Event_Clr) isEvent_Data() {}
+
+func (*Event_Jvm) isEvent_Data() {}
+
+func (*Event_Meter) isEvent_Data() {}
+
+func (*Event_Segment) isEvent_Data() {}
+
+func (*Event_Log) isEvent_Data() {}
+
+func (*Event_Instance) isEvent_Data() {}
+
+func (*Event_Profile) isEvent_Data() {}
+
+func (*Event_ServiceMesh) isEvent_Data() {}
+
+var File_satellite_Event_proto protoreflect.FileDescriptor
+
+var file_satellite_Event_proto_rawDesc = []byte{
+	0x0a, 0x15, 0x73, 0x61, 0x74, 0x65, 0x6c, 0x6c, 0x69, 0x74, 0x65, 0x2f, 0x45, 0x76, 0x65, 0x6e,
+	0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0d, 0x73, 0x6b, 0x79, 0x77, 0x61, 0x6c, 0x6b,
+	0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x1a, 0x1e, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65,
+	0x2d, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x2f, 0x43, 0x4c, 0x52, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63,
+	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65,
+	0x2d, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x2f, 0x4a, 0x56, 0x4d, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63,
+	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1a, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65,
+	0x2d, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x2f, 0x4d, 0x65, 0x74, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f,
+	0x74, 0x6f, 0x1a, 0x1c, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2d, 0x61, 0x67, 0x65,
+	0x6e, 0x74, 0x2f, 0x54, 0x72, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
+	0x1a, 0x15, 0x6c, 0x6f, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x2f, 0x4c, 0x6f, 0x67, 0x67, 0x69, 0x6e,
+	0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1b, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d,
+	0x65, 0x6e, 0x74, 0x2f, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x70,
+	0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x15, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x2f, 0x50, 0x72,
+	0x6f, 0x66, 0x69, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x25, 0x73, 0x65, 0x72,
+	0x76, 0x69, 0x63, 0x65, 0x2d, 0x6d, 0x65, 0x73, 0x68, 0x2d, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x2f,
+	0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2d, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x70, 0x72, 0x6f,
+	0x74, 0x6f, 0x22, 0xbe, 0x05, 0x0a, 0x05, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x09,
+	0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52,
+	0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61,
+	0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x2c,
+	0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x18, 0x2e, 0x73,
+	0x6b, 0x79, 0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x45, 0x76, 0x65,
+	0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06,
+	0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x72, 0x65,
+	0x6d, 0x6f, 0x74, 0x65, 0x12, 0x32, 0x0a, 0x04, 0x6d, 0x65, 0x74, 0x61, 0x18, 0x05, 0x20, 0x03,
+	0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x73, 0x6b, 0x79, 0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x2e,
+	0x76, 0x33, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x45, 0x6e, 0x74,
+	0x72, 0x79, 0x52, 0x04, 0x6d, 0x65, 0x74, 0x61, 0x12, 0x36, 0x0a, 0x03, 0x63, 0x6c, 0x72, 0x18,
+	0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x73, 0x6b, 0x79, 0x77, 0x61, 0x6c, 0x6b, 0x69,
+	0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x43, 0x4c, 0x52, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x43,
+	0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x03, 0x63, 0x6c, 0x72,
+	0x12, 0x36, 0x0a, 0x03, 0x6a, 0x76, 0x6d, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e,
+	0x73, 0x6b, 0x79, 0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x4a, 0x56,
+	0x4d, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f,
+	0x6e, 0x48, 0x00, 0x52, 0x03, 0x6a, 0x76, 0x6d, 0x12, 0x30, 0x0a, 0x05, 0x6d, 0x65, 0x74, 0x65,
+	0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x73, 0x6b, 0x79, 0x77, 0x61, 0x6c,
+	0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x4d, 0x65, 0x74, 0x65, 0x72, 0x44, 0x61, 0x74,
+	0x61, 0x48, 0x00, 0x52, 0x05, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x12, 0x38, 0x0a, 0x07, 0x73, 0x65,
+	0x67, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x6b,
+	0x79, 0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x53, 0x65, 0x67, 0x6d,
+	0x65, 0x6e, 0x74, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x48, 0x00, 0x52, 0x07, 0x73, 0x65, 0x67,
+	0x6d, 0x65, 0x6e, 0x74, 0x12, 0x2a, 0x0a, 0x03, 0x6c, 0x6f, 0x67, 0x18, 0x0a, 0x20, 0x01, 0x28,
+	0x0b, 0x32, 0x16, 0x2e, 0x73, 0x6b, 0x79, 0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76,
+	0x33, 0x2e, 0x4c, 0x6f, 0x67, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x03, 0x6c, 0x6f, 0x67,
+	0x12, 0x3f, 0x0a, 0x08, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x0b, 0x20, 0x01,
+	0x28, 0x0b, 0x32, 0x21, 0x2e, 0x73, 0x6b, 0x79, 0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x2e,
+	0x76, 0x33, 0x2e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x70, 0x65,
+	0x72, 0x74, 0x69, 0x65, 0x73, 0x48, 0x00, 0x52, 0x08, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63,
+	0x65, 0x12, 0x39, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x0c, 0x20, 0x01,
+	0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x73, 0x6b, 0x79, 0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x2e,
+	0x76, 0x33, 0x2e, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f,
+	0x74, 0x48, 0x00, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x44, 0x0a, 0x0b,
+	0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4d, 0x65, 0x73, 0x68, 0x18, 0x0d, 0x20, 0x01, 0x28,
+	0x0b, 0x32, 0x20, 0x2e, 0x73, 0x6b, 0x79, 0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76,
+	0x33, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4d, 0x65, 0x73, 0x68, 0x4d, 0x65, 0x74,
+	0x72, 0x69, 0x63, 0x48, 0x00, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4d, 0x65,
+	0x73, 0x68, 0x1a, 0x37, 0x0a, 0x09, 0x4d, 0x65, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12,
+	0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65,
+	0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
+	0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0x06, 0x0a, 0x04, 0x64,
+	0x61, 0x74, 0x61, 0x2a, 0x98, 0x01, 0x0a, 0x09, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70,
+	0x65, 0x12, 0x11, 0x0a, 0x0d, 0x43, 0x4c, 0x52, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x79,
+	0x70, 0x65, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x4a, 0x56, 0x4d, 0x4d, 0x65, 0x74, 0x72, 0x69,
+	0x63, 0x54, 0x79, 0x70, 0x65, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x4d, 0x65, 0x74, 0x65, 0x72,
+	0x54, 0x79, 0x70, 0x65, 0x10, 0x02, 0x12, 0x0f, 0x0a, 0x0b, 0x54, 0x72, 0x61, 0x63, 0x69, 0x6e,
+	0x67, 0x54, 0x79, 0x70, 0x65, 0x10, 0x03, 0x12, 0x0b, 0x0a, 0x07, 0x4c, 0x6f, 0x67, 0x67, 0x69,
+	0x6e, 0x67, 0x10, 0x04, 0x12, 0x12, 0x0a, 0x0e, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65,
+	0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x10, 0x05, 0x12, 0x0f, 0x0a, 0x0b, 0x50, 0x72, 0x6f, 0x66,
+	0x69, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x10, 0x06, 0x12, 0x13, 0x0a, 0x0f, 0x53, 0x65, 0x72,
+	0x76, 0x69, 0x63, 0x65, 0x4d, 0x65, 0x73, 0x68, 0x54, 0x79, 0x70, 0x65, 0x10, 0x07, 0x42, 0x35,
+	0x5a, 0x33, 0x73, 0x6b, 0x79, 0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x61, 0x70, 0x61,
+	0x63, 0x68, 0x65, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x2f, 0x67, 0x6f, 0x61,
+	0x70, 0x69, 0x2f, 0x73, 0x61, 0x74, 0x65, 0x6c, 0x6c, 0x69, 0x74, 0x65, 0x2f, 0x65, 0x76, 0x65,
+	0x6e, 0x74, 0x2f, 0x76, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+}
+
+var (
+	file_satellite_Event_proto_rawDescOnce sync.Once
+	file_satellite_Event_proto_rawDescData = file_satellite_Event_proto_rawDesc
+)
+
+func file_satellite_Event_proto_rawDescGZIP() []byte {
+	file_satellite_Event_proto_rawDescOnce.Do(func() {
+		file_satellite_Event_proto_rawDescData = protoimpl.X.CompressGZIP(file_satellite_Event_proto_rawDescData)
+	})
+	return file_satellite_Event_proto_rawDescData
+}
+
+var file_satellite_Event_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
+var file_satellite_Event_proto_msgTypes = make([]protoimpl.MessageInfo, 2)
+var file_satellite_Event_proto_goTypes = []interface{}{
+	(EventType)(0),                 // 0: skywalking.v3.EventType
+	(*Event)(nil),                  // 1: skywalking.v3.Event
+	nil,                            // 2: skywalking.v3.Event.MetaEntry
+	(*v3.CLRMetricCollection)(nil), // 3: skywalking.v3.CLRMetricCollection
+	(*v3.JVMMetricCollection)(nil), // 4: skywalking.v3.JVMMetricCollection
+	(*v3.MeterData)(nil),           // 5: skywalking.v3.MeterData
+	(*v3.SegmentObject)(nil),       // 6: skywalking.v3.SegmentObject
+	(*v31.LogData)(nil),            // 7: skywalking.v3.LogData
+	(*v32.InstanceProperties)(nil), // 8: skywalking.v3.InstanceProperties
+	(*v33.ThreadSnapshot)(nil),     // 9: skywalking.v3.ThreadSnapshot
+	(*v34.ServiceMeshMetric)(nil),  // 10: skywalking.v3.ServiceMeshMetric
+}
+var file_satellite_Event_proto_depIdxs = []int32{
+	0,  // 0: skywalking.v3.Event.type:type_name -> skywalking.v3.EventType
+	2,  // 1: skywalking.v3.Event.meta:type_name -> skywalking.v3.Event.MetaEntry
+	3,  // 2: skywalking.v3.Event.clr:type_name -> skywalking.v3.CLRMetricCollection
+	4,  // 3: skywalking.v3.Event.jvm:type_name -> skywalking.v3.JVMMetricCollection
+	5,  // 4: skywalking.v3.Event.meter:type_name -> skywalking.v3.MeterData
+	6,  // 5: skywalking.v3.Event.segment:type_name -> skywalking.v3.SegmentObject
+	7,  // 6: skywalking.v3.Event.log:type_name -> skywalking.v3.LogData
+	8,  // 7: skywalking.v3.Event.instance:type_name -> skywalking.v3.InstanceProperties
+	9,  // 8: skywalking.v3.Event.profile:type_name -> skywalking.v3.ThreadSnapshot
+	10, // 9: skywalking.v3.Event.serviceMesh:type_name -> skywalking.v3.ServiceMeshMetric
+	10, // [10:10] is the sub-list for method output_type
+	10, // [10:10] is the sub-list for method input_type
+	10, // [10:10] is the sub-list for extension type_name
+	10, // [10:10] is the sub-list for extension extendee
+	0,  // [0:10] is the sub-list for field type_name
+}
+
+func init() { file_satellite_Event_proto_init() }
+func file_satellite_Event_proto_init() {
+	if File_satellite_Event_proto != nil {
+		return
+	}
+	if !protoimpl.UnsafeEnabled {
+		file_satellite_Event_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
+			switch v := v.(*Event); i {
+			case 0:
+				return &v.state
+			case 1:
+				return &v.sizeCache
+			case 2:
+				return &v.unknownFields
+			default:
+				return nil
+			}
+		}
+	}
+	file_satellite_Event_proto_msgTypes[0].OneofWrappers = []interface{}{
+		(*Event_Clr)(nil),
+		(*Event_Jvm)(nil),
+		(*Event_Meter)(nil),
+		(*Event_Segment)(nil),
+		(*Event_Log)(nil),
+		(*Event_Instance)(nil),
+		(*Event_Profile)(nil),
+		(*Event_ServiceMesh)(nil),
+	}
+	type x struct{}
+	out := protoimpl.TypeBuilder{
+		File: protoimpl.DescBuilder{
+			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
+			RawDescriptor: file_satellite_Event_proto_rawDesc,
+			NumEnums:      1,
+			NumMessages:   2,
+			NumExtensions: 0,
+			NumServices:   0,
+		},
+		GoTypes:           file_satellite_Event_proto_goTypes,
+		DependencyIndexes: file_satellite_Event_proto_depIdxs,
+		EnumInfos:         file_satellite_Event_proto_enumTypes,
+		MessageInfos:      file_satellite_Event_proto_msgTypes,
+	}.Build()
+	File_satellite_Event_proto = out.File
+	file_satellite_Event_proto_rawDesc = nil
+	file_satellite_Event_proto_goTypes = nil
+	file_satellite_Event_proto_depIdxs = nil
+}
diff --git a/scripts/update.sh b/scripts/update.sh
index 450b490..1027062 100644
--- a/scripts/update.sh
+++ b/scripts/update.sh
@@ -21,5 +21,6 @@ set -e
 
 bash "$(dirname "$0")"/update_collect_protocol.sh
 bash "$(dirname "$0")"/update_query_protocol.sh
+bash "$(dirname "$0")"/update_satellite_protocol.sh
 
 rm -rf temp
diff --git a/scripts/update_satellite_protocol.sh b/scripts/update_satellite_protocol.sh
new file mode 100644
index 0000000..37dc968
--- /dev/null
+++ b/scripts/update_satellite_protocol.sh
@@ -0,0 +1,63 @@
+#!/usr/bin/env bash
+
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you 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.
+
+set -e
+
+BASEDIR=$(dirname "$0")/..
+TEMPDIR="$BASEDIR"/temp
+
+. "$BASEDIR"/dependencies.sh
+
+if [[ ! -d "$TEMPDIR" ]]; then
+  mkdir -p "$TEMPDIR"
+else
+  rm -rf "${TEMPDIR:?}"/*
+fi
+
+curl -sLo "$TEMPDIR"/collect-protocol.tgz https://github.com/apache/skywalking-data-collect-protocol/archive/"${COLLECT_PROTOCOL_SHA}".tar.gz
+
+if [[ ! -d "$TEMPDIR"/collect-protocol ]]; then
+  mkdir "$TEMPDIR"/collect-protocol
+else
+  rm -rf "$TEMPDIR"/collect-protocol/*
+fi
+
+tar -zxf "$TEMPDIR"/collect-protocol.tgz -C "$TEMPDIR"/collect-protocol --strip 1
+
+find "$TEMPDIR"/collect-protocol -name "*Compat.proto" -exec rm {} \;
+
+cp -R "$BASEDIR"/protocol/satellite-protocol "$TEMPDIR"
+
+cp -R "$TEMPDIR"/collect-protocol/* "$TEMPDIR"/satellite-protocol
+
+rm -rf "$BASEDIR"/satellite
+
+
+go get -u google.golang.org/protobuf/cmd/protoc-gen-go@v1.26.0
+go get -u google.golang.org/grpc/cmd/protoc-gen-go-grpc@v1.1.0
+
+"$BASEDIR"/scripts/protoc.sh \
+  --proto_path="$TEMPDIR"/satellite-protocol \
+  --go_out="$BASEDIR" \
+  --go-grpc_out="$BASEDIR" \
+  "$TEMPDIR"/satellite-protocol/satellite/*.proto
+
+mv "$BASEDIR"/skywalking.apache.org/repo/goapi/satellite "$BASEDIR"/ && rm -rf "$BASEDIR"/skywalking.apache.org
+
+go mod tidy