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/04 04:50:30 UTC

[skywalking-satellite] 01/01: remove-gen-codes-with-goapi

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

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

commit e386e70dcec7a571472ccad61e58effe6141ab9c
Author: Evan <ev...@outlook.com>
AuthorDate: Fri Jun 4 12:50:09 2021 +0800

    remove-gen-codes-with-goapi
---
 .gitmodules                                        |    3 -
 Makefile                                           |    6 +-
 .../plugins/forwarder_meter-grpc-forwarder.md      |    2 +-
 docs/en/setup/plugins/plugin-list.md               |    2 +-
 go.mod                                             |    6 +-
 go.sum                                             |    9 +-
 internal/satellite/event/event.go                  |   10 +-
 internal/satellite/module/processor/processor.go   |    5 +-
 internal/satellite/module/sender/sender.go         |    5 +-
 plugins/forwarder/api/forwarder.go                 |    5 +-
 plugins/forwarder/grpc/meter/sync_forwarder.go     |   11 +-
 plugins/forwarder/grpc/nativelog/sync_forwarder.go |   17 +-
 .../forwarder/kafka/nativelog/sync_forwarder.go    |    9 +-
 plugins/queue/api/queue.go                         |    7 +-
 plugins/queue/memory/queue.go                      |    7 +-
 plugins/queue/memory/queue_test.go                 |    5 +-
 plugins/queue/mmap/queue.go                        |    7 +-
 plugins/queue/mmap/queue_test.go                   |   27 +-
 plugins/receiver/api/receiver.go                   |    5 +-
 plugins/receiver/grpc/common.go                    |    6 +-
 .../receiver/grpc/nativelog/log_report_service.go  |   15 +-
 plugins/receiver/grpc/nativelog/receiver.go        |    8 +-
 plugins/receiver/grpc/nativelog/receiver_test.go   |    8 +-
 plugins/receiver/http/nativcelog/receiver.go       |   21 +-
 plugins/receiver/http/nativcelog/receiver_test.go  |    8 +-
 protocol/gen-codes/satellite/protocol/Event.pb.go  |  493 ---------
 .../v3/ConfigurationDiscoveryService.pb.go         |  198 ----
 .../v3/ConfigurationDiscoveryService_grpc.pb.go    |  119 ---
 .../skywalking/network/common/v3/Common.pb.go      |  436 --------
 protocol/gen-codes/skywalking/network/go.mod       |    9 -
 protocol/gen-codes/skywalking/network/go.sum       |   51 -
 .../network/language/agent/v3/BrowserPerf.pb.go    |  627 ------------
 .../language/agent/v3/BrowserPerf_grpc.pb.go       |  177 ----
 .../network/language/agent/v3/CLRMetric.pb.go      |  495 ---------
 .../network/language/agent/v3/CLRMetric_grpc.pb.go |  103 --
 .../network/language/agent/v3/JVMMetric.pb.go      |  810 ---------------
 .../network/language/agent/v3/JVMMetric_grpc.pb.go |  103 --
 .../network/language/agent/v3/Meter.pb.go          |  652 ------------
 .../network/language/agent/v3/Meter_grpc.pb.go     |  138 ---
 .../network/language/agent/v3/Tracing.pb.go        | 1062 --------------------
 .../network/language/agent/v3/Tracing_grpc.pb.go   |  188 ----
 .../network/language/profile/v3/Profile.pb.go      |  479 ---------
 .../network/language/profile/v3/Profile_grpc.pb.go |  215 ----
 .../skywalking/network/logging/v3/Logging.pb.go    |  748 --------------
 .../network/logging/v3/Logging_grpc.pb.go          |  142 ---
 .../network/management/v3/Management.pb.go         |  284 ------
 .../network/management/v3/Management_grpc.pb.go    |  146 ---
 .../network/servicemesh/v3/service-mesh.pb.go      |  430 --------
 .../network/servicemesh/v3/service-mesh_grpc.pb.go |  136 ---
 protocol/satellite-protocol/satellite/Event.proto  |   71 --
 tools/install_protoc.sh                            |   43 -
 tools/protocol_gen.sh                              |   59 --
 52 files changed, 111 insertions(+), 8517 deletions(-)

diff --git a/.gitmodules b/.gitmodules
deleted file mode 100644
index 3cc9e11..0000000
--- a/.gitmodules
+++ /dev/null
@@ -1,3 +0,0 @@
-[submodule "protocol/skywalking-data-collect-protocol"]
-	path = protocol/skywalking-data-collect-protocol
-	url = https://github.com/apache/skywalking-data-collect-protocol
diff --git a/Makefile b/Makefile
index cbbf9c9..50e2347 100644
--- a/Makefile
+++ b/Makefile
@@ -54,6 +54,10 @@ tools:
 deps: tools
 	$(GO_GET) -v -t -d ./...
 
+.PHONY: gen-docs
+gen-docs: build
+	rm -rf $(PLUGIN_DOC_DIR)
+	$(OUT_DIR)/$(BINARY)-$(VERSION)-$(OSNAME)-$(ARCH) docs --output=$(PLUGIN_DOC_DIR)
 
 .PHONY: lint
 lint: tools
@@ -71,7 +75,7 @@ clean: tools
 	-rm -rf coverage.txt
 
 .PHONY: build
-build: clean deps linux darwin windows
+build: clean gen-docs deps linux darwin windows
 
 .PHONY: check
 check: clean
diff --git a/docs/en/setup/plugins/forwarder_meter-grpc-forwarder.md b/docs/en/setup/plugins/forwarder_meter-grpc-forwarder.md
old mode 100644
new mode 100755
index 4e70a54..83005b0
--- a/docs/en/setup/plugins/forwarder_meter-grpc-forwarder.md
+++ b/docs/en/setup/plugins/forwarder_meter-grpc-forwarder.md
@@ -2,4 +2,4 @@
 ## Description
 This is a synchronization meter grpc forwarder with the SkyWalking meter protocol.
 ## DefaultConfig
-```yaml```
\ No newline at end of file
+```yaml```
diff --git a/docs/en/setup/plugins/plugin-list.md b/docs/en/setup/plugins/plugin-list.md
index 04064b7..3b08c3a 100755
--- a/docs/en/setup/plugins/plugin-list.md
+++ b/docs/en/setup/plugins/plugin-list.md
@@ -8,9 +8,9 @@
 - Fetcher
 - Filter
 - Forwarder
+	- [meter-grpc-forwarder](./forwarder_meter-grpc-forwarder.md)
 	- [nativelog-grpc-forwarder](./forwarder_nativelog-grpc-forwarder.md)
 	- [nativelog-kafka-forwarder](./forwarder_nativelog-kafka-forwarder.md)
-	- [meter-grpc-forwarder](./forwarder_meter-grpc-forwarder.md)
 - Parser
 - Queue
 	- [memory-queue](./queue_memory-queue.md)
diff --git a/go.mod b/go.mod
index 7242494..8e5c460 100644
--- a/go.mod
+++ b/go.mod
@@ -2,8 +2,6 @@ module github.com/apache/skywalking-satellite
 
 go 1.14
 
-replace skywalking/network v1.0.0 => ./protocol/gen-codes/skywalking/network
-
 require (
 	github.com/Shopify/sarama v1.27.2
 	github.com/enriquebris/goconcurrentqueue v0.6.0
@@ -15,7 +13,7 @@ require (
 	github.com/spf13/viper v1.7.1
 	github.com/urfave/cli/v2 v2.3.0
 	go.uber.org/automaxprocs v1.4.0
-	google.golang.org/grpc v1.36.1
+	google.golang.org/grpc v1.38.0
 	google.golang.org/protobuf v1.26.0
-	skywalking/network v1.0.0
+	skywalking.apache.org/repo/goapi v0.0.0-20210604033701-af17f1bab1a2
 )
diff --git a/go.sum b/go.sum
index dc0fc00..d93e612 100644
--- a/go.sum
+++ b/go.sum
@@ -86,7 +86,7 @@ github.com/enriquebris/goconcurrentqueue v0.6.0/go.mod h1:wGJhQNFI4wLNHleZLo5ehk
 github.com/envoyproxy/go-control-plane v0.6.9/go.mod h1:SBwIajubJHhxtWwsL9s8ss4safvEdbitLhGGK48rN6g=
 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/go-control-plane v0.9.9-0.20210217033140-668b12f5399d/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk=
 github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
 github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4=
 github.com/fortytw2/leaktest v1.3.0 h1:u8491cBMTQ8ft8aeV+adlcytMZylmA5nnwwkRZjI8vw=
@@ -483,6 +483,7 @@ golang.org/x/sys v0.0.0-20190826190057-c7b8b68b1456/go.mod h1:h1NjWce9XRLGQEsW7w
 golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20191220142924-d4481acd189f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20200106162015-b016eb3dc98e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20200615200032-f1bc736245b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20200625212154-ddb9806d33ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
@@ -559,8 +560,8 @@ google.golang.org/grpc v1.23.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyac
 google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY=
 google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk=
 google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk=
-google.golang.org/grpc v1.36.1 h1:cmUfbeGKnz9+2DD/UYsMQXeqbHZqZDs4eQwW0sFOpBY=
-google.golang.org/grpc v1.36.1/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU=
+google.golang.org/grpc v1.38.0 h1:/9BgsAsa5nWe26HqOlvlgJnqBuktYOLCgjCPqsa56W0=
+google.golang.org/grpc v1.38.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM=
 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=
@@ -617,4 +618,6 @@ honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWh
 honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg=
 rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8=
 sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o=
+skywalking.apache.org/repo/goapi v0.0.0-20210604033701-af17f1bab1a2 h1:jWagII79aT2DcR+evh2YpASfbTYcenbOqyQerswwA1k=
+skywalking.apache.org/repo/goapi v0.0.0-20210604033701-af17f1bab1a2/go.mod h1:wm5inQxMxXggTPgEk1iTzZ7EqA/VqbsByywT1dWrCww=
 sourcegraph.com/sourcegraph/appdash v0.0.0-20190731080439-ebfcffb1b5c0/go.mod h1:hI742Nqp5OhwiqlzhgfbWU4mW4yO10fP+LoT9WOswdU=
diff --git a/internal/satellite/event/event.go b/internal/satellite/event/event.go
index 2b118b0..97e1240 100644
--- a/internal/satellite/event/event.go
+++ b/internal/satellite/event/event.go
@@ -20,7 +20,7 @@ package event
 import (
 	"fmt"
 
-	"github.com/apache/skywalking-satellite/protocol/gen-codes/satellite/protocol"
+	v1 "skywalking.apache.org/repo/goapi/satellite/data/v1"
 )
 
 type Type int32
@@ -29,21 +29,21 @@ type Type int32
 type Offset string
 
 // BatchEvents is used by Forwarder to forward.
-type BatchEvents []*protocol.Event
+type BatchEvents []*v1.SniffData
 
 // OutputEventContext is a container to store the output context.
 type OutputEventContext struct {
-	Context map[string]*protocol.Event
+	Context map[string]*v1.SniffData
 	Offset  Offset
 }
 
 // Put puts the incoming event into the context.
-func (c *OutputEventContext) Put(event *protocol.Event) {
+func (c *OutputEventContext) Put(event *v1.SniffData) {
 	c.Context[event.GetName()] = event
 }
 
 // Get returns an event in the context. When the eventName does not exist, an error would be returned.
-func (c *OutputEventContext) Get(eventName string) (*protocol.Event, error) {
+func (c *OutputEventContext) Get(eventName string) (*v1.SniffData, error) {
 	e, ok := c.Context[eventName]
 	if !ok {
 		err := fmt.Errorf("cannot find the event name in OutputEventContext : %s", eventName)
diff --git a/internal/satellite/module/processor/processor.go b/internal/satellite/module/processor/processor.go
index 765ae4f..350ed7d 100644
--- a/internal/satellite/module/processor/processor.go
+++ b/internal/satellite/module/processor/processor.go
@@ -27,7 +27,8 @@ import (
 	processor "github.com/apache/skywalking-satellite/internal/satellite/module/processor/api"
 	sender "github.com/apache/skywalking-satellite/internal/satellite/module/sender/api"
 	filter "github.com/apache/skywalking-satellite/plugins/filter/api"
-	"github.com/apache/skywalking-satellite/protocol/gen-codes/satellite/protocol"
+
+	v1 "skywalking.apache.org/repo/goapi/satellite/data/v1"
 )
 
 // Processor is the processing module in Satellite.
@@ -61,7 +62,7 @@ func (p *Processor) Boot(ctx context.Context) {
 			case e := <-p.gatherer.OutputDataChannel():
 				c := &event.OutputEventContext{
 					Offset:  e.Offset,
-					Context: make(map[string]*protocol.Event),
+					Context: make(map[string]*v1.SniffData),
 				}
 				c.Put(e.Event)
 				// processing the event with filters, that put the necessary events to OutputEventContext.
diff --git a/internal/satellite/module/sender/sender.go b/internal/satellite/module/sender/sender.go
index e75e24c..bd64f65 100644
--- a/internal/satellite/module/sender/sender.go
+++ b/internal/satellite/module/sender/sender.go
@@ -25,6 +25,8 @@ import (
 
 	"github.com/sirupsen/logrus"
 
+	v1 "skywalking.apache.org/repo/goapi/satellite/data/v1"
+
 	"github.com/apache/skywalking-satellite/internal/pkg/log"
 	"github.com/apache/skywalking-satellite/internal/satellite/event"
 	module "github.com/apache/skywalking-satellite/internal/satellite/module/api"
@@ -35,7 +37,6 @@ import (
 	client "github.com/apache/skywalking-satellite/plugins/client/api"
 	fallbacker "github.com/apache/skywalking-satellite/plugins/fallbacker/api"
 	forwarder "github.com/apache/skywalking-satellite/plugins/forwarder/api"
-	"github.com/apache/skywalking-satellite/protocol/gen-codes/satellite/protocol"
 )
 
 // Sender is the forward module in Satellite.
@@ -186,7 +187,7 @@ func (s *Sender) consume(batch *buffer.BatchBuffer) {
 		"offset": batch.Last(),
 		"size":   batch.Len(),
 	}).Info("sender module is flushing a new batch buffer.")
-	var events = make(map[protocol.EventType]event.BatchEvents)
+	var events = make(map[v1.SniffType]event.BatchEvents)
 	for i := 0; i < batch.Len(); i++ {
 		eventContext := batch.Buf()[i]
 		for _, e := range eventContext.Context {
diff --git a/plugins/forwarder/api/forwarder.go b/plugins/forwarder/api/forwarder.go
index 68017c7..42004b4 100644
--- a/plugins/forwarder/api/forwarder.go
+++ b/plugins/forwarder/api/forwarder.go
@@ -20,9 +20,10 @@ package api
 import (
 	"reflect"
 
+	v1 "skywalking.apache.org/repo/goapi/satellite/data/v1"
+
 	"github.com/apache/skywalking-satellite/internal/pkg/plugin"
 	"github.com/apache/skywalking-satellite/internal/satellite/event"
-	"github.com/apache/skywalking-satellite/protocol/gen-codes/satellite/protocol"
 )
 
 // Forwarder is a plugin interface, that defines new forwarders.
@@ -33,7 +34,7 @@ type Forwarder interface {
 	// Forward the batch events to the external services, such as Kafka MQ and SkyWalking OAP cluster.
 	Forward(batch event.BatchEvents) error
 	// ForwardType returns the supported event type.
-	ForwardType() protocol.EventType
+	ForwardType() v1.SniffType
 }
 
 // ForwardFunc represent the Forward() in Forwarder
diff --git a/plugins/forwarder/grpc/meter/sync_forwarder.go b/plugins/forwarder/grpc/meter/sync_forwarder.go
index 0a52480..ef66be7 100644
--- a/plugins/forwarder/grpc/meter/sync_forwarder.go
+++ b/plugins/forwarder/grpc/meter/sync_forwarder.go
@@ -23,12 +23,11 @@ import (
 	"io"
 	"reflect"
 
-	"github.com/apache/skywalking-satellite/protocol/gen-codes/satellite/protocol"
+	v3 "skywalking.apache.org/repo/goapi/collect/language/agent/v3"
+	v1 "skywalking.apache.org/repo/goapi/satellite/data/v1"
 
 	"google.golang.org/grpc"
 
-	v3 "skywalking/network/language/agent/v3"
-
 	"github.com/apache/skywalking-satellite/internal/pkg/config"
 	"github.com/apache/skywalking-satellite/internal/pkg/log"
 	"github.com/apache/skywalking-satellite/internal/satellite/event"
@@ -70,7 +69,7 @@ func (f *Forwarder) Forward(batch event.BatchEvents) error {
 		return err
 	}
 	for _, e := range batch {
-		data, ok := e.GetData().(*protocol.Event_Meter)
+		data, ok := e.GetData().(*v1.SniffData_Meter)
 		if !ok {
 			continue
 		}
@@ -95,6 +94,6 @@ func closeStream(stream v3.MeterReportService_CollectClient) error {
 	return nil
 }
 
-func (f *Forwarder) ForwardType() protocol.EventType {
-	return protocol.EventType_MeterType
+func (f *Forwarder) ForwardType() v1.SniffType {
+	return v1.SniffType_MeterType
 }
diff --git a/plugins/forwarder/grpc/nativelog/sync_forwarder.go b/plugins/forwarder/grpc/nativelog/sync_forwarder.go
index 0daea19..6383ec3 100644
--- a/plugins/forwarder/grpc/nativelog/sync_forwarder.go
+++ b/plugins/forwarder/grpc/nativelog/sync_forwarder.go
@@ -23,11 +23,10 @@ import (
 	"io"
 	"reflect"
 
-	"github.com/apache/skywalking-satellite/protocol/gen-codes/satellite/protocol"
-
 	"google.golang.org/grpc"
 
-	loggingv3 "skywalking/network/logging/v3"
+	logging "skywalking.apache.org/repo/goapi/collect/logging/v3"
+	v1 "skywalking.apache.org/repo/goapi/satellite/data/v1"
 
 	"github.com/apache/skywalking-satellite/internal/pkg/config"
 	"github.com/apache/skywalking-satellite/internal/pkg/log"
@@ -39,7 +38,7 @@ const Name = "nativelog-grpc-forwarder"
 type Forwarder struct {
 	config.CommonFields
 
-	logClient loggingv3.LogReportServiceClient
+	logClient logging.LogReportServiceClient
 }
 
 func (f *Forwarder) Name() string {
@@ -60,7 +59,7 @@ func (f *Forwarder) Prepare(connection interface{}) error {
 		return fmt.Errorf("the %s is only accepet the grpc client, but receive a %s",
 			f.Name(), reflect.TypeOf(connection).String())
 	}
-	f.logClient = loggingv3.NewLogReportServiceClient(client)
+	f.logClient = logging.NewLogReportServiceClient(client)
 	return nil
 }
 
@@ -71,7 +70,7 @@ func (f *Forwarder) Forward(batch event.BatchEvents) error {
 		return err
 	}
 	for _, e := range batch {
-		data, ok := e.GetData().(*protocol.Event_Log)
+		data, ok := e.GetData().(*v1.SniffData_Log)
 		if !ok {
 			continue
 		}
@@ -88,7 +87,7 @@ func (f *Forwarder) Forward(batch event.BatchEvents) error {
 	return closeStream(stream)
 }
 
-func closeStream(stream loggingv3.LogReportService_CollectClient) error {
+func closeStream(stream logging.LogReportService_CollectClient) error {
 	_, err := stream.CloseAndRecv()
 	if err != nil && err != io.EOF {
 		return err
@@ -96,6 +95,6 @@ func closeStream(stream loggingv3.LogReportService_CollectClient) error {
 	return nil
 }
 
-func (f *Forwarder) ForwardType() protocol.EventType {
-	return protocol.EventType_Logging
+func (f *Forwarder) ForwardType() v1.SniffType {
+	return v1.SniffType_Logging
 }
diff --git a/plugins/forwarder/kafka/nativelog/sync_forwarder.go b/plugins/forwarder/kafka/nativelog/sync_forwarder.go
index 942d9e6..ab88177 100644
--- a/plugins/forwarder/kafka/nativelog/sync_forwarder.go
+++ b/plugins/forwarder/kafka/nativelog/sync_forwarder.go
@@ -28,7 +28,8 @@ import (
 	"github.com/apache/skywalking-satellite/internal/pkg/config"
 	"github.com/apache/skywalking-satellite/internal/pkg/log"
 	"github.com/apache/skywalking-satellite/internal/satellite/event"
-	"github.com/apache/skywalking-satellite/protocol/gen-codes/satellite/protocol"
+
+	v1 "skywalking.apache.org/repo/goapi/satellite/data/v1"
 )
 
 const Name = "nativelog-kafka-forwarder"
@@ -71,7 +72,7 @@ func (f *Forwarder) Prepare(connection interface{}) error {
 func (f *Forwarder) Forward(batch event.BatchEvents) error {
 	var message []*sarama.ProducerMessage
 	for _, e := range batch {
-		data, ok := e.GetData().(*protocol.Event_Log)
+		data, ok := e.GetData().(*v1.SniffData_Log)
 		if !ok {
 			continue
 		}
@@ -88,6 +89,6 @@ func (f *Forwarder) Forward(batch event.BatchEvents) error {
 	return f.producer.SendMessages(message)
 }
 
-func (f *Forwarder) ForwardType() protocol.EventType {
-	return protocol.EventType_Logging
+func (f *Forwarder) ForwardType() v1.SniffType {
+	return v1.SniffType_Logging
 }
diff --git a/plugins/queue/api/queue.go b/plugins/queue/api/queue.go
index 1b67301..8f2f1ee 100644
--- a/plugins/queue/api/queue.go
+++ b/plugins/queue/api/queue.go
@@ -22,7 +22,8 @@ import (
 
 	"github.com/apache/skywalking-satellite/internal/pkg/plugin"
 	"github.com/apache/skywalking-satellite/internal/satellite/event"
-	"github.com/apache/skywalking-satellite/protocol/gen-codes/satellite/protocol"
+
+	v1 "skywalking.apache.org/repo/goapi/satellite/data/v1"
 )
 
 // Queue is a plugin interface, that defines new queues.
@@ -33,7 +34,7 @@ type Queue interface {
 	Initialize() error
 
 	// Enqueue a inputEvent into the queue.
-	Enqueue(event *protocol.Event) error
+	Enqueue(event *v1.SniffData) error
 
 	// Dequeue returns a SequenceEvent when Queue is not empty,
 	Dequeue() (*SequenceEvent, error)
@@ -47,7 +48,7 @@ type Queue interface {
 
 // SequenceEvent is a wrapper to pass the event and the offset.
 type SequenceEvent struct {
-	Event  *protocol.Event
+	Event  *v1.SniffData
 	Offset event.Offset
 }
 
diff --git a/plugins/queue/memory/queue.go b/plugins/queue/memory/queue.go
index cbd5ac4..bf89d78 100644
--- a/plugins/queue/memory/queue.go
+++ b/plugins/queue/memory/queue.go
@@ -24,7 +24,8 @@ import (
 	"github.com/apache/skywalking-satellite/internal/pkg/log"
 	"github.com/apache/skywalking-satellite/internal/satellite/event"
 	"github.com/apache/skywalking-satellite/plugins/queue/api"
-	"github.com/apache/skywalking-satellite/protocol/gen-codes/satellite/protocol"
+
+	v1 "skywalking.apache.org/repo/goapi/satellite/data/v1"
 )
 
 const (
@@ -60,7 +61,7 @@ func (q *Queue) Initialize() error {
 	return nil
 }
 
-func (q *Queue) Enqueue(e *protocol.Event) error {
+func (q *Queue) Enqueue(e *v1.SniffData) error {
 	if err := q.buffer.Enqueue(e); err != nil {
 		log.Logger.Errorf("error in enqueue: %v", err)
 		return api.ErrFull
@@ -75,7 +76,7 @@ func (q *Queue) Dequeue() (*api.SequenceEvent, error) {
 		return nil, api.ErrEmpty
 	}
 	return &api.SequenceEvent{
-		Event:  element.(*protocol.Event),
+		Event:  element.(*v1.SniffData),
 		Offset: "no_offset_in_memory_queue",
 	}, nil
 }
diff --git a/plugins/queue/memory/queue_test.go b/plugins/queue/memory/queue_test.go
index 0a7cbad..f096640 100644
--- a/plugins/queue/memory/queue_test.go
+++ b/plugins/queue/memory/queue_test.go
@@ -26,7 +26,8 @@ import (
 	"github.com/apache/skywalking-satellite/internal/pkg/plugin"
 	_ "github.com/apache/skywalking-satellite/internal/satellite/test"
 	"github.com/apache/skywalking-satellite/plugins/queue/api"
-	"github.com/apache/skywalking-satellite/protocol/gen-codes/satellite/protocol"
+
+	v1 "skywalking.apache.org/repo/goapi/satellite/data/v1"
 )
 
 func initMemoryQueue(cfg plugin.Config) (*Queue, error) {
@@ -63,7 +64,7 @@ func TestQueue_Enqueue(t *testing.T) {
 
 	// enqueue
 	for i := 0; i <= num; i++ {
-		e := &protocol.Event{
+		e := &v1.SniffData{
 			Name: strconv.Itoa(i),
 		}
 		if i < num {
diff --git a/plugins/queue/mmap/queue.go b/plugins/queue/mmap/queue.go
index 539c59f..3d21340 100644
--- a/plugins/queue/mmap/queue.go
+++ b/plugins/queue/mmap/queue.go
@@ -40,7 +40,8 @@ import (
 	"github.com/apache/skywalking-satellite/internal/satellite/event"
 	"github.com/apache/skywalking-satellite/plugins/queue/api"
 	"github.com/apache/skywalking-satellite/plugins/queue/mmap/meta"
-	"github.com/apache/skywalking-satellite/protocol/gen-codes/satellite/protocol"
+
+	v1 "skywalking.apache.org/repo/goapi/satellite/data/v1"
 )
 
 const (
@@ -152,7 +153,7 @@ func (q *Queue) Initialize() error {
 	return nil
 }
 
-func (q *Queue) Enqueue(e *protocol.Event) error {
+func (q *Queue) Enqueue(e *v1.SniffData) error {
 	if !q.ready {
 		log.Logger.WithField("pipe", q.CommonFields.PipeName).Warnf("the enqueue operation would be ignored because the queue was closed.")
 		return api.ErrClosed
@@ -176,7 +177,7 @@ func (q *Queue) Dequeue() (*api.SequenceEvent, error) {
 	if err != nil {
 		return nil, err
 	}
-	e := &protocol.Event{}
+	e := &v1.SniffData{}
 	err = proto.Unmarshal(data, e)
 	if err != nil {
 		return nil, err
diff --git a/plugins/queue/mmap/queue_test.go b/plugins/queue/mmap/queue_test.go
index a088bbd..59c33d2 100644
--- a/plugins/queue/mmap/queue_test.go
+++ b/plugins/queue/mmap/queue_test.go
@@ -23,19 +23,20 @@ import (
 	"fmt"
 	"os"
 	"reflect"
-	v3 "skywalking/network/common/v3"
-	logging "skywalking/network/logging/v3"
 	"strconv"
 	"strings"
 	"testing"
 	"time"
 
+	common "skywalking.apache.org/repo/goapi/collect/common/v3"
+	logging "skywalking.apache.org/repo/goapi/collect/logging/v3"
+	v1 "skywalking.apache.org/repo/goapi/satellite/data/v1"
+
 	"github.com/google/go-cmp/cmp"
 
 	"github.com/apache/skywalking-satellite/internal/pkg/plugin"
 	_ "github.com/apache/skywalking-satellite/internal/satellite/test"
 	"github.com/apache/skywalking-satellite/plugins/queue/api"
-	"github.com/apache/skywalking-satellite/protocol/gen-codes/satellite/protocol"
 )
 
 func initMmapQueue(cfg plugin.Config) (*Queue, error) {
@@ -64,18 +65,18 @@ func cleanTestQueue(t *testing.T, q api.Queue) {
 	}
 }
 
-func getBatchEvents(count int) []*protocol.Event {
-	var slice []*protocol.Event
+func getBatchEvents(count int) []*v1.SniffData {
+	var slice []*v1.SniffData
 	for i := 0; i < count; i++ {
-		slice = append(slice, &protocol.Event{
+		slice = append(slice, &v1.SniffData{
 			Name:      "event" + strconv.Itoa(i),
 			Timestamp: time.Now().Unix(),
 			Meta: map[string]string{
 				"meta": "mval" + strconv.Itoa(i),
 			},
-			Type:   protocol.EventType_Logging,
+			Type:   v1.SniffType_Logging,
 			Remote: true,
-			Data: &protocol.Event_Log{
+			Data: &v1.SniffData_Log{
 				Log: &logging.LogData{
 					Service:         "mock-service",
 					ServiceInstance: "mock-serviceInstance",
@@ -107,23 +108,23 @@ func getNKData(n int) string {
 	return strings.Repeat("a", n*1024)
 }
 
-func getLargeEvent(n int) *protocol.Event {
-	return &protocol.Event{
+func getLargeEvent(n int) *v1.SniffData {
+	return &v1.SniffData{
 		Name:      "largeEvent",
 		Timestamp: time.Now().Unix(),
 		Meta: map[string]string{
 			"meta": "largeEvent",
 		},
-		Type:   protocol.EventType_Logging,
+		Type:   v1.SniffType_Logging,
 		Remote: true,
-		Data: &protocol.Event_Log{
+		Data: &v1.SniffData_Log{
 			Log: &logging.LogData{
 				Service:         "mock-service",
 				ServiceInstance: "mock-serviceInstance",
 				Timestamp:       time.Date(2020, 12, 20, 12, 12, 12, 0, time.UTC).Unix(),
 				Endpoint:        "mock-endpoint",
 				Tags: &logging.LogTags{
-					Data: []*v3.KeyStringValuePair{
+					Data: []*common.KeyStringValuePair{
 						{
 							Key:   "tags-key",
 							Value: "tags-val",
diff --git a/plugins/receiver/api/receiver.go b/plugins/receiver/api/receiver.go
index 9007f3d..8aaeeca 100644
--- a/plugins/receiver/api/receiver.go
+++ b/plugins/receiver/api/receiver.go
@@ -20,8 +20,9 @@ package api
 import (
 	"reflect"
 
+	v1 "skywalking.apache.org/repo/goapi/satellite/data/v1"
+
 	"github.com/apache/skywalking-satellite/internal/pkg/plugin"
-	"github.com/apache/skywalking-satellite/protocol/gen-codes/satellite/protocol"
 )
 
 // Receiver is a plugin interface, that defines new collectors.
@@ -32,7 +33,7 @@ type Receiver interface {
 	RegisterHandler(server interface{})
 
 	// Channel would be put a data when the receiver receives an APM data.
-	Channel() <-chan *protocol.Event
+	Channel() <-chan *v1.SniffData
 }
 
 // Get an initialized receiver plugin.
diff --git a/plugins/receiver/grpc/common.go b/plugins/receiver/grpc/common.go
index a2fd58b..7d62cd2 100644
--- a/plugins/receiver/grpc/common.go
+++ b/plugins/receiver/grpc/common.go
@@ -23,12 +23,12 @@ import (
 
 	"google.golang.org/grpc"
 
-	"github.com/apache/skywalking-satellite/protocol/gen-codes/satellite/protocol"
+	v1 "skywalking.apache.org/repo/goapi/satellite/data/v1"
 )
 
 type CommonGRPCReceiverFields struct {
 	Server        *grpc.Server
-	OutputChannel chan *protocol.Event // The channel is to bridge the LogReportService and the Gatherer to delivery the data.
+	OutputChannel chan *v1.SniffData // The channel is to bridge the LogReportService and the Gatherer to delivery the data.
 }
 
 // InitCommonGRPCReceiverFields init the common fields for gRPC receivers.
@@ -39,6 +39,6 @@ func InitCommonGRPCReceiverFields(server interface{}) *CommonGRPCReceiverFields
 	}
 	return &CommonGRPCReceiverFields{
 		Server:        s,
-		OutputChannel: make(chan *protocol.Event),
+		OutputChannel: make(chan *v1.SniffData),
 	}
 }
diff --git a/plugins/receiver/grpc/nativelog/log_report_service.go b/plugins/receiver/grpc/nativelog/log_report_service.go
index dad5c86..a291956 100644
--- a/plugins/receiver/grpc/nativelog/log_report_service.go
+++ b/plugins/receiver/grpc/nativelog/log_report_service.go
@@ -21,16 +21,15 @@ import (
 	"io"
 	"time"
 
-	common "skywalking/network/common/v3"
-	logging "skywalking/network/logging/v3"
-
-	"github.com/apache/skywalking-satellite/protocol/gen-codes/satellite/protocol"
+	common "skywalking.apache.org/repo/goapi/collect/common/v3"
+	logging "skywalking.apache.org/repo/goapi/collect/logging/v3"
+	v1 "skywalking.apache.org/repo/goapi/satellite/data/v1"
 )
 
 const eventName = "grpc-log-event"
 
 type LogReportService struct {
-	receiveChannel chan *protocol.Event
+	receiveChannel chan *v1.SniffData
 	logging.UnimplementedLogReportServiceServer
 }
 
@@ -43,13 +42,13 @@ func (s *LogReportService) Collect(stream logging.LogReportService_CollectServer
 		if err != nil {
 			return err
 		}
-		e := &protocol.Event{
+		e := &v1.SniffData{
 			Name:      eventName,
 			Timestamp: time.Now().UnixNano() / 1e6,
 			Meta:      nil,
-			Type:      protocol.EventType_Logging,
+			Type:      v1.SniffType_Logging,
 			Remote:    true,
-			Data: &protocol.Event_Log{
+			Data: &v1.SniffData_Log{
 				Log: logData,
 			},
 		}
diff --git a/plugins/receiver/grpc/nativelog/receiver.go b/plugins/receiver/grpc/nativelog/receiver.go
index c268209..2864d24 100644
--- a/plugins/receiver/grpc/nativelog/receiver.go
+++ b/plugins/receiver/grpc/nativelog/receiver.go
@@ -18,11 +18,11 @@
 package nativelog
 
 import (
-	logging "skywalking/network/logging/v3"
+	v3 "skywalking.apache.org/repo/goapi/collect/logging/v3"
+	v1 "skywalking.apache.org/repo/goapi/satellite/data/v1"
 
 	"github.com/apache/skywalking-satellite/internal/pkg/config"
 	grpcreceiver "github.com/apache/skywalking-satellite/plugins/receiver/grpc"
-	"github.com/apache/skywalking-satellite/protocol/gen-codes/satellite/protocol"
 )
 
 const Name = "grpc-nativelog-receiver"
@@ -49,9 +49,9 @@ func (r *Receiver) DefaultConfig() string {
 func (r *Receiver) RegisterHandler(server interface{}) {
 	r.CommonGRPCReceiverFields = *grpcreceiver.InitCommonGRPCReceiverFields(server)
 	r.service = &LogReportService{receiveChannel: r.OutputChannel}
-	logging.RegisterLogReportServiceServer(r.Server, r.service)
+	v3.RegisterLogReportServiceServer(r.Server, r.service)
 }
 
-func (r *Receiver) Channel() <-chan *protocol.Event {
+func (r *Receiver) Channel() <-chan *v1.SniffData {
 	return r.OutputChannel
 }
diff --git a/plugins/receiver/grpc/nativelog/receiver_test.go b/plugins/receiver/grpc/nativelog/receiver_test.go
index 3e6ff6a..a5f04f7 100644
--- a/plugins/receiver/grpc/nativelog/receiver_test.go
+++ b/plugins/receiver/grpc/nativelog/receiver_test.go
@@ -28,15 +28,15 @@ import (
 
 	"google.golang.org/grpc"
 
-	common "skywalking/network/common/v3"
-	logging "skywalking/network/logging/v3"
+	common "skywalking.apache.org/repo/goapi/collect/common/v3"
+	logging "skywalking.apache.org/repo/goapi/collect/logging/v3"
+	v1 "skywalking.apache.org/repo/goapi/satellite/data/v1"
 
 	"github.com/apache/skywalking-satellite/internal/pkg/plugin"
 	_ "github.com/apache/skywalking-satellite/internal/satellite/test"
 	receiver "github.com/apache/skywalking-satellite/plugins/receiver/api"
 	server "github.com/apache/skywalking-satellite/plugins/server/api"
 	grpcserver "github.com/apache/skywalking-satellite/plugins/server/grpc"
-	"github.com/apache/skywalking-satellite/protocol/gen-codes/satellite/protocol"
 )
 
 func TestReceiver_RegisterHandler(t *testing.T) {
@@ -66,7 +66,7 @@ func TestReceiver_RegisterHandler(t *testing.T) {
 			t.Fatalf("cannot close the stream mode: %v", err)
 		}
 		newData := <-r.Channel()
-		if !cmp.Equal(newData.Data.(*protocol.Event_Log).Log.String(), data.String()) {
+		if !cmp.Equal(newData.Data.(*v1.SniffData_Log).Log.String(), data.String()) {
 			t.Fatalf("the sent data is not equal to the received data\n, "+
 				"want data %s\n, but got %s\n", data.String(), newData.String())
 		}
diff --git a/plugins/receiver/http/nativcelog/receiver.go b/plugins/receiver/http/nativcelog/receiver.go
index 9bb5055..fa41b8c 100644
--- a/plugins/receiver/http/nativcelog/receiver.go
+++ b/plugins/receiver/http/nativcelog/receiver.go
@@ -18,21 +18,20 @@
 package nativcelog
 
 import (
+	"encoding/json"
 	"fmt"
 	"io/ioutil"
 	"net/http"
 	"time"
 
-	logging "skywalking/network/logging/v3"
-
 	"google.golang.org/protobuf/proto"
 
-	"encoding/json"
-
 	"github.com/apache/skywalking-satellite/internal/pkg/config"
 	"github.com/apache/skywalking-satellite/internal/pkg/log"
 	http_server "github.com/apache/skywalking-satellite/plugins/server/http"
-	"github.com/apache/skywalking-satellite/protocol/gen-codes/satellite/protocol"
+
+	logging "skywalking.apache.org/repo/goapi/collect/logging/v3"
+	v1 "skywalking.apache.org/repo/goapi/satellite/data/v1"
 )
 
 const (
@@ -49,7 +48,7 @@ type Receiver struct {
 	Timeout int    `mapstructure:"timeout"`
 	// components
 	Server        *http_server.Server
-	OutputChannel chan *protocol.Event
+	OutputChannel chan *v1.SniffData
 }
 
 type Response struct {
@@ -77,7 +76,7 @@ timeout: 5
 
 func (r *Receiver) RegisterHandler(server interface{}) {
 	r.Server = server.(*http_server.Server)
-	r.OutputChannel = make(chan *protocol.Event)
+	r.OutputChannel = make(chan *v1.SniffData)
 	r.Server.Server.Handle(r.URI, r.httpHandler())
 }
 
@@ -103,13 +102,13 @@ func (r *Receiver) httpHandler() http.Handler {
 			ResponseWithJSON(rsp, response, http.StatusInternalServerError)
 			return
 		}
-		e := &protocol.Event{
+		e := &v1.SniffData{
 			Name:      eventName,
 			Timestamp: time.Now().UnixNano() / 1e6,
 			Meta:      nil,
-			Type:      protocol.EventType_Logging,
+			Type:      v1.SniffType_Logging,
 			Remote:    true,
-			Data: &protocol.Event_Log{
+			Data: &v1.SniffData_Log{
 				Log: &data,
 			},
 		}
@@ -120,6 +119,6 @@ func (r *Receiver) httpHandler() http.Handler {
 	return http.TimeoutHandler(h, time.Duration(r.Timeout)*time.Second, fmt.Sprintf("Exceeded configured timeout of %d seconds", r.Timeout))
 }
 
-func (r *Receiver) Channel() <-chan *protocol.Event {
+func (r *Receiver) Channel() <-chan *v1.SniffData {
 	return r.OutputChannel
 }
diff --git a/plugins/receiver/http/nativcelog/receiver_test.go b/plugins/receiver/http/nativcelog/receiver_test.go
index 7790607..2d308cc 100644
--- a/plugins/receiver/http/nativcelog/receiver_test.go
+++ b/plugins/receiver/http/nativcelog/receiver_test.go
@@ -27,8 +27,9 @@ import (
 	"testing"
 	"time"
 
-	common "skywalking/network/common/v3"
-	logging "skywalking/network/logging/v3"
+	common "skywalking.apache.org/repo/goapi/collect/common/v3"
+	logging "skywalking.apache.org/repo/goapi/collect/logging/v3"
+	v1 "skywalking.apache.org/repo/goapi/satellite/data/v1"
 
 	"github.com/google/go-cmp/cmp"
 	"google.golang.org/protobuf/proto"
@@ -40,7 +41,6 @@ import (
 	receiver "github.com/apache/skywalking-satellite/plugins/receiver/api"
 	server "github.com/apache/skywalking-satellite/plugins/server/api"
 	httpserver "github.com/apache/skywalking-satellite/plugins/server/http"
-	"github.com/apache/skywalking-satellite/protocol/gen-codes/satellite/protocol"
 )
 
 func TestReceiver_http_RegisterHandler(t *testing.T) {
@@ -83,7 +83,7 @@ func TestReceiver_http_RegisterHandler(t *testing.T) {
 		}()
 
 		newData := <-r.Channel()
-		if !cmp.Equal(newData.Data.(*protocol.Event_Log).Log.String(), data.String()) {
+		if !cmp.Equal(newData.Data.(*v1.SniffData_Log).Log.String(), data.String()) {
 			t.Fatalf("the sent data is not equal to the received data\n, "+
 				"want data %s\n, but got %s\n", data.String(), newData.String())
 		}
diff --git a/protocol/gen-codes/satellite/protocol/Event.pb.go b/protocol/gen-codes/satellite/protocol/Event.pb.go
deleted file mode 100644
index 225bb2e..0000000
--- a/protocol/gen-codes/satellite/protocol/Event.pb.go
+++ /dev/null
@@ -1,493 +0,0 @@
-//
-// 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: event/Event.proto
-
-package protocol
-
-import (
-	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
-	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
-	reflect "reflect"
-	v3 "skywalking/network/language/agent/v3"
-	v33 "skywalking/network/language/profile/v3"
-	v31 "skywalking/network/logging/v3"
-	v32 "skywalking/network/management/v3"
-	v34 "skywalking/network/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_event_Event_proto_enumTypes[0].Descriptor()
-}
-
-func (EventType) Type() protoreflect.EnumType {
-	return &file_event_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_event_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_event_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_event_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_event_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_event_Event_proto protoreflect.FileDescriptor
-
-var file_event_Event_proto_rawDesc = []byte{
-	0x0a, 0x11, 0x65, 0x76, 0x65, 0x6e, 0x74, 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, 0x14, 0x5a, 0x12, 0x73, 0x61,
-	0x74, 0x65, 0x6c, 0x6c, 0x69, 0x74, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c,
-	0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
-}
-
-var (
-	file_event_Event_proto_rawDescOnce sync.Once
-	file_event_Event_proto_rawDescData = file_event_Event_proto_rawDesc
-)
-
-func file_event_Event_proto_rawDescGZIP() []byte {
-	file_event_Event_proto_rawDescOnce.Do(func() {
-		file_event_Event_proto_rawDescData = protoimpl.X.CompressGZIP(file_event_Event_proto_rawDescData)
-	})
-	return file_event_Event_proto_rawDescData
-}
-
-var file_event_Event_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
-var file_event_Event_proto_msgTypes = make([]protoimpl.MessageInfo, 2)
-var file_event_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_event_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_event_Event_proto_init() }
-func file_event_Event_proto_init() {
-	if File_event_Event_proto != nil {
-		return
-	}
-	if !protoimpl.UnsafeEnabled {
-		file_event_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_event_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_event_Event_proto_rawDesc,
-			NumEnums:      1,
-			NumMessages:   2,
-			NumExtensions: 0,
-			NumServices:   0,
-		},
-		GoTypes:           file_event_Event_proto_goTypes,
-		DependencyIndexes: file_event_Event_proto_depIdxs,
-		EnumInfos:         file_event_Event_proto_enumTypes,
-		MessageInfos:      file_event_Event_proto_msgTypes,
-	}.Build()
-	File_event_Event_proto = out.File
-	file_event_Event_proto_rawDesc = nil
-	file_event_Event_proto_goTypes = nil
-	file_event_Event_proto_depIdxs = nil
-}
diff --git a/protocol/gen-codes/skywalking/network/agent/configuration/v3/ConfigurationDiscoveryService.pb.go b/protocol/gen-codes/skywalking/network/agent/configuration/v3/ConfigurationDiscoveryService.pb.go
deleted file mode 100644
index 089c26d..0000000
--- a/protocol/gen-codes/skywalking/network/agent/configuration/v3/ConfigurationDiscoveryService.pb.go
+++ /dev/null
@@ -1,198 +0,0 @@
-//
-// 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: language-agent/ConfigurationDiscoveryService.proto
-
-package v3
-
-import (
-	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
-	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
-	reflect "reflect"
-	v3 "skywalking/network/common/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)
-)
-
-type ConfigurationSyncRequest struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	// Current agent service name.
-	Service string `protobuf:"bytes,1,opt,name=service,proto3" json:"service,omitempty"`
-	// [Optional]
-	// UUID is the unique id to represent the signature of the latest configuration.
-	// The agent usually uses its bootstrap configuration running in default, and this id could be empty when doing the 1st round sync.
-	// The agent could/is recommended to cache the UUID from the last command, and put it as the next round UUID parameter,
-	// then the OAP only returns the empty Commands if no configuration change happenned.
-	Uuid string `protobuf:"bytes,2,opt,name=uuid,proto3" json:"uuid,omitempty"`
-}
-
-func (x *ConfigurationSyncRequest) Reset() {
-	*x = ConfigurationSyncRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_language_agent_ConfigurationDiscoveryService_proto_msgTypes[0]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *ConfigurationSyncRequest) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*ConfigurationSyncRequest) ProtoMessage() {}
-
-func (x *ConfigurationSyncRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_language_agent_ConfigurationDiscoveryService_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 ConfigurationSyncRequest.ProtoReflect.Descriptor instead.
-func (*ConfigurationSyncRequest) Descriptor() ([]byte, []int) {
-	return file_language_agent_ConfigurationDiscoveryService_proto_rawDescGZIP(), []int{0}
-}
-
-func (x *ConfigurationSyncRequest) GetService() string {
-	if x != nil {
-		return x.Service
-	}
-	return ""
-}
-
-func (x *ConfigurationSyncRequest) GetUuid() string {
-	if x != nil {
-		return x.Uuid
-	}
-	return ""
-}
-
-var File_language_agent_ConfigurationDiscoveryService_proto protoreflect.FileDescriptor
-
-var file_language_agent_ConfigurationDiscoveryService_proto_rawDesc = []byte{
-	0x0a, 0x32, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2d, 0x61, 0x67, 0x65, 0x6e, 0x74,
-	0x2f, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x69,
-	0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x70,
-	0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0d, 0x73, 0x6b, 0x79, 0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67,
-	0x2e, 0x76, 0x33, 0x1a, 0x13, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2f, 0x43, 0x6f, 0x6d, 0x6d,
-	0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x48, 0x0a, 0x18, 0x43, 0x6f, 0x6e, 0x66,
-	0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x79, 0x6e, 0x63, 0x52, 0x65, 0x71,
-	0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x18,
-	0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x12,
-	0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75,
-	0x69, 0x64, 0x32, 0x7a, 0x0a, 0x1d, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74,
-	0x69, 0x6f, 0x6e, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x53, 0x65, 0x72, 0x76,
-	0x69, 0x63, 0x65, 0x12, 0x59, 0x0a, 0x13, 0x66, 0x65, 0x74, 0x63, 0x68, 0x43, 0x6f, 0x6e, 0x66,
-	0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x27, 0x2e, 0x73, 0x6b, 0x79,
-	0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69,
-	0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x79, 0x6e, 0x63, 0x52, 0x65, 0x71, 0x75,
-	0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x73, 0x6b, 0x79, 0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67,
-	0x2e, 0x76, 0x33, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x73, 0x22, 0x00, 0x42, 0x82,
-	0x01, 0x0a, 0x33, 0x6f, 0x72, 0x67, 0x2e, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2e, 0x73, 0x6b,
-	0x79, 0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x61, 0x70, 0x6d, 0x2e, 0x6e, 0x65, 0x74,
-	0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x67,
-	0x65, 0x6e, 0x74, 0x2e, 0x76, 0x33, 0x50, 0x01, 0x5a, 0x29, 0x73, 0x6b, 0x79, 0x77, 0x61, 0x6c,
-	0x6b, 0x69, 0x6e, 0x67, 0x2f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2f, 0x61, 0x67, 0x65,
-	0x6e, 0x74, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e,
-	0x2f, 0x76, 0x33, 0xaa, 0x02, 0x1d, 0x53, 0x6b, 0x79, 0x57, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67,
-	0x2e, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c,
-	0x2e, 0x56, 0x33, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
-}
-
-var (
-	file_language_agent_ConfigurationDiscoveryService_proto_rawDescOnce sync.Once
-	file_language_agent_ConfigurationDiscoveryService_proto_rawDescData = file_language_agent_ConfigurationDiscoveryService_proto_rawDesc
-)
-
-func file_language_agent_ConfigurationDiscoveryService_proto_rawDescGZIP() []byte {
-	file_language_agent_ConfigurationDiscoveryService_proto_rawDescOnce.Do(func() {
-		file_language_agent_ConfigurationDiscoveryService_proto_rawDescData = protoimpl.X.CompressGZIP(file_language_agent_ConfigurationDiscoveryService_proto_rawDescData)
-	})
-	return file_language_agent_ConfigurationDiscoveryService_proto_rawDescData
-}
-
-var file_language_agent_ConfigurationDiscoveryService_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
-var file_language_agent_ConfigurationDiscoveryService_proto_goTypes = []interface{}{
-	(*ConfigurationSyncRequest)(nil), // 0: skywalking.v3.ConfigurationSyncRequest
-	(*v3.Commands)(nil),              // 1: skywalking.v3.Commands
-}
-var file_language_agent_ConfigurationDiscoveryService_proto_depIdxs = []int32{
-	0, // 0: skywalking.v3.ConfigurationDiscoveryService.fetchConfigurations:input_type -> skywalking.v3.ConfigurationSyncRequest
-	1, // 1: skywalking.v3.ConfigurationDiscoveryService.fetchConfigurations:output_type -> skywalking.v3.Commands
-	1, // [1:2] is the sub-list for method output_type
-	0, // [0:1] is the sub-list for method input_type
-	0, // [0:0] is the sub-list for extension type_name
-	0, // [0:0] is the sub-list for extension extendee
-	0, // [0:0] is the sub-list for field type_name
-}
-
-func init() { file_language_agent_ConfigurationDiscoveryService_proto_init() }
-func file_language_agent_ConfigurationDiscoveryService_proto_init() {
-	if File_language_agent_ConfigurationDiscoveryService_proto != nil {
-		return
-	}
-	if !protoimpl.UnsafeEnabled {
-		file_language_agent_ConfigurationDiscoveryService_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*ConfigurationSyncRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-	}
-	type x struct{}
-	out := protoimpl.TypeBuilder{
-		File: protoimpl.DescBuilder{
-			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
-			RawDescriptor: file_language_agent_ConfigurationDiscoveryService_proto_rawDesc,
-			NumEnums:      0,
-			NumMessages:   1,
-			NumExtensions: 0,
-			NumServices:   1,
-		},
-		GoTypes:           file_language_agent_ConfigurationDiscoveryService_proto_goTypes,
-		DependencyIndexes: file_language_agent_ConfigurationDiscoveryService_proto_depIdxs,
-		MessageInfos:      file_language_agent_ConfigurationDiscoveryService_proto_msgTypes,
-	}.Build()
-	File_language_agent_ConfigurationDiscoveryService_proto = out.File
-	file_language_agent_ConfigurationDiscoveryService_proto_rawDesc = nil
-	file_language_agent_ConfigurationDiscoveryService_proto_goTypes = nil
-	file_language_agent_ConfigurationDiscoveryService_proto_depIdxs = nil
-}
diff --git a/protocol/gen-codes/skywalking/network/agent/configuration/v3/ConfigurationDiscoveryService_grpc.pb.go b/protocol/gen-codes/skywalking/network/agent/configuration/v3/ConfigurationDiscoveryService_grpc.pb.go
deleted file mode 100644
index cd898be..0000000
--- a/protocol/gen-codes/skywalking/network/agent/configuration/v3/ConfigurationDiscoveryService_grpc.pb.go
+++ /dev/null
@@ -1,119 +0,0 @@
-// Code generated by protoc-gen-go-grpc. DO NOT EDIT.
-
-package v3
-
-import (
-	context "context"
-	grpc "google.golang.org/grpc"
-	codes "google.golang.org/grpc/codes"
-	status "google.golang.org/grpc/status"
-	v3 "skywalking/network/common/v3"
-)
-
-// This is a compile-time assertion to ensure that this generated file
-// is compatible with the grpc package it is being compiled against.
-// Requires gRPC-Go v1.32.0 or later.
-const _ = grpc.SupportPackageIsVersion7
-
-// ConfigurationDiscoveryServiceClient is the client API for ConfigurationDiscoveryService service.
-//
-// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.
-type ConfigurationDiscoveryServiceClient interface {
-	// fetchConfigurations service requests the latest configuration.
-	// Expect command of Commands is:
-	//    command: CDS # meaning ConfigurationDiscoveryService's response
-	//    args: Include string key and string value pair.
-	//          The key depends on the agent implementation.
-	//          The value is the latest value in String value. The watcher of key owner takes the responsibility to convert it to the correct type or format.
-	//          One reserved key is `UUID`. The value would help reducing the traffic load between agent and OAP if there is no change.
-	// Commands could be empty if no change detected based on ConfigurationSyncRequest.
-	FetchConfigurations(ctx context.Context, in *ConfigurationSyncRequest, opts ...grpc.CallOption) (*v3.Commands, error)
-}
-
-type configurationDiscoveryServiceClient struct {
-	cc grpc.ClientConnInterface
-}
-
-func NewConfigurationDiscoveryServiceClient(cc grpc.ClientConnInterface) ConfigurationDiscoveryServiceClient {
-	return &configurationDiscoveryServiceClient{cc}
-}
-
-func (c *configurationDiscoveryServiceClient) FetchConfigurations(ctx context.Context, in *ConfigurationSyncRequest, opts ...grpc.CallOption) (*v3.Commands, error) {
-	out := new(v3.Commands)
-	err := c.cc.Invoke(ctx, "/skywalking.v3.ConfigurationDiscoveryService/fetchConfigurations", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-// ConfigurationDiscoveryServiceServer is the server API for ConfigurationDiscoveryService service.
-// All implementations must embed UnimplementedConfigurationDiscoveryServiceServer
-// for forward compatibility
-type ConfigurationDiscoveryServiceServer interface {
-	// fetchConfigurations service requests the latest configuration.
-	// Expect command of Commands is:
-	//    command: CDS # meaning ConfigurationDiscoveryService's response
-	//    args: Include string key and string value pair.
-	//          The key depends on the agent implementation.
-	//          The value is the latest value in String value. The watcher of key owner takes the responsibility to convert it to the correct type or format.
-	//          One reserved key is `UUID`. The value would help reducing the traffic load between agent and OAP if there is no change.
-	// Commands could be empty if no change detected based on ConfigurationSyncRequest.
-	FetchConfigurations(context.Context, *ConfigurationSyncRequest) (*v3.Commands, error)
-	mustEmbedUnimplementedConfigurationDiscoveryServiceServer()
-}
-
-// UnimplementedConfigurationDiscoveryServiceServer must be embedded to have forward compatible implementations.
-type UnimplementedConfigurationDiscoveryServiceServer struct {
-}
-
-func (UnimplementedConfigurationDiscoveryServiceServer) FetchConfigurations(context.Context, *ConfigurationSyncRequest) (*v3.Commands, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method FetchConfigurations not implemented")
-}
-func (UnimplementedConfigurationDiscoveryServiceServer) mustEmbedUnimplementedConfigurationDiscoveryServiceServer() {
-}
-
-// UnsafeConfigurationDiscoveryServiceServer may be embedded to opt out of forward compatibility for this service.
-// Use of this interface is not recommended, as added methods to ConfigurationDiscoveryServiceServer will
-// result in compilation errors.
-type UnsafeConfigurationDiscoveryServiceServer interface {
-	mustEmbedUnimplementedConfigurationDiscoveryServiceServer()
-}
-
-func RegisterConfigurationDiscoveryServiceServer(s grpc.ServiceRegistrar, srv ConfigurationDiscoveryServiceServer) {
-	s.RegisterService(&ConfigurationDiscoveryService_ServiceDesc, srv)
-}
-
-func _ConfigurationDiscoveryService_FetchConfigurations_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(ConfigurationSyncRequest)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(ConfigurationDiscoveryServiceServer).FetchConfigurations(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/skywalking.v3.ConfigurationDiscoveryService/fetchConfigurations",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(ConfigurationDiscoveryServiceServer).FetchConfigurations(ctx, req.(*ConfigurationSyncRequest))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-// ConfigurationDiscoveryService_ServiceDesc is the grpc.ServiceDesc for ConfigurationDiscoveryService service.
-// It's only intended for direct use with grpc.RegisterService,
-// and not to be introspected or modified (even as a copy)
-var ConfigurationDiscoveryService_ServiceDesc = grpc.ServiceDesc{
-	ServiceName: "skywalking.v3.ConfigurationDiscoveryService",
-	HandlerType: (*ConfigurationDiscoveryServiceServer)(nil),
-	Methods: []grpc.MethodDesc{
-		{
-			MethodName: "fetchConfigurations",
-			Handler:    _ConfigurationDiscoveryService_FetchConfigurations_Handler,
-		},
-	},
-	Streams:  []grpc.StreamDesc{},
-	Metadata: "language-agent/ConfigurationDiscoveryService.proto",
-}
diff --git a/protocol/gen-codes/skywalking/network/common/v3/Common.pb.go b/protocol/gen-codes/skywalking/network/common/v3/Common.pb.go
deleted file mode 100644
index 2f79ebc..0000000
--- a/protocol/gen-codes/skywalking/network/common/v3/Common.pb.go
+++ /dev/null
@@ -1,436 +0,0 @@
-//
-// 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: common/Common.proto
-
-package v3
-
-import (
-	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
-	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
-	reflect "reflect"
-	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)
-)
-
-// In most cases, detect point should be `server` or `client`.
-// Even in service mesh, this means `server`/`client` side sidecar
-// `proxy` is reserved only.
-type DetectPoint int32
-
-const (
-	DetectPoint_client DetectPoint = 0
-	DetectPoint_server DetectPoint = 1
-	DetectPoint_proxy  DetectPoint = 2
-)
-
-// Enum value maps for DetectPoint.
-var (
-	DetectPoint_name = map[int32]string{
-		0: "client",
-		1: "server",
-		2: "proxy",
-	}
-	DetectPoint_value = map[string]int32{
-		"client": 0,
-		"server": 1,
-		"proxy":  2,
-	}
-)
-
-func (x DetectPoint) Enum() *DetectPoint {
-	p := new(DetectPoint)
-	*p = x
-	return p
-}
-
-func (x DetectPoint) String() string {
-	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
-}
-
-func (DetectPoint) Descriptor() protoreflect.EnumDescriptor {
-	return file_common_Common_proto_enumTypes[0].Descriptor()
-}
-
-func (DetectPoint) Type() protoreflect.EnumType {
-	return &file_common_Common_proto_enumTypes[0]
-}
-
-func (x DetectPoint) Number() protoreflect.EnumNumber {
-	return protoreflect.EnumNumber(x)
-}
-
-// Deprecated: Use DetectPoint.Descriptor instead.
-func (DetectPoint) EnumDescriptor() ([]byte, []int) {
-	return file_common_Common_proto_rawDescGZIP(), []int{0}
-}
-
-type KeyStringValuePair struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Key   string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
-	Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
-}
-
-func (x *KeyStringValuePair) Reset() {
-	*x = KeyStringValuePair{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_common_Common_proto_msgTypes[0]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *KeyStringValuePair) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*KeyStringValuePair) ProtoMessage() {}
-
-func (x *KeyStringValuePair) ProtoReflect() protoreflect.Message {
-	mi := &file_common_Common_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 KeyStringValuePair.ProtoReflect.Descriptor instead.
-func (*KeyStringValuePair) Descriptor() ([]byte, []int) {
-	return file_common_Common_proto_rawDescGZIP(), []int{0}
-}
-
-func (x *KeyStringValuePair) GetKey() string {
-	if x != nil {
-		return x.Key
-	}
-	return ""
-}
-
-func (x *KeyStringValuePair) GetValue() string {
-	if x != nil {
-		return x.Value
-	}
-	return ""
-}
-
-type CPU struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	UsagePercent float64 `protobuf:"fixed64,2,opt,name=usagePercent,proto3" json:"usagePercent,omitempty"`
-}
-
-func (x *CPU) Reset() {
-	*x = CPU{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_common_Common_proto_msgTypes[1]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *CPU) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*CPU) ProtoMessage() {}
-
-func (x *CPU) ProtoReflect() protoreflect.Message {
-	mi := &file_common_Common_proto_msgTypes[1]
-	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 CPU.ProtoReflect.Descriptor instead.
-func (*CPU) Descriptor() ([]byte, []int) {
-	return file_common_Common_proto_rawDescGZIP(), []int{1}
-}
-
-func (x *CPU) GetUsagePercent() float64 {
-	if x != nil {
-		return x.UsagePercent
-	}
-	return 0
-}
-
-type Commands struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Commands []*Command `protobuf:"bytes,1,rep,name=commands,proto3" json:"commands,omitempty"`
-}
-
-func (x *Commands) Reset() {
-	*x = Commands{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_common_Common_proto_msgTypes[2]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *Commands) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*Commands) ProtoMessage() {}
-
-func (x *Commands) ProtoReflect() protoreflect.Message {
-	mi := &file_common_Common_proto_msgTypes[2]
-	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 Commands.ProtoReflect.Descriptor instead.
-func (*Commands) Descriptor() ([]byte, []int) {
-	return file_common_Common_proto_rawDescGZIP(), []int{2}
-}
-
-func (x *Commands) GetCommands() []*Command {
-	if x != nil {
-		return x.Commands
-	}
-	return nil
-}
-
-type Command struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Command string                `protobuf:"bytes,1,opt,name=command,proto3" json:"command,omitempty"`
-	Args    []*KeyStringValuePair `protobuf:"bytes,2,rep,name=args,proto3" json:"args,omitempty"`
-}
-
-func (x *Command) Reset() {
-	*x = Command{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_common_Common_proto_msgTypes[3]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *Command) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*Command) ProtoMessage() {}
-
-func (x *Command) ProtoReflect() protoreflect.Message {
-	mi := &file_common_Common_proto_msgTypes[3]
-	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 Command.ProtoReflect.Descriptor instead.
-func (*Command) Descriptor() ([]byte, []int) {
-	return file_common_Common_proto_rawDescGZIP(), []int{3}
-}
-
-func (x *Command) GetCommand() string {
-	if x != nil {
-		return x.Command
-	}
-	return ""
-}
-
-func (x *Command) GetArgs() []*KeyStringValuePair {
-	if x != nil {
-		return x.Args
-	}
-	return nil
-}
-
-var File_common_Common_proto protoreflect.FileDescriptor
-
-var file_common_Common_proto_rawDesc = []byte{
-	0x0a, 0x13, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2f, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e,
-	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0d, 0x73, 0x6b, 0x79, 0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e,
-	0x67, 0x2e, 0x76, 0x33, 0x22, 0x3c, 0x0a, 0x12, 0x4b, 0x65, 0x79, 0x53, 0x74, 0x72, 0x69, 0x6e,
-	0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x50, 0x61, 0x69, 0x72, 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, 0x22, 0x29, 0x0a, 0x03, 0x43, 0x50, 0x55, 0x12, 0x22, 0x0a, 0x0c, 0x75, 0x73, 0x61,
-	0x67, 0x65, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52,
-	0x0c, 0x75, 0x73, 0x61, 0x67, 0x65, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x22, 0x3e, 0x0a,
-	0x08, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x73, 0x12, 0x32, 0x0a, 0x08, 0x63, 0x6f, 0x6d,
-	0x6d, 0x61, 0x6e, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x73, 0x6b,
-	0x79, 0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x43, 0x6f, 0x6d, 0x6d,
-	0x61, 0x6e, 0x64, 0x52, 0x08, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x73, 0x22, 0x5a, 0x0a,
-	0x07, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d,
-	0x61, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x61,
-	0x6e, 0x64, 0x12, 0x35, 0x0a, 0x04, 0x61, 0x72, 0x67, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b,
-	0x32, 0x21, 0x2e, 0x73, 0x6b, 0x79, 0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33,
-	0x2e, 0x4b, 0x65, 0x79, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x50,
-	0x61, 0x69, 0x72, 0x52, 0x04, 0x61, 0x72, 0x67, 0x73, 0x2a, 0x30, 0x0a, 0x0b, 0x44, 0x65, 0x74,
-	0x65, 0x63, 0x74, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x0a, 0x0a, 0x06, 0x63, 0x6c, 0x69, 0x65,
-	0x6e, 0x74, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x10, 0x01,
-	0x12, 0x09, 0x0a, 0x05, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x10, 0x02, 0x42, 0x6d, 0x0a, 0x2b, 0x6f,
-	0x72, 0x67, 0x2e, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2e, 0x73, 0x6b, 0x79, 0x77, 0x61, 0x6c,
-	0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x61, 0x70, 0x6d, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b,
-	0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x33, 0x50, 0x01, 0x5a, 0x1c, 0x73, 0x6b,
-	0x79, 0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x2f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b,
-	0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2f, 0x76, 0x33, 0xaa, 0x02, 0x1d, 0x53, 0x6b, 0x79,
-	0x57, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x50,
-	0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x56, 0x33, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74,
-	0x6f, 0x33,
-}
-
-var (
-	file_common_Common_proto_rawDescOnce sync.Once
-	file_common_Common_proto_rawDescData = file_common_Common_proto_rawDesc
-)
-
-func file_common_Common_proto_rawDescGZIP() []byte {
-	file_common_Common_proto_rawDescOnce.Do(func() {
-		file_common_Common_proto_rawDescData = protoimpl.X.CompressGZIP(file_common_Common_proto_rawDescData)
-	})
-	return file_common_Common_proto_rawDescData
-}
-
-var file_common_Common_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
-var file_common_Common_proto_msgTypes = make([]protoimpl.MessageInfo, 4)
-var file_common_Common_proto_goTypes = []interface{}{
-	(DetectPoint)(0),           // 0: skywalking.v3.DetectPoint
-	(*KeyStringValuePair)(nil), // 1: skywalking.v3.KeyStringValuePair
-	(*CPU)(nil),                // 2: skywalking.v3.CPU
-	(*Commands)(nil),           // 3: skywalking.v3.Commands
-	(*Command)(nil),            // 4: skywalking.v3.Command
-}
-var file_common_Common_proto_depIdxs = []int32{
-	4, // 0: skywalking.v3.Commands.commands:type_name -> skywalking.v3.Command
-	1, // 1: skywalking.v3.Command.args:type_name -> skywalking.v3.KeyStringValuePair
-	2, // [2:2] is the sub-list for method output_type
-	2, // [2:2] is the sub-list for method input_type
-	2, // [2:2] is the sub-list for extension type_name
-	2, // [2:2] is the sub-list for extension extendee
-	0, // [0:2] is the sub-list for field type_name
-}
-
-func init() { file_common_Common_proto_init() }
-func file_common_Common_proto_init() {
-	if File_common_Common_proto != nil {
-		return
-	}
-	if !protoimpl.UnsafeEnabled {
-		file_common_Common_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*KeyStringValuePair); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_common_Common_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*CPU); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_common_Common_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*Commands); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_common_Common_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*Command); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-	}
-	type x struct{}
-	out := protoimpl.TypeBuilder{
-		File: protoimpl.DescBuilder{
-			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
-			RawDescriptor: file_common_Common_proto_rawDesc,
-			NumEnums:      1,
-			NumMessages:   4,
-			NumExtensions: 0,
-			NumServices:   0,
-		},
-		GoTypes:           file_common_Common_proto_goTypes,
-		DependencyIndexes: file_common_Common_proto_depIdxs,
-		EnumInfos:         file_common_Common_proto_enumTypes,
-		MessageInfos:      file_common_Common_proto_msgTypes,
-	}.Build()
-	File_common_Common_proto = out.File
-	file_common_Common_proto_rawDesc = nil
-	file_common_Common_proto_goTypes = nil
-	file_common_Common_proto_depIdxs = nil
-}
diff --git a/protocol/gen-codes/skywalking/network/go.mod b/protocol/gen-codes/skywalking/network/go.mod
deleted file mode 100644
index 01a66ff..0000000
--- a/protocol/gen-codes/skywalking/network/go.mod
+++ /dev/null
@@ -1,9 +0,0 @@
-module skywalking/network
-
-go 1.15
-
-replace google.golang.org/grpc => github.com/grpc/grpc-go v1.36.1
-
-replace google.golang.org/protobuf => github.com/golang/protobuf v1.4.3
-
-require google.golang.org/grpc v1.27.0
diff --git a/protocol/gen-codes/skywalking/network/go.sum b/protocol/gen-codes/skywalking/network/go.sum
deleted file mode 100644
index 160bb46..0000000
--- a/protocol/gen-codes/skywalking/network/go.sum
+++ /dev/null
@@ -1,51 +0,0 @@
-github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
-github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk=
-github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
-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/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
-github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
-github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
-github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8=
-github.com/golang/protobuf v1.4.2 h1:+Z5KGCizgyZCbGh1KZqA0fcLLkwbsjIzS4aV2v7wJX0=
-github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI=
-github.com/golang/protobuf v1.4.3 h1:JjCZWpVbqXDqFVmTfYWEVTMIYrL/NPdPSCHPJ0T/raM=
-github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI=
-github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
-github.com/google/go-cmp v0.5.0 h1:/QaMHBdZ26BB3SSst0Iwl10Epc+xhTquomWX0oZEB6w=
-github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
-github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
-github.com/grpc/grpc-go v1.36.1 h1:E3RMMUT47WeeZHawa7wayMenGRViL1GaIoj3QoX2LhY=
-github.com/grpc/grpc-go v1.36.1/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU=
-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/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
-github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA=
-golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
-golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
-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/net v0.0.0-20180724234803-3673e40ba225/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 h1:oWX7TPOiFAMXLq8o0ikBYfCJVlRHBcsciT5bXOrH628=
-golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
-golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
-golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
-golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
-golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a h1:1BGLXjeY4akVXGgbC9HugT3Jv3hCI0z56oJR5vAMgBU=
-golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
-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-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-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
-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.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
-google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc=
-google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013 h1:+kGHl1aib/qcwaRi1CbqBZ1rk19r85MNUf8HaBghugY=
-google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo=
-gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
-gopkg.in/yaml.v2 v2.2.2/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=
diff --git a/protocol/gen-codes/skywalking/network/language/agent/v3/BrowserPerf.pb.go b/protocol/gen-codes/skywalking/network/language/agent/v3/BrowserPerf.pb.go
deleted file mode 100644
index 333a7c4..0000000
--- a/protocol/gen-codes/skywalking/network/language/agent/v3/BrowserPerf.pb.go
+++ /dev/null
@@ -1,627 +0,0 @@
-//
-// 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: browser/BrowserPerf.proto
-
-package v3
-
-import (
-	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
-	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
-	reflect "reflect"
-	v3 "skywalking/network/common/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)
-)
-
-type ErrorCategory int32
-
-const (
-	ErrorCategory_ajax     ErrorCategory = 0
-	ErrorCategory_resource ErrorCategory = 1
-	ErrorCategory_vue      ErrorCategory = 2
-	ErrorCategory_promise  ErrorCategory = 3
-	ErrorCategory_js       ErrorCategory = 4
-	ErrorCategory_unknown  ErrorCategory = 5
-)
-
-// Enum value maps for ErrorCategory.
-var (
-	ErrorCategory_name = map[int32]string{
-		0: "ajax",
-		1: "resource",
-		2: "vue",
-		3: "promise",
-		4: "js",
-		5: "unknown",
-	}
-	ErrorCategory_value = map[string]int32{
-		"ajax":     0,
-		"resource": 1,
-		"vue":      2,
-		"promise":  3,
-		"js":       4,
-		"unknown":  5,
-	}
-)
-
-func (x ErrorCategory) Enum() *ErrorCategory {
-	p := new(ErrorCategory)
-	*p = x
-	return p
-}
-
-func (x ErrorCategory) String() string {
-	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
-}
-
-func (ErrorCategory) Descriptor() protoreflect.EnumDescriptor {
-	return file_browser_BrowserPerf_proto_enumTypes[0].Descriptor()
-}
-
-func (ErrorCategory) Type() protoreflect.EnumType {
-	return &file_browser_BrowserPerf_proto_enumTypes[0]
-}
-
-func (x ErrorCategory) Number() protoreflect.EnumNumber {
-	return protoreflect.EnumNumber(x)
-}
-
-// Deprecated: Use ErrorCategory.Descriptor instead.
-func (ErrorCategory) EnumDescriptor() ([]byte, []int) {
-	return file_browser_BrowserPerf_proto_rawDescGZIP(), []int{0}
-}
-
-type BrowserPerfData struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Service string `protobuf:"bytes,1,opt,name=service,proto3" json:"service,omitempty"`
-	// Service version in browser is the Instance concept in the backend.
-	ServiceVersion string `protobuf:"bytes,2,opt,name=serviceVersion,proto3" json:"serviceVersion,omitempty"`
-	// Perf data time, set by the backend side.
-	Time int64 `protobuf:"varint,3,opt,name=time,proto3" json:"time,omitempty"`
-	// Page path in browser is the endpoint concept in the backend
-	// Page path in the browser, mostly it is URI, without parameter
-	PagePath string `protobuf:"bytes,4,opt,name=pagePath,proto3" json:"pagePath,omitempty"`
-	// Unit of all time related field should be `ms`.
-	RedirectTime int32 `protobuf:"varint,5,opt,name=redirectTime,proto3" json:"redirectTime,omitempty"`
-	// DNS query time
-	DnsTime int32 `protobuf:"varint,6,opt,name=dnsTime,proto3" json:"dnsTime,omitempty"`
-	// Time to first Byte
-	TtfbTime int32 `protobuf:"varint,7,opt,name=ttfbTime,proto3" json:"ttfbTime,omitempty"`
-	//  TCP connection time
-	TcpTime int32 `protobuf:"varint,8,opt,name=tcpTime,proto3" json:"tcpTime,omitempty"`
-	// Content transfer time
-	TransTime int32 `protobuf:"varint,9,opt,name=transTime,proto3" json:"transTime,omitempty"`
-	// Dom parsing time
-	DomAnalysisTime int32 `protobuf:"varint,10,opt,name=domAnalysisTime,proto3" json:"domAnalysisTime,omitempty"`
-	// First paint time or blank screen time
-	FptTime int32 `protobuf:"varint,11,opt,name=fptTime,proto3" json:"fptTime,omitempty"`
-	// Dom ready time
-	DomReadyTime int32 `protobuf:"varint,12,opt,name=domReadyTime,proto3" json:"domReadyTime,omitempty"`
-	// Page full load time
-	LoadPageTime int32 `protobuf:"varint,13,opt,name=loadPageTime,proto3" json:"loadPageTime,omitempty"`
-	// Synchronous load resources in the page
-	ResTime int32 `protobuf:"varint,14,opt,name=resTime,proto3" json:"resTime,omitempty"`
-	// Only valid for HTTPS
-	SslTime int32 `protobuf:"varint,15,opt,name=sslTime,proto3" json:"sslTime,omitempty"`
-	// Time to interact
-	TtlTime int32 `protobuf:"varint,16,opt,name=ttlTime,proto3" json:"ttlTime,omitempty"`
-	// First pack time
-	FirstPackTime int32 `protobuf:"varint,17,opt,name=firstPackTime,proto3" json:"firstPackTime,omitempty"`
-	// First Meaningful Paint
-	FmpTime int32 `protobuf:"varint,18,opt,name=fmpTime,proto3" json:"fmpTime,omitempty"`
-}
-
-func (x *BrowserPerfData) Reset() {
-	*x = BrowserPerfData{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_browser_BrowserPerf_proto_msgTypes[0]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *BrowserPerfData) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*BrowserPerfData) ProtoMessage() {}
-
-func (x *BrowserPerfData) ProtoReflect() protoreflect.Message {
-	mi := &file_browser_BrowserPerf_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 BrowserPerfData.ProtoReflect.Descriptor instead.
-func (*BrowserPerfData) Descriptor() ([]byte, []int) {
-	return file_browser_BrowserPerf_proto_rawDescGZIP(), []int{0}
-}
-
-func (x *BrowserPerfData) GetService() string {
-	if x != nil {
-		return x.Service
-	}
-	return ""
-}
-
-func (x *BrowserPerfData) GetServiceVersion() string {
-	if x != nil {
-		return x.ServiceVersion
-	}
-	return ""
-}
-
-func (x *BrowserPerfData) GetTime() int64 {
-	if x != nil {
-		return x.Time
-	}
-	return 0
-}
-
-func (x *BrowserPerfData) GetPagePath() string {
-	if x != nil {
-		return x.PagePath
-	}
-	return ""
-}
-
-func (x *BrowserPerfData) GetRedirectTime() int32 {
-	if x != nil {
-		return x.RedirectTime
-	}
-	return 0
-}
-
-func (x *BrowserPerfData) GetDnsTime() int32 {
-	if x != nil {
-		return x.DnsTime
-	}
-	return 0
-}
-
-func (x *BrowserPerfData) GetTtfbTime() int32 {
-	if x != nil {
-		return x.TtfbTime
-	}
-	return 0
-}
-
-func (x *BrowserPerfData) GetTcpTime() int32 {
-	if x != nil {
-		return x.TcpTime
-	}
-	return 0
-}
-
-func (x *BrowserPerfData) GetTransTime() int32 {
-	if x != nil {
-		return x.TransTime
-	}
-	return 0
-}
-
-func (x *BrowserPerfData) GetDomAnalysisTime() int32 {
-	if x != nil {
-		return x.DomAnalysisTime
-	}
-	return 0
-}
-
-func (x *BrowserPerfData) GetFptTime() int32 {
-	if x != nil {
-		return x.FptTime
-	}
-	return 0
-}
-
-func (x *BrowserPerfData) GetDomReadyTime() int32 {
-	if x != nil {
-		return x.DomReadyTime
-	}
-	return 0
-}
-
-func (x *BrowserPerfData) GetLoadPageTime() int32 {
-	if x != nil {
-		return x.LoadPageTime
-	}
-	return 0
-}
-
-func (x *BrowserPerfData) GetResTime() int32 {
-	if x != nil {
-		return x.ResTime
-	}
-	return 0
-}
-
-func (x *BrowserPerfData) GetSslTime() int32 {
-	if x != nil {
-		return x.SslTime
-	}
-	return 0
-}
-
-func (x *BrowserPerfData) GetTtlTime() int32 {
-	if x != nil {
-		return x.TtlTime
-	}
-	return 0
-}
-
-func (x *BrowserPerfData) GetFirstPackTime() int32 {
-	if x != nil {
-		return x.FirstPackTime
-	}
-	return 0
-}
-
-func (x *BrowserPerfData) GetFmpTime() int32 {
-	if x != nil {
-		return x.FmpTime
-	}
-	return 0
-}
-
-type BrowserErrorLog struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	// UUID
-	UniqueId string `protobuf:"bytes,1,opt,name=uniqueId,proto3" json:"uniqueId,omitempty"`
-	Service  string `protobuf:"bytes,2,opt,name=service,proto3" json:"service,omitempty"`
-	// Service version in browser is the Instance concept in the backend.
-	ServiceVersion string `protobuf:"bytes,3,opt,name=serviceVersion,proto3" json:"serviceVersion,omitempty"`
-	// Error log time, set by the backend side.
-	Time int64 `protobuf:"varint,4,opt,name=time,proto3" json:"time,omitempty"`
-	// Page path in browser is the endpoint concept in the backend
-	// Page path in the browser, mostly it is URI, without parameter
-	PagePath string        `protobuf:"bytes,5,opt,name=pagePath,proto3" json:"pagePath,omitempty"`
-	Category ErrorCategory `protobuf:"varint,6,opt,name=category,proto3,enum=skywalking.v3.ErrorCategory" json:"category,omitempty"`
-	Grade    string        `protobuf:"bytes,7,opt,name=grade,proto3" json:"grade,omitempty"`
-	Message  string        `protobuf:"bytes,8,opt,name=message,proto3" json:"message,omitempty"`
-	Line     int32         `protobuf:"varint,9,opt,name=line,proto3" json:"line,omitempty"`
-	Col      int32         `protobuf:"varint,10,opt,name=col,proto3" json:"col,omitempty"`
-	Stack    string        `protobuf:"bytes,11,opt,name=stack,proto3" json:"stack,omitempty"`
-	ErrorUrl string        `protobuf:"bytes,12,opt,name=errorUrl,proto3" json:"errorUrl,omitempty"`
-	// Then the PV with error is only calculated when firstReportedError is true.
-	FirstReportedError bool `protobuf:"varint,13,opt,name=firstReportedError,proto3" json:"firstReportedError,omitempty"`
-}
-
-func (x *BrowserErrorLog) Reset() {
-	*x = BrowserErrorLog{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_browser_BrowserPerf_proto_msgTypes[1]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *BrowserErrorLog) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*BrowserErrorLog) ProtoMessage() {}
-
-func (x *BrowserErrorLog) ProtoReflect() protoreflect.Message {
-	mi := &file_browser_BrowserPerf_proto_msgTypes[1]
-	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 BrowserErrorLog.ProtoReflect.Descriptor instead.
-func (*BrowserErrorLog) Descriptor() ([]byte, []int) {
-	return file_browser_BrowserPerf_proto_rawDescGZIP(), []int{1}
-}
-
-func (x *BrowserErrorLog) GetUniqueId() string {
-	if x != nil {
-		return x.UniqueId
-	}
-	return ""
-}
-
-func (x *BrowserErrorLog) GetService() string {
-	if x != nil {
-		return x.Service
-	}
-	return ""
-}
-
-func (x *BrowserErrorLog) GetServiceVersion() string {
-	if x != nil {
-		return x.ServiceVersion
-	}
-	return ""
-}
-
-func (x *BrowserErrorLog) GetTime() int64 {
-	if x != nil {
-		return x.Time
-	}
-	return 0
-}
-
-func (x *BrowserErrorLog) GetPagePath() string {
-	if x != nil {
-		return x.PagePath
-	}
-	return ""
-}
-
-func (x *BrowserErrorLog) GetCategory() ErrorCategory {
-	if x != nil {
-		return x.Category
-	}
-	return ErrorCategory_ajax
-}
-
-func (x *BrowserErrorLog) GetGrade() string {
-	if x != nil {
-		return x.Grade
-	}
-	return ""
-}
-
-func (x *BrowserErrorLog) GetMessage() string {
-	if x != nil {
-		return x.Message
-	}
-	return ""
-}
-
-func (x *BrowserErrorLog) GetLine() int32 {
-	if x != nil {
-		return x.Line
-	}
-	return 0
-}
-
-func (x *BrowserErrorLog) GetCol() int32 {
-	if x != nil {
-		return x.Col
-	}
-	return 0
-}
-
-func (x *BrowserErrorLog) GetStack() string {
-	if x != nil {
-		return x.Stack
-	}
-	return ""
-}
-
-func (x *BrowserErrorLog) GetErrorUrl() string {
-	if x != nil {
-		return x.ErrorUrl
-	}
-	return ""
-}
-
-func (x *BrowserErrorLog) GetFirstReportedError() bool {
-	if x != nil {
-		return x.FirstReportedError
-	}
-	return false
-}
-
-var File_browser_BrowserPerf_proto protoreflect.FileDescriptor
-
-var file_browser_BrowserPerf_proto_rawDesc = []byte{
-	0x0a, 0x19, 0x62, 0x72, 0x6f, 0x77, 0x73, 0x65, 0x72, 0x2f, 0x42, 0x72, 0x6f, 0x77, 0x73, 0x65,
-	0x72, 0x50, 0x65, 0x72, 0x66, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0d, 0x73, 0x6b, 0x79,
-	0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x1a, 0x13, 0x63, 0x6f, 0x6d, 0x6d,
-	0x6f, 0x6e, 0x2f, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22,
-	0xaf, 0x04, 0x0a, 0x0f, 0x42, 0x72, 0x6f, 0x77, 0x73, 0x65, 0x72, 0x50, 0x65, 0x72, 0x66, 0x44,
-	0x61, 0x74, 0x61, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x18, 0x01,
-	0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x26, 0x0a,
-	0x0e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18,
-	0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x56, 0x65,
-	0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20,
-	0x01, 0x28, 0x03, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67,
-	0x65, 0x50, 0x61, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x61, 0x67,
-	0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x22, 0x0a, 0x0c, 0x72, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63,
-	0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x72, 0x65, 0x64,
-	0x69, 0x72, 0x65, 0x63, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x6e, 0x73,
-	0x54, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x64, 0x6e, 0x73, 0x54,
-	0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x74, 0x66, 0x62, 0x54, 0x69, 0x6d, 0x65, 0x18,
-	0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x74, 0x74, 0x66, 0x62, 0x54, 0x69, 0x6d, 0x65, 0x12,
-	0x18, 0x0a, 0x07, 0x74, 0x63, 0x70, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05,
-	0x52, 0x07, 0x74, 0x63, 0x70, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x72, 0x61,
-	0x6e, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x74, 0x72,
-	0x61, 0x6e, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x64, 0x6f, 0x6d, 0x41, 0x6e,
-	0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05,
-	0x52, 0x0f, 0x64, 0x6f, 0x6d, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x54, 0x69, 0x6d,
-	0x65, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x70, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01,
-	0x28, 0x05, 0x52, 0x07, 0x66, 0x70, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x64,
-	0x6f, 0x6d, 0x52, 0x65, 0x61, 0x64, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28,
-	0x05, 0x52, 0x0c, 0x64, 0x6f, 0x6d, 0x52, 0x65, 0x61, 0x64, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x12,
-	0x22, 0x0a, 0x0c, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x61, 0x67, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18,
-	0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x61, 0x67, 0x65, 0x54,
-	0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0e,
-	0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x72, 0x65, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a,
-	0x07, 0x73, 0x73, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07,
-	0x73, 0x73, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x74, 0x6c, 0x54, 0x69,
-	0x6d, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x74, 0x74, 0x6c, 0x54, 0x69, 0x6d,
-	0x65, 0x12, 0x24, 0x0a, 0x0d, 0x66, 0x69, 0x72, 0x73, 0x74, 0x50, 0x61, 0x63, 0x6b, 0x54, 0x69,
-	0x6d, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x66, 0x69, 0x72, 0x73, 0x74, 0x50,
-	0x61, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x6d, 0x70, 0x54, 0x69,
-	0x6d, 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x66, 0x6d, 0x70, 0x54, 0x69, 0x6d,
-	0x65, 0x22, 0x91, 0x03, 0x0a, 0x0f, 0x42, 0x72, 0x6f, 0x77, 0x73, 0x65, 0x72, 0x45, 0x72, 0x72,
-	0x6f, 0x72, 0x4c, 0x6f, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x49,
-	0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x49,
-	0x64, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01,
-	0x28, 0x09, 0x52, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x73,
-	0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20,
-	0x01, 0x28, 0x09, 0x52, 0x0e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x56, 0x65, 0x72, 0x73,
-	0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28,
-	0x03, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65, 0x50,
-	0x61, 0x74, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x50,
-	0x61, 0x74, 0x68, 0x12, 0x38, 0x0a, 0x08, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x18,
-	0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x73, 0x6b, 0x79, 0x77, 0x61, 0x6c, 0x6b, 0x69,
-	0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x61, 0x74, 0x65, 0x67,
-	0x6f, 0x72, 0x79, 0x52, 0x08, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x12, 0x14, 0x0a,
-	0x05, 0x67, 0x72, 0x61, 0x64, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x67, 0x72,
-	0x61, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x08,
-	0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x12, 0x0a,
-	0x04, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x6c, 0x69, 0x6e,
-	0x65, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x6f, 0x6c, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03,
-	0x63, 0x6f, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x18, 0x0b, 0x20, 0x01,
-	0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x72, 0x72,
-	0x6f, 0x72, 0x55, 0x72, 0x6c, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x72, 0x72,
-	0x6f, 0x72, 0x55, 0x72, 0x6c, 0x12, 0x2e, 0x0a, 0x12, 0x66, 0x69, 0x72, 0x73, 0x74, 0x52, 0x65,
-	0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x0d, 0x20, 0x01, 0x28,
-	0x08, 0x52, 0x12, 0x66, 0x69, 0x72, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64,
-	0x45, 0x72, 0x72, 0x6f, 0x72, 0x2a, 0x52, 0x0a, 0x0d, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x61,
-	0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x12, 0x08, 0x0a, 0x04, 0x61, 0x6a, 0x61, 0x78, 0x10, 0x00,
-	0x12, 0x0c, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x10, 0x01, 0x12, 0x07,
-	0x0a, 0x03, 0x76, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0b, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6d, 0x69,
-	0x73, 0x65, 0x10, 0x03, 0x12, 0x06, 0x0a, 0x02, 0x6a, 0x73, 0x10, 0x04, 0x12, 0x0b, 0x0a, 0x07,
-	0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x10, 0x05, 0x32, 0xb3, 0x01, 0x0a, 0x12, 0x42, 0x72,
-	0x6f, 0x77, 0x73, 0x65, 0x72, 0x50, 0x65, 0x72, 0x66, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65,
-	0x12, 0x4c, 0x0a, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x50, 0x65, 0x72, 0x66, 0x44,
-	0x61, 0x74, 0x61, 0x12, 0x1e, 0x2e, 0x73, 0x6b, 0x79, 0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67,
-	0x2e, 0x76, 0x33, 0x2e, 0x42, 0x72, 0x6f, 0x77, 0x73, 0x65, 0x72, 0x50, 0x65, 0x72, 0x66, 0x44,
-	0x61, 0x74, 0x61, 0x1a, 0x17, 0x2e, 0x73, 0x6b, 0x79, 0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67,
-	0x2e, 0x76, 0x33, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x73, 0x22, 0x00, 0x12, 0x4f,
-	0x0a, 0x10, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x4c, 0x6f,
-	0x67, 0x73, 0x12, 0x1e, 0x2e, 0x73, 0x6b, 0x79, 0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x2e,
-	0x76, 0x33, 0x2e, 0x42, 0x72, 0x6f, 0x77, 0x73, 0x65, 0x72, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x4c,
-	0x6f, 0x67, 0x1a, 0x17, 0x2e, 0x73, 0x6b, 0x79, 0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x2e,
-	0x76, 0x33, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x73, 0x22, 0x00, 0x28, 0x01, 0x42,
-	0x7d, 0x0a, 0x33, 0x6f, 0x72, 0x67, 0x2e, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2e, 0x73, 0x6b,
-	0x79, 0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x61, 0x70, 0x6d, 0x2e, 0x6e, 0x65, 0x74,
-	0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x67,
-	0x65, 0x6e, 0x74, 0x2e, 0x76, 0x33, 0x50, 0x01, 0x5a, 0x24, 0x73, 0x6b, 0x79, 0x77, 0x61, 0x6c,
-	0x6b, 0x69, 0x6e, 0x67, 0x2f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2f, 0x6c, 0x61, 0x6e,
-	0x67, 0x75, 0x61, 0x67, 0x65, 0x2f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x2f, 0x76, 0x33, 0xaa, 0x02,
-	0x1d, 0x53, 0x6b, 0x79, 0x57, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x4e, 0x65, 0x74, 0x77,
-	0x6f, 0x72, 0x6b, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x56, 0x33, 0x62, 0x06,
-	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
-}
-
-var (
-	file_browser_BrowserPerf_proto_rawDescOnce sync.Once
-	file_browser_BrowserPerf_proto_rawDescData = file_browser_BrowserPerf_proto_rawDesc
-)
-
-func file_browser_BrowserPerf_proto_rawDescGZIP() []byte {
-	file_browser_BrowserPerf_proto_rawDescOnce.Do(func() {
-		file_browser_BrowserPerf_proto_rawDescData = protoimpl.X.CompressGZIP(file_browser_BrowserPerf_proto_rawDescData)
-	})
-	return file_browser_BrowserPerf_proto_rawDescData
-}
-
-var file_browser_BrowserPerf_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
-var file_browser_BrowserPerf_proto_msgTypes = make([]protoimpl.MessageInfo, 2)
-var file_browser_BrowserPerf_proto_goTypes = []interface{}{
-	(ErrorCategory)(0),      // 0: skywalking.v3.ErrorCategory
-	(*BrowserPerfData)(nil), // 1: skywalking.v3.BrowserPerfData
-	(*BrowserErrorLog)(nil), // 2: skywalking.v3.BrowserErrorLog
-	(*v3.Commands)(nil),     // 3: skywalking.v3.Commands
-}
-var file_browser_BrowserPerf_proto_depIdxs = []int32{
-	0, // 0: skywalking.v3.BrowserErrorLog.category:type_name -> skywalking.v3.ErrorCategory
-	1, // 1: skywalking.v3.BrowserPerfService.collectPerfData:input_type -> skywalking.v3.BrowserPerfData
-	2, // 2: skywalking.v3.BrowserPerfService.collectErrorLogs:input_type -> skywalking.v3.BrowserErrorLog
-	3, // 3: skywalking.v3.BrowserPerfService.collectPerfData:output_type -> skywalking.v3.Commands
-	3, // 4: skywalking.v3.BrowserPerfService.collectErrorLogs:output_type -> skywalking.v3.Commands
-	3, // [3:5] is the sub-list for method output_type
-	1, // [1:3] is the sub-list for method input_type
-	1, // [1:1] is the sub-list for extension type_name
-	1, // [1:1] is the sub-list for extension extendee
-	0, // [0:1] is the sub-list for field type_name
-}
-
-func init() { file_browser_BrowserPerf_proto_init() }
-func file_browser_BrowserPerf_proto_init() {
-	if File_browser_BrowserPerf_proto != nil {
-		return
-	}
-	if !protoimpl.UnsafeEnabled {
-		file_browser_BrowserPerf_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*BrowserPerfData); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_browser_BrowserPerf_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*BrowserErrorLog); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-	}
-	type x struct{}
-	out := protoimpl.TypeBuilder{
-		File: protoimpl.DescBuilder{
-			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
-			RawDescriptor: file_browser_BrowserPerf_proto_rawDesc,
-			NumEnums:      1,
-			NumMessages:   2,
-			NumExtensions: 0,
-			NumServices:   1,
-		},
-		GoTypes:           file_browser_BrowserPerf_proto_goTypes,
-		DependencyIndexes: file_browser_BrowserPerf_proto_depIdxs,
-		EnumInfos:         file_browser_BrowserPerf_proto_enumTypes,
-		MessageInfos:      file_browser_BrowserPerf_proto_msgTypes,
-	}.Build()
-	File_browser_BrowserPerf_proto = out.File
-	file_browser_BrowserPerf_proto_rawDesc = nil
-	file_browser_BrowserPerf_proto_goTypes = nil
-	file_browser_BrowserPerf_proto_depIdxs = nil
-}
diff --git a/protocol/gen-codes/skywalking/network/language/agent/v3/BrowserPerf_grpc.pb.go b/protocol/gen-codes/skywalking/network/language/agent/v3/BrowserPerf_grpc.pb.go
deleted file mode 100644
index 428f1ae..0000000
--- a/protocol/gen-codes/skywalking/network/language/agent/v3/BrowserPerf_grpc.pb.go
+++ /dev/null
@@ -1,177 +0,0 @@
-// Code generated by protoc-gen-go-grpc. DO NOT EDIT.
-
-package v3
-
-import (
-	context "context"
-	grpc "google.golang.org/grpc"
-	codes "google.golang.org/grpc/codes"
-	status "google.golang.org/grpc/status"
-	v3 "skywalking/network/common/v3"
-)
-
-// This is a compile-time assertion to ensure that this generated file
-// is compatible with the grpc package it is being compiled against.
-// Requires gRPC-Go v1.32.0 or later.
-const _ = grpc.SupportPackageIsVersion7
-
-// BrowserPerfServiceClient is the client API for BrowserPerfService service.
-//
-// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.
-type BrowserPerfServiceClient interface {
-	// report once per page
-	CollectPerfData(ctx context.Context, in *BrowserPerfData, opts ...grpc.CallOption) (*v3.Commands, error)
-	// report one or more error logs for pages, could report multiple times.
-	CollectErrorLogs(ctx context.Context, opts ...grpc.CallOption) (BrowserPerfService_CollectErrorLogsClient, error)
-}
-
-type browserPerfServiceClient struct {
-	cc grpc.ClientConnInterface
-}
-
-func NewBrowserPerfServiceClient(cc grpc.ClientConnInterface) BrowserPerfServiceClient {
-	return &browserPerfServiceClient{cc}
-}
-
-func (c *browserPerfServiceClient) CollectPerfData(ctx context.Context, in *BrowserPerfData, opts ...grpc.CallOption) (*v3.Commands, error) {
-	out := new(v3.Commands)
-	err := c.cc.Invoke(ctx, "/skywalking.v3.BrowserPerfService/collectPerfData", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *browserPerfServiceClient) CollectErrorLogs(ctx context.Context, opts ...grpc.CallOption) (BrowserPerfService_CollectErrorLogsClient, error) {
-	stream, err := c.cc.NewStream(ctx, &BrowserPerfService_ServiceDesc.Streams[0], "/skywalking.v3.BrowserPerfService/collectErrorLogs", opts...)
-	if err != nil {
-		return nil, err
-	}
-	x := &browserPerfServiceCollectErrorLogsClient{stream}
-	return x, nil
-}
-
-type BrowserPerfService_CollectErrorLogsClient interface {
-	Send(*BrowserErrorLog) error
-	CloseAndRecv() (*v3.Commands, error)
-	grpc.ClientStream
-}
-
-type browserPerfServiceCollectErrorLogsClient struct {
-	grpc.ClientStream
-}
-
-func (x *browserPerfServiceCollectErrorLogsClient) Send(m *BrowserErrorLog) error {
-	return x.ClientStream.SendMsg(m)
-}
-
-func (x *browserPerfServiceCollectErrorLogsClient) CloseAndRecv() (*v3.Commands, error) {
-	if err := x.ClientStream.CloseSend(); err != nil {
-		return nil, err
-	}
-	m := new(v3.Commands)
-	if err := x.ClientStream.RecvMsg(m); err != nil {
-		return nil, err
-	}
-	return m, nil
-}
-
-// BrowserPerfServiceServer is the server API for BrowserPerfService service.
-// All implementations must embed UnimplementedBrowserPerfServiceServer
-// for forward compatibility
-type BrowserPerfServiceServer interface {
-	// report once per page
-	CollectPerfData(context.Context, *BrowserPerfData) (*v3.Commands, error)
-	// report one or more error logs for pages, could report multiple times.
-	CollectErrorLogs(BrowserPerfService_CollectErrorLogsServer) error
-	mustEmbedUnimplementedBrowserPerfServiceServer()
-}
-
-// UnimplementedBrowserPerfServiceServer must be embedded to have forward compatible implementations.
-type UnimplementedBrowserPerfServiceServer struct {
-}
-
-func (UnimplementedBrowserPerfServiceServer) CollectPerfData(context.Context, *BrowserPerfData) (*v3.Commands, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method CollectPerfData not implemented")
-}
-func (UnimplementedBrowserPerfServiceServer) CollectErrorLogs(BrowserPerfService_CollectErrorLogsServer) error {
-	return status.Errorf(codes.Unimplemented, "method CollectErrorLogs not implemented")
-}
-func (UnimplementedBrowserPerfServiceServer) mustEmbedUnimplementedBrowserPerfServiceServer() {}
-
-// UnsafeBrowserPerfServiceServer may be embedded to opt out of forward compatibility for this service.
-// Use of this interface is not recommended, as added methods to BrowserPerfServiceServer will
-// result in compilation errors.
-type UnsafeBrowserPerfServiceServer interface {
-	mustEmbedUnimplementedBrowserPerfServiceServer()
-}
-
-func RegisterBrowserPerfServiceServer(s grpc.ServiceRegistrar, srv BrowserPerfServiceServer) {
-	s.RegisterService(&BrowserPerfService_ServiceDesc, srv)
-}
-
-func _BrowserPerfService_CollectPerfData_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(BrowserPerfData)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(BrowserPerfServiceServer).CollectPerfData(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/skywalking.v3.BrowserPerfService/collectPerfData",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(BrowserPerfServiceServer).CollectPerfData(ctx, req.(*BrowserPerfData))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _BrowserPerfService_CollectErrorLogs_Handler(srv interface{}, stream grpc.ServerStream) error {
-	return srv.(BrowserPerfServiceServer).CollectErrorLogs(&browserPerfServiceCollectErrorLogsServer{stream})
-}
-
-type BrowserPerfService_CollectErrorLogsServer interface {
-	SendAndClose(*v3.Commands) error
-	Recv() (*BrowserErrorLog, error)
-	grpc.ServerStream
-}
-
-type browserPerfServiceCollectErrorLogsServer struct {
-	grpc.ServerStream
-}
-
-func (x *browserPerfServiceCollectErrorLogsServer) SendAndClose(m *v3.Commands) error {
-	return x.ServerStream.SendMsg(m)
-}
-
-func (x *browserPerfServiceCollectErrorLogsServer) Recv() (*BrowserErrorLog, error) {
-	m := new(BrowserErrorLog)
-	if err := x.ServerStream.RecvMsg(m); err != nil {
-		return nil, err
-	}
-	return m, nil
-}
-
-// BrowserPerfService_ServiceDesc is the grpc.ServiceDesc for BrowserPerfService service.
-// It's only intended for direct use with grpc.RegisterService,
-// and not to be introspected or modified (even as a copy)
-var BrowserPerfService_ServiceDesc = grpc.ServiceDesc{
-	ServiceName: "skywalking.v3.BrowserPerfService",
-	HandlerType: (*BrowserPerfServiceServer)(nil),
-	Methods: []grpc.MethodDesc{
-		{
-			MethodName: "collectPerfData",
-			Handler:    _BrowserPerfService_CollectPerfData_Handler,
-		},
-	},
-	Streams: []grpc.StreamDesc{
-		{
-			StreamName:    "collectErrorLogs",
-			Handler:       _BrowserPerfService_CollectErrorLogs_Handler,
-			ClientStreams: true,
-		},
-	},
-	Metadata: "browser/BrowserPerf.proto",
-}
diff --git a/protocol/gen-codes/skywalking/network/language/agent/v3/CLRMetric.pb.go b/protocol/gen-codes/skywalking/network/language/agent/v3/CLRMetric.pb.go
deleted file mode 100644
index 22139cf..0000000
--- a/protocol/gen-codes/skywalking/network/language/agent/v3/CLRMetric.pb.go
+++ /dev/null
@@ -1,495 +0,0 @@
-//
-// 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: language-agent/CLRMetric.proto
-
-package v3
-
-import (
-	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
-	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
-	reflect "reflect"
-	v3 "skywalking/network/common/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)
-)
-
-type CLRMetricCollection struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Metrics         []*CLRMetric `protobuf:"bytes,1,rep,name=metrics,proto3" json:"metrics,omitempty"`
-	Service         string       `protobuf:"bytes,2,opt,name=service,proto3" json:"service,omitempty"`
-	ServiceInstance string       `protobuf:"bytes,3,opt,name=serviceInstance,proto3" json:"serviceInstance,omitempty"`
-}
-
-func (x *CLRMetricCollection) Reset() {
-	*x = CLRMetricCollection{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_language_agent_CLRMetric_proto_msgTypes[0]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *CLRMetricCollection) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*CLRMetricCollection) ProtoMessage() {}
-
-func (x *CLRMetricCollection) ProtoReflect() protoreflect.Message {
-	mi := &file_language_agent_CLRMetric_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 CLRMetricCollection.ProtoReflect.Descriptor instead.
-func (*CLRMetricCollection) Descriptor() ([]byte, []int) {
-	return file_language_agent_CLRMetric_proto_rawDescGZIP(), []int{0}
-}
-
-func (x *CLRMetricCollection) GetMetrics() []*CLRMetric {
-	if x != nil {
-		return x.Metrics
-	}
-	return nil
-}
-
-func (x *CLRMetricCollection) GetService() string {
-	if x != nil {
-		return x.Service
-	}
-	return ""
-}
-
-func (x *CLRMetricCollection) GetServiceInstance() string {
-	if x != nil {
-		return x.ServiceInstance
-	}
-	return ""
-}
-
-type CLRMetric struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Time   int64      `protobuf:"varint,1,opt,name=time,proto3" json:"time,omitempty"`
-	Cpu    *v3.CPU    `protobuf:"bytes,2,opt,name=cpu,proto3" json:"cpu,omitempty"`
-	Gc     *ClrGC     `protobuf:"bytes,3,opt,name=gc,proto3" json:"gc,omitempty"`
-	Thread *ClrThread `protobuf:"bytes,4,opt,name=thread,proto3" json:"thread,omitempty"`
-}
-
-func (x *CLRMetric) Reset() {
-	*x = CLRMetric{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_language_agent_CLRMetric_proto_msgTypes[1]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *CLRMetric) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*CLRMetric) ProtoMessage() {}
-
-func (x *CLRMetric) ProtoReflect() protoreflect.Message {
-	mi := &file_language_agent_CLRMetric_proto_msgTypes[1]
-	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 CLRMetric.ProtoReflect.Descriptor instead.
-func (*CLRMetric) Descriptor() ([]byte, []int) {
-	return file_language_agent_CLRMetric_proto_rawDescGZIP(), []int{1}
-}
-
-func (x *CLRMetric) GetTime() int64 {
-	if x != nil {
-		return x.Time
-	}
-	return 0
-}
-
-func (x *CLRMetric) GetCpu() *v3.CPU {
-	if x != nil {
-		return x.Cpu
-	}
-	return nil
-}
-
-func (x *CLRMetric) GetGc() *ClrGC {
-	if x != nil {
-		return x.Gc
-	}
-	return nil
-}
-
-func (x *CLRMetric) GetThread() *ClrThread {
-	if x != nil {
-		return x.Thread
-	}
-	return nil
-}
-
-type ClrGC struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Gen0CollectCount int64 `protobuf:"varint,1,opt,name=Gen0CollectCount,proto3" json:"Gen0CollectCount,omitempty"`
-	Gen1CollectCount int64 `protobuf:"varint,2,opt,name=Gen1CollectCount,proto3" json:"Gen1CollectCount,omitempty"`
-	Gen2CollectCount int64 `protobuf:"varint,3,opt,name=Gen2CollectCount,proto3" json:"Gen2CollectCount,omitempty"`
-	HeapMemory       int64 `protobuf:"varint,4,opt,name=HeapMemory,proto3" json:"HeapMemory,omitempty"`
-}
-
-func (x *ClrGC) Reset() {
-	*x = ClrGC{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_language_agent_CLRMetric_proto_msgTypes[2]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *ClrGC) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*ClrGC) ProtoMessage() {}
-
-func (x *ClrGC) ProtoReflect() protoreflect.Message {
-	mi := &file_language_agent_CLRMetric_proto_msgTypes[2]
-	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 ClrGC.ProtoReflect.Descriptor instead.
-func (*ClrGC) Descriptor() ([]byte, []int) {
-	return file_language_agent_CLRMetric_proto_rawDescGZIP(), []int{2}
-}
-
-func (x *ClrGC) GetGen0CollectCount() int64 {
-	if x != nil {
-		return x.Gen0CollectCount
-	}
-	return 0
-}
-
-func (x *ClrGC) GetGen1CollectCount() int64 {
-	if x != nil {
-		return x.Gen1CollectCount
-	}
-	return 0
-}
-
-func (x *ClrGC) GetGen2CollectCount() int64 {
-	if x != nil {
-		return x.Gen2CollectCount
-	}
-	return 0
-}
-
-func (x *ClrGC) GetHeapMemory() int64 {
-	if x != nil {
-		return x.HeapMemory
-	}
-	return 0
-}
-
-type ClrThread struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	AvailableCompletionPortThreads int32 `protobuf:"varint,1,opt,name=AvailableCompletionPortThreads,proto3" json:"AvailableCompletionPortThreads,omitempty"`
-	AvailableWorkerThreads         int32 `protobuf:"varint,2,opt,name=AvailableWorkerThreads,proto3" json:"AvailableWorkerThreads,omitempty"`
-	MaxCompletionPortThreads       int32 `protobuf:"varint,3,opt,name=MaxCompletionPortThreads,proto3" json:"MaxCompletionPortThreads,omitempty"`
-	MaxWorkerThreads               int32 `protobuf:"varint,4,opt,name=MaxWorkerThreads,proto3" json:"MaxWorkerThreads,omitempty"`
-}
-
-func (x *ClrThread) Reset() {
-	*x = ClrThread{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_language_agent_CLRMetric_proto_msgTypes[3]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *ClrThread) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*ClrThread) ProtoMessage() {}
-
-func (x *ClrThread) ProtoReflect() protoreflect.Message {
-	mi := &file_language_agent_CLRMetric_proto_msgTypes[3]
-	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 ClrThread.ProtoReflect.Descriptor instead.
-func (*ClrThread) Descriptor() ([]byte, []int) {
-	return file_language_agent_CLRMetric_proto_rawDescGZIP(), []int{3}
-}
-
-func (x *ClrThread) GetAvailableCompletionPortThreads() int32 {
-	if x != nil {
-		return x.AvailableCompletionPortThreads
-	}
-	return 0
-}
-
-func (x *ClrThread) GetAvailableWorkerThreads() int32 {
-	if x != nil {
-		return x.AvailableWorkerThreads
-	}
-	return 0
-}
-
-func (x *ClrThread) GetMaxCompletionPortThreads() int32 {
-	if x != nil {
-		return x.MaxCompletionPortThreads
-	}
-	return 0
-}
-
-func (x *ClrThread) GetMaxWorkerThreads() int32 {
-	if x != nil {
-		return x.MaxWorkerThreads
-	}
-	return 0
-}
-
-var File_language_agent_CLRMetric_proto protoreflect.FileDescriptor
-
-var file_language_agent_CLRMetric_proto_rawDesc = []byte{
-	0x0a, 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,
-	0x12, 0x0d, 0x73, 0x6b, 0x79, 0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x1a,
-	0x13, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2f, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70,
-	0x72, 0x6f, 0x74, 0x6f, 0x22, 0x8d, 0x01, 0x0a, 0x13, 0x43, 0x4c, 0x52, 0x4d, 0x65, 0x74, 0x72,
-	0x69, 0x63, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x32, 0x0a, 0x07,
-	0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e,
-	0x73, 0x6b, 0x79, 0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x43, 0x4c,
-	0x52, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x07, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73,
-	0x12, 0x18, 0x0a, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
-	0x09, 0x52, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x73, 0x65,
-	0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20,
-	0x01, 0x28, 0x09, 0x52, 0x0f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x73, 0x74,
-	0x61, 0x6e, 0x63, 0x65, 0x22, 0x9d, 0x01, 0x0a, 0x09, 0x43, 0x4c, 0x52, 0x4d, 0x65, 0x74, 0x72,
-	0x69, 0x63, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03,
-	0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x03, 0x63, 0x70, 0x75, 0x18, 0x02, 0x20,
-	0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x73, 0x6b, 0x79, 0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67,
-	0x2e, 0x76, 0x33, 0x2e, 0x43, 0x50, 0x55, 0x52, 0x03, 0x63, 0x70, 0x75, 0x12, 0x24, 0x0a, 0x02,
-	0x67, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x73, 0x6b, 0x79, 0x77, 0x61,
-	0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x43, 0x6c, 0x72, 0x47, 0x43, 0x52, 0x02,
-	0x67, 0x63, 0x12, 0x30, 0x0a, 0x06, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x18, 0x04, 0x20, 0x01,
-	0x28, 0x0b, 0x32, 0x18, 0x2e, 0x73, 0x6b, 0x79, 0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x2e,
-	0x76, 0x33, 0x2e, 0x43, 0x6c, 0x72, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x52, 0x06, 0x74, 0x68,
-	0x72, 0x65, 0x61, 0x64, 0x22, 0xab, 0x01, 0x0a, 0x05, 0x43, 0x6c, 0x72, 0x47, 0x43, 0x12, 0x2a,
-	0x0a, 0x10, 0x47, 0x65, 0x6e, 0x30, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x75,
-	0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x47, 0x65, 0x6e, 0x30, 0x43, 0x6f,
-	0x6c, 0x6c, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2a, 0x0a, 0x10, 0x47, 0x65,
-	0x6e, 0x31, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02,
-	0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x47, 0x65, 0x6e, 0x31, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63,
-	0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2a, 0x0a, 0x10, 0x47, 0x65, 0x6e, 0x32, 0x43, 0x6f,
-	0x6c, 0x6c, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03,
-	0x52, 0x10, 0x47, 0x65, 0x6e, 0x32, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x75,
-	0x6e, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x48, 0x65, 0x61, 0x70, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79,
-	0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x48, 0x65, 0x61, 0x70, 0x4d, 0x65, 0x6d, 0x6f,
-	0x72, 0x79, 0x22, 0xf3, 0x01, 0x0a, 0x09, 0x43, 0x6c, 0x72, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64,
-	0x12, 0x46, 0x0a, 0x1e, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6d,
-	0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x72, 0x74, 0x54, 0x68, 0x72, 0x65, 0x61,
-	0x64, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x1e, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61,
-	0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x72,
-	0x74, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x73, 0x12, 0x36, 0x0a, 0x16, 0x41, 0x76, 0x61, 0x69,
-	0x6c, 0x61, 0x62, 0x6c, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x54, 0x68, 0x72, 0x65, 0x61,
-	0x64, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x16, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61,
-	0x62, 0x6c, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x73,
-	0x12, 0x3a, 0x0a, 0x18, 0x4d, 0x61, 0x78, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f,
-	0x6e, 0x50, 0x6f, 0x72, 0x74, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x73, 0x18, 0x03, 0x20, 0x01,
-	0x28, 0x05, 0x52, 0x18, 0x4d, 0x61, 0x78, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f,
-	0x6e, 0x50, 0x6f, 0x72, 0x74, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x73, 0x12, 0x2a, 0x0a, 0x10,
-	0x4d, 0x61, 0x78, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x73,
-	0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x4d, 0x61, 0x78, 0x57, 0x6f, 0x72, 0x6b, 0x65,
-	0x72, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x73, 0x32, 0x62, 0x0a, 0x16, 0x43, 0x4c, 0x52, 0x4d,
-	0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69,
-	0x63, 0x65, 0x12, 0x48, 0x0a, 0x07, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x12, 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, 0x1a, 0x17, 0x2e, 0x73, 0x6b, 0x79, 0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76,
-	0x33, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x73, 0x22, 0x00, 0x42, 0x7d, 0x0a, 0x33,
-	0x6f, 0x72, 0x67, 0x2e, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2e, 0x73, 0x6b, 0x79, 0x77, 0x61,
-	0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x61, 0x70, 0x6d, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72,
-	0x6b, 0x2e, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74,
-	0x2e, 0x76, 0x33, 0x50, 0x01, 0x5a, 0x24, 0x73, 0x6b, 0x79, 0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e,
-	0x67, 0x2f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2f, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61,
-	0x67, 0x65, 0x2f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x2f, 0x76, 0x33, 0xaa, 0x02, 0x1d, 0x53, 0x6b,
-	0x79, 0x57, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b,
-	0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x56, 0x33, 0x62, 0x06, 0x70, 0x72, 0x6f,
-	0x74, 0x6f, 0x33,
-}
-
-var (
-	file_language_agent_CLRMetric_proto_rawDescOnce sync.Once
-	file_language_agent_CLRMetric_proto_rawDescData = file_language_agent_CLRMetric_proto_rawDesc
-)
-
-func file_language_agent_CLRMetric_proto_rawDescGZIP() []byte {
-	file_language_agent_CLRMetric_proto_rawDescOnce.Do(func() {
-		file_language_agent_CLRMetric_proto_rawDescData = protoimpl.X.CompressGZIP(file_language_agent_CLRMetric_proto_rawDescData)
-	})
-	return file_language_agent_CLRMetric_proto_rawDescData
-}
-
-var file_language_agent_CLRMetric_proto_msgTypes = make([]protoimpl.MessageInfo, 4)
-var file_language_agent_CLRMetric_proto_goTypes = []interface{}{
-	(*CLRMetricCollection)(nil), // 0: skywalking.v3.CLRMetricCollection
-	(*CLRMetric)(nil),           // 1: skywalking.v3.CLRMetric
-	(*ClrGC)(nil),               // 2: skywalking.v3.ClrGC
-	(*ClrThread)(nil),           // 3: skywalking.v3.ClrThread
-	(*v3.CPU)(nil),              // 4: skywalking.v3.CPU
-	(*v3.Commands)(nil),         // 5: skywalking.v3.Commands
-}
-var file_language_agent_CLRMetric_proto_depIdxs = []int32{
-	1, // 0: skywalking.v3.CLRMetricCollection.metrics:type_name -> skywalking.v3.CLRMetric
-	4, // 1: skywalking.v3.CLRMetric.cpu:type_name -> skywalking.v3.CPU
-	2, // 2: skywalking.v3.CLRMetric.gc:type_name -> skywalking.v3.ClrGC
-	3, // 3: skywalking.v3.CLRMetric.thread:type_name -> skywalking.v3.ClrThread
-	0, // 4: skywalking.v3.CLRMetricReportService.collect:input_type -> skywalking.v3.CLRMetricCollection
-	5, // 5: skywalking.v3.CLRMetricReportService.collect:output_type -> skywalking.v3.Commands
-	5, // [5:6] is the sub-list for method output_type
-	4, // [4:5] is the sub-list for method input_type
-	4, // [4:4] is the sub-list for extension type_name
-	4, // [4:4] is the sub-list for extension extendee
-	0, // [0:4] is the sub-list for field type_name
-}
-
-func init() { file_language_agent_CLRMetric_proto_init() }
-func file_language_agent_CLRMetric_proto_init() {
-	if File_language_agent_CLRMetric_proto != nil {
-		return
-	}
-	if !protoimpl.UnsafeEnabled {
-		file_language_agent_CLRMetric_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*CLRMetricCollection); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_language_agent_CLRMetric_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*CLRMetric); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_language_agent_CLRMetric_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*ClrGC); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_language_agent_CLRMetric_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*ClrThread); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-	}
-	type x struct{}
-	out := protoimpl.TypeBuilder{
-		File: protoimpl.DescBuilder{
-			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
-			RawDescriptor: file_language_agent_CLRMetric_proto_rawDesc,
-			NumEnums:      0,
-			NumMessages:   4,
-			NumExtensions: 0,
-			NumServices:   1,
-		},
-		GoTypes:           file_language_agent_CLRMetric_proto_goTypes,
-		DependencyIndexes: file_language_agent_CLRMetric_proto_depIdxs,
-		MessageInfos:      file_language_agent_CLRMetric_proto_msgTypes,
-	}.Build()
-	File_language_agent_CLRMetric_proto = out.File
-	file_language_agent_CLRMetric_proto_rawDesc = nil
-	file_language_agent_CLRMetric_proto_goTypes = nil
-	file_language_agent_CLRMetric_proto_depIdxs = nil
-}
diff --git a/protocol/gen-codes/skywalking/network/language/agent/v3/CLRMetric_grpc.pb.go b/protocol/gen-codes/skywalking/network/language/agent/v3/CLRMetric_grpc.pb.go
deleted file mode 100644
index 18ac4a3..0000000
--- a/protocol/gen-codes/skywalking/network/language/agent/v3/CLRMetric_grpc.pb.go
+++ /dev/null
@@ -1,103 +0,0 @@
-// Code generated by protoc-gen-go-grpc. DO NOT EDIT.
-
-package v3
-
-import (
-	context "context"
-	grpc "google.golang.org/grpc"
-	codes "google.golang.org/grpc/codes"
-	status "google.golang.org/grpc/status"
-	v3 "skywalking/network/common/v3"
-)
-
-// This is a compile-time assertion to ensure that this generated file
-// is compatible with the grpc package it is being compiled against.
-// Requires gRPC-Go v1.32.0 or later.
-const _ = grpc.SupportPackageIsVersion7
-
-// CLRMetricReportServiceClient is the client API for CLRMetricReportService service.
-//
-// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.
-type CLRMetricReportServiceClient interface {
-	Collect(ctx context.Context, in *CLRMetricCollection, opts ...grpc.CallOption) (*v3.Commands, error)
-}
-
-type cLRMetricReportServiceClient struct {
-	cc grpc.ClientConnInterface
-}
-
-func NewCLRMetricReportServiceClient(cc grpc.ClientConnInterface) CLRMetricReportServiceClient {
-	return &cLRMetricReportServiceClient{cc}
-}
-
-func (c *cLRMetricReportServiceClient) Collect(ctx context.Context, in *CLRMetricCollection, opts ...grpc.CallOption) (*v3.Commands, error) {
-	out := new(v3.Commands)
-	err := c.cc.Invoke(ctx, "/skywalking.v3.CLRMetricReportService/collect", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-// CLRMetricReportServiceServer is the server API for CLRMetricReportService service.
-// All implementations must embed UnimplementedCLRMetricReportServiceServer
-// for forward compatibility
-type CLRMetricReportServiceServer interface {
-	Collect(context.Context, *CLRMetricCollection) (*v3.Commands, error)
-	mustEmbedUnimplementedCLRMetricReportServiceServer()
-}
-
-// UnimplementedCLRMetricReportServiceServer must be embedded to have forward compatible implementations.
-type UnimplementedCLRMetricReportServiceServer struct {
-}
-
-func (UnimplementedCLRMetricReportServiceServer) Collect(context.Context, *CLRMetricCollection) (*v3.Commands, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method Collect not implemented")
-}
-func (UnimplementedCLRMetricReportServiceServer) mustEmbedUnimplementedCLRMetricReportServiceServer() {
-}
-
-// UnsafeCLRMetricReportServiceServer may be embedded to opt out of forward compatibility for this service.
-// Use of this interface is not recommended, as added methods to CLRMetricReportServiceServer will
-// result in compilation errors.
-type UnsafeCLRMetricReportServiceServer interface {
-	mustEmbedUnimplementedCLRMetricReportServiceServer()
-}
-
-func RegisterCLRMetricReportServiceServer(s grpc.ServiceRegistrar, srv CLRMetricReportServiceServer) {
-	s.RegisterService(&CLRMetricReportService_ServiceDesc, srv)
-}
-
-func _CLRMetricReportService_Collect_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(CLRMetricCollection)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(CLRMetricReportServiceServer).Collect(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/skywalking.v3.CLRMetricReportService/collect",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(CLRMetricReportServiceServer).Collect(ctx, req.(*CLRMetricCollection))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-// CLRMetricReportService_ServiceDesc is the grpc.ServiceDesc for CLRMetricReportService service.
-// It's only intended for direct use with grpc.RegisterService,
-// and not to be introspected or modified (even as a copy)
-var CLRMetricReportService_ServiceDesc = grpc.ServiceDesc{
-	ServiceName: "skywalking.v3.CLRMetricReportService",
-	HandlerType: (*CLRMetricReportServiceServer)(nil),
-	Methods: []grpc.MethodDesc{
-		{
-			MethodName: "collect",
-			Handler:    _CLRMetricReportService_Collect_Handler,
-		},
-	},
-	Streams:  []grpc.StreamDesc{},
-	Metadata: "language-agent/CLRMetric.proto",
-}
diff --git a/protocol/gen-codes/skywalking/network/language/agent/v3/JVMMetric.pb.go b/protocol/gen-codes/skywalking/network/language/agent/v3/JVMMetric.pb.go
deleted file mode 100644
index f3e5619..0000000
--- a/protocol/gen-codes/skywalking/network/language/agent/v3/JVMMetric.pb.go
+++ /dev/null
@@ -1,810 +0,0 @@
-//
-// 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: language-agent/JVMMetric.proto
-
-package v3
-
-import (
-	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
-	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
-	reflect "reflect"
-	v3 "skywalking/network/common/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)
-)
-
-type PoolType int32
-
-const (
-	PoolType_CODE_CACHE_USAGE PoolType = 0
-	PoolType_NEWGEN_USAGE     PoolType = 1
-	PoolType_OLDGEN_USAGE     PoolType = 2
-	PoolType_SURVIVOR_USAGE   PoolType = 3
-	PoolType_PERMGEN_USAGE    PoolType = 4
-	PoolType_METASPACE_USAGE  PoolType = 5
-)
-
-// Enum value maps for PoolType.
-var (
-	PoolType_name = map[int32]string{
-		0: "CODE_CACHE_USAGE",
-		1: "NEWGEN_USAGE",
-		2: "OLDGEN_USAGE",
-		3: "SURVIVOR_USAGE",
-		4: "PERMGEN_USAGE",
-		5: "METASPACE_USAGE",
-	}
-	PoolType_value = map[string]int32{
-		"CODE_CACHE_USAGE": 0,
-		"NEWGEN_USAGE":     1,
-		"OLDGEN_USAGE":     2,
-		"SURVIVOR_USAGE":   3,
-		"PERMGEN_USAGE":    4,
-		"METASPACE_USAGE":  5,
-	}
-)
-
-func (x PoolType) Enum() *PoolType {
-	p := new(PoolType)
-	*p = x
-	return p
-}
-
-func (x PoolType) String() string {
-	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
-}
-
-func (PoolType) Descriptor() protoreflect.EnumDescriptor {
-	return file_language_agent_JVMMetric_proto_enumTypes[0].Descriptor()
-}
-
-func (PoolType) Type() protoreflect.EnumType {
-	return &file_language_agent_JVMMetric_proto_enumTypes[0]
-}
-
-func (x PoolType) Number() protoreflect.EnumNumber {
-	return protoreflect.EnumNumber(x)
-}
-
-// Deprecated: Use PoolType.Descriptor instead.
-func (PoolType) EnumDescriptor() ([]byte, []int) {
-	return file_language_agent_JVMMetric_proto_rawDescGZIP(), []int{0}
-}
-
-type GCPhrase int32
-
-const (
-	GCPhrase_NEW GCPhrase = 0
-	GCPhrase_OLD GCPhrase = 1
-)
-
-// Enum value maps for GCPhrase.
-var (
-	GCPhrase_name = map[int32]string{
-		0: "NEW",
-		1: "OLD",
-	}
-	GCPhrase_value = map[string]int32{
-		"NEW": 0,
-		"OLD": 1,
-	}
-)
-
-func (x GCPhrase) Enum() *GCPhrase {
-	p := new(GCPhrase)
-	*p = x
-	return p
-}
-
-func (x GCPhrase) String() string {
-	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
-}
-
-func (GCPhrase) Descriptor() protoreflect.EnumDescriptor {
-	return file_language_agent_JVMMetric_proto_enumTypes[1].Descriptor()
-}
-
-func (GCPhrase) Type() protoreflect.EnumType {
-	return &file_language_agent_JVMMetric_proto_enumTypes[1]
-}
-
-func (x GCPhrase) Number() protoreflect.EnumNumber {
-	return protoreflect.EnumNumber(x)
-}
-
-// Deprecated: Use GCPhrase.Descriptor instead.
-func (GCPhrase) EnumDescriptor() ([]byte, []int) {
-	return file_language_agent_JVMMetric_proto_rawDescGZIP(), []int{1}
-}
-
-type JVMMetricCollection struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Metrics         []*JVMMetric `protobuf:"bytes,1,rep,name=metrics,proto3" json:"metrics,omitempty"`
-	Service         string       `protobuf:"bytes,2,opt,name=service,proto3" json:"service,omitempty"`
-	ServiceInstance string       `protobuf:"bytes,3,opt,name=serviceInstance,proto3" json:"serviceInstance,omitempty"`
-}
-
-func (x *JVMMetricCollection) Reset() {
-	*x = JVMMetricCollection{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_language_agent_JVMMetric_proto_msgTypes[0]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *JVMMetricCollection) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*JVMMetricCollection) ProtoMessage() {}
-
-func (x *JVMMetricCollection) ProtoReflect() protoreflect.Message {
-	mi := &file_language_agent_JVMMetric_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 JVMMetricCollection.ProtoReflect.Descriptor instead.
-func (*JVMMetricCollection) Descriptor() ([]byte, []int) {
-	return file_language_agent_JVMMetric_proto_rawDescGZIP(), []int{0}
-}
-
-func (x *JVMMetricCollection) GetMetrics() []*JVMMetric {
-	if x != nil {
-		return x.Metrics
-	}
-	return nil
-}
-
-func (x *JVMMetricCollection) GetService() string {
-	if x != nil {
-		return x.Service
-	}
-	return ""
-}
-
-func (x *JVMMetricCollection) GetServiceInstance() string {
-	if x != nil {
-		return x.ServiceInstance
-	}
-	return ""
-}
-
-type JVMMetric struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Time       int64         `protobuf:"varint,1,opt,name=time,proto3" json:"time,omitempty"`
-	Cpu        *v3.CPU       `protobuf:"bytes,2,opt,name=cpu,proto3" json:"cpu,omitempty"`
-	Memory     []*Memory     `protobuf:"bytes,3,rep,name=memory,proto3" json:"memory,omitempty"`
-	MemoryPool []*MemoryPool `protobuf:"bytes,4,rep,name=memoryPool,proto3" json:"memoryPool,omitempty"`
-	Gc         []*GC         `protobuf:"bytes,5,rep,name=gc,proto3" json:"gc,omitempty"`
-	Thread     *Thread       `protobuf:"bytes,6,opt,name=thread,proto3" json:"thread,omitempty"`
-}
-
-func (x *JVMMetric) Reset() {
-	*x = JVMMetric{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_language_agent_JVMMetric_proto_msgTypes[1]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *JVMMetric) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*JVMMetric) ProtoMessage() {}
-
-func (x *JVMMetric) ProtoReflect() protoreflect.Message {
-	mi := &file_language_agent_JVMMetric_proto_msgTypes[1]
-	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 JVMMetric.ProtoReflect.Descriptor instead.
-func (*JVMMetric) Descriptor() ([]byte, []int) {
-	return file_language_agent_JVMMetric_proto_rawDescGZIP(), []int{1}
-}
-
-func (x *JVMMetric) GetTime() int64 {
-	if x != nil {
-		return x.Time
-	}
-	return 0
-}
-
-func (x *JVMMetric) GetCpu() *v3.CPU {
-	if x != nil {
-		return x.Cpu
-	}
-	return nil
-}
-
-func (x *JVMMetric) GetMemory() []*Memory {
-	if x != nil {
-		return x.Memory
-	}
-	return nil
-}
-
-func (x *JVMMetric) GetMemoryPool() []*MemoryPool {
-	if x != nil {
-		return x.MemoryPool
-	}
-	return nil
-}
-
-func (x *JVMMetric) GetGc() []*GC {
-	if x != nil {
-		return x.Gc
-	}
-	return nil
-}
-
-func (x *JVMMetric) GetThread() *Thread {
-	if x != nil {
-		return x.Thread
-	}
-	return nil
-}
-
-type Memory struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	IsHeap    bool  `protobuf:"varint,1,opt,name=isHeap,proto3" json:"isHeap,omitempty"`
-	Init      int64 `protobuf:"varint,2,opt,name=init,proto3" json:"init,omitempty"`
-	Max       int64 `protobuf:"varint,3,opt,name=max,proto3" json:"max,omitempty"`
-	Used      int64 `protobuf:"varint,4,opt,name=used,proto3" json:"used,omitempty"`
-	Committed int64 `protobuf:"varint,5,opt,name=committed,proto3" json:"committed,omitempty"`
-}
-
-func (x *Memory) Reset() {
-	*x = Memory{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_language_agent_JVMMetric_proto_msgTypes[2]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *Memory) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*Memory) ProtoMessage() {}
-
-func (x *Memory) ProtoReflect() protoreflect.Message {
-	mi := &file_language_agent_JVMMetric_proto_msgTypes[2]
-	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 Memory.ProtoReflect.Descriptor instead.
-func (*Memory) Descriptor() ([]byte, []int) {
-	return file_language_agent_JVMMetric_proto_rawDescGZIP(), []int{2}
-}
-
-func (x *Memory) GetIsHeap() bool {
-	if x != nil {
-		return x.IsHeap
-	}
-	return false
-}
-
-func (x *Memory) GetInit() int64 {
-	if x != nil {
-		return x.Init
-	}
-	return 0
-}
-
-func (x *Memory) GetMax() int64 {
-	if x != nil {
-		return x.Max
-	}
-	return 0
-}
-
-func (x *Memory) GetUsed() int64 {
-	if x != nil {
-		return x.Used
-	}
-	return 0
-}
-
-func (x *Memory) GetCommitted() int64 {
-	if x != nil {
-		return x.Committed
-	}
-	return 0
-}
-
-type MemoryPool struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Type      PoolType `protobuf:"varint,1,opt,name=type,proto3,enum=skywalking.v3.PoolType" json:"type,omitempty"`
-	Init      int64    `protobuf:"varint,2,opt,name=init,proto3" json:"init,omitempty"`
-	Max       int64    `protobuf:"varint,3,opt,name=max,proto3" json:"max,omitempty"`
-	Used      int64    `protobuf:"varint,4,opt,name=used,proto3" json:"used,omitempty"`
-	Committed int64    `protobuf:"varint,5,opt,name=committed,proto3" json:"committed,omitempty"`
-}
-
-func (x *MemoryPool) Reset() {
-	*x = MemoryPool{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_language_agent_JVMMetric_proto_msgTypes[3]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *MemoryPool) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*MemoryPool) ProtoMessage() {}
-
-func (x *MemoryPool) ProtoReflect() protoreflect.Message {
-	mi := &file_language_agent_JVMMetric_proto_msgTypes[3]
-	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 MemoryPool.ProtoReflect.Descriptor instead.
-func (*MemoryPool) Descriptor() ([]byte, []int) {
-	return file_language_agent_JVMMetric_proto_rawDescGZIP(), []int{3}
-}
-
-func (x *MemoryPool) GetType() PoolType {
-	if x != nil {
-		return x.Type
-	}
-	return PoolType_CODE_CACHE_USAGE
-}
-
-func (x *MemoryPool) GetInit() int64 {
-	if x != nil {
-		return x.Init
-	}
-	return 0
-}
-
-func (x *MemoryPool) GetMax() int64 {
-	if x != nil {
-		return x.Max
-	}
-	return 0
-}
-
-func (x *MemoryPool) GetUsed() int64 {
-	if x != nil {
-		return x.Used
-	}
-	return 0
-}
-
-func (x *MemoryPool) GetCommitted() int64 {
-	if x != nil {
-		return x.Committed
-	}
-	return 0
-}
-
-type GC struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Phrase GCPhrase `protobuf:"varint,1,opt,name=phrase,proto3,enum=skywalking.v3.GCPhrase" json:"phrase,omitempty"`
-	Count  int64    `protobuf:"varint,2,opt,name=count,proto3" json:"count,omitempty"`
-	Time   int64    `protobuf:"varint,3,opt,name=time,proto3" json:"time,omitempty"`
-}
-
-func (x *GC) Reset() {
-	*x = GC{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_language_agent_JVMMetric_proto_msgTypes[4]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *GC) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*GC) ProtoMessage() {}
-
-func (x *GC) ProtoReflect() protoreflect.Message {
-	mi := &file_language_agent_JVMMetric_proto_msgTypes[4]
-	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 GC.ProtoReflect.Descriptor instead.
-func (*GC) Descriptor() ([]byte, []int) {
-	return file_language_agent_JVMMetric_proto_rawDescGZIP(), []int{4}
-}
-
-func (x *GC) GetPhrase() GCPhrase {
-	if x != nil {
-		return x.Phrase
-	}
-	return GCPhrase_NEW
-}
-
-func (x *GC) GetCount() int64 {
-	if x != nil {
-		return x.Count
-	}
-	return 0
-}
-
-func (x *GC) GetTime() int64 {
-	if x != nil {
-		return x.Time
-	}
-	return 0
-}
-
-type Thread struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	LiveCount   int64 `protobuf:"varint,1,opt,name=liveCount,proto3" json:"liveCount,omitempty"`
-	DaemonCount int64 `protobuf:"varint,2,opt,name=daemonCount,proto3" json:"daemonCount,omitempty"`
-	PeakCount   int64 `protobuf:"varint,3,opt,name=peakCount,proto3" json:"peakCount,omitempty"`
-}
-
-func (x *Thread) Reset() {
-	*x = Thread{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_language_agent_JVMMetric_proto_msgTypes[5]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *Thread) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*Thread) ProtoMessage() {}
-
-func (x *Thread) ProtoReflect() protoreflect.Message {
-	mi := &file_language_agent_JVMMetric_proto_msgTypes[5]
-	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 Thread.ProtoReflect.Descriptor instead.
-func (*Thread) Descriptor() ([]byte, []int) {
-	return file_language_agent_JVMMetric_proto_rawDescGZIP(), []int{5}
-}
-
-func (x *Thread) GetLiveCount() int64 {
-	if x != nil {
-		return x.LiveCount
-	}
-	return 0
-}
-
-func (x *Thread) GetDaemonCount() int64 {
-	if x != nil {
-		return x.DaemonCount
-	}
-	return 0
-}
-
-func (x *Thread) GetPeakCount() int64 {
-	if x != nil {
-		return x.PeakCount
-	}
-	return 0
-}
-
-var File_language_agent_JVMMetric_proto protoreflect.FileDescriptor
-
-var file_language_agent_JVMMetric_proto_rawDesc = []byte{
-	0x0a, 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,
-	0x12, 0x0d, 0x73, 0x6b, 0x79, 0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x1a,
-	0x13, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2f, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70,
-	0x72, 0x6f, 0x74, 0x6f, 0x22, 0x8d, 0x01, 0x0a, 0x13, 0x4a, 0x56, 0x4d, 0x4d, 0x65, 0x74, 0x72,
-	0x69, 0x63, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x32, 0x0a, 0x07,
-	0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e,
-	0x73, 0x6b, 0x79, 0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x4a, 0x56,
-	0x4d, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x07, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73,
-	0x12, 0x18, 0x0a, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
-	0x09, 0x52, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x73, 0x65,
-	0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20,
-	0x01, 0x28, 0x09, 0x52, 0x0f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x73, 0x74,
-	0x61, 0x6e, 0x63, 0x65, 0x22, 0x81, 0x02, 0x0a, 0x09, 0x4a, 0x56, 0x4d, 0x4d, 0x65, 0x74, 0x72,
-	0x69, 0x63, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03,
-	0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x03, 0x63, 0x70, 0x75, 0x18, 0x02, 0x20,
-	0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x73, 0x6b, 0x79, 0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67,
-	0x2e, 0x76, 0x33, 0x2e, 0x43, 0x50, 0x55, 0x52, 0x03, 0x63, 0x70, 0x75, 0x12, 0x2d, 0x0a, 0x06,
-	0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x73,
-	0x6b, 0x79, 0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x4d, 0x65, 0x6d,
-	0x6f, 0x72, 0x79, 0x52, 0x06, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x12, 0x39, 0x0a, 0x0a, 0x6d,
-	0x65, 0x6d, 0x6f, 0x72, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32,
-	0x19, 0x2e, 0x73, 0x6b, 0x79, 0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e,
-	0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x0a, 0x6d, 0x65, 0x6d, 0x6f,
-	0x72, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x12, 0x21, 0x0a, 0x02, 0x67, 0x63, 0x18, 0x05, 0x20, 0x03,
-	0x28, 0x0b, 0x32, 0x11, 0x2e, 0x73, 0x6b, 0x79, 0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x2e,
-	0x76, 0x33, 0x2e, 0x47, 0x43, 0x52, 0x02, 0x67, 0x63, 0x12, 0x2d, 0x0a, 0x06, 0x74, 0x68, 0x72,
-	0x65, 0x61, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x73, 0x6b, 0x79, 0x77,
-	0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64,
-	0x52, 0x06, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x22, 0x78, 0x0a, 0x06, 0x4d, 0x65, 0x6d, 0x6f,
-	0x72, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x73, 0x48, 0x65, 0x61, 0x70, 0x18, 0x01, 0x20, 0x01,
-	0x28, 0x08, 0x52, 0x06, 0x69, 0x73, 0x48, 0x65, 0x61, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x69, 0x6e,
-	0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x69, 0x6e, 0x69, 0x74, 0x12, 0x10,
-	0x0a, 0x03, 0x6d, 0x61, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6d, 0x61, 0x78,
-	0x12, 0x12, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04,
-	0x75, 0x73, 0x65, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65,
-	0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74,
-	0x65, 0x64, 0x22, 0x91, 0x01, 0x0a, 0x0a, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x50, 0x6f, 0x6f,
-	0x6c, 0x12, 0x2b, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32,
-	0x17, 0x2e, 0x73, 0x6b, 0x79, 0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e,
-	0x50, 0x6f, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x12,
-	0x0a, 0x04, 0x69, 0x6e, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x69, 0x6e,
-	0x69, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x61, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52,
-	0x03, 0x6d, 0x61, 0x78, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01,
-	0x28, 0x03, 0x52, 0x04, 0x75, 0x73, 0x65, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x6d,
-	0x69, 0x74, 0x74, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x63, 0x6f, 0x6d,
-	0x6d, 0x69, 0x74, 0x74, 0x65, 0x64, 0x22, 0x5f, 0x0a, 0x02, 0x47, 0x43, 0x12, 0x2f, 0x0a, 0x06,
-	0x70, 0x68, 0x72, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x73,
-	0x6b, 0x79, 0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x47, 0x43, 0x50,
-	0x68, 0x72, 0x61, 0x73, 0x65, 0x52, 0x06, 0x70, 0x68, 0x72, 0x61, 0x73, 0x65, 0x12, 0x14, 0x0a,
-	0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x63, 0x6f,
-	0x75, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28,
-	0x03, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x66, 0x0a, 0x06, 0x54, 0x68, 0x72, 0x65, 0x61,
-	0x64, 0x12, 0x1c, 0x0a, 0x09, 0x6c, 0x69, 0x76, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01,
-	0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x6c, 0x69, 0x76, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12,
-	0x20, 0x0a, 0x0b, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02,
-	0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e,
-	0x74, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x65, 0x61, 0x6b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03,
-	0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x70, 0x65, 0x61, 0x6b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x2a,
-	0x80, 0x01, 0x0a, 0x08, 0x50, 0x6f, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x10,
-	0x43, 0x4f, 0x44, 0x45, 0x5f, 0x43, 0x41, 0x43, 0x48, 0x45, 0x5f, 0x55, 0x53, 0x41, 0x47, 0x45,
-	0x10, 0x00, 0x12, 0x10, 0x0a, 0x0c, 0x4e, 0x45, 0x57, 0x47, 0x45, 0x4e, 0x5f, 0x55, 0x53, 0x41,
-	0x47, 0x45, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x4f, 0x4c, 0x44, 0x47, 0x45, 0x4e, 0x5f, 0x55,
-	0x53, 0x41, 0x47, 0x45, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x53, 0x55, 0x52, 0x56, 0x49, 0x56,
-	0x4f, 0x52, 0x5f, 0x55, 0x53, 0x41, 0x47, 0x45, 0x10, 0x03, 0x12, 0x11, 0x0a, 0x0d, 0x50, 0x45,
-	0x52, 0x4d, 0x47, 0x45, 0x4e, 0x5f, 0x55, 0x53, 0x41, 0x47, 0x45, 0x10, 0x04, 0x12, 0x13, 0x0a,
-	0x0f, 0x4d, 0x45, 0x54, 0x41, 0x53, 0x50, 0x41, 0x43, 0x45, 0x5f, 0x55, 0x53, 0x41, 0x47, 0x45,
-	0x10, 0x05, 0x2a, 0x1c, 0x0a, 0x08, 0x47, 0x43, 0x50, 0x68, 0x72, 0x61, 0x73, 0x65, 0x12, 0x07,
-	0x0a, 0x03, 0x4e, 0x45, 0x57, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x4f, 0x4c, 0x44, 0x10, 0x01,
-	0x32, 0x62, 0x0a, 0x16, 0x4a, 0x56, 0x4d, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x65, 0x70,
-	0x6f, 0x72, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x48, 0x0a, 0x07, 0x63, 0x6f,
-	0x6c, 0x6c, 0x65, 0x63, 0x74, 0x12, 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, 0x1a, 0x17, 0x2e, 0x73, 0x6b, 0x79, 0x77,
-	0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e,
-	0x64, 0x73, 0x22, 0x00, 0x42, 0x7d, 0x0a, 0x33, 0x6f, 0x72, 0x67, 0x2e, 0x61, 0x70, 0x61, 0x63,
-	0x68, 0x65, 0x2e, 0x73, 0x6b, 0x79, 0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x61, 0x70,
-	0x6d, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61,
-	0x67, 0x65, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x33, 0x50, 0x01, 0x5a, 0x24, 0x73,
-	0x6b, 0x79, 0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x2f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72,
-	0x6b, 0x2f, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2f, 0x61, 0x67, 0x65, 0x6e, 0x74,
-	0x2f, 0x76, 0x33, 0xaa, 0x02, 0x1d, 0x53, 0x6b, 0x79, 0x57, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67,
-	0x2e, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c,
-	0x2e, 0x56, 0x33, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
-}
-
-var (
-	file_language_agent_JVMMetric_proto_rawDescOnce sync.Once
-	file_language_agent_JVMMetric_proto_rawDescData = file_language_agent_JVMMetric_proto_rawDesc
-)
-
-func file_language_agent_JVMMetric_proto_rawDescGZIP() []byte {
-	file_language_agent_JVMMetric_proto_rawDescOnce.Do(func() {
-		file_language_agent_JVMMetric_proto_rawDescData = protoimpl.X.CompressGZIP(file_language_agent_JVMMetric_proto_rawDescData)
-	})
-	return file_language_agent_JVMMetric_proto_rawDescData
-}
-
-var file_language_agent_JVMMetric_proto_enumTypes = make([]protoimpl.EnumInfo, 2)
-var file_language_agent_JVMMetric_proto_msgTypes = make([]protoimpl.MessageInfo, 6)
-var file_language_agent_JVMMetric_proto_goTypes = []interface{}{
-	(PoolType)(0),               // 0: skywalking.v3.PoolType
-	(GCPhrase)(0),               // 1: skywalking.v3.GCPhrase
-	(*JVMMetricCollection)(nil), // 2: skywalking.v3.JVMMetricCollection
-	(*JVMMetric)(nil),           // 3: skywalking.v3.JVMMetric
-	(*Memory)(nil),              // 4: skywalking.v3.Memory
-	(*MemoryPool)(nil),          // 5: skywalking.v3.MemoryPool
-	(*GC)(nil),                  // 6: skywalking.v3.GC
-	(*Thread)(nil),              // 7: skywalking.v3.Thread
-	(*v3.CPU)(nil),              // 8: skywalking.v3.CPU
-	(*v3.Commands)(nil),         // 9: skywalking.v3.Commands
-}
-var file_language_agent_JVMMetric_proto_depIdxs = []int32{
-	3, // 0: skywalking.v3.JVMMetricCollection.metrics:type_name -> skywalking.v3.JVMMetric
-	8, // 1: skywalking.v3.JVMMetric.cpu:type_name -> skywalking.v3.CPU
-	4, // 2: skywalking.v3.JVMMetric.memory:type_name -> skywalking.v3.Memory
-	5, // 3: skywalking.v3.JVMMetric.memoryPool:type_name -> skywalking.v3.MemoryPool
-	6, // 4: skywalking.v3.JVMMetric.gc:type_name -> skywalking.v3.GC
-	7, // 5: skywalking.v3.JVMMetric.thread:type_name -> skywalking.v3.Thread
-	0, // 6: skywalking.v3.MemoryPool.type:type_name -> skywalking.v3.PoolType
-	1, // 7: skywalking.v3.GC.phrase:type_name -> skywalking.v3.GCPhrase
-	2, // 8: skywalking.v3.JVMMetricReportService.collect:input_type -> skywalking.v3.JVMMetricCollection
-	9, // 9: skywalking.v3.JVMMetricReportService.collect:output_type -> skywalking.v3.Commands
-	9, // [9:10] is the sub-list for method output_type
-	8, // [8:9] is the sub-list for method input_type
-	8, // [8:8] is the sub-list for extension type_name
-	8, // [8:8] is the sub-list for extension extendee
-	0, // [0:8] is the sub-list for field type_name
-}
-
-func init() { file_language_agent_JVMMetric_proto_init() }
-func file_language_agent_JVMMetric_proto_init() {
-	if File_language_agent_JVMMetric_proto != nil {
-		return
-	}
-	if !protoimpl.UnsafeEnabled {
-		file_language_agent_JVMMetric_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*JVMMetricCollection); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_language_agent_JVMMetric_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*JVMMetric); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_language_agent_JVMMetric_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*Memory); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_language_agent_JVMMetric_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*MemoryPool); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_language_agent_JVMMetric_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*GC); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_language_agent_JVMMetric_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*Thread); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-	}
-	type x struct{}
-	out := protoimpl.TypeBuilder{
-		File: protoimpl.DescBuilder{
-			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
-			RawDescriptor: file_language_agent_JVMMetric_proto_rawDesc,
-			NumEnums:      2,
-			NumMessages:   6,
-			NumExtensions: 0,
-			NumServices:   1,
-		},
-		GoTypes:           file_language_agent_JVMMetric_proto_goTypes,
-		DependencyIndexes: file_language_agent_JVMMetric_proto_depIdxs,
-		EnumInfos:         file_language_agent_JVMMetric_proto_enumTypes,
-		MessageInfos:      file_language_agent_JVMMetric_proto_msgTypes,
-	}.Build()
-	File_language_agent_JVMMetric_proto = out.File
-	file_language_agent_JVMMetric_proto_rawDesc = nil
-	file_language_agent_JVMMetric_proto_goTypes = nil
-	file_language_agent_JVMMetric_proto_depIdxs = nil
-}
diff --git a/protocol/gen-codes/skywalking/network/language/agent/v3/JVMMetric_grpc.pb.go b/protocol/gen-codes/skywalking/network/language/agent/v3/JVMMetric_grpc.pb.go
deleted file mode 100644
index 7ee6b52..0000000
--- a/protocol/gen-codes/skywalking/network/language/agent/v3/JVMMetric_grpc.pb.go
+++ /dev/null
@@ -1,103 +0,0 @@
-// Code generated by protoc-gen-go-grpc. DO NOT EDIT.
-
-package v3
-
-import (
-	context "context"
-	grpc "google.golang.org/grpc"
-	codes "google.golang.org/grpc/codes"
-	status "google.golang.org/grpc/status"
-	v3 "skywalking/network/common/v3"
-)
-
-// This is a compile-time assertion to ensure that this generated file
-// is compatible with the grpc package it is being compiled against.
-// Requires gRPC-Go v1.32.0 or later.
-const _ = grpc.SupportPackageIsVersion7
-
-// JVMMetricReportServiceClient is the client API for JVMMetricReportService service.
-//
-// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.
-type JVMMetricReportServiceClient interface {
-	Collect(ctx context.Context, in *JVMMetricCollection, opts ...grpc.CallOption) (*v3.Commands, error)
-}
-
-type jVMMetricReportServiceClient struct {
-	cc grpc.ClientConnInterface
-}
-
-func NewJVMMetricReportServiceClient(cc grpc.ClientConnInterface) JVMMetricReportServiceClient {
-	return &jVMMetricReportServiceClient{cc}
-}
-
-func (c *jVMMetricReportServiceClient) Collect(ctx context.Context, in *JVMMetricCollection, opts ...grpc.CallOption) (*v3.Commands, error) {
-	out := new(v3.Commands)
-	err := c.cc.Invoke(ctx, "/skywalking.v3.JVMMetricReportService/collect", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-// JVMMetricReportServiceServer is the server API for JVMMetricReportService service.
-// All implementations must embed UnimplementedJVMMetricReportServiceServer
-// for forward compatibility
-type JVMMetricReportServiceServer interface {
-	Collect(context.Context, *JVMMetricCollection) (*v3.Commands, error)
-	mustEmbedUnimplementedJVMMetricReportServiceServer()
-}
-
-// UnimplementedJVMMetricReportServiceServer must be embedded to have forward compatible implementations.
-type UnimplementedJVMMetricReportServiceServer struct {
-}
-
-func (UnimplementedJVMMetricReportServiceServer) Collect(context.Context, *JVMMetricCollection) (*v3.Commands, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method Collect not implemented")
-}
-func (UnimplementedJVMMetricReportServiceServer) mustEmbedUnimplementedJVMMetricReportServiceServer() {
-}
-
-// UnsafeJVMMetricReportServiceServer may be embedded to opt out of forward compatibility for this service.
-// Use of this interface is not recommended, as added methods to JVMMetricReportServiceServer will
-// result in compilation errors.
-type UnsafeJVMMetricReportServiceServer interface {
-	mustEmbedUnimplementedJVMMetricReportServiceServer()
-}
-
-func RegisterJVMMetricReportServiceServer(s grpc.ServiceRegistrar, srv JVMMetricReportServiceServer) {
-	s.RegisterService(&JVMMetricReportService_ServiceDesc, srv)
-}
-
-func _JVMMetricReportService_Collect_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(JVMMetricCollection)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(JVMMetricReportServiceServer).Collect(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/skywalking.v3.JVMMetricReportService/collect",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(JVMMetricReportServiceServer).Collect(ctx, req.(*JVMMetricCollection))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-// JVMMetricReportService_ServiceDesc is the grpc.ServiceDesc for JVMMetricReportService service.
-// It's only intended for direct use with grpc.RegisterService,
-// and not to be introspected or modified (even as a copy)
-var JVMMetricReportService_ServiceDesc = grpc.ServiceDesc{
-	ServiceName: "skywalking.v3.JVMMetricReportService",
-	HandlerType: (*JVMMetricReportServiceServer)(nil),
-	Methods: []grpc.MethodDesc{
-		{
-			MethodName: "collect",
-			Handler:    _JVMMetricReportService_Collect_Handler,
-		},
-	},
-	Streams:  []grpc.StreamDesc{},
-	Metadata: "language-agent/JVMMetric.proto",
-}
diff --git a/protocol/gen-codes/skywalking/network/language/agent/v3/Meter.pb.go b/protocol/gen-codes/skywalking/network/language/agent/v3/Meter.pb.go
deleted file mode 100644
index a916cc1..0000000
--- a/protocol/gen-codes/skywalking/network/language/agent/v3/Meter.pb.go
+++ /dev/null
@@ -1,652 +0,0 @@
-//
-// 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: language-agent/Meter.proto
-
-package v3
-
-import (
-	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
-	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
-	reflect "reflect"
-	v3 "skywalking/network/common/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)
-)
-
-// Label of the meter
-type Label struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Name  string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
-	Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
-}
-
-func (x *Label) Reset() {
-	*x = Label{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_language_agent_Meter_proto_msgTypes[0]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *Label) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*Label) ProtoMessage() {}
-
-func (x *Label) ProtoReflect() protoreflect.Message {
-	mi := &file_language_agent_Meter_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 Label.ProtoReflect.Descriptor instead.
-func (*Label) Descriptor() ([]byte, []int) {
-	return file_language_agent_Meter_proto_rawDescGZIP(), []int{0}
-}
-
-func (x *Label) GetName() string {
-	if x != nil {
-		return x.Name
-	}
-	return ""
-}
-
-func (x *Label) GetValue() string {
-	if x != nil {
-		return x.Value
-	}
-	return ""
-}
-
-// The histogram element definition. It includes the bucket lower boundary and the count in the bucket.
-type MeterBucketValue struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	// The value represents the min value of the bucket,
-	// the  upper boundary is determined by next MeterBucketValue$bucket,
-	// if it doesn't exist, the upper boundary is positive infinity.
-	// Also, could use Int32.MIN_VALUE to represent negative infinity.
-	Bucket float64 `protobuf:"fixed64,1,opt,name=bucket,proto3" json:"bucket,omitempty"`
-	Count  int64   `protobuf:"varint,2,opt,name=count,proto3" json:"count,omitempty"`
-}
-
-func (x *MeterBucketValue) Reset() {
-	*x = MeterBucketValue{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_language_agent_Meter_proto_msgTypes[1]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *MeterBucketValue) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*MeterBucketValue) ProtoMessage() {}
-
-func (x *MeterBucketValue) ProtoReflect() protoreflect.Message {
-	mi := &file_language_agent_Meter_proto_msgTypes[1]
-	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 MeterBucketValue.ProtoReflect.Descriptor instead.
-func (*MeterBucketValue) Descriptor() ([]byte, []int) {
-	return file_language_agent_Meter_proto_rawDescGZIP(), []int{1}
-}
-
-func (x *MeterBucketValue) GetBucket() float64 {
-	if x != nil {
-		return x.Bucket
-	}
-	return 0
-}
-
-func (x *MeterBucketValue) GetCount() int64 {
-	if x != nil {
-		return x.Count
-	}
-	return 0
-}
-
-// Meter single value
-type MeterSingleValue struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	// Meter name
-	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
-	// Labels
-	Labels []*Label `protobuf:"bytes,2,rep,name=labels,proto3" json:"labels,omitempty"`
-	// Single value
-	Value float64 `protobuf:"fixed64,3,opt,name=value,proto3" json:"value,omitempty"`
-}
-
-func (x *MeterSingleValue) Reset() {
-	*x = MeterSingleValue{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_language_agent_Meter_proto_msgTypes[2]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *MeterSingleValue) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*MeterSingleValue) ProtoMessage() {}
-
-func (x *MeterSingleValue) ProtoReflect() protoreflect.Message {
-	mi := &file_language_agent_Meter_proto_msgTypes[2]
-	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 MeterSingleValue.ProtoReflect.Descriptor instead.
-func (*MeterSingleValue) Descriptor() ([]byte, []int) {
-	return file_language_agent_Meter_proto_rawDescGZIP(), []int{2}
-}
-
-func (x *MeterSingleValue) GetName() string {
-	if x != nil {
-		return x.Name
-	}
-	return ""
-}
-
-func (x *MeterSingleValue) GetLabels() []*Label {
-	if x != nil {
-		return x.Labels
-	}
-	return nil
-}
-
-func (x *MeterSingleValue) GetValue() float64 {
-	if x != nil {
-		return x.Value
-	}
-	return 0
-}
-
-// Histogram
-type MeterHistogram struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	// Meter name
-	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
-	// Labels
-	Labels []*Label `protobuf:"bytes,2,rep,name=labels,proto3" json:"labels,omitempty"`
-	// Customize the buckets
-	Values []*MeterBucketValue `protobuf:"bytes,3,rep,name=values,proto3" json:"values,omitempty"`
-}
-
-func (x *MeterHistogram) Reset() {
-	*x = MeterHistogram{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_language_agent_Meter_proto_msgTypes[3]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *MeterHistogram) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*MeterHistogram) ProtoMessage() {}
-
-func (x *MeterHistogram) ProtoReflect() protoreflect.Message {
-	mi := &file_language_agent_Meter_proto_msgTypes[3]
-	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 MeterHistogram.ProtoReflect.Descriptor instead.
-func (*MeterHistogram) Descriptor() ([]byte, []int) {
-	return file_language_agent_Meter_proto_rawDescGZIP(), []int{3}
-}
-
-func (x *MeterHistogram) GetName() string {
-	if x != nil {
-		return x.Name
-	}
-	return ""
-}
-
-func (x *MeterHistogram) GetLabels() []*Label {
-	if x != nil {
-		return x.Labels
-	}
-	return nil
-}
-
-func (x *MeterHistogram) GetValues() []*MeterBucketValue {
-	if x != nil {
-		return x.Values
-	}
-	return nil
-}
-
-// Single meter data, if the same metrics have a different label, they will separate.
-type MeterData struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	// Meter data could be a single value or histogram.
-	//
-	// Types that are assignable to Metric:
-	//	*MeterData_SingleValue
-	//	*MeterData_Histogram
-	Metric isMeterData_Metric `protobuf_oneof:"metric"`
-	// Service name, be set value in the first element in the stream-call.
-	Service string `protobuf:"bytes,3,opt,name=service,proto3" json:"service,omitempty"`
-	// Service instance name, be set value in the first element in the stream-call.
-	ServiceInstance string `protobuf:"bytes,4,opt,name=serviceInstance,proto3" json:"serviceInstance,omitempty"`
-	// Meter data report time, be set value in the first element in the stream-call.
-	Timestamp int64 `protobuf:"varint,5,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
-}
-
-func (x *MeterData) Reset() {
-	*x = MeterData{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_language_agent_Meter_proto_msgTypes[4]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *MeterData) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*MeterData) ProtoMessage() {}
-
-func (x *MeterData) ProtoReflect() protoreflect.Message {
-	mi := &file_language_agent_Meter_proto_msgTypes[4]
-	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 MeterData.ProtoReflect.Descriptor instead.
-func (*MeterData) Descriptor() ([]byte, []int) {
-	return file_language_agent_Meter_proto_rawDescGZIP(), []int{4}
-}
-
-func (m *MeterData) GetMetric() isMeterData_Metric {
-	if m != nil {
-		return m.Metric
-	}
-	return nil
-}
-
-func (x *MeterData) GetSingleValue() *MeterSingleValue {
-	if x, ok := x.GetMetric().(*MeterData_SingleValue); ok {
-		return x.SingleValue
-	}
-	return nil
-}
-
-func (x *MeterData) GetHistogram() *MeterHistogram {
-	if x, ok := x.GetMetric().(*MeterData_Histogram); ok {
-		return x.Histogram
-	}
-	return nil
-}
-
-func (x *MeterData) GetService() string {
-	if x != nil {
-		return x.Service
-	}
-	return ""
-}
-
-func (x *MeterData) GetServiceInstance() string {
-	if x != nil {
-		return x.ServiceInstance
-	}
-	return ""
-}
-
-func (x *MeterData) GetTimestamp() int64 {
-	if x != nil {
-		return x.Timestamp
-	}
-	return 0
-}
-
-type isMeterData_Metric interface {
-	isMeterData_Metric()
-}
-
-type MeterData_SingleValue struct {
-	SingleValue *MeterSingleValue `protobuf:"bytes,1,opt,name=singleValue,proto3,oneof"`
-}
-
-type MeterData_Histogram struct {
-	Histogram *MeterHistogram `protobuf:"bytes,2,opt,name=histogram,proto3,oneof"`
-}
-
-func (*MeterData_SingleValue) isMeterData_Metric() {}
-
-func (*MeterData_Histogram) isMeterData_Metric() {}
-
-type MeterDataCollection struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	MeterData []*MeterData `protobuf:"bytes,1,rep,name=meterData,proto3" json:"meterData,omitempty"`
-}
-
-func (x *MeterDataCollection) Reset() {
-	*x = MeterDataCollection{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_language_agent_Meter_proto_msgTypes[5]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *MeterDataCollection) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*MeterDataCollection) ProtoMessage() {}
-
-func (x *MeterDataCollection) ProtoReflect() protoreflect.Message {
-	mi := &file_language_agent_Meter_proto_msgTypes[5]
-	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 MeterDataCollection.ProtoReflect.Descriptor instead.
-func (*MeterDataCollection) Descriptor() ([]byte, []int) {
-	return file_language_agent_Meter_proto_rawDescGZIP(), []int{5}
-}
-
-func (x *MeterDataCollection) GetMeterData() []*MeterData {
-	if x != nil {
-		return x.MeterData
-	}
-	return nil
-}
-
-var File_language_agent_Meter_proto protoreflect.FileDescriptor
-
-var file_language_agent_Meter_proto_rawDesc = []byte{
-	0x0a, 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, 0x12, 0x0d, 0x73, 0x6b,
-	0x79, 0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x1a, 0x13, 0x63, 0x6f, 0x6d,
-	0x6d, 0x6f, 0x6e, 0x2f, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
-	0x22, 0x31, 0x0a, 0x05, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d,
-	0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a,
-	0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61,
-	0x6c, 0x75, 0x65, 0x22, 0x40, 0x0a, 0x10, 0x4d, 0x65, 0x74, 0x65, 0x72, 0x42, 0x75, 0x63, 0x6b,
-	0x65, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x75, 0x63, 0x6b, 0x65,
-	0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 0x06, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x12,
-	0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05,
-	0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x6a, 0x0a, 0x10, 0x4d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x69,
-	0x6e, 0x67, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d,
-	0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x2c, 0x0a,
-	0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e,
-	0x73, 0x6b, 0x79, 0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x4c, 0x61,
-	0x62, 0x65, 0x6c, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x76,
-	0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75,
-	0x65, 0x22, 0x8b, 0x01, 0x0a, 0x0e, 0x4d, 0x65, 0x74, 0x65, 0x72, 0x48, 0x69, 0x73, 0x74, 0x6f,
-	0x67, 0x72, 0x61, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01,
-	0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x2c, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65,
-	0x6c, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x73, 0x6b, 0x79, 0x77, 0x61,
-	0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x52, 0x06,
-	0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x37, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73,
-	0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x6b, 0x79, 0x77, 0x61, 0x6c, 0x6b,
-	0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x4d, 0x65, 0x74, 0x65, 0x72, 0x42, 0x75, 0x63, 0x6b,
-	0x65, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x22,
-	0xfb, 0x01, 0x0a, 0x09, 0x4d, 0x65, 0x74, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x43, 0x0a,
-	0x0b, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01,
-	0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x6b, 0x79, 0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x2e,
-	0x76, 0x33, 0x2e, 0x4d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x56, 0x61,
-	0x6c, 0x75, 0x65, 0x48, 0x00, 0x52, 0x0b, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x56, 0x61, 0x6c,
-	0x75, 0x65, 0x12, 0x3d, 0x0a, 0x09, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x18,
-	0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x73, 0x6b, 0x79, 0x77, 0x61, 0x6c, 0x6b, 0x69,
-	0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x4d, 0x65, 0x74, 0x65, 0x72, 0x48, 0x69, 0x73, 0x74, 0x6f,
-	0x67, 0x72, 0x61, 0x6d, 0x48, 0x00, 0x52, 0x09, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x67, 0x72, 0x61,
-	0x6d, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01,
-	0x28, 0x09, 0x52, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x73,
-	0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x04,
-	0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x73,
-	0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61,
-	0x6d, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74,
-	0x61, 0x6d, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x22, 0x4d, 0x0a,
-	0x13, 0x4d, 0x65, 0x74, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63,
-	0x74, 0x69, 0x6f, 0x6e, 0x12, 0x36, 0x0a, 0x09, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x44, 0x61, 0x74,
-	0x61, 0x18, 0x01, 0x20, 0x03, 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, 0x52, 0x09, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x32, 0x56, 0x0a, 0x12,
-	0x4d, 0x65, 0x74, 0x65, 0x72, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69,
-	0x63, 0x65, 0x12, 0x40, 0x0a, 0x07, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x12, 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, 0x1a, 0x17, 0x2e, 0x73, 0x6b, 0x79, 0x77, 0x61, 0x6c,
-	0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x73,
-	0x22, 0x00, 0x28, 0x01, 0x42, 0x5d, 0x0a, 0x33, 0x6f, 0x72, 0x67, 0x2e, 0x61, 0x70, 0x61, 0x63,
-	0x68, 0x65, 0x2e, 0x73, 0x6b, 0x79, 0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x61, 0x70,
-	0x6d, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61,
-	0x67, 0x65, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x33, 0x50, 0x01, 0x5a, 0x24, 0x73,
-	0x6b, 0x79, 0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x2f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72,
-	0x6b, 0x2f, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2f, 0x61, 0x67, 0x65, 0x6e, 0x74,
-	0x2f, 0x76, 0x33, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
-}
-
-var (
-	file_language_agent_Meter_proto_rawDescOnce sync.Once
-	file_language_agent_Meter_proto_rawDescData = file_language_agent_Meter_proto_rawDesc
-)
-
-func file_language_agent_Meter_proto_rawDescGZIP() []byte {
-	file_language_agent_Meter_proto_rawDescOnce.Do(func() {
-		file_language_agent_Meter_proto_rawDescData = protoimpl.X.CompressGZIP(file_language_agent_Meter_proto_rawDescData)
-	})
-	return file_language_agent_Meter_proto_rawDescData
-}
-
-var file_language_agent_Meter_proto_msgTypes = make([]protoimpl.MessageInfo, 6)
-var file_language_agent_Meter_proto_goTypes = []interface{}{
-	(*Label)(nil),               // 0: skywalking.v3.Label
-	(*MeterBucketValue)(nil),    // 1: skywalking.v3.MeterBucketValue
-	(*MeterSingleValue)(nil),    // 2: skywalking.v3.MeterSingleValue
-	(*MeterHistogram)(nil),      // 3: skywalking.v3.MeterHistogram
-	(*MeterData)(nil),           // 4: skywalking.v3.MeterData
-	(*MeterDataCollection)(nil), // 5: skywalking.v3.MeterDataCollection
-	(*v3.Commands)(nil),         // 6: skywalking.v3.Commands
-}
-var file_language_agent_Meter_proto_depIdxs = []int32{
-	0, // 0: skywalking.v3.MeterSingleValue.labels:type_name -> skywalking.v3.Label
-	0, // 1: skywalking.v3.MeterHistogram.labels:type_name -> skywalking.v3.Label
-	1, // 2: skywalking.v3.MeterHistogram.values:type_name -> skywalking.v3.MeterBucketValue
-	2, // 3: skywalking.v3.MeterData.singleValue:type_name -> skywalking.v3.MeterSingleValue
-	3, // 4: skywalking.v3.MeterData.histogram:type_name -> skywalking.v3.MeterHistogram
-	4, // 5: skywalking.v3.MeterDataCollection.meterData:type_name -> skywalking.v3.MeterData
-	4, // 6: skywalking.v3.MeterReportService.collect:input_type -> skywalking.v3.MeterData
-	6, // 7: skywalking.v3.MeterReportService.collect:output_type -> skywalking.v3.Commands
-	7, // [7:8] is the sub-list for method output_type
-	6, // [6:7] is the sub-list for method input_type
-	6, // [6:6] is the sub-list for extension type_name
-	6, // [6:6] is the sub-list for extension extendee
-	0, // [0:6] is the sub-list for field type_name
-}
-
-func init() { file_language_agent_Meter_proto_init() }
-func file_language_agent_Meter_proto_init() {
-	if File_language_agent_Meter_proto != nil {
-		return
-	}
-	if !protoimpl.UnsafeEnabled {
-		file_language_agent_Meter_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*Label); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_language_agent_Meter_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*MeterBucketValue); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_language_agent_Meter_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*MeterSingleValue); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_language_agent_Meter_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*MeterHistogram); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_language_agent_Meter_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*MeterData); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_language_agent_Meter_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*MeterDataCollection); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-	}
-	file_language_agent_Meter_proto_msgTypes[4].OneofWrappers = []interface{}{
-		(*MeterData_SingleValue)(nil),
-		(*MeterData_Histogram)(nil),
-	}
-	type x struct{}
-	out := protoimpl.TypeBuilder{
-		File: protoimpl.DescBuilder{
-			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
-			RawDescriptor: file_language_agent_Meter_proto_rawDesc,
-			NumEnums:      0,
-			NumMessages:   6,
-			NumExtensions: 0,
-			NumServices:   1,
-		},
-		GoTypes:           file_language_agent_Meter_proto_goTypes,
-		DependencyIndexes: file_language_agent_Meter_proto_depIdxs,
-		MessageInfos:      file_language_agent_Meter_proto_msgTypes,
-	}.Build()
-	File_language_agent_Meter_proto = out.File
-	file_language_agent_Meter_proto_rawDesc = nil
-	file_language_agent_Meter_proto_goTypes = nil
-	file_language_agent_Meter_proto_depIdxs = nil
-}
diff --git a/protocol/gen-codes/skywalking/network/language/agent/v3/Meter_grpc.pb.go b/protocol/gen-codes/skywalking/network/language/agent/v3/Meter_grpc.pb.go
deleted file mode 100644
index 29d86a9..0000000
--- a/protocol/gen-codes/skywalking/network/language/agent/v3/Meter_grpc.pb.go
+++ /dev/null
@@ -1,138 +0,0 @@
-// Code generated by protoc-gen-go-grpc. DO NOT EDIT.
-
-package v3
-
-import (
-	context "context"
-	grpc "google.golang.org/grpc"
-	codes "google.golang.org/grpc/codes"
-	status "google.golang.org/grpc/status"
-	v3 "skywalking/network/common/v3"
-)
-
-// This is a compile-time assertion to ensure that this generated file
-// is compatible with the grpc package it is being compiled against.
-// Requires gRPC-Go v1.32.0 or later.
-const _ = grpc.SupportPackageIsVersion7
-
-// MeterReportServiceClient is the client API for MeterReportService service.
-//
-// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.
-type MeterReportServiceClient interface {
-	// Meter data is reported in a certain period. The agent/SDK should report all collected metrics in this period through one stream.
-	Collect(ctx context.Context, opts ...grpc.CallOption) (MeterReportService_CollectClient, error)
-}
-
-type meterReportServiceClient struct {
-	cc grpc.ClientConnInterface
-}
-
-func NewMeterReportServiceClient(cc grpc.ClientConnInterface) MeterReportServiceClient {
-	return &meterReportServiceClient{cc}
-}
-
-func (c *meterReportServiceClient) Collect(ctx context.Context, opts ...grpc.CallOption) (MeterReportService_CollectClient, error) {
-	stream, err := c.cc.NewStream(ctx, &MeterReportService_ServiceDesc.Streams[0], "/skywalking.v3.MeterReportService/collect", opts...)
-	if err != nil {
-		return nil, err
-	}
-	x := &meterReportServiceCollectClient{stream}
-	return x, nil
-}
-
-type MeterReportService_CollectClient interface {
-	Send(*MeterData) error
-	CloseAndRecv() (*v3.Commands, error)
-	grpc.ClientStream
-}
-
-type meterReportServiceCollectClient struct {
-	grpc.ClientStream
-}
-
-func (x *meterReportServiceCollectClient) Send(m *MeterData) error {
-	return x.ClientStream.SendMsg(m)
-}
-
-func (x *meterReportServiceCollectClient) CloseAndRecv() (*v3.Commands, error) {
-	if err := x.ClientStream.CloseSend(); err != nil {
-		return nil, err
-	}
-	m := new(v3.Commands)
-	if err := x.ClientStream.RecvMsg(m); err != nil {
-		return nil, err
-	}
-	return m, nil
-}
-
-// MeterReportServiceServer is the server API for MeterReportService service.
-// All implementations must embed UnimplementedMeterReportServiceServer
-// for forward compatibility
-type MeterReportServiceServer interface {
-	// Meter data is reported in a certain period. The agent/SDK should report all collected metrics in this period through one stream.
-	Collect(MeterReportService_CollectServer) error
-	mustEmbedUnimplementedMeterReportServiceServer()
-}
-
-// UnimplementedMeterReportServiceServer must be embedded to have forward compatible implementations.
-type UnimplementedMeterReportServiceServer struct {
-}
-
-func (UnimplementedMeterReportServiceServer) Collect(MeterReportService_CollectServer) error {
-	return status.Errorf(codes.Unimplemented, "method Collect not implemented")
-}
-func (UnimplementedMeterReportServiceServer) mustEmbedUnimplementedMeterReportServiceServer() {}
-
-// UnsafeMeterReportServiceServer may be embedded to opt out of forward compatibility for this service.
-// Use of this interface is not recommended, as added methods to MeterReportServiceServer will
-// result in compilation errors.
-type UnsafeMeterReportServiceServer interface {
-	mustEmbedUnimplementedMeterReportServiceServer()
-}
-
-func RegisterMeterReportServiceServer(s grpc.ServiceRegistrar, srv MeterReportServiceServer) {
-	s.RegisterService(&MeterReportService_ServiceDesc, srv)
-}
-
-func _MeterReportService_Collect_Handler(srv interface{}, stream grpc.ServerStream) error {
-	return srv.(MeterReportServiceServer).Collect(&meterReportServiceCollectServer{stream})
-}
-
-type MeterReportService_CollectServer interface {
-	SendAndClose(*v3.Commands) error
-	Recv() (*MeterData, error)
-	grpc.ServerStream
-}
-
-type meterReportServiceCollectServer struct {
-	grpc.ServerStream
-}
-
-func (x *meterReportServiceCollectServer) SendAndClose(m *v3.Commands) error {
-	return x.ServerStream.SendMsg(m)
-}
-
-func (x *meterReportServiceCollectServer) Recv() (*MeterData, error) {
-	m := new(MeterData)
-	if err := x.ServerStream.RecvMsg(m); err != nil {
-		return nil, err
-	}
-	return m, nil
-}
-
-// MeterReportService_ServiceDesc is the grpc.ServiceDesc for MeterReportService service.
-// It's only intended for direct use with grpc.RegisterService,
-// and not to be introspected or modified (even as a copy)
-var MeterReportService_ServiceDesc = grpc.ServiceDesc{
-	ServiceName: "skywalking.v3.MeterReportService",
-	HandlerType: (*MeterReportServiceServer)(nil),
-	Methods:     []grpc.MethodDesc{},
-	Streams: []grpc.StreamDesc{
-		{
-			StreamName:    "collect",
-			Handler:       _MeterReportService_Collect_Handler,
-			ClientStreams: true,
-		},
-	},
-	Metadata: "language-agent/Meter.proto",
-}
diff --git a/protocol/gen-codes/skywalking/network/language/agent/v3/Tracing.pb.go b/protocol/gen-codes/skywalking/network/language/agent/v3/Tracing.pb.go
deleted file mode 100644
index be0c6f3..0000000
--- a/protocol/gen-codes/skywalking/network/language/agent/v3/Tracing.pb.go
+++ /dev/null
@@ -1,1062 +0,0 @@
-//
-// 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: language-agent/Tracing.proto
-
-package v3
-
-import (
-	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
-	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
-	reflect "reflect"
-	v3 "skywalking/network/common/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)
-)
-
-// Map to the type of span
-type SpanType int32
-
-const (
-	// Server side of RPC. Consumer side of MQ.
-	SpanType_Entry SpanType = 0
-	// Client side of RPC. Producer side of MQ.
-	SpanType_Exit SpanType = 1
-	// A common local code execution.
-	SpanType_Local SpanType = 2
-)
-
-// Enum value maps for SpanType.
-var (
-	SpanType_name = map[int32]string{
-		0: "Entry",
-		1: "Exit",
-		2: "Local",
-	}
-	SpanType_value = map[string]int32{
-		"Entry": 0,
-		"Exit":  1,
-		"Local": 2,
-	}
-)
-
-func (x SpanType) Enum() *SpanType {
-	p := new(SpanType)
-	*p = x
-	return p
-}
-
-func (x SpanType) String() string {
-	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
-}
-
-func (SpanType) Descriptor() protoreflect.EnumDescriptor {
-	return file_language_agent_Tracing_proto_enumTypes[0].Descriptor()
-}
-
-func (SpanType) Type() protoreflect.EnumType {
-	return &file_language_agent_Tracing_proto_enumTypes[0]
-}
-
-func (x SpanType) Number() protoreflect.EnumNumber {
-	return protoreflect.EnumNumber(x)
-}
-
-// Deprecated: Use SpanType.Descriptor instead.
-func (SpanType) EnumDescriptor() ([]byte, []int) {
-	return file_language_agent_Tracing_proto_rawDescGZIP(), []int{0}
-}
-
-// Type of the reference
-type RefType int32
-
-const (
-	// Map to the reference targeting the segment in another OS process.
-	RefType_CrossProcess RefType = 0
-	// Map to the reference targeting the segment in the same process of the current one, just across thread.
-	// This is only used when the coding language has the thread concept.
-	RefType_CrossThread RefType = 1
-)
-
-// Enum value maps for RefType.
-var (
-	RefType_name = map[int32]string{
-		0: "CrossProcess",
-		1: "CrossThread",
-	}
-	RefType_value = map[string]int32{
-		"CrossProcess": 0,
-		"CrossThread":  1,
-	}
-)
-
-func (x RefType) Enum() *RefType {
-	p := new(RefType)
-	*p = x
-	return p
-}
-
-func (x RefType) String() string {
-	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
-}
-
-func (RefType) Descriptor() protoreflect.EnumDescriptor {
-	return file_language_agent_Tracing_proto_enumTypes[1].Descriptor()
-}
-
-func (RefType) Type() protoreflect.EnumType {
-	return &file_language_agent_Tracing_proto_enumTypes[1]
-}
-
-func (x RefType) Number() protoreflect.EnumNumber {
-	return protoreflect.EnumNumber(x)
-}
-
-// Deprecated: Use RefType.Descriptor instead.
-func (RefType) EnumDescriptor() ([]byte, []int) {
-	return file_language_agent_Tracing_proto_rawDescGZIP(), []int{1}
-}
-
-// Map to the layer of span
-type SpanLayer int32
-
-const (
-	// Unknown layer. Could be anything.
-	SpanLayer_Unknown SpanLayer = 0
-	// A database layer, used in tracing the database client component.
-	SpanLayer_Database SpanLayer = 1
-	// A RPC layer, used in both client and server sides of RPC component.
-	SpanLayer_RPCFramework SpanLayer = 2
-	// HTTP is a more specific RPCFramework.
-	SpanLayer_Http SpanLayer = 3
-	// A MQ layer, used in both producer and consuer sides of the MQ component.
-	SpanLayer_MQ SpanLayer = 4
-	// A cache layer, used in tracing the cache client component.
-	SpanLayer_Cache SpanLayer = 5
-)
-
-// Enum value maps for SpanLayer.
-var (
-	SpanLayer_name = map[int32]string{
-		0: "Unknown",
-		1: "Database",
-		2: "RPCFramework",
-		3: "Http",
-		4: "MQ",
-		5: "Cache",
-	}
-	SpanLayer_value = map[string]int32{
-		"Unknown":      0,
-		"Database":     1,
-		"RPCFramework": 2,
-		"Http":         3,
-		"MQ":           4,
-		"Cache":        5,
-	}
-)
-
-func (x SpanLayer) Enum() *SpanLayer {
-	p := new(SpanLayer)
-	*p = x
-	return p
-}
-
-func (x SpanLayer) String() string {
-	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
-}
-
-func (SpanLayer) Descriptor() protoreflect.EnumDescriptor {
-	return file_language_agent_Tracing_proto_enumTypes[2].Descriptor()
-}
-
-func (SpanLayer) Type() protoreflect.EnumType {
-	return &file_language_agent_Tracing_proto_enumTypes[2]
-}
-
-func (x SpanLayer) Number() protoreflect.EnumNumber {
-	return protoreflect.EnumNumber(x)
-}
-
-// Deprecated: Use SpanLayer.Descriptor instead.
-func (SpanLayer) EnumDescriptor() ([]byte, []int) {
-	return file_language_agent_Tracing_proto_rawDescGZIP(), []int{2}
-}
-
-// The segment is a collection of spans. It includes all collected spans in a simple one request context, such as a HTTP request process.
-//
-// We recommend the agent/SDK report all tracked data of one request once for all, such as,
-// typically, such as in Java, one segment represent all tracked operations(spans) of one request context in the same thread.
-// At the same time, in some language there is not a clear concept like golang, it could represent all tracked operations of one request context.
-type SegmentObject struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	// A string id represents the whole trace.
-	TraceId string `protobuf:"bytes,1,opt,name=traceId,proto3" json:"traceId,omitempty"`
-	// A unique id represents this segment. Other segments could use this id to reference as a child segment.
-	TraceSegmentId string `protobuf:"bytes,2,opt,name=traceSegmentId,proto3" json:"traceSegmentId,omitempty"`
-	// Span collections included in this segment.
-	Spans []*SpanObject `protobuf:"bytes,3,rep,name=spans,proto3" json:"spans,omitempty"`
-	// **Service**. Represents a set/group of workloads which provide the same behaviours for incoming requests.
-	//
-	// The logic name represents the service. This would show as a separate node in the topology.
-	// The metrics analyzed from the spans, would be aggregated for this entity as the service level.
-	Service string `protobuf:"bytes,4,opt,name=service,proto3" json:"service,omitempty"`
-	// **Service Instance**. Each individual workload in the Service group is known as an instance. Like `pods` in Kubernetes, it
-	// doesn't need to be a single OS process, however, if you are using instrument agents, an instance is actually a real OS process.
-	//
-	// The logic name represents the service instance. This would show as a separate node in the instance relationship.
-	// The metrics analyzed from the spans, would be aggregated for this entity as the service instance level.
-	ServiceInstance string `protobuf:"bytes,5,opt,name=serviceInstance,proto3" json:"serviceInstance,omitempty"`
-	// Whether the segment includes all tracked spans.
-	// In the production environment tracked, some tasks could include too many spans for one request context, such as a batch update for a cache, or an async job.
-	// The agent/SDK could optimize or ignore some tracked spans for better performance.
-	// In this case, the value should be flagged as TRUE.
-	IsSizeLimited bool `protobuf:"varint,6,opt,name=isSizeLimited,proto3" json:"isSizeLimited,omitempty"`
-}
-
-func (x *SegmentObject) Reset() {
-	*x = SegmentObject{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_language_agent_Tracing_proto_msgTypes[0]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *SegmentObject) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*SegmentObject) ProtoMessage() {}
-
-func (x *SegmentObject) ProtoReflect() protoreflect.Message {
-	mi := &file_language_agent_Tracing_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 SegmentObject.ProtoReflect.Descriptor instead.
-func (*SegmentObject) Descriptor() ([]byte, []int) {
-	return file_language_agent_Tracing_proto_rawDescGZIP(), []int{0}
-}
-
-func (x *SegmentObject) GetTraceId() string {
-	if x != nil {
-		return x.TraceId
-	}
-	return ""
-}
-
-func (x *SegmentObject) GetTraceSegmentId() string {
-	if x != nil {
-		return x.TraceSegmentId
-	}
-	return ""
-}
-
-func (x *SegmentObject) GetSpans() []*SpanObject {
-	if x != nil {
-		return x.Spans
-	}
-	return nil
-}
-
-func (x *SegmentObject) GetService() string {
-	if x != nil {
-		return x.Service
-	}
-	return ""
-}
-
-func (x *SegmentObject) GetServiceInstance() string {
-	if x != nil {
-		return x.ServiceInstance
-	}
-	return ""
-}
-
-func (x *SegmentObject) GetIsSizeLimited() bool {
-	if x != nil {
-		return x.IsSizeLimited
-	}
-	return false
-}
-
-// Segment reference represents the link between two existing segment.
-type SegmentReference struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	// Represent the reference type. It could be across thread or across process.
-	// Across process means there is a downstream RPC call for this.
-	// Typically, refType == CrossProcess means SpanObject#spanType = entry.
-	RefType RefType `protobuf:"varint,1,opt,name=refType,proto3,enum=skywalking.v3.RefType" json:"refType,omitempty"`
-	// A string id represents the whole trace.
-	TraceId string `protobuf:"bytes,2,opt,name=traceId,proto3" json:"traceId,omitempty"`
-	// Another segment id as the parent.
-	ParentTraceSegmentId string `protobuf:"bytes,3,opt,name=parentTraceSegmentId,proto3" json:"parentTraceSegmentId,omitempty"`
-	// The span id in the parent trace segment.
-	ParentSpanId int32 `protobuf:"varint,4,opt,name=parentSpanId,proto3" json:"parentSpanId,omitempty"`
-	// The service logic name of the parent segment.
-	// If refType == CrossThread, this name is as same as the trace segment.
-	ParentService string `protobuf:"bytes,5,opt,name=parentService,proto3" json:"parentService,omitempty"`
-	// The service logic name instance of the parent segment.
-	// If refType == CrossThread, this name is as same as the trace segment.
-	ParentServiceInstance string `protobuf:"bytes,6,opt,name=parentServiceInstance,proto3" json:"parentServiceInstance,omitempty"`
-	// The endpoint name of the parent segment.
-	// **Endpoint**. A path in a service for incoming requests, such as an HTTP URI path or a gRPC service class + method signature.
-	// In a trace segment, the endpoint name is the name of first entry span.
-	ParentEndpoint string `protobuf:"bytes,7,opt,name=parentEndpoint,proto3" json:"parentEndpoint,omitempty"`
-	// The network address, including ip/hostname and port, which is used in the client side.
-	// Such as Client --> use 127.0.11.8:913 -> Server
-	// then, in the reference of entry span reported by Server, the value of this field is 127.0.11.8:913.
-	// This plays the important role in the SkyWalking STAM(Streaming Topology Analysis Method)
-	// For more details, read https://wu-sheng.github.io/STAM/
-	NetworkAddressUsedAtPeer string `protobuf:"bytes,8,opt,name=networkAddressUsedAtPeer,proto3" json:"networkAddressUsedAtPeer,omitempty"`
-}
-
-func (x *SegmentReference) Reset() {
-	*x = SegmentReference{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_language_agent_Tracing_proto_msgTypes[1]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *SegmentReference) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*SegmentReference) ProtoMessage() {}
-
-func (x *SegmentReference) ProtoReflect() protoreflect.Message {
-	mi := &file_language_agent_Tracing_proto_msgTypes[1]
-	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 SegmentReference.ProtoReflect.Descriptor instead.
-func (*SegmentReference) Descriptor() ([]byte, []int) {
-	return file_language_agent_Tracing_proto_rawDescGZIP(), []int{1}
-}
-
-func (x *SegmentReference) GetRefType() RefType {
-	if x != nil {
-		return x.RefType
-	}
-	return RefType_CrossProcess
-}
-
-func (x *SegmentReference) GetTraceId() string {
-	if x != nil {
-		return x.TraceId
-	}
-	return ""
-}
-
-func (x *SegmentReference) GetParentTraceSegmentId() string {
-	if x != nil {
-		return x.ParentTraceSegmentId
-	}
-	return ""
-}
-
-func (x *SegmentReference) GetParentSpanId() int32 {
-	if x != nil {
-		return x.ParentSpanId
-	}
-	return 0
-}
-
-func (x *SegmentReference) GetParentService() string {
-	if x != nil {
-		return x.ParentService
-	}
-	return ""
-}
-
-func (x *SegmentReference) GetParentServiceInstance() string {
-	if x != nil {
-		return x.ParentServiceInstance
-	}
-	return ""
-}
-
-func (x *SegmentReference) GetParentEndpoint() string {
-	if x != nil {
-		return x.ParentEndpoint
-	}
-	return ""
-}
-
-func (x *SegmentReference) GetNetworkAddressUsedAtPeer() string {
-	if x != nil {
-		return x.NetworkAddressUsedAtPeer
-	}
-	return ""
-}
-
-// Span represents a execution unit in the system, with duration and many other attributes.
-// Span could be a method, a RPC, MQ message produce or consume.
-// In the practice, the span should be added when it is really necessary, to avoid payload overhead.
-// We recommend to creating spans in across process(client/server of RPC/MQ) and across thread cases only.
-type SpanObject struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	// The number id of the span. Should be unique in the whole segment.
-	// Starting at 0.
-	SpanId int32 `protobuf:"varint,1,opt,name=spanId,proto3" json:"spanId,omitempty"`
-	// The number id of the parent span in the whole segment.
-	// -1 represents no parent span.
-	// Also, be known as the root/first span of the segment.
-	ParentSpanId int32 `protobuf:"varint,2,opt,name=parentSpanId,proto3" json:"parentSpanId,omitempty"`
-	// Start timestamp in milliseconds of this span,
-	// measured between the current time and midnight, January 1, 1970 UTC.
-	StartTime int64 `protobuf:"varint,3,opt,name=startTime,proto3" json:"startTime,omitempty"`
-	// End timestamp in milliseconds of this span,
-	// measured between the current time and midnight, January 1, 1970 UTC.
-	EndTime int64 `protobuf:"varint,4,opt,name=endTime,proto3" json:"endTime,omitempty"`
-	// <Optional>
-	// In the across thread and across process, these references targeting the parent segments.
-	// The references usually have only one element, but in batch consumer case, such as in MQ or async batch process, it could be multiple.
-	Refs []*SegmentReference `protobuf:"bytes,5,rep,name=refs,proto3" json:"refs,omitempty"`
-	// A logic name represents this span.
-	//
-	// We don't recommend to include the parameter, such as HTTP request parameters, as a part of the operation, especially this is the name of the entry span.
-	// All statistic for the endpoints are aggregated base on this name. Those parameters should be added in the tags if necessary.
-	// If in some cases, it have to be a part of the operation name,
-	// users should use the Group Parameterized Endpoints capability at the backend to get the meaningful metrics.
-	// Read https://github.com/apache/skywalking/blob/master/docs/en/setup/backend/endpoint-grouping-rules.md
-	OperationName string `protobuf:"bytes,6,opt,name=operationName,proto3" json:"operationName,omitempty"`
-	// Remote address of the peer in RPC/MQ case.
-	// This is required when spanType = Exit, as it is a part of the SkyWalking STAM(Streaming Topology Analysis Method).
-	// For more details, read https://wu-sheng.github.io/STAM/
-	Peer string `protobuf:"bytes,7,opt,name=peer,proto3" json:"peer,omitempty"`
-	// Span type represents the role in the RPC context.
-	SpanType SpanType `protobuf:"varint,8,opt,name=spanType,proto3,enum=skywalking.v3.SpanType" json:"spanType,omitempty"`
-	// Span layer represent the component tech stack, related to the network tech.
-	SpanLayer SpanLayer `protobuf:"varint,9,opt,name=spanLayer,proto3,enum=skywalking.v3.SpanLayer" json:"spanLayer,omitempty"`
-	// Component id is a predefinited number id in the SkyWalking.
-	// It represents the framework, tech stack used by this tracked span, such as Spring.
-	// All IDs are defined in the https://github.com/apache/skywalking/blob/master/oap-server/server-bootstrap/src/main/resources/component-libraries.yml
-	// Send a pull request if you want to add languages, components or mapping defintions,
-	// all public components could be accepted.
-	// Follow this doc for more details, https://github.com/apache/skywalking/blob/master/docs/en/guides/Component-library-settings.md
-	ComponentId int32 `protobuf:"varint,10,opt,name=componentId,proto3" json:"componentId,omitempty"`
-	// The status of the span. False means the tracked execution ends in the unexpected status.
-	// This affects the successful rate statistic in the backend.
-	// Exception or error code happened in the tracked process doesn't mean isError == true, the implementations of agent plugin and tracing SDK make the final decision.
-	IsError bool `protobuf:"varint,11,opt,name=isError,proto3" json:"isError,omitempty"`
-	// String key, String value pair.
-	// Tags provides more informance, includes parameters.
-	//
-	// In the OAP backend analysis, some special tag or tag combination could provide other advanced features.
-	// https://github.com/apache/skywalking/blob/master/docs/en/guides/Java-Plugin-Development-Guide.md#special-span-tags
-	Tags []*v3.KeyStringValuePair `protobuf:"bytes,12,rep,name=tags,proto3" json:"tags,omitempty"`
-	// String key, String value pair with an accurate timestamp.
-	// Logging some events happening in the context of the span duration.
-	Logs []*Log `protobuf:"bytes,13,rep,name=logs,proto3" json:"logs,omitempty"`
-	// Force the backend don't do analysis, if the value is TRUE.
-	// The backend has its own configurations to follow or override this.
-	//
-	// Use this mostly because the agent/SDK could know more context of the service role.
-	SkipAnalysis bool `protobuf:"varint,14,opt,name=skipAnalysis,proto3" json:"skipAnalysis,omitempty"`
-}
-
-func (x *SpanObject) Reset() {
-	*x = SpanObject{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_language_agent_Tracing_proto_msgTypes[2]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *SpanObject) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*SpanObject) ProtoMessage() {}
-
-func (x *SpanObject) ProtoReflect() protoreflect.Message {
-	mi := &file_language_agent_Tracing_proto_msgTypes[2]
-	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 SpanObject.ProtoReflect.Descriptor instead.
-func (*SpanObject) Descriptor() ([]byte, []int) {
-	return file_language_agent_Tracing_proto_rawDescGZIP(), []int{2}
-}
-
-func (x *SpanObject) GetSpanId() int32 {
-	if x != nil {
-		return x.SpanId
-	}
-	return 0
-}
-
-func (x *SpanObject) GetParentSpanId() int32 {
-	if x != nil {
-		return x.ParentSpanId
-	}
-	return 0
-}
-
-func (x *SpanObject) GetStartTime() int64 {
-	if x != nil {
-		return x.StartTime
-	}
-	return 0
-}
-
-func (x *SpanObject) GetEndTime() int64 {
-	if x != nil {
-		return x.EndTime
-	}
-	return 0
-}
-
-func (x *SpanObject) GetRefs() []*SegmentReference {
-	if x != nil {
-		return x.Refs
-	}
-	return nil
-}
-
-func (x *SpanObject) GetOperationName() string {
-	if x != nil {
-		return x.OperationName
-	}
-	return ""
-}
-
-func (x *SpanObject) GetPeer() string {
-	if x != nil {
-		return x.Peer
-	}
-	return ""
-}
-
-func (x *SpanObject) GetSpanType() SpanType {
-	if x != nil {
-		return x.SpanType
-	}
-	return SpanType_Entry
-}
-
-func (x *SpanObject) GetSpanLayer() SpanLayer {
-	if x != nil {
-		return x.SpanLayer
-	}
-	return SpanLayer_Unknown
-}
-
-func (x *SpanObject) GetComponentId() int32 {
-	if x != nil {
-		return x.ComponentId
-	}
-	return 0
-}
-
-func (x *SpanObject) GetIsError() bool {
-	if x != nil {
-		return x.IsError
-	}
-	return false
-}
-
-func (x *SpanObject) GetTags() []*v3.KeyStringValuePair {
-	if x != nil {
-		return x.Tags
-	}
-	return nil
-}
-
-func (x *SpanObject) GetLogs() []*Log {
-	if x != nil {
-		return x.Logs
-	}
-	return nil
-}
-
-func (x *SpanObject) GetSkipAnalysis() bool {
-	if x != nil {
-		return x.SkipAnalysis
-	}
-	return false
-}
-
-type Log struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	// The timestamp in milliseconds of this event.,
-	// measured between the current time and midnight, January 1, 1970 UTC.
-	Time int64 `protobuf:"varint,1,opt,name=time,proto3" json:"time,omitempty"`
-	// String key, String value pair.
-	Data []*v3.KeyStringValuePair `protobuf:"bytes,2,rep,name=data,proto3" json:"data,omitempty"`
-}
-
-func (x *Log) Reset() {
-	*x = Log{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_language_agent_Tracing_proto_msgTypes[3]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *Log) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*Log) ProtoMessage() {}
-
-func (x *Log) ProtoReflect() protoreflect.Message {
-	mi := &file_language_agent_Tracing_proto_msgTypes[3]
-	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 Log.ProtoReflect.Descriptor instead.
-func (*Log) Descriptor() ([]byte, []int) {
-	return file_language_agent_Tracing_proto_rawDescGZIP(), []int{3}
-}
-
-func (x *Log) GetTime() int64 {
-	if x != nil {
-		return x.Time
-	}
-	return 0
-}
-
-func (x *Log) GetData() []*v3.KeyStringValuePair {
-	if x != nil {
-		return x.Data
-	}
-	return nil
-}
-
-// A ID could be represented by multiple string sections.
-type ID struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Id []string `protobuf:"bytes,1,rep,name=id,proto3" json:"id,omitempty"`
-}
-
-func (x *ID) Reset() {
-	*x = ID{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_language_agent_Tracing_proto_msgTypes[4]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *ID) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*ID) ProtoMessage() {}
-
-func (x *ID) ProtoReflect() protoreflect.Message {
-	mi := &file_language_agent_Tracing_proto_msgTypes[4]
-	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 ID.ProtoReflect.Descriptor instead.
-func (*ID) Descriptor() ([]byte, []int) {
-	return file_language_agent_Tracing_proto_rawDescGZIP(), []int{4}
-}
-
-func (x *ID) GetId() []string {
-	if x != nil {
-		return x.Id
-	}
-	return nil
-}
-
-// The segment collections for trace report in batch and sync mode.
-type SegmentCollection struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Segments []*SegmentObject `protobuf:"bytes,1,rep,name=segments,proto3" json:"segments,omitempty"`
-}
-
-func (x *SegmentCollection) Reset() {
-	*x = SegmentCollection{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_language_agent_Tracing_proto_msgTypes[5]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *SegmentCollection) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*SegmentCollection) ProtoMessage() {}
-
-func (x *SegmentCollection) ProtoReflect() protoreflect.Message {
-	mi := &file_language_agent_Tracing_proto_msgTypes[5]
-	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 SegmentCollection.ProtoReflect.Descriptor instead.
-func (*SegmentCollection) Descriptor() ([]byte, []int) {
-	return file_language_agent_Tracing_proto_rawDescGZIP(), []int{5}
-}
-
-func (x *SegmentCollection) GetSegments() []*SegmentObject {
-	if x != nil {
-		return x.Segments
-	}
-	return nil
-}
-
-var File_language_agent_Tracing_proto protoreflect.FileDescriptor
-
-var file_language_agent_Tracing_proto_rawDesc = []byte{
-	0x0a, 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, 0x12, 0x0d,
-	0x73, 0x6b, 0x79, 0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x1a, 0x13, 0x63,
-	0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2f, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f,
-	0x74, 0x6f, 0x22, 0xec, 0x01, 0x0a, 0x0d, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4f, 0x62,
-	0x6a, 0x65, 0x63, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x72, 0x61, 0x63, 0x65, 0x49, 0x64, 0x18,
-	0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x72, 0x61, 0x63, 0x65, 0x49, 0x64, 0x12, 0x26,
-	0x0a, 0x0e, 0x74, 0x72, 0x61, 0x63, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64,
-	0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x74, 0x72, 0x61, 0x63, 0x65, 0x53, 0x65, 0x67,
-	0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x2f, 0x0a, 0x05, 0x73, 0x70, 0x61, 0x6e, 0x73, 0x18,
-	0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x73, 0x6b, 0x79, 0x77, 0x61, 0x6c, 0x6b, 0x69,
-	0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x53, 0x70, 0x61, 0x6e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74,
-	0x52, 0x05, 0x73, 0x70, 0x61, 0x6e, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69,
-	0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63,
-	0x65, 0x12, 0x28, 0x0a, 0x0f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x73, 0x74,
-	0x61, 0x6e, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x73, 0x65, 0x72, 0x76,
-	0x69, 0x63, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x69,
-	0x73, 0x53, 0x69, 0x7a, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01,
-	0x28, 0x08, 0x52, 0x0d, 0x69, 0x73, 0x53, 0x69, 0x7a, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x65,
-	0x64, 0x22, 0xf6, 0x02, 0x0a, 0x10, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x66,
-	0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x30, 0x0a, 0x07, 0x72, 0x65, 0x66, 0x54, 0x79, 0x70,
-	0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x73, 0x6b, 0x79, 0x77, 0x61, 0x6c,
-	0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x52, 0x65, 0x66, 0x54, 0x79, 0x70, 0x65, 0x52,
-	0x07, 0x72, 0x65, 0x66, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x72, 0x61, 0x63,
-	0x65, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x72, 0x61, 0x63, 0x65,
-	0x49, 0x64, 0x12, 0x32, 0x0a, 0x14, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x63,
-	0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09,
-	0x52, 0x14, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x63, 0x65, 0x53, 0x65, 0x67,
-	0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74,
-	0x53, 0x70, 0x61, 0x6e, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x70, 0x61,
-	0x72, 0x65, 0x6e, 0x74, 0x53, 0x70, 0x61, 0x6e, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x70, 0x61,
-	0x72, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28,
-	0x09, 0x52, 0x0d, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65,
-	0x12, 0x34, 0x0a, 0x15, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63,
-	0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52,
-	0x15, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e,
-	0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74,
-	0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e,
-	0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x3a,
-	0x0a, 0x18, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73,
-	0x55, 0x73, 0x65, 0x64, 0x41, 0x74, 0x50, 0x65, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09,
-	0x52, 0x18, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73,
-	0x55, 0x73, 0x65, 0x64, 0x41, 0x74, 0x50, 0x65, 0x65, 0x72, 0x22, 0x9b, 0x04, 0x0a, 0x0a, 0x53,
-	0x70, 0x61, 0x6e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x70, 0x61,
-	0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x70, 0x61, 0x6e, 0x49,
-	0x64, 0x12, 0x22, 0x0a, 0x0c, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x53, 0x70, 0x61, 0x6e, 0x49,
-	0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x53,
-	0x70, 0x61, 0x6e, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69,
-	0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54,
-	0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04,
-	0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x33, 0x0a,
-	0x04, 0x72, 0x65, 0x66, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x6b,
-	0x79, 0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x53, 0x65, 0x67, 0x6d,
-	0x65, 0x6e, 0x74, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x04, 0x72, 0x65,
-	0x66, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4e,
-	0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61,
-	0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x65, 0x65, 0x72,
-	0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x65, 0x65, 0x72, 0x12, 0x33, 0x0a, 0x08,
-	0x73, 0x70, 0x61, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x17,
-	0x2e, 0x73, 0x6b, 0x79, 0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x53,
-	0x70, 0x61, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x08, 0x73, 0x70, 0x61, 0x6e, 0x54, 0x79, 0x70,
-	0x65, 0x12, 0x36, 0x0a, 0x09, 0x73, 0x70, 0x61, 0x6e, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x18, 0x09,
-	0x20, 0x01, 0x28, 0x0e, 0x32, 0x18, 0x2e, 0x73, 0x6b, 0x79, 0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e,
-	0x67, 0x2e, 0x76, 0x33, 0x2e, 0x53, 0x70, 0x61, 0x6e, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x09,
-	0x73, 0x70, 0x61, 0x6e, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x6d,
-	0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b,
-	0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x69,
-	0x73, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x69, 0x73,
-	0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x35, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x0c, 0x20,
-	0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x73, 0x6b, 0x79, 0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67,
-	0x2e, 0x76, 0x33, 0x2e, 0x4b, 0x65, 0x79, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c,
-	0x75, 0x65, 0x50, 0x61, 0x69, 0x72, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x12, 0x26, 0x0a, 0x04,
-	0x6c, 0x6f, 0x67, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x73, 0x6b, 0x79,
-	0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x4c, 0x6f, 0x67, 0x52, 0x04,
-	0x6c, 0x6f, 0x67, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x6b, 0x69, 0x70, 0x41, 0x6e, 0x61, 0x6c,
-	0x79, 0x73, 0x69, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x73, 0x6b, 0x69, 0x70,
-	0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x22, 0x50, 0x0a, 0x03, 0x4c, 0x6f, 0x67, 0x12,
-	0x12, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x74,
-	0x69, 0x6d, 0x65, 0x12, 0x35, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28,
-	0x0b, 0x32, 0x21, 0x2e, 0x73, 0x6b, 0x79, 0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76,
-	0x33, 0x2e, 0x4b, 0x65, 0x79, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65,
-	0x50, 0x61, 0x69, 0x72, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x14, 0x0a, 0x02, 0x49, 0x44,
-	0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64,
-	0x22, 0x4d, 0x0a, 0x11, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6c, 0x6c, 0x65,
-	0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x38, 0x0a, 0x08, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74,
-	0x73, 0x18, 0x01, 0x20, 0x03, 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, 0x52, 0x08, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2a,
-	0x2a, 0x0a, 0x08, 0x53, 0x70, 0x61, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x09, 0x0a, 0x05, 0x45,
-	0x6e, 0x74, 0x72, 0x79, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x45, 0x78, 0x69, 0x74, 0x10, 0x01,
-	0x12, 0x09, 0x0a, 0x05, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x10, 0x02, 0x2a, 0x2c, 0x0a, 0x07, 0x52,
-	0x65, 0x66, 0x54, 0x79, 0x70, 0x65, 0x12, 0x10, 0x0a, 0x0c, 0x43, 0x72, 0x6f, 0x73, 0x73, 0x50,
-	0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x10, 0x00, 0x12, 0x0f, 0x0a, 0x0b, 0x43, 0x72, 0x6f, 0x73,
-	0x73, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x10, 0x01, 0x2a, 0x55, 0x0a, 0x09, 0x53, 0x70, 0x61,
-	0x6e, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x6e, 0x6b, 0x6e, 0x6f, 0x77,
-	0x6e, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x10,
-	0x01, 0x12, 0x10, 0x0a, 0x0c, 0x52, 0x50, 0x43, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x77, 0x6f, 0x72,
-	0x6b, 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x48, 0x74, 0x74, 0x70, 0x10, 0x03, 0x12, 0x06, 0x0a,
-	0x02, 0x4d, 0x51, 0x10, 0x04, 0x12, 0x09, 0x0a, 0x05, 0x43, 0x61, 0x63, 0x68, 0x65, 0x10, 0x05,
-	0x32, 0xaf, 0x01, 0x0a, 0x19, 0x54, 0x72, 0x61, 0x63, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e,
-	0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x44,
-	0x0a, 0x07, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x12, 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, 0x1a, 0x17, 0x2e, 0x73, 0x6b, 0x79, 0x77, 0x61, 0x6c,
-	0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x73,
-	0x22, 0x00, 0x28, 0x01, 0x12, 0x4c, 0x0a, 0x0d, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x49,
-	0x6e, 0x53, 0x79, 0x6e, 0x63, 0x12, 0x20, 0x2e, 0x73, 0x6b, 0x79, 0x77, 0x61, 0x6c, 0x6b, 0x69,
-	0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6c,
-	0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x17, 0x2e, 0x73, 0x6b, 0x79, 0x77, 0x61, 0x6c,
-	0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x73,
-	0x22, 0x00, 0x42, 0x7d, 0x0a, 0x33, 0x6f, 0x72, 0x67, 0x2e, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65,
-	0x2e, 0x73, 0x6b, 0x79, 0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x61, 0x70, 0x6d, 0x2e,
-	0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65,
-	0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x33, 0x50, 0x01, 0x5a, 0x24, 0x73, 0x6b, 0x79,
-	0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x2f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2f,
-	0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x2f, 0x76,
-	0x33, 0xaa, 0x02, 0x1d, 0x53, 0x6b, 0x79, 0x57, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x4e,
-	0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x56,
-	0x33, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
-}
-
-var (
-	file_language_agent_Tracing_proto_rawDescOnce sync.Once
-	file_language_agent_Tracing_proto_rawDescData = file_language_agent_Tracing_proto_rawDesc
-)
-
-func file_language_agent_Tracing_proto_rawDescGZIP() []byte {
-	file_language_agent_Tracing_proto_rawDescOnce.Do(func() {
-		file_language_agent_Tracing_proto_rawDescData = protoimpl.X.CompressGZIP(file_language_agent_Tracing_proto_rawDescData)
-	})
-	return file_language_agent_Tracing_proto_rawDescData
-}
-
-var file_language_agent_Tracing_proto_enumTypes = make([]protoimpl.EnumInfo, 3)
-var file_language_agent_Tracing_proto_msgTypes = make([]protoimpl.MessageInfo, 6)
-var file_language_agent_Tracing_proto_goTypes = []interface{}{
-	(SpanType)(0),                 // 0: skywalking.v3.SpanType
-	(RefType)(0),                  // 1: skywalking.v3.RefType
-	(SpanLayer)(0),                // 2: skywalking.v3.SpanLayer
-	(*SegmentObject)(nil),         // 3: skywalking.v3.SegmentObject
-	(*SegmentReference)(nil),      // 4: skywalking.v3.SegmentReference
-	(*SpanObject)(nil),            // 5: skywalking.v3.SpanObject
-	(*Log)(nil),                   // 6: skywalking.v3.Log
-	(*ID)(nil),                    // 7: skywalking.v3.ID
-	(*SegmentCollection)(nil),     // 8: skywalking.v3.SegmentCollection
-	(*v3.KeyStringValuePair)(nil), // 9: skywalking.v3.KeyStringValuePair
-	(*v3.Commands)(nil),           // 10: skywalking.v3.Commands
-}
-var file_language_agent_Tracing_proto_depIdxs = []int32{
-	5,  // 0: skywalking.v3.SegmentObject.spans:type_name -> skywalking.v3.SpanObject
-	1,  // 1: skywalking.v3.SegmentReference.refType:type_name -> skywalking.v3.RefType
-	4,  // 2: skywalking.v3.SpanObject.refs:type_name -> skywalking.v3.SegmentReference
-	0,  // 3: skywalking.v3.SpanObject.spanType:type_name -> skywalking.v3.SpanType
-	2,  // 4: skywalking.v3.SpanObject.spanLayer:type_name -> skywalking.v3.SpanLayer
-	9,  // 5: skywalking.v3.SpanObject.tags:type_name -> skywalking.v3.KeyStringValuePair
-	6,  // 6: skywalking.v3.SpanObject.logs:type_name -> skywalking.v3.Log
-	9,  // 7: skywalking.v3.Log.data:type_name -> skywalking.v3.KeyStringValuePair
-	3,  // 8: skywalking.v3.SegmentCollection.segments:type_name -> skywalking.v3.SegmentObject
-	3,  // 9: skywalking.v3.TraceSegmentReportService.collect:input_type -> skywalking.v3.SegmentObject
-	8,  // 10: skywalking.v3.TraceSegmentReportService.collectInSync:input_type -> skywalking.v3.SegmentCollection
-	10, // 11: skywalking.v3.TraceSegmentReportService.collect:output_type -> skywalking.v3.Commands
-	10, // 12: skywalking.v3.TraceSegmentReportService.collectInSync:output_type -> skywalking.v3.Commands
-	11, // [11:13] is the sub-list for method output_type
-	9,  // [9:11] is the sub-list for method input_type
-	9,  // [9:9] is the sub-list for extension type_name
-	9,  // [9:9] is the sub-list for extension extendee
-	0,  // [0:9] is the sub-list for field type_name
-}
-
-func init() { file_language_agent_Tracing_proto_init() }
-func file_language_agent_Tracing_proto_init() {
-	if File_language_agent_Tracing_proto != nil {
-		return
-	}
-	if !protoimpl.UnsafeEnabled {
-		file_language_agent_Tracing_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*SegmentObject); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_language_agent_Tracing_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*SegmentReference); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_language_agent_Tracing_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*SpanObject); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_language_agent_Tracing_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*Log); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_language_agent_Tracing_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*ID); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_language_agent_Tracing_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*SegmentCollection); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-	}
-	type x struct{}
-	out := protoimpl.TypeBuilder{
-		File: protoimpl.DescBuilder{
-			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
-			RawDescriptor: file_language_agent_Tracing_proto_rawDesc,
-			NumEnums:      3,
-			NumMessages:   6,
-			NumExtensions: 0,
-			NumServices:   1,
-		},
-		GoTypes:           file_language_agent_Tracing_proto_goTypes,
-		DependencyIndexes: file_language_agent_Tracing_proto_depIdxs,
-		EnumInfos:         file_language_agent_Tracing_proto_enumTypes,
-		MessageInfos:      file_language_agent_Tracing_proto_msgTypes,
-	}.Build()
-	File_language_agent_Tracing_proto = out.File
-	file_language_agent_Tracing_proto_rawDesc = nil
-	file_language_agent_Tracing_proto_goTypes = nil
-	file_language_agent_Tracing_proto_depIdxs = nil
-}
diff --git a/protocol/gen-codes/skywalking/network/language/agent/v3/Tracing_grpc.pb.go b/protocol/gen-codes/skywalking/network/language/agent/v3/Tracing_grpc.pb.go
deleted file mode 100644
index b6c5534..0000000
--- a/protocol/gen-codes/skywalking/network/language/agent/v3/Tracing_grpc.pb.go
+++ /dev/null
@@ -1,188 +0,0 @@
-// Code generated by protoc-gen-go-grpc. DO NOT EDIT.
-
-package v3
-
-import (
-	context "context"
-	grpc "google.golang.org/grpc"
-	codes "google.golang.org/grpc/codes"
-	status "google.golang.org/grpc/status"
-	v3 "skywalking/network/common/v3"
-)
-
-// This is a compile-time assertion to ensure that this generated file
-// is compatible with the grpc package it is being compiled against.
-// Requires gRPC-Go v1.32.0 or later.
-const _ = grpc.SupportPackageIsVersion7
-
-// TraceSegmentReportServiceClient is the client API for TraceSegmentReportService service.
-//
-// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.
-type TraceSegmentReportServiceClient interface {
-	// Recommended trace segment report channel.
-	// gRPC streaming provides better performance.
-	// All language agents should choose this.
-	Collect(ctx context.Context, opts ...grpc.CallOption) (TraceSegmentReportService_CollectClient, error)
-	// An alternative for trace report by using gRPC unary
-	// This is provided for some 3rd-party integration, if and only if they prefer the unary mode somehow.
-	// The performance of SkyWalking OAP server would be very similar with streaming report,
-	// the performance of the network and client side are affected
-	CollectInSync(ctx context.Context, in *SegmentCollection, opts ...grpc.CallOption) (*v3.Commands, error)
-}
-
-type traceSegmentReportServiceClient struct {
-	cc grpc.ClientConnInterface
-}
-
-func NewTraceSegmentReportServiceClient(cc grpc.ClientConnInterface) TraceSegmentReportServiceClient {
-	return &traceSegmentReportServiceClient{cc}
-}
-
-func (c *traceSegmentReportServiceClient) Collect(ctx context.Context, opts ...grpc.CallOption) (TraceSegmentReportService_CollectClient, error) {
-	stream, err := c.cc.NewStream(ctx, &TraceSegmentReportService_ServiceDesc.Streams[0], "/skywalking.v3.TraceSegmentReportService/collect", opts...)
-	if err != nil {
-		return nil, err
-	}
-	x := &traceSegmentReportServiceCollectClient{stream}
-	return x, nil
-}
-
-type TraceSegmentReportService_CollectClient interface {
-	Send(*SegmentObject) error
-	CloseAndRecv() (*v3.Commands, error)
-	grpc.ClientStream
-}
-
-type traceSegmentReportServiceCollectClient struct {
-	grpc.ClientStream
-}
-
-func (x *traceSegmentReportServiceCollectClient) Send(m *SegmentObject) error {
-	return x.ClientStream.SendMsg(m)
-}
-
-func (x *traceSegmentReportServiceCollectClient) CloseAndRecv() (*v3.Commands, error) {
-	if err := x.ClientStream.CloseSend(); err != nil {
-		return nil, err
-	}
-	m := new(v3.Commands)
-	if err := x.ClientStream.RecvMsg(m); err != nil {
-		return nil, err
-	}
-	return m, nil
-}
-
-func (c *traceSegmentReportServiceClient) CollectInSync(ctx context.Context, in *SegmentCollection, opts ...grpc.CallOption) (*v3.Commands, error) {
-	out := new(v3.Commands)
-	err := c.cc.Invoke(ctx, "/skywalking.v3.TraceSegmentReportService/collectInSync", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-// TraceSegmentReportServiceServer is the server API for TraceSegmentReportService service.
-// All implementations must embed UnimplementedTraceSegmentReportServiceServer
-// for forward compatibility
-type TraceSegmentReportServiceServer interface {
-	// Recommended trace segment report channel.
-	// gRPC streaming provides better performance.
-	// All language agents should choose this.
-	Collect(TraceSegmentReportService_CollectServer) error
-	// An alternative for trace report by using gRPC unary
-	// This is provided for some 3rd-party integration, if and only if they prefer the unary mode somehow.
-	// The performance of SkyWalking OAP server would be very similar with streaming report,
-	// the performance of the network and client side are affected
-	CollectInSync(context.Context, *SegmentCollection) (*v3.Commands, error)
-	mustEmbedUnimplementedTraceSegmentReportServiceServer()
-}
-
-// UnimplementedTraceSegmentReportServiceServer must be embedded to have forward compatible implementations.
-type UnimplementedTraceSegmentReportServiceServer struct {
-}
-
-func (UnimplementedTraceSegmentReportServiceServer) Collect(TraceSegmentReportService_CollectServer) error {
-	return status.Errorf(codes.Unimplemented, "method Collect not implemented")
-}
-func (UnimplementedTraceSegmentReportServiceServer) CollectInSync(context.Context, *SegmentCollection) (*v3.Commands, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method CollectInSync not implemented")
-}
-func (UnimplementedTraceSegmentReportServiceServer) mustEmbedUnimplementedTraceSegmentReportServiceServer() {
-}
-
-// UnsafeTraceSegmentReportServiceServer may be embedded to opt out of forward compatibility for this service.
-// Use of this interface is not recommended, as added methods to TraceSegmentReportServiceServer will
-// result in compilation errors.
-type UnsafeTraceSegmentReportServiceServer interface {
-	mustEmbedUnimplementedTraceSegmentReportServiceServer()
-}
-
-func RegisterTraceSegmentReportServiceServer(s grpc.ServiceRegistrar, srv TraceSegmentReportServiceServer) {
-	s.RegisterService(&TraceSegmentReportService_ServiceDesc, srv)
-}
-
-func _TraceSegmentReportService_Collect_Handler(srv interface{}, stream grpc.ServerStream) error {
-	return srv.(TraceSegmentReportServiceServer).Collect(&traceSegmentReportServiceCollectServer{stream})
-}
-
-type TraceSegmentReportService_CollectServer interface {
-	SendAndClose(*v3.Commands) error
-	Recv() (*SegmentObject, error)
-	grpc.ServerStream
-}
-
-type traceSegmentReportServiceCollectServer struct {
-	grpc.ServerStream
-}
-
-func (x *traceSegmentReportServiceCollectServer) SendAndClose(m *v3.Commands) error {
-	return x.ServerStream.SendMsg(m)
-}
-
-func (x *traceSegmentReportServiceCollectServer) Recv() (*SegmentObject, error) {
-	m := new(SegmentObject)
-	if err := x.ServerStream.RecvMsg(m); err != nil {
-		return nil, err
-	}
-	return m, nil
-}
-
-func _TraceSegmentReportService_CollectInSync_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(SegmentCollection)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(TraceSegmentReportServiceServer).CollectInSync(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/skywalking.v3.TraceSegmentReportService/collectInSync",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(TraceSegmentReportServiceServer).CollectInSync(ctx, req.(*SegmentCollection))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-// TraceSegmentReportService_ServiceDesc is the grpc.ServiceDesc for TraceSegmentReportService service.
-// It's only intended for direct use with grpc.RegisterService,
-// and not to be introspected or modified (even as a copy)
-var TraceSegmentReportService_ServiceDesc = grpc.ServiceDesc{
-	ServiceName: "skywalking.v3.TraceSegmentReportService",
-	HandlerType: (*TraceSegmentReportServiceServer)(nil),
-	Methods: []grpc.MethodDesc{
-		{
-			MethodName: "collectInSync",
-			Handler:    _TraceSegmentReportService_CollectInSync_Handler,
-		},
-	},
-	Streams: []grpc.StreamDesc{
-		{
-			StreamName:    "collect",
-			Handler:       _TraceSegmentReportService_Collect_Handler,
-			ClientStreams: true,
-		},
-	},
-	Metadata: "language-agent/Tracing.proto",
-}
diff --git a/protocol/gen-codes/skywalking/network/language/profile/v3/Profile.pb.go b/protocol/gen-codes/skywalking/network/language/profile/v3/Profile.pb.go
deleted file mode 100644
index 9798e91..0000000
--- a/protocol/gen-codes/skywalking/network/language/profile/v3/Profile.pb.go
+++ /dev/null
@@ -1,479 +0,0 @@
-//
-// 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: profile/Profile.proto
-
-package v3
-
-import (
-	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
-	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
-	reflect "reflect"
-	v3 "skywalking/network/common/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)
-)
-
-type ProfileTaskCommandQuery struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	// current sniffer information
-	Service         string `protobuf:"bytes,1,opt,name=service,proto3" json:"service,omitempty"`
-	ServiceInstance string `protobuf:"bytes,2,opt,name=serviceInstance,proto3" json:"serviceInstance,omitempty"`
-	// last command timestamp
-	LastCommandTime int64 `protobuf:"varint,3,opt,name=lastCommandTime,proto3" json:"lastCommandTime,omitempty"`
-}
-
-func (x *ProfileTaskCommandQuery) Reset() {
-	*x = ProfileTaskCommandQuery{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_profile_Profile_proto_msgTypes[0]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *ProfileTaskCommandQuery) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*ProfileTaskCommandQuery) ProtoMessage() {}
-
-func (x *ProfileTaskCommandQuery) ProtoReflect() protoreflect.Message {
-	mi := &file_profile_Profile_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 ProfileTaskCommandQuery.ProtoReflect.Descriptor instead.
-func (*ProfileTaskCommandQuery) Descriptor() ([]byte, []int) {
-	return file_profile_Profile_proto_rawDescGZIP(), []int{0}
-}
-
-func (x *ProfileTaskCommandQuery) GetService() string {
-	if x != nil {
-		return x.Service
-	}
-	return ""
-}
-
-func (x *ProfileTaskCommandQuery) GetServiceInstance() string {
-	if x != nil {
-		return x.ServiceInstance
-	}
-	return ""
-}
-
-func (x *ProfileTaskCommandQuery) GetLastCommandTime() int64 {
-	if x != nil {
-		return x.LastCommandTime
-	}
-	return 0
-}
-
-// dumped thread snapshot
-type ThreadSnapshot struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	// profile task id
-	TaskId string `protobuf:"bytes,1,opt,name=taskId,proto3" json:"taskId,omitempty"`
-	// dumped segment id
-	TraceSegmentId string `protobuf:"bytes,2,opt,name=traceSegmentId,proto3" json:"traceSegmentId,omitempty"`
-	// dump timestamp
-	Time int64 `protobuf:"varint,3,opt,name=time,proto3" json:"time,omitempty"`
-	// snapshot dump sequence, start with zero
-	Sequence int32 `protobuf:"varint,4,opt,name=sequence,proto3" json:"sequence,omitempty"`
-	// snapshot stack
-	Stack *ThreadStack `protobuf:"bytes,5,opt,name=stack,proto3" json:"stack,omitempty"`
-}
-
-func (x *ThreadSnapshot) Reset() {
-	*x = ThreadSnapshot{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_profile_Profile_proto_msgTypes[1]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *ThreadSnapshot) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*ThreadSnapshot) ProtoMessage() {}
-
-func (x *ThreadSnapshot) ProtoReflect() protoreflect.Message {
-	mi := &file_profile_Profile_proto_msgTypes[1]
-	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 ThreadSnapshot.ProtoReflect.Descriptor instead.
-func (*ThreadSnapshot) Descriptor() ([]byte, []int) {
-	return file_profile_Profile_proto_rawDescGZIP(), []int{1}
-}
-
-func (x *ThreadSnapshot) GetTaskId() string {
-	if x != nil {
-		return x.TaskId
-	}
-	return ""
-}
-
-func (x *ThreadSnapshot) GetTraceSegmentId() string {
-	if x != nil {
-		return x.TraceSegmentId
-	}
-	return ""
-}
-
-func (x *ThreadSnapshot) GetTime() int64 {
-	if x != nil {
-		return x.Time
-	}
-	return 0
-}
-
-func (x *ThreadSnapshot) GetSequence() int32 {
-	if x != nil {
-		return x.Sequence
-	}
-	return 0
-}
-
-func (x *ThreadSnapshot) GetStack() *ThreadStack {
-	if x != nil {
-		return x.Stack
-	}
-	return nil
-}
-
-type ThreadStack struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	// stack code signature list
-	CodeSignatures []string `protobuf:"bytes,1,rep,name=codeSignatures,proto3" json:"codeSignatures,omitempty"`
-}
-
-func (x *ThreadStack) Reset() {
-	*x = ThreadStack{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_profile_Profile_proto_msgTypes[2]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *ThreadStack) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*ThreadStack) ProtoMessage() {}
-
-func (x *ThreadStack) ProtoReflect() protoreflect.Message {
-	mi := &file_profile_Profile_proto_msgTypes[2]
-	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 ThreadStack.ProtoReflect.Descriptor instead.
-func (*ThreadStack) Descriptor() ([]byte, []int) {
-	return file_profile_Profile_proto_rawDescGZIP(), []int{2}
-}
-
-func (x *ThreadStack) GetCodeSignatures() []string {
-	if x != nil {
-		return x.CodeSignatures
-	}
-	return nil
-}
-
-// profile task finished report
-type ProfileTaskFinishReport struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	// current sniffer information
-	Service         string `protobuf:"bytes,1,opt,name=service,proto3" json:"service,omitempty"`
-	ServiceInstance string `protobuf:"bytes,2,opt,name=serviceInstance,proto3" json:"serviceInstance,omitempty"`
-	// profile task
-	TaskId string `protobuf:"bytes,3,opt,name=taskId,proto3" json:"taskId,omitempty"`
-}
-
-func (x *ProfileTaskFinishReport) Reset() {
-	*x = ProfileTaskFinishReport{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_profile_Profile_proto_msgTypes[3]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *ProfileTaskFinishReport) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*ProfileTaskFinishReport) ProtoMessage() {}
-
-func (x *ProfileTaskFinishReport) ProtoReflect() protoreflect.Message {
-	mi := &file_profile_Profile_proto_msgTypes[3]
-	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 ProfileTaskFinishReport.ProtoReflect.Descriptor instead.
-func (*ProfileTaskFinishReport) Descriptor() ([]byte, []int) {
-	return file_profile_Profile_proto_rawDescGZIP(), []int{3}
-}
-
-func (x *ProfileTaskFinishReport) GetService() string {
-	if x != nil {
-		return x.Service
-	}
-	return ""
-}
-
-func (x *ProfileTaskFinishReport) GetServiceInstance() string {
-	if x != nil {
-		return x.ServiceInstance
-	}
-	return ""
-}
-
-func (x *ProfileTaskFinishReport) GetTaskId() string {
-	if x != nil {
-		return x.TaskId
-	}
-	return ""
-}
-
-var File_profile_Profile_proto protoreflect.FileDescriptor
-
-var file_profile_Profile_proto_rawDesc = []byte{
-	0x0a, 0x15, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x2f, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c,
-	0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0d, 0x73, 0x6b, 0x79, 0x77, 0x61, 0x6c, 0x6b,
-	0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x1a, 0x13, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2f, 0x43,
-	0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x87, 0x01, 0x0a, 0x17,
-	0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x43, 0x6f, 0x6d, 0x6d, 0x61,
-	0x6e, 0x64, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69,
-	0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63,
-	0x65, 0x12, 0x28, 0x0a, 0x0f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x73, 0x74,
-	0x61, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x73, 0x65, 0x72, 0x76,
-	0x69, 0x63, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x6c,
-	0x61, 0x73, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03,
-	0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x6c, 0x61, 0x73, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e,
-	0x64, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xb2, 0x01, 0x0a, 0x0e, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64,
-	0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x61, 0x73, 0x6b,
-	0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64,
-	0x12, 0x26, 0x0a, 0x0e, 0x74, 0x72, 0x61, 0x63, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74,
-	0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x74, 0x72, 0x61, 0x63, 0x65, 0x53,
-	0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65,
-	0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08,
-	0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08,
-	0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x30, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x63,
-	0x6b, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x73, 0x6b, 0x79, 0x77, 0x61, 0x6c,
-	0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x53, 0x74,
-	0x61, 0x63, 0x6b, 0x52, 0x05, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x22, 0x35, 0x0a, 0x0b, 0x54, 0x68,
-	0x72, 0x65, 0x61, 0x64, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x12, 0x26, 0x0a, 0x0e, 0x63, 0x6f, 0x64,
-	0x65, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28,
-	0x09, 0x52, 0x0e, 0x63, 0x6f, 0x64, 0x65, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65,
-	0x73, 0x22, 0x75, 0x0a, 0x17, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x54, 0x61, 0x73, 0x6b,
-	0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x18, 0x0a, 0x07,
-	0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73,
-	0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63,
-	0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
-	0x0f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65,
-	0x12, 0x16, 0x0a, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09,
-	0x52, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x32, 0x90, 0x02, 0x0a, 0x0b, 0x50, 0x72, 0x6f,
-	0x66, 0x69, 0x6c, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x5b, 0x0a, 0x16, 0x67, 0x65, 0x74, 0x50,
-	0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e,
-	0x64, 0x73, 0x12, 0x26, 0x2e, 0x73, 0x6b, 0x79, 0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x2e,
-	0x76, 0x33, 0x2e, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x43, 0x6f,
-	0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x51, 0x75, 0x65, 0x72, 0x79, 0x1a, 0x17, 0x2e, 0x73, 0x6b, 0x79,
-	0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x61,
-	0x6e, 0x64, 0x73, 0x22, 0x00, 0x12, 0x4d, 0x0a, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74,
-	0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x12, 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, 0x1a, 0x17, 0x2e, 0x73, 0x6b, 0x79, 0x77, 0x61, 0x6c,
-	0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x73,
-	0x22, 0x00, 0x28, 0x01, 0x12, 0x55, 0x0a, 0x10, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x61,
-	0x73, 0x6b, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x12, 0x26, 0x2e, 0x73, 0x6b, 0x79, 0x77, 0x61,
-	0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65,
-	0x54, 0x61, 0x73, 0x6b, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74,
-	0x1a, 0x17, 0x2e, 0x73, 0x6b, 0x79, 0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33,
-	0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x73, 0x22, 0x00, 0x42, 0x81, 0x01, 0x0a, 0x35,
-	0x6f, 0x72, 0x67, 0x2e, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2e, 0x73, 0x6b, 0x79, 0x77, 0x61,
-	0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x61, 0x70, 0x6d, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72,
-	0x6b, 0x2e, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x66, 0x69,
-	0x6c, 0x65, 0x2e, 0x76, 0x33, 0x50, 0x01, 0x5a, 0x26, 0x73, 0x6b, 0x79, 0x77, 0x61, 0x6c, 0x6b,
-	0x69, 0x6e, 0x67, 0x2f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2f, 0x6c, 0x61, 0x6e, 0x67,
-	0x75, 0x61, 0x67, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x2f, 0x76, 0x33, 0xaa,
-	0x02, 0x1d, 0x53, 0x6b, 0x79, 0x57, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x4e, 0x65, 0x74,
-	0x77, 0x6f, 0x72, 0x6b, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x56, 0x33, 0x62,
-	0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
-}
-
-var (
-	file_profile_Profile_proto_rawDescOnce sync.Once
-	file_profile_Profile_proto_rawDescData = file_profile_Profile_proto_rawDesc
-)
-
-func file_profile_Profile_proto_rawDescGZIP() []byte {
-	file_profile_Profile_proto_rawDescOnce.Do(func() {
-		file_profile_Profile_proto_rawDescData = protoimpl.X.CompressGZIP(file_profile_Profile_proto_rawDescData)
-	})
-	return file_profile_Profile_proto_rawDescData
-}
-
-var file_profile_Profile_proto_msgTypes = make([]protoimpl.MessageInfo, 4)
-var file_profile_Profile_proto_goTypes = []interface{}{
-	(*ProfileTaskCommandQuery)(nil), // 0: skywalking.v3.ProfileTaskCommandQuery
-	(*ThreadSnapshot)(nil),          // 1: skywalking.v3.ThreadSnapshot
-	(*ThreadStack)(nil),             // 2: skywalking.v3.ThreadStack
-	(*ProfileTaskFinishReport)(nil), // 3: skywalking.v3.ProfileTaskFinishReport
-	(*v3.Commands)(nil),             // 4: skywalking.v3.Commands
-}
-var file_profile_Profile_proto_depIdxs = []int32{
-	2, // 0: skywalking.v3.ThreadSnapshot.stack:type_name -> skywalking.v3.ThreadStack
-	0, // 1: skywalking.v3.ProfileTask.getProfileTaskCommands:input_type -> skywalking.v3.ProfileTaskCommandQuery
-	1, // 2: skywalking.v3.ProfileTask.collectSnapshot:input_type -> skywalking.v3.ThreadSnapshot
-	3, // 3: skywalking.v3.ProfileTask.reportTaskFinish:input_type -> skywalking.v3.ProfileTaskFinishReport
-	4, // 4: skywalking.v3.ProfileTask.getProfileTaskCommands:output_type -> skywalking.v3.Commands
-	4, // 5: skywalking.v3.ProfileTask.collectSnapshot:output_type -> skywalking.v3.Commands
-	4, // 6: skywalking.v3.ProfileTask.reportTaskFinish:output_type -> skywalking.v3.Commands
-	4, // [4:7] is the sub-list for method output_type
-	1, // [1:4] is the sub-list for method input_type
-	1, // [1:1] is the sub-list for extension type_name
-	1, // [1:1] is the sub-list for extension extendee
-	0, // [0:1] is the sub-list for field type_name
-}
-
-func init() { file_profile_Profile_proto_init() }
-func file_profile_Profile_proto_init() {
-	if File_profile_Profile_proto != nil {
-		return
-	}
-	if !protoimpl.UnsafeEnabled {
-		file_profile_Profile_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*ProfileTaskCommandQuery); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_profile_Profile_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*ThreadSnapshot); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_profile_Profile_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*ThreadStack); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_profile_Profile_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*ProfileTaskFinishReport); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-	}
-	type x struct{}
-	out := protoimpl.TypeBuilder{
-		File: protoimpl.DescBuilder{
-			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
-			RawDescriptor: file_profile_Profile_proto_rawDesc,
-			NumEnums:      0,
-			NumMessages:   4,
-			NumExtensions: 0,
-			NumServices:   1,
-		},
-		GoTypes:           file_profile_Profile_proto_goTypes,
-		DependencyIndexes: file_profile_Profile_proto_depIdxs,
-		MessageInfos:      file_profile_Profile_proto_msgTypes,
-	}.Build()
-	File_profile_Profile_proto = out.File
-	file_profile_Profile_proto_rawDesc = nil
-	file_profile_Profile_proto_goTypes = nil
-	file_profile_Profile_proto_depIdxs = nil
-}
diff --git a/protocol/gen-codes/skywalking/network/language/profile/v3/Profile_grpc.pb.go b/protocol/gen-codes/skywalking/network/language/profile/v3/Profile_grpc.pb.go
deleted file mode 100644
index 3864da1..0000000
--- a/protocol/gen-codes/skywalking/network/language/profile/v3/Profile_grpc.pb.go
+++ /dev/null
@@ -1,215 +0,0 @@
-// Code generated by protoc-gen-go-grpc. DO NOT EDIT.
-
-package v3
-
-import (
-	context "context"
-	grpc "google.golang.org/grpc"
-	codes "google.golang.org/grpc/codes"
-	status "google.golang.org/grpc/status"
-	v3 "skywalking/network/common/v3"
-)
-
-// This is a compile-time assertion to ensure that this generated file
-// is compatible with the grpc package it is being compiled against.
-// Requires gRPC-Go v1.32.0 or later.
-const _ = grpc.SupportPackageIsVersion7
-
-// ProfileTaskClient is the client API for ProfileTask service.
-//
-// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.
-type ProfileTaskClient interface {
-	// query all sniffer need to execute profile task commands
-	GetProfileTaskCommands(ctx context.Context, in *ProfileTaskCommandQuery, opts ...grpc.CallOption) (*v3.Commands, error)
-	// collect dumped thread snapshot
-	CollectSnapshot(ctx context.Context, opts ...grpc.CallOption) (ProfileTask_CollectSnapshotClient, error)
-	// report profiling task finished
-	ReportTaskFinish(ctx context.Context, in *ProfileTaskFinishReport, opts ...grpc.CallOption) (*v3.Commands, error)
-}
-
-type profileTaskClient struct {
-	cc grpc.ClientConnInterface
-}
-
-func NewProfileTaskClient(cc grpc.ClientConnInterface) ProfileTaskClient {
-	return &profileTaskClient{cc}
-}
-
-func (c *profileTaskClient) GetProfileTaskCommands(ctx context.Context, in *ProfileTaskCommandQuery, opts ...grpc.CallOption) (*v3.Commands, error) {
-	out := new(v3.Commands)
-	err := c.cc.Invoke(ctx, "/skywalking.v3.ProfileTask/getProfileTaskCommands", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *profileTaskClient) CollectSnapshot(ctx context.Context, opts ...grpc.CallOption) (ProfileTask_CollectSnapshotClient, error) {
-	stream, err := c.cc.NewStream(ctx, &ProfileTask_ServiceDesc.Streams[0], "/skywalking.v3.ProfileTask/collectSnapshot", opts...)
-	if err != nil {
-		return nil, err
-	}
-	x := &profileTaskCollectSnapshotClient{stream}
-	return x, nil
-}
-
-type ProfileTask_CollectSnapshotClient interface {
-	Send(*ThreadSnapshot) error
-	CloseAndRecv() (*v3.Commands, error)
-	grpc.ClientStream
-}
-
-type profileTaskCollectSnapshotClient struct {
-	grpc.ClientStream
-}
-
-func (x *profileTaskCollectSnapshotClient) Send(m *ThreadSnapshot) error {
-	return x.ClientStream.SendMsg(m)
-}
-
-func (x *profileTaskCollectSnapshotClient) CloseAndRecv() (*v3.Commands, error) {
-	if err := x.ClientStream.CloseSend(); err != nil {
-		return nil, err
-	}
-	m := new(v3.Commands)
-	if err := x.ClientStream.RecvMsg(m); err != nil {
-		return nil, err
-	}
-	return m, nil
-}
-
-func (c *profileTaskClient) ReportTaskFinish(ctx context.Context, in *ProfileTaskFinishReport, opts ...grpc.CallOption) (*v3.Commands, error) {
-	out := new(v3.Commands)
-	err := c.cc.Invoke(ctx, "/skywalking.v3.ProfileTask/reportTaskFinish", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-// ProfileTaskServer is the server API for ProfileTask service.
-// All implementations must embed UnimplementedProfileTaskServer
-// for forward compatibility
-type ProfileTaskServer interface {
-	// query all sniffer need to execute profile task commands
-	GetProfileTaskCommands(context.Context, *ProfileTaskCommandQuery) (*v3.Commands, error)
-	// collect dumped thread snapshot
-	CollectSnapshot(ProfileTask_CollectSnapshotServer) error
-	// report profiling task finished
-	ReportTaskFinish(context.Context, *ProfileTaskFinishReport) (*v3.Commands, error)
-	mustEmbedUnimplementedProfileTaskServer()
-}
-
-// UnimplementedProfileTaskServer must be embedded to have forward compatible implementations.
-type UnimplementedProfileTaskServer struct {
-}
-
-func (UnimplementedProfileTaskServer) GetProfileTaskCommands(context.Context, *ProfileTaskCommandQuery) (*v3.Commands, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method GetProfileTaskCommands not implemented")
-}
-func (UnimplementedProfileTaskServer) CollectSnapshot(ProfileTask_CollectSnapshotServer) error {
-	return status.Errorf(codes.Unimplemented, "method CollectSnapshot not implemented")
-}
-func (UnimplementedProfileTaskServer) ReportTaskFinish(context.Context, *ProfileTaskFinishReport) (*v3.Commands, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method ReportTaskFinish not implemented")
-}
-func (UnimplementedProfileTaskServer) mustEmbedUnimplementedProfileTaskServer() {}
-
-// UnsafeProfileTaskServer may be embedded to opt out of forward compatibility for this service.
-// Use of this interface is not recommended, as added methods to ProfileTaskServer will
-// result in compilation errors.
-type UnsafeProfileTaskServer interface {
-	mustEmbedUnimplementedProfileTaskServer()
-}
-
-func RegisterProfileTaskServer(s grpc.ServiceRegistrar, srv ProfileTaskServer) {
-	s.RegisterService(&ProfileTask_ServiceDesc, srv)
-}
-
-func _ProfileTask_GetProfileTaskCommands_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(ProfileTaskCommandQuery)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(ProfileTaskServer).GetProfileTaskCommands(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/skywalking.v3.ProfileTask/getProfileTaskCommands",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(ProfileTaskServer).GetProfileTaskCommands(ctx, req.(*ProfileTaskCommandQuery))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _ProfileTask_CollectSnapshot_Handler(srv interface{}, stream grpc.ServerStream) error {
-	return srv.(ProfileTaskServer).CollectSnapshot(&profileTaskCollectSnapshotServer{stream})
-}
-
-type ProfileTask_CollectSnapshotServer interface {
-	SendAndClose(*v3.Commands) error
-	Recv() (*ThreadSnapshot, error)
-	grpc.ServerStream
-}
-
-type profileTaskCollectSnapshotServer struct {
-	grpc.ServerStream
-}
-
-func (x *profileTaskCollectSnapshotServer) SendAndClose(m *v3.Commands) error {
-	return x.ServerStream.SendMsg(m)
-}
-
-func (x *profileTaskCollectSnapshotServer) Recv() (*ThreadSnapshot, error) {
-	m := new(ThreadSnapshot)
-	if err := x.ServerStream.RecvMsg(m); err != nil {
-		return nil, err
-	}
-	return m, nil
-}
-
-func _ProfileTask_ReportTaskFinish_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(ProfileTaskFinishReport)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(ProfileTaskServer).ReportTaskFinish(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/skywalking.v3.ProfileTask/reportTaskFinish",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(ProfileTaskServer).ReportTaskFinish(ctx, req.(*ProfileTaskFinishReport))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-// ProfileTask_ServiceDesc is the grpc.ServiceDesc for ProfileTask service.
-// It's only intended for direct use with grpc.RegisterService,
-// and not to be introspected or modified (even as a copy)
-var ProfileTask_ServiceDesc = grpc.ServiceDesc{
-	ServiceName: "skywalking.v3.ProfileTask",
-	HandlerType: (*ProfileTaskServer)(nil),
-	Methods: []grpc.MethodDesc{
-		{
-			MethodName: "getProfileTaskCommands",
-			Handler:    _ProfileTask_GetProfileTaskCommands_Handler,
-		},
-		{
-			MethodName: "reportTaskFinish",
-			Handler:    _ProfileTask_ReportTaskFinish_Handler,
-		},
-	},
-	Streams: []grpc.StreamDesc{
-		{
-			StreamName:    "collectSnapshot",
-			Handler:       _ProfileTask_CollectSnapshot_Handler,
-			ClientStreams: true,
-		},
-	},
-	Metadata: "profile/Profile.proto",
-}
diff --git a/protocol/gen-codes/skywalking/network/logging/v3/Logging.pb.go b/protocol/gen-codes/skywalking/network/logging/v3/Logging.pb.go
deleted file mode 100644
index ffcda67..0000000
--- a/protocol/gen-codes/skywalking/network/logging/v3/Logging.pb.go
+++ /dev/null
@@ -1,748 +0,0 @@
-//
-// 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: logging/Logging.proto
-
-package v3
-
-import (
-	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
-	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
-	reflect "reflect"
-	v3 "skywalking/network/common/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)
-)
-
-// Log data is collected through file scratcher of agent.
-// Natively, Satellite provides various ways to collect logs.
-type LogData struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	// [Optional] The timestamp of the log, in millisecond.
-	// If not set, OAP server would use the received timestamp as log's timestamp, or relies on the OAP server analyzer.
-	Timestamp int64 `protobuf:"varint,1,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
-	// [Required] **Service**. Represents a set/group of workloads which provide the same behaviours for incoming requests.
-	//
-	// The logic name represents the service. This would show as a separate node in the topology.
-	// The metrics analyzed from the spans, would be aggregated for this entity as the service level.
-	//
-	// If this is not the first element of the streaming, use the previous not-null name as the service name.
-	Service string `protobuf:"bytes,2,opt,name=service,proto3" json:"service,omitempty"`
-	// [Optional] **Service Instance**. Each individual workload in the Service group is known as an instance. Like `pods` in Kubernetes, it
-	// doesn't need to be a single OS process, however, if you are using instrument agents, an instance is actually a real OS process.
-	//
-	// The logic name represents the service instance. This would show as a separate node in the instance relationship.
-	// The metrics analyzed from the spans, would be aggregated for this entity as the service instance level.
-	ServiceInstance string `protobuf:"bytes,3,opt,name=serviceInstance,proto3" json:"serviceInstance,omitempty"`
-	// [Optional] **Endpoint**. A path in a service for incoming requests, such as an HTTP URI path or a gRPC service class + method signature.
-	//
-	// The logic name represents the endpoint, which logs belong.
-	Endpoint string `protobuf:"bytes,4,opt,name=endpoint,proto3" json:"endpoint,omitempty"`
-	// [Required] The content of the log.
-	Body *LogDataBody `protobuf:"bytes,5,opt,name=body,proto3" json:"body,omitempty"`
-	// [Optional] Logs with trace context
-	TraceContext *TraceContext `protobuf:"bytes,6,opt,name=traceContext,proto3" json:"traceContext,omitempty"`
-	// [Optional] The available tags. OAP server could provide search/analysis capabilities base on these.
-	Tags *LogTags `protobuf:"bytes,7,opt,name=tags,proto3" json:"tags,omitempty"`
-}
-
-func (x *LogData) Reset() {
-	*x = LogData{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_logging_Logging_proto_msgTypes[0]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *LogData) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*LogData) ProtoMessage() {}
-
-func (x *LogData) ProtoReflect() protoreflect.Message {
-	mi := &file_logging_Logging_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 LogData.ProtoReflect.Descriptor instead.
-func (*LogData) Descriptor() ([]byte, []int) {
-	return file_logging_Logging_proto_rawDescGZIP(), []int{0}
-}
-
-func (x *LogData) GetTimestamp() int64 {
-	if x != nil {
-		return x.Timestamp
-	}
-	return 0
-}
-
-func (x *LogData) GetService() string {
-	if x != nil {
-		return x.Service
-	}
-	return ""
-}
-
-func (x *LogData) GetServiceInstance() string {
-	if x != nil {
-		return x.ServiceInstance
-	}
-	return ""
-}
-
-func (x *LogData) GetEndpoint() string {
-	if x != nil {
-		return x.Endpoint
-	}
-	return ""
-}
-
-func (x *LogData) GetBody() *LogDataBody {
-	if x != nil {
-		return x.Body
-	}
-	return nil
-}
-
-func (x *LogData) GetTraceContext() *TraceContext {
-	if x != nil {
-		return x.TraceContext
-	}
-	return nil
-}
-
-func (x *LogData) GetTags() *LogTags {
-	if x != nil {
-		return x.Tags
-	}
-	return nil
-}
-
-// The content of the log data
-type LogDataBody struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	// A type to match analyzer(s) at the OAP server.
-	// The data could be analysis at the client side, but could be partial
-	Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"`
-	// Content with extendable format.
-	//
-	// Types that are assignable to Content:
-	//	*LogDataBody_Text
-	//	*LogDataBody_Json
-	//	*LogDataBody_Yaml
-	Content isLogDataBody_Content `protobuf_oneof:"content"`
-}
-
-func (x *LogDataBody) Reset() {
-	*x = LogDataBody{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_logging_Logging_proto_msgTypes[1]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *LogDataBody) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*LogDataBody) ProtoMessage() {}
-
-func (x *LogDataBody) ProtoReflect() protoreflect.Message {
-	mi := &file_logging_Logging_proto_msgTypes[1]
-	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 LogDataBody.ProtoReflect.Descriptor instead.
-func (*LogDataBody) Descriptor() ([]byte, []int) {
-	return file_logging_Logging_proto_rawDescGZIP(), []int{1}
-}
-
-func (x *LogDataBody) GetType() string {
-	if x != nil {
-		return x.Type
-	}
-	return ""
-}
-
-func (m *LogDataBody) GetContent() isLogDataBody_Content {
-	if m != nil {
-		return m.Content
-	}
-	return nil
-}
-
-func (x *LogDataBody) GetText() *TextLog {
-	if x, ok := x.GetContent().(*LogDataBody_Text); ok {
-		return x.Text
-	}
-	return nil
-}
-
-func (x *LogDataBody) GetJson() *JSONLog {
-	if x, ok := x.GetContent().(*LogDataBody_Json); ok {
-		return x.Json
-	}
-	return nil
-}
-
-func (x *LogDataBody) GetYaml() *YAMLLog {
-	if x, ok := x.GetContent().(*LogDataBody_Yaml); ok {
-		return x.Yaml
-	}
-	return nil
-}
-
-type isLogDataBody_Content interface {
-	isLogDataBody_Content()
-}
-
-type LogDataBody_Text struct {
-	Text *TextLog `protobuf:"bytes,2,opt,name=text,proto3,oneof"`
-}
-
-type LogDataBody_Json struct {
-	Json *JSONLog `protobuf:"bytes,3,opt,name=json,proto3,oneof"`
-}
-
-type LogDataBody_Yaml struct {
-	Yaml *YAMLLog `protobuf:"bytes,4,opt,name=yaml,proto3,oneof"`
-}
-
-func (*LogDataBody_Text) isLogDataBody_Content() {}
-
-func (*LogDataBody_Json) isLogDataBody_Content() {}
-
-func (*LogDataBody_Yaml) isLogDataBody_Content() {}
-
-// Literal text log, typically requires regex or split mechanism to filter meaningful info.
-type TextLog struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Text string `protobuf:"bytes,1,opt,name=text,proto3" json:"text,omitempty"`
-}
-
-func (x *TextLog) Reset() {
-	*x = TextLog{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_logging_Logging_proto_msgTypes[2]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *TextLog) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*TextLog) ProtoMessage() {}
-
-func (x *TextLog) ProtoReflect() protoreflect.Message {
-	mi := &file_logging_Logging_proto_msgTypes[2]
-	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 TextLog.ProtoReflect.Descriptor instead.
-func (*TextLog) Descriptor() ([]byte, []int) {
-	return file_logging_Logging_proto_rawDescGZIP(), []int{2}
-}
-
-func (x *TextLog) GetText() string {
-	if x != nil {
-		return x.Text
-	}
-	return ""
-}
-
-// JSON formatted log. The json field represents the string could be formatted as a JSON object.
-type JSONLog struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Json string `protobuf:"bytes,1,opt,name=json,proto3" json:"json,omitempty"`
-}
-
-func (x *JSONLog) Reset() {
-	*x = JSONLog{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_logging_Logging_proto_msgTypes[3]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *JSONLog) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*JSONLog) ProtoMessage() {}
-
-func (x *JSONLog) ProtoReflect() protoreflect.Message {
-	mi := &file_logging_Logging_proto_msgTypes[3]
-	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 JSONLog.ProtoReflect.Descriptor instead.
-func (*JSONLog) Descriptor() ([]byte, []int) {
-	return file_logging_Logging_proto_rawDescGZIP(), []int{3}
-}
-
-func (x *JSONLog) GetJson() string {
-	if x != nil {
-		return x.Json
-	}
-	return ""
-}
-
-// YAML formatted log. The yaml field represents the string could be formatted as a YAML map.
-type YAMLLog struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Yaml string `protobuf:"bytes,1,opt,name=yaml,proto3" json:"yaml,omitempty"`
-}
-
-func (x *YAMLLog) Reset() {
-	*x = YAMLLog{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_logging_Logging_proto_msgTypes[4]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *YAMLLog) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*YAMLLog) ProtoMessage() {}
-
-func (x *YAMLLog) ProtoReflect() protoreflect.Message {
-	mi := &file_logging_Logging_proto_msgTypes[4]
-	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 YAMLLog.ProtoReflect.Descriptor instead.
-func (*YAMLLog) Descriptor() ([]byte, []int) {
-	return file_logging_Logging_proto_rawDescGZIP(), []int{4}
-}
-
-func (x *YAMLLog) GetYaml() string {
-	if x != nil {
-		return x.Yaml
-	}
-	return ""
-}
-
-// Logs with trace context, represent agent system has injects context(IDs) into log text.
-type TraceContext struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	// [Optional] A string id represents the whole trace.
-	TraceId string `protobuf:"bytes,1,opt,name=traceId,proto3" json:"traceId,omitempty"`
-	// [Optional] A unique id represents this segment. Other segments could use this id to reference as a child segment.
-	TraceSegmentId string `protobuf:"bytes,2,opt,name=traceSegmentId,proto3" json:"traceSegmentId,omitempty"`
-	// [Optional] The number id of the span. Should be unique in the whole segment.
-	// Starting at 0.
-	SpanId int32 `protobuf:"varint,3,opt,name=spanId,proto3" json:"spanId,omitempty"`
-}
-
-func (x *TraceContext) Reset() {
-	*x = TraceContext{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_logging_Logging_proto_msgTypes[5]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *TraceContext) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*TraceContext) ProtoMessage() {}
-
-func (x *TraceContext) ProtoReflect() protoreflect.Message {
-	mi := &file_logging_Logging_proto_msgTypes[5]
-	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 TraceContext.ProtoReflect.Descriptor instead.
-func (*TraceContext) Descriptor() ([]byte, []int) {
-	return file_logging_Logging_proto_rawDescGZIP(), []int{5}
-}
-
-func (x *TraceContext) GetTraceId() string {
-	if x != nil {
-		return x.TraceId
-	}
-	return ""
-}
-
-func (x *TraceContext) GetTraceSegmentId() string {
-	if x != nil {
-		return x.TraceSegmentId
-	}
-	return ""
-}
-
-func (x *TraceContext) GetSpanId() int32 {
-	if x != nil {
-		return x.SpanId
-	}
-	return 0
-}
-
-type LogTags struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	// String key, String value pair.
-	Data []*v3.KeyStringValuePair `protobuf:"bytes,1,rep,name=data,proto3" json:"data,omitempty"`
-}
-
-func (x *LogTags) Reset() {
-	*x = LogTags{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_logging_Logging_proto_msgTypes[6]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *LogTags) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*LogTags) ProtoMessage() {}
-
-func (x *LogTags) ProtoReflect() protoreflect.Message {
-	mi := &file_logging_Logging_proto_msgTypes[6]
-	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 LogTags.ProtoReflect.Descriptor instead.
-func (*LogTags) Descriptor() ([]byte, []int) {
-	return file_logging_Logging_proto_rawDescGZIP(), []int{6}
-}
-
-func (x *LogTags) GetData() []*v3.KeyStringValuePair {
-	if x != nil {
-		return x.Data
-	}
-	return nil
-}
-
-var File_logging_Logging_proto protoreflect.FileDescriptor
-
-var file_logging_Logging_proto_rawDesc = []byte{
-	0x0a, 0x15, 0x6c, 0x6f, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x2f, 0x4c, 0x6f, 0x67, 0x67, 0x69, 0x6e,
-	0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0d, 0x73, 0x6b, 0x79, 0x77, 0x61, 0x6c, 0x6b,
-	0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x1a, 0x13, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2f, 0x43,
-	0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xa4, 0x02, 0x0a, 0x07,
-	0x4c, 0x6f, 0x67, 0x44, 0x61, 0x74, 0x61, 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, 0x18, 0x0a, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65,
-	0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12,
-	0x28, 0x0a, 0x0f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e,
-	0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63,
-	0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x6e, 0x64,
-	0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x6e, 0x64,
-	0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x2e, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x05, 0x20,
-	0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x73, 0x6b, 0x79, 0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67,
-	0x2e, 0x76, 0x33, 0x2e, 0x4c, 0x6f, 0x67, 0x44, 0x61, 0x74, 0x61, 0x42, 0x6f, 0x64, 0x79, 0x52,
-	0x04, 0x62, 0x6f, 0x64, 0x79, 0x12, 0x3f, 0x0a, 0x0c, 0x74, 0x72, 0x61, 0x63, 0x65, 0x43, 0x6f,
-	0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x73, 0x6b,
-	0x79, 0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x54, 0x72, 0x61, 0x63,
-	0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, 0x0c, 0x74, 0x72, 0x61, 0x63, 0x65, 0x43,
-	0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x2a, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07,
-	0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x73, 0x6b, 0x79, 0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e,
-	0x67, 0x2e, 0x76, 0x33, 0x2e, 0x4c, 0x6f, 0x67, 0x54, 0x61, 0x67, 0x73, 0x52, 0x04, 0x74, 0x61,
-	0x67, 0x73, 0x22, 0xb6, 0x01, 0x0a, 0x0b, 0x4c, 0x6f, 0x67, 0x44, 0x61, 0x74, 0x61, 0x42, 0x6f,
-	0x64, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
-	0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x2c, 0x0a, 0x04, 0x74, 0x65, 0x78, 0x74, 0x18, 0x02,
-	0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x73, 0x6b, 0x79, 0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e,
-	0x67, 0x2e, 0x76, 0x33, 0x2e, 0x54, 0x65, 0x78, 0x74, 0x4c, 0x6f, 0x67, 0x48, 0x00, 0x52, 0x04,
-	0x74, 0x65, 0x78, 0x74, 0x12, 0x2c, 0x0a, 0x04, 0x6a, 0x73, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01,
-	0x28, 0x0b, 0x32, 0x16, 0x2e, 0x73, 0x6b, 0x79, 0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x2e,
-	0x76, 0x33, 0x2e, 0x4a, 0x53, 0x4f, 0x4e, 0x4c, 0x6f, 0x67, 0x48, 0x00, 0x52, 0x04, 0x6a, 0x73,
-	0x6f, 0x6e, 0x12, 0x2c, 0x0a, 0x04, 0x79, 0x61, 0x6d, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b,
-	0x32, 0x16, 0x2e, 0x73, 0x6b, 0x79, 0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33,
-	0x2e, 0x59, 0x41, 0x4d, 0x4c, 0x4c, 0x6f, 0x67, 0x48, 0x00, 0x52, 0x04, 0x79, 0x61, 0x6d, 0x6c,
-	0x42, 0x09, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x22, 0x1d, 0x0a, 0x07, 0x54,
-	0x65, 0x78, 0x74, 0x4c, 0x6f, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x65, 0x78, 0x74, 0x18, 0x01,
-	0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x65, 0x78, 0x74, 0x22, 0x1d, 0x0a, 0x07, 0x4a, 0x53,
-	0x4f, 0x4e, 0x4c, 0x6f, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6a, 0x73, 0x6f, 0x6e, 0x18, 0x01, 0x20,
-	0x01, 0x28, 0x09, 0x52, 0x04, 0x6a, 0x73, 0x6f, 0x6e, 0x22, 0x1d, 0x0a, 0x07, 0x59, 0x41, 0x4d,
-	0x4c, 0x4c, 0x6f, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x79, 0x61, 0x6d, 0x6c, 0x18, 0x01, 0x20, 0x01,
-	0x28, 0x09, 0x52, 0x04, 0x79, 0x61, 0x6d, 0x6c, 0x22, 0x68, 0x0a, 0x0c, 0x54, 0x72, 0x61, 0x63,
-	0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x72, 0x61, 0x63,
-	0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x72, 0x61, 0x63, 0x65,
-	0x49, 0x64, 0x12, 0x26, 0x0a, 0x0e, 0x74, 0x72, 0x61, 0x63, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65,
-	0x6e, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x74, 0x72, 0x61, 0x63,
-	0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x70,
-	0x61, 0x6e, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x70, 0x61, 0x6e,
-	0x49, 0x64, 0x22, 0x40, 0x0a, 0x07, 0x4c, 0x6f, 0x67, 0x54, 0x61, 0x67, 0x73, 0x12, 0x35, 0x0a,
-	0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x73, 0x6b,
-	0x79, 0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x4b, 0x65, 0x79, 0x53,
-	0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x50, 0x61, 0x69, 0x72, 0x52, 0x04,
-	0x64, 0x61, 0x74, 0x61, 0x32, 0x52, 0x0a, 0x10, 0x4c, 0x6f, 0x67, 0x52, 0x65, 0x70, 0x6f, 0x72,
-	0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x3e, 0x0a, 0x07, 0x63, 0x6f, 0x6c, 0x6c,
-	0x65, 0x63, 0x74, 0x12, 0x16, 0x2e, 0x73, 0x6b, 0x79, 0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67,
-	0x2e, 0x76, 0x33, 0x2e, 0x4c, 0x6f, 0x67, 0x44, 0x61, 0x74, 0x61, 0x1a, 0x17, 0x2e, 0x73, 0x6b,
-	0x79, 0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x43, 0x6f, 0x6d, 0x6d,
-	0x61, 0x6e, 0x64, 0x73, 0x22, 0x00, 0x28, 0x01, 0x42, 0x6f, 0x0a, 0x2c, 0x6f, 0x72, 0x67, 0x2e,
-	0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2e, 0x73, 0x6b, 0x79, 0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e,
-	0x67, 0x2e, 0x61, 0x70, 0x6d, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x6c, 0x6f,
-	0x67, 0x67, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x50, 0x01, 0x5a, 0x1d, 0x73, 0x6b, 0x79, 0x77,
-	0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x2f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2f, 0x6c,
-	0x6f, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x2f, 0x76, 0x33, 0xaa, 0x02, 0x1d, 0x53, 0x6b, 0x79, 0x57,
-	0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x50, 0x72,
-	0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x56, 0x33, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f,
-	0x33,
-}
-
-var (
-	file_logging_Logging_proto_rawDescOnce sync.Once
-	file_logging_Logging_proto_rawDescData = file_logging_Logging_proto_rawDesc
-)
-
-func file_logging_Logging_proto_rawDescGZIP() []byte {
-	file_logging_Logging_proto_rawDescOnce.Do(func() {
-		file_logging_Logging_proto_rawDescData = protoimpl.X.CompressGZIP(file_logging_Logging_proto_rawDescData)
-	})
-	return file_logging_Logging_proto_rawDescData
-}
-
-var file_logging_Logging_proto_msgTypes = make([]protoimpl.MessageInfo, 7)
-var file_logging_Logging_proto_goTypes = []interface{}{
-	(*LogData)(nil),               // 0: skywalking.v3.LogData
-	(*LogDataBody)(nil),           // 1: skywalking.v3.LogDataBody
-	(*TextLog)(nil),               // 2: skywalking.v3.TextLog
-	(*JSONLog)(nil),               // 3: skywalking.v3.JSONLog
-	(*YAMLLog)(nil),               // 4: skywalking.v3.YAMLLog
-	(*TraceContext)(nil),          // 5: skywalking.v3.TraceContext
-	(*LogTags)(nil),               // 6: skywalking.v3.LogTags
-	(*v3.KeyStringValuePair)(nil), // 7: skywalking.v3.KeyStringValuePair
-	(*v3.Commands)(nil),           // 8: skywalking.v3.Commands
-}
-var file_logging_Logging_proto_depIdxs = []int32{
-	1, // 0: skywalking.v3.LogData.body:type_name -> skywalking.v3.LogDataBody
-	5, // 1: skywalking.v3.LogData.traceContext:type_name -> skywalking.v3.TraceContext
-	6, // 2: skywalking.v3.LogData.tags:type_name -> skywalking.v3.LogTags
-	2, // 3: skywalking.v3.LogDataBody.text:type_name -> skywalking.v3.TextLog
-	3, // 4: skywalking.v3.LogDataBody.json:type_name -> skywalking.v3.JSONLog
-	4, // 5: skywalking.v3.LogDataBody.yaml:type_name -> skywalking.v3.YAMLLog
-	7, // 6: skywalking.v3.LogTags.data:type_name -> skywalking.v3.KeyStringValuePair
-	0, // 7: skywalking.v3.LogReportService.collect:input_type -> skywalking.v3.LogData
-	8, // 8: skywalking.v3.LogReportService.collect:output_type -> skywalking.v3.Commands
-	8, // [8:9] is the sub-list for method output_type
-	7, // [7:8] is the sub-list for method input_type
-	7, // [7:7] is the sub-list for extension type_name
-	7, // [7:7] is the sub-list for extension extendee
-	0, // [0:7] is the sub-list for field type_name
-}
-
-func init() { file_logging_Logging_proto_init() }
-func file_logging_Logging_proto_init() {
-	if File_logging_Logging_proto != nil {
-		return
-	}
-	if !protoimpl.UnsafeEnabled {
-		file_logging_Logging_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*LogData); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_logging_Logging_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*LogDataBody); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_logging_Logging_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*TextLog); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_logging_Logging_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*JSONLog); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_logging_Logging_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*YAMLLog); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_logging_Logging_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*TraceContext); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_logging_Logging_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*LogTags); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-	}
-	file_logging_Logging_proto_msgTypes[1].OneofWrappers = []interface{}{
-		(*LogDataBody_Text)(nil),
-		(*LogDataBody_Json)(nil),
-		(*LogDataBody_Yaml)(nil),
-	}
-	type x struct{}
-	out := protoimpl.TypeBuilder{
-		File: protoimpl.DescBuilder{
-			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
-			RawDescriptor: file_logging_Logging_proto_rawDesc,
-			NumEnums:      0,
-			NumMessages:   7,
-			NumExtensions: 0,
-			NumServices:   1,
-		},
-		GoTypes:           file_logging_Logging_proto_goTypes,
-		DependencyIndexes: file_logging_Logging_proto_depIdxs,
-		MessageInfos:      file_logging_Logging_proto_msgTypes,
-	}.Build()
-	File_logging_Logging_proto = out.File
-	file_logging_Logging_proto_rawDesc = nil
-	file_logging_Logging_proto_goTypes = nil
-	file_logging_Logging_proto_depIdxs = nil
-}
diff --git a/protocol/gen-codes/skywalking/network/logging/v3/Logging_grpc.pb.go b/protocol/gen-codes/skywalking/network/logging/v3/Logging_grpc.pb.go
deleted file mode 100644
index 12167aa..0000000
--- a/protocol/gen-codes/skywalking/network/logging/v3/Logging_grpc.pb.go
+++ /dev/null
@@ -1,142 +0,0 @@
-// Code generated by protoc-gen-go-grpc. DO NOT EDIT.
-
-package v3
-
-import (
-	context "context"
-	grpc "google.golang.org/grpc"
-	codes "google.golang.org/grpc/codes"
-	status "google.golang.org/grpc/status"
-	v3 "skywalking/network/common/v3"
-)
-
-// This is a compile-time assertion to ensure that this generated file
-// is compatible with the grpc package it is being compiled against.
-// Requires gRPC-Go v1.32.0 or later.
-const _ = grpc.SupportPackageIsVersion7
-
-// LogReportServiceClient is the client API for LogReportService service.
-//
-// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.
-type LogReportServiceClient interface {
-	// Recommend to report log data in a stream mode.
-	// The service/instance/endpoint of the log could share the previous value if they are not set.
-	// Reporting the logs of same service in the batch mode could reduce the network cost.
-	Collect(ctx context.Context, opts ...grpc.CallOption) (LogReportService_CollectClient, error)
-}
-
-type logReportServiceClient struct {
-	cc grpc.ClientConnInterface
-}
-
-func NewLogReportServiceClient(cc grpc.ClientConnInterface) LogReportServiceClient {
-	return &logReportServiceClient{cc}
-}
-
-func (c *logReportServiceClient) Collect(ctx context.Context, opts ...grpc.CallOption) (LogReportService_CollectClient, error) {
-	stream, err := c.cc.NewStream(ctx, &LogReportService_ServiceDesc.Streams[0], "/skywalking.v3.LogReportService/collect", opts...)
-	if err != nil {
-		return nil, err
-	}
-	x := &logReportServiceCollectClient{stream}
-	return x, nil
-}
-
-type LogReportService_CollectClient interface {
-	Send(*LogData) error
-	CloseAndRecv() (*v3.Commands, error)
-	grpc.ClientStream
-}
-
-type logReportServiceCollectClient struct {
-	grpc.ClientStream
-}
-
-func (x *logReportServiceCollectClient) Send(m *LogData) error {
-	return x.ClientStream.SendMsg(m)
-}
-
-func (x *logReportServiceCollectClient) CloseAndRecv() (*v3.Commands, error) {
-	if err := x.ClientStream.CloseSend(); err != nil {
-		return nil, err
-	}
-	m := new(v3.Commands)
-	if err := x.ClientStream.RecvMsg(m); err != nil {
-		return nil, err
-	}
-	return m, nil
-}
-
-// LogReportServiceServer is the server API for LogReportService service.
-// All implementations must embed UnimplementedLogReportServiceServer
-// for forward compatibility
-type LogReportServiceServer interface {
-	// Recommend to report log data in a stream mode.
-	// The service/instance/endpoint of the log could share the previous value if they are not set.
-	// Reporting the logs of same service in the batch mode could reduce the network cost.
-	Collect(LogReportService_CollectServer) error
-	mustEmbedUnimplementedLogReportServiceServer()
-}
-
-// UnimplementedLogReportServiceServer must be embedded to have forward compatible implementations.
-type UnimplementedLogReportServiceServer struct {
-}
-
-func (UnimplementedLogReportServiceServer) Collect(LogReportService_CollectServer) error {
-	return status.Errorf(codes.Unimplemented, "method Collect not implemented")
-}
-func (UnimplementedLogReportServiceServer) mustEmbedUnimplementedLogReportServiceServer() {}
-
-// UnsafeLogReportServiceServer may be embedded to opt out of forward compatibility for this service.
-// Use of this interface is not recommended, as added methods to LogReportServiceServer will
-// result in compilation errors.
-type UnsafeLogReportServiceServer interface {
-	mustEmbedUnimplementedLogReportServiceServer()
-}
-
-func RegisterLogReportServiceServer(s grpc.ServiceRegistrar, srv LogReportServiceServer) {
-	s.RegisterService(&LogReportService_ServiceDesc, srv)
-}
-
-func _LogReportService_Collect_Handler(srv interface{}, stream grpc.ServerStream) error {
-	return srv.(LogReportServiceServer).Collect(&logReportServiceCollectServer{stream})
-}
-
-type LogReportService_CollectServer interface {
-	SendAndClose(*v3.Commands) error
-	Recv() (*LogData, error)
-	grpc.ServerStream
-}
-
-type logReportServiceCollectServer struct {
-	grpc.ServerStream
-}
-
-func (x *logReportServiceCollectServer) SendAndClose(m *v3.Commands) error {
-	return x.ServerStream.SendMsg(m)
-}
-
-func (x *logReportServiceCollectServer) Recv() (*LogData, error) {
-	m := new(LogData)
-	if err := x.ServerStream.RecvMsg(m); err != nil {
-		return nil, err
-	}
-	return m, nil
-}
-
-// LogReportService_ServiceDesc is the grpc.ServiceDesc for LogReportService service.
-// It's only intended for direct use with grpc.RegisterService,
-// and not to be introspected or modified (even as a copy)
-var LogReportService_ServiceDesc = grpc.ServiceDesc{
-	ServiceName: "skywalking.v3.LogReportService",
-	HandlerType: (*LogReportServiceServer)(nil),
-	Methods:     []grpc.MethodDesc{},
-	Streams: []grpc.StreamDesc{
-		{
-			StreamName:    "collect",
-			Handler:       _LogReportService_Collect_Handler,
-			ClientStreams: true,
-		},
-	},
-	Metadata: "logging/Logging.proto",
-}
diff --git a/protocol/gen-codes/skywalking/network/management/v3/Management.pb.go b/protocol/gen-codes/skywalking/network/management/v3/Management.pb.go
deleted file mode 100644
index 7feb466..0000000
--- a/protocol/gen-codes/skywalking/network/management/v3/Management.pb.go
+++ /dev/null
@@ -1,284 +0,0 @@
-//
-// 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: management/Management.proto
-
-package v3
-
-import (
-	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
-	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
-	reflect "reflect"
-	v3 "skywalking/network/common/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)
-)
-
-type InstanceProperties struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Service         string                   `protobuf:"bytes,1,opt,name=service,proto3" json:"service,omitempty"`
-	ServiceInstance string                   `protobuf:"bytes,2,opt,name=serviceInstance,proto3" json:"serviceInstance,omitempty"`
-	Properties      []*v3.KeyStringValuePair `protobuf:"bytes,3,rep,name=properties,proto3" json:"properties,omitempty"`
-}
-
-func (x *InstanceProperties) Reset() {
-	*x = InstanceProperties{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_management_Management_proto_msgTypes[0]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *InstanceProperties) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*InstanceProperties) ProtoMessage() {}
-
-func (x *InstanceProperties) ProtoReflect() protoreflect.Message {
-	mi := &file_management_Management_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 InstanceProperties.ProtoReflect.Descriptor instead.
-func (*InstanceProperties) Descriptor() ([]byte, []int) {
-	return file_management_Management_proto_rawDescGZIP(), []int{0}
-}
-
-func (x *InstanceProperties) GetService() string {
-	if x != nil {
-		return x.Service
-	}
-	return ""
-}
-
-func (x *InstanceProperties) GetServiceInstance() string {
-	if x != nil {
-		return x.ServiceInstance
-	}
-	return ""
-}
-
-func (x *InstanceProperties) GetProperties() []*v3.KeyStringValuePair {
-	if x != nil {
-		return x.Properties
-	}
-	return nil
-}
-
-type InstancePingPkg struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Service         string `protobuf:"bytes,1,opt,name=service,proto3" json:"service,omitempty"`
-	ServiceInstance string `protobuf:"bytes,2,opt,name=serviceInstance,proto3" json:"serviceInstance,omitempty"`
-}
-
-func (x *InstancePingPkg) Reset() {
-	*x = InstancePingPkg{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_management_Management_proto_msgTypes[1]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *InstancePingPkg) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*InstancePingPkg) ProtoMessage() {}
-
-func (x *InstancePingPkg) ProtoReflect() protoreflect.Message {
-	mi := &file_management_Management_proto_msgTypes[1]
-	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 InstancePingPkg.ProtoReflect.Descriptor instead.
-func (*InstancePingPkg) Descriptor() ([]byte, []int) {
-	return file_management_Management_proto_rawDescGZIP(), []int{1}
-}
-
-func (x *InstancePingPkg) GetService() string {
-	if x != nil {
-		return x.Service
-	}
-	return ""
-}
-
-func (x *InstancePingPkg) GetServiceInstance() string {
-	if x != nil {
-		return x.ServiceInstance
-	}
-	return ""
-}
-
-var File_management_Management_proto protoreflect.FileDescriptor
-
-var file_management_Management_proto_rawDesc = []byte{
-	0x0a, 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, 0x12, 0x0d, 0x73,
-	0x6b, 0x79, 0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x1a, 0x13, 0x63, 0x6f,
-	0x6d, 0x6d, 0x6f, 0x6e, 0x2f, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74,
-	0x6f, 0x22, 0x9b, 0x01, 0x0a, 0x12, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x50, 0x72,
-	0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x65, 0x72, 0x76,
-	0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69,
-	0x63, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x73,
-	0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x73, 0x65, 0x72,
-	0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x41, 0x0a, 0x0a,
-	0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b,
-	0x32, 0x21, 0x2e, 0x73, 0x6b, 0x79, 0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33,
-	0x2e, 0x4b, 0x65, 0x79, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x50,
-	0x61, 0x69, 0x72, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x22,
-	0x55, 0x0a, 0x0f, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x50, 0x69, 0x6e, 0x67, 0x50,
-	0x6b, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20,
-	0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x28, 0x0a, 0x0f,
-	0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18,
-	0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e,
-	0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x32, 0xb5, 0x01, 0x0a, 0x11, 0x4d, 0x61, 0x6e, 0x61, 0x67,
-	0x65, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x58, 0x0a, 0x18,
-	0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x50, 0x72,
-	0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x12, 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, 0x1a, 0x17, 0x2e, 0x73, 0x6b,
-	0x79, 0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x43, 0x6f, 0x6d, 0x6d,
-	0x61, 0x6e, 0x64, 0x73, 0x22, 0x00, 0x12, 0x46, 0x0a, 0x09, 0x6b, 0x65, 0x65, 0x70, 0x41, 0x6c,
-	0x69, 0x76, 0x65, 0x12, 0x1e, 0x2e, 0x73, 0x6b, 0x79, 0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67,
-	0x2e, 0x76, 0x33, 0x2e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x50, 0x69, 0x6e, 0x67,
-	0x50, 0x6b, 0x67, 0x1a, 0x17, 0x2e, 0x73, 0x6b, 0x79, 0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67,
-	0x2e, 0x76, 0x33, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x73, 0x22, 0x00, 0x42, 0x75,
-	0x0a, 0x2f, 0x6f, 0x72, 0x67, 0x2e, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2e, 0x73, 0x6b, 0x79,
-	0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x61, 0x70, 0x6d, 0x2e, 0x6e, 0x65, 0x74, 0x77,
-	0x6f, 0x72, 0x6b, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x76,
-	0x33, 0x50, 0x01, 0x5a, 0x20, 0x73, 0x6b, 0x79, 0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x2f,
-	0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65,
-	0x6e, 0x74, 0x2f, 0x76, 0x33, 0xaa, 0x02, 0x1d, 0x53, 0x6b, 0x79, 0x57, 0x61, 0x6c, 0x6b, 0x69,
-	0x6e, 0x67, 0x2e, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63,
-	0x6f, 0x6c, 0x2e, 0x56, 0x33, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
-}
-
-var (
-	file_management_Management_proto_rawDescOnce sync.Once
-	file_management_Management_proto_rawDescData = file_management_Management_proto_rawDesc
-)
-
-func file_management_Management_proto_rawDescGZIP() []byte {
-	file_management_Management_proto_rawDescOnce.Do(func() {
-		file_management_Management_proto_rawDescData = protoimpl.X.CompressGZIP(file_management_Management_proto_rawDescData)
-	})
-	return file_management_Management_proto_rawDescData
-}
-
-var file_management_Management_proto_msgTypes = make([]protoimpl.MessageInfo, 2)
-var file_management_Management_proto_goTypes = []interface{}{
-	(*InstanceProperties)(nil),    // 0: skywalking.v3.InstanceProperties
-	(*InstancePingPkg)(nil),       // 1: skywalking.v3.InstancePingPkg
-	(*v3.KeyStringValuePair)(nil), // 2: skywalking.v3.KeyStringValuePair
-	(*v3.Commands)(nil),           // 3: skywalking.v3.Commands
-}
-var file_management_Management_proto_depIdxs = []int32{
-	2, // 0: skywalking.v3.InstanceProperties.properties:type_name -> skywalking.v3.KeyStringValuePair
-	0, // 1: skywalking.v3.ManagementService.reportInstanceProperties:input_type -> skywalking.v3.InstanceProperties
-	1, // 2: skywalking.v3.ManagementService.keepAlive:input_type -> skywalking.v3.InstancePingPkg
-	3, // 3: skywalking.v3.ManagementService.reportInstanceProperties:output_type -> skywalking.v3.Commands
-	3, // 4: skywalking.v3.ManagementService.keepAlive:output_type -> skywalking.v3.Commands
-	3, // [3:5] is the sub-list for method output_type
-	1, // [1:3] is the sub-list for method input_type
-	1, // [1:1] is the sub-list for extension type_name
-	1, // [1:1] is the sub-list for extension extendee
-	0, // [0:1] is the sub-list for field type_name
-}
-
-func init() { file_management_Management_proto_init() }
-func file_management_Management_proto_init() {
-	if File_management_Management_proto != nil {
-		return
-	}
-	if !protoimpl.UnsafeEnabled {
-		file_management_Management_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*InstanceProperties); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_management_Management_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*InstancePingPkg); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-	}
-	type x struct{}
-	out := protoimpl.TypeBuilder{
-		File: protoimpl.DescBuilder{
-			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
-			RawDescriptor: file_management_Management_proto_rawDesc,
-			NumEnums:      0,
-			NumMessages:   2,
-			NumExtensions: 0,
-			NumServices:   1,
-		},
-		GoTypes:           file_management_Management_proto_goTypes,
-		DependencyIndexes: file_management_Management_proto_depIdxs,
-		MessageInfos:      file_management_Management_proto_msgTypes,
-	}.Build()
-	File_management_Management_proto = out.File
-	file_management_Management_proto_rawDesc = nil
-	file_management_Management_proto_goTypes = nil
-	file_management_Management_proto_depIdxs = nil
-}
diff --git a/protocol/gen-codes/skywalking/network/management/v3/Management_grpc.pb.go b/protocol/gen-codes/skywalking/network/management/v3/Management_grpc.pb.go
deleted file mode 100644
index bc63c0f..0000000
--- a/protocol/gen-codes/skywalking/network/management/v3/Management_grpc.pb.go
+++ /dev/null
@@ -1,146 +0,0 @@
-// Code generated by protoc-gen-go-grpc. DO NOT EDIT.
-
-package v3
-
-import (
-	context "context"
-	grpc "google.golang.org/grpc"
-	codes "google.golang.org/grpc/codes"
-	status "google.golang.org/grpc/status"
-	v3 "skywalking/network/common/v3"
-)
-
-// This is a compile-time assertion to ensure that this generated file
-// is compatible with the grpc package it is being compiled against.
-// Requires gRPC-Go v1.32.0 or later.
-const _ = grpc.SupportPackageIsVersion7
-
-// ManagementServiceClient is the client API for ManagementService service.
-//
-// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.
-type ManagementServiceClient interface {
-	// Report custom properties of a service instance.
-	ReportInstanceProperties(ctx context.Context, in *InstanceProperties, opts ...grpc.CallOption) (*v3.Commands, error)
-	// Keep the instance alive in the backend analysis.
-	// Only recommend to do separate keepAlive report when no trace and metrics needs to be reported.
-	// Otherwise, it is duplicated.
-	KeepAlive(ctx context.Context, in *InstancePingPkg, opts ...grpc.CallOption) (*v3.Commands, error)
-}
-
-type managementServiceClient struct {
-	cc grpc.ClientConnInterface
-}
-
-func NewManagementServiceClient(cc grpc.ClientConnInterface) ManagementServiceClient {
-	return &managementServiceClient{cc}
-}
-
-func (c *managementServiceClient) ReportInstanceProperties(ctx context.Context, in *InstanceProperties, opts ...grpc.CallOption) (*v3.Commands, error) {
-	out := new(v3.Commands)
-	err := c.cc.Invoke(ctx, "/skywalking.v3.ManagementService/reportInstanceProperties", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *managementServiceClient) KeepAlive(ctx context.Context, in *InstancePingPkg, opts ...grpc.CallOption) (*v3.Commands, error) {
-	out := new(v3.Commands)
-	err := c.cc.Invoke(ctx, "/skywalking.v3.ManagementService/keepAlive", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-// ManagementServiceServer is the server API for ManagementService service.
-// All implementations must embed UnimplementedManagementServiceServer
-// for forward compatibility
-type ManagementServiceServer interface {
-	// Report custom properties of a service instance.
-	ReportInstanceProperties(context.Context, *InstanceProperties) (*v3.Commands, error)
-	// Keep the instance alive in the backend analysis.
-	// Only recommend to do separate keepAlive report when no trace and metrics needs to be reported.
-	// Otherwise, it is duplicated.
-	KeepAlive(context.Context, *InstancePingPkg) (*v3.Commands, error)
-	mustEmbedUnimplementedManagementServiceServer()
-}
-
-// UnimplementedManagementServiceServer must be embedded to have forward compatible implementations.
-type UnimplementedManagementServiceServer struct {
-}
-
-func (UnimplementedManagementServiceServer) ReportInstanceProperties(context.Context, *InstanceProperties) (*v3.Commands, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method ReportInstanceProperties not implemented")
-}
-func (UnimplementedManagementServiceServer) KeepAlive(context.Context, *InstancePingPkg) (*v3.Commands, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method KeepAlive not implemented")
-}
-func (UnimplementedManagementServiceServer) mustEmbedUnimplementedManagementServiceServer() {}
-
-// UnsafeManagementServiceServer may be embedded to opt out of forward compatibility for this service.
-// Use of this interface is not recommended, as added methods to ManagementServiceServer will
-// result in compilation errors.
-type UnsafeManagementServiceServer interface {
-	mustEmbedUnimplementedManagementServiceServer()
-}
-
-func RegisterManagementServiceServer(s grpc.ServiceRegistrar, srv ManagementServiceServer) {
-	s.RegisterService(&ManagementService_ServiceDesc, srv)
-}
-
-func _ManagementService_ReportInstanceProperties_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(InstanceProperties)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(ManagementServiceServer).ReportInstanceProperties(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/skywalking.v3.ManagementService/reportInstanceProperties",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(ManagementServiceServer).ReportInstanceProperties(ctx, req.(*InstanceProperties))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _ManagementService_KeepAlive_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(InstancePingPkg)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(ManagementServiceServer).KeepAlive(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/skywalking.v3.ManagementService/keepAlive",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(ManagementServiceServer).KeepAlive(ctx, req.(*InstancePingPkg))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-// ManagementService_ServiceDesc is the grpc.ServiceDesc for ManagementService service.
-// It's only intended for direct use with grpc.RegisterService,
-// and not to be introspected or modified (even as a copy)
-var ManagementService_ServiceDesc = grpc.ServiceDesc{
-	ServiceName: "skywalking.v3.ManagementService",
-	HandlerType: (*ManagementServiceServer)(nil),
-	Methods: []grpc.MethodDesc{
-		{
-			MethodName: "reportInstanceProperties",
-			Handler:    _ManagementService_ReportInstanceProperties_Handler,
-		},
-		{
-			MethodName: "keepAlive",
-			Handler:    _ManagementService_KeepAlive_Handler,
-		},
-	},
-	Streams:  []grpc.StreamDesc{},
-	Metadata: "management/Management.proto",
-}
diff --git a/protocol/gen-codes/skywalking/network/servicemesh/v3/service-mesh.pb.go b/protocol/gen-codes/skywalking/network/servicemesh/v3/service-mesh.pb.go
deleted file mode 100644
index 77d6d65..0000000
--- a/protocol/gen-codes/skywalking/network/servicemesh/v3/service-mesh.pb.go
+++ /dev/null
@@ -1,430 +0,0 @@
-//
-// 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: service-mesh-probe/service-mesh.proto
-
-package v3
-
-import (
-	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
-	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
-	reflect "reflect"
-	v3 "skywalking/network/common/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)
-)
-
-type Protocol int32
-
-const (
-	Protocol_HTTP Protocol = 0
-	Protocol_gRPC Protocol = 1
-)
-
-// Enum value maps for Protocol.
-var (
-	Protocol_name = map[int32]string{
-		0: "HTTP",
-		1: "gRPC",
-	}
-	Protocol_value = map[string]int32{
-		"HTTP": 0,
-		"gRPC": 1,
-	}
-)
-
-func (x Protocol) Enum() *Protocol {
-	p := new(Protocol)
-	*p = x
-	return p
-}
-
-func (x Protocol) String() string {
-	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
-}
-
-func (Protocol) Descriptor() protoreflect.EnumDescriptor {
-	return file_service_mesh_probe_service_mesh_proto_enumTypes[0].Descriptor()
-}
-
-func (Protocol) Type() protoreflect.EnumType {
-	return &file_service_mesh_probe_service_mesh_proto_enumTypes[0]
-}
-
-func (x Protocol) Number() protoreflect.EnumNumber {
-	return protoreflect.EnumNumber(x)
-}
-
-// Deprecated: Use Protocol.Descriptor instead.
-func (Protocol) EnumDescriptor() ([]byte, []int) {
-	return file_service_mesh_probe_service_mesh_proto_rawDescGZIP(), []int{0}
-}
-
-type ServiceMeshMetric struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	// Start timestamp in milliseconds of this RPC,
-	// measured between the current time and midnight, January 1, 1970 UTC.
-	StartTime int64 `protobuf:"varint,1,opt,name=startTime,proto3" json:"startTime,omitempty"`
-	// End timestamp in milliseconds of this RPC,
-	// measured between the current time and midnight, January 1, 1970 UTC.
-	EndTime               int64  `protobuf:"varint,2,opt,name=endTime,proto3" json:"endTime,omitempty"`
-	SourceServiceName     string `protobuf:"bytes,3,opt,name=sourceServiceName,proto3" json:"sourceServiceName,omitempty"`
-	SourceServiceInstance string `protobuf:"bytes,4,opt,name=sourceServiceInstance,proto3" json:"sourceServiceInstance,omitempty"`
-	DestServiceName       string `protobuf:"bytes,5,opt,name=destServiceName,proto3" json:"destServiceName,omitempty"`
-	DestServiceInstance   string `protobuf:"bytes,6,opt,name=destServiceInstance,proto3" json:"destServiceInstance,omitempty"`
-	Endpoint              string `protobuf:"bytes,7,opt,name=endpoint,proto3" json:"endpoint,omitempty"`
-	Latency               int32  `protobuf:"varint,8,opt,name=latency,proto3" json:"latency,omitempty"`
-	ResponseCode          int32  `protobuf:"varint,9,opt,name=responseCode,proto3" json:"responseCode,omitempty"`
-	// Status represents the response status of this calling.
-	Status      bool           `protobuf:"varint,10,opt,name=status,proto3" json:"status,omitempty"`
-	Protocol    Protocol       `protobuf:"varint,11,opt,name=protocol,proto3,enum=skywalking.v3.Protocol" json:"protocol,omitempty"`
-	DetectPoint v3.DetectPoint `protobuf:"varint,12,opt,name=detectPoint,proto3,enum=skywalking.v3.DetectPoint" json:"detectPoint,omitempty"`
-	// NONE, mTLS, or TLS
-	TlsMode string `protobuf:"bytes,13,opt,name=tlsMode,proto3" json:"tlsMode,omitempty"`
-	// The sidecar/proxy internal error code, the value bases on the implementation.
-	// The envoy internal error codes are listed here, https://www.envoyproxy.io/docs/envoy/latest/api-v2/data/accesslog/v2/accesslog.proto#data-accesslog-v2-responseflags
-	InternalErrorCode string `protobuf:"bytes,14,opt,name=internalErrorCode,proto3" json:"internalErrorCode,omitempty"`
-}
-
-func (x *ServiceMeshMetric) Reset() {
-	*x = ServiceMeshMetric{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_service_mesh_probe_service_mesh_proto_msgTypes[0]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *ServiceMeshMetric) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*ServiceMeshMetric) ProtoMessage() {}
-
-func (x *ServiceMeshMetric) ProtoReflect() protoreflect.Message {
-	mi := &file_service_mesh_probe_service_mesh_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 ServiceMeshMetric.ProtoReflect.Descriptor instead.
-func (*ServiceMeshMetric) Descriptor() ([]byte, []int) {
-	return file_service_mesh_probe_service_mesh_proto_rawDescGZIP(), []int{0}
-}
-
-func (x *ServiceMeshMetric) GetStartTime() int64 {
-	if x != nil {
-		return x.StartTime
-	}
-	return 0
-}
-
-func (x *ServiceMeshMetric) GetEndTime() int64 {
-	if x != nil {
-		return x.EndTime
-	}
-	return 0
-}
-
-func (x *ServiceMeshMetric) GetSourceServiceName() string {
-	if x != nil {
-		return x.SourceServiceName
-	}
-	return ""
-}
-
-func (x *ServiceMeshMetric) GetSourceServiceInstance() string {
-	if x != nil {
-		return x.SourceServiceInstance
-	}
-	return ""
-}
-
-func (x *ServiceMeshMetric) GetDestServiceName() string {
-	if x != nil {
-		return x.DestServiceName
-	}
-	return ""
-}
-
-func (x *ServiceMeshMetric) GetDestServiceInstance() string {
-	if x != nil {
-		return x.DestServiceInstance
-	}
-	return ""
-}
-
-func (x *ServiceMeshMetric) GetEndpoint() string {
-	if x != nil {
-		return x.Endpoint
-	}
-	return ""
-}
-
-func (x *ServiceMeshMetric) GetLatency() int32 {
-	if x != nil {
-		return x.Latency
-	}
-	return 0
-}
-
-func (x *ServiceMeshMetric) GetResponseCode() int32 {
-	if x != nil {
-		return x.ResponseCode
-	}
-	return 0
-}
-
-func (x *ServiceMeshMetric) GetStatus() bool {
-	if x != nil {
-		return x.Status
-	}
-	return false
-}
-
-func (x *ServiceMeshMetric) GetProtocol() Protocol {
-	if x != nil {
-		return x.Protocol
-	}
-	return Protocol_HTTP
-}
-
-func (x *ServiceMeshMetric) GetDetectPoint() v3.DetectPoint {
-	if x != nil {
-		return x.DetectPoint
-	}
-	return v3.DetectPoint_client
-}
-
-func (x *ServiceMeshMetric) GetTlsMode() string {
-	if x != nil {
-		return x.TlsMode
-	}
-	return ""
-}
-
-func (x *ServiceMeshMetric) GetInternalErrorCode() string {
-	if x != nil {
-		return x.InternalErrorCode
-	}
-	return ""
-}
-
-type MeshProbeDownstream struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-}
-
-func (x *MeshProbeDownstream) Reset() {
-	*x = MeshProbeDownstream{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_service_mesh_probe_service_mesh_proto_msgTypes[1]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *MeshProbeDownstream) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*MeshProbeDownstream) ProtoMessage() {}
-
-func (x *MeshProbeDownstream) ProtoReflect() protoreflect.Message {
-	mi := &file_service_mesh_probe_service_mesh_proto_msgTypes[1]
-	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 MeshProbeDownstream.ProtoReflect.Descriptor instead.
-func (*MeshProbeDownstream) Descriptor() ([]byte, []int) {
-	return file_service_mesh_probe_service_mesh_proto_rawDescGZIP(), []int{1}
-}
-
-var File_service_mesh_probe_service_mesh_proto protoreflect.FileDescriptor
-
-var file_service_mesh_probe_service_mesh_proto_rawDesc = []byte{
-	0x0a, 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, 0x12, 0x0d, 0x73, 0x6b, 0x79, 0x77, 0x61, 0x6c, 0x6b,
-	0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x1a, 0x13, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2f, 0x43,
-	0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xb8, 0x04, 0x0a, 0x11,
-	0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4d, 0x65, 0x73, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69,
-	0x63, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x01,
-	0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12,
-	0x18, 0x0a, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03,
-	0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x2c, 0x0a, 0x11, 0x73, 0x6f, 0x75,
-	0x72, 0x63, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03,
-	0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x65, 0x72, 0x76,
-	0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x34, 0x0a, 0x15, 0x73, 0x6f, 0x75, 0x72, 0x63,
-	0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65,
-	0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x65,
-	0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x28, 0x0a,
-	0x0f, 0x64, 0x65, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65,
-	0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x64, 0x65, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76,
-	0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x30, 0x0a, 0x13, 0x64, 0x65, 0x73, 0x74, 0x53,
-	0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x06,
-	0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x64, 0x65, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63,
-	0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x6e, 0x64,
-	0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x6e, 0x64,
-	0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79,
-	0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x12,
-	0x22, 0x0a, 0x0c, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x18,
-	0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x43,
-	0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0a, 0x20,
-	0x01, 0x28, 0x08, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x33, 0x0a, 0x08, 0x70,
-	0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x17, 0x2e,
-	0x73, 0x6b, 0x79, 0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x50, 0x72,
-	0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c,
-	0x12, 0x3c, 0x0a, 0x0b, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x18,
-	0x0c, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1a, 0x2e, 0x73, 0x6b, 0x79, 0x77, 0x61, 0x6c, 0x6b, 0x69,
-	0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x50, 0x6f, 0x69, 0x6e,
-	0x74, 0x52, 0x0b, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x18,
-	0x0a, 0x07, 0x74, 0x6c, 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52,
-	0x07, 0x74, 0x6c, 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x2c, 0x0a, 0x11, 0x69, 0x6e, 0x74, 0x65,
-	0x72, 0x6e, 0x61, 0x6c, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x0e, 0x20,
-	0x01, 0x28, 0x09, 0x52, 0x11, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x72, 0x72,
-	0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x22, 0x15, 0x0a, 0x13, 0x4d, 0x65, 0x73, 0x68, 0x50, 0x72,
-	0x6f, 0x62, 0x65, 0x44, 0x6f, 0x77, 0x6e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2a, 0x1e, 0x0a,
-	0x08, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x08, 0x0a, 0x04, 0x48, 0x54, 0x54,
-	0x50, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x67, 0x52, 0x50, 0x43, 0x10, 0x01, 0x32, 0x6f, 0x0a,
-	0x18, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4d, 0x65, 0x73, 0x68, 0x4d, 0x65, 0x74, 0x72,
-	0x69, 0x63, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x53, 0x0a, 0x07, 0x63, 0x6f, 0x6c,
-	0x6c, 0x65, 0x63, 0x74, 0x12, 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, 0x1a, 0x22, 0x2e, 0x73, 0x6b, 0x79, 0x77, 0x61, 0x6c, 0x6b,
-	0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x68, 0x50, 0x72, 0x6f, 0x62, 0x65,
-	0x44, 0x6f, 0x77, 0x6e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x22, 0x00, 0x28, 0x01, 0x42, 0x77,
-	0x0a, 0x30, 0x6f, 0x72, 0x67, 0x2e, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2e, 0x73, 0x6b, 0x79,
-	0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x61, 0x70, 0x6d, 0x2e, 0x6e, 0x65, 0x74, 0x77,
-	0x6f, 0x72, 0x6b, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x65, 0x73, 0x68, 0x2e,
-	0x76, 0x33, 0x50, 0x01, 0x5a, 0x21, 0x73, 0x6b, 0x79, 0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67,
-	0x2f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65,
-	0x6d, 0x65, 0x73, 0x68, 0x2f, 0x76, 0x33, 0xaa, 0x02, 0x1d, 0x53, 0x6b, 0x79, 0x57, 0x61, 0x6c,
-	0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x50, 0x72, 0x6f, 0x74,
-	0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x56, 0x33, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
-}
-
-var (
-	file_service_mesh_probe_service_mesh_proto_rawDescOnce sync.Once
-	file_service_mesh_probe_service_mesh_proto_rawDescData = file_service_mesh_probe_service_mesh_proto_rawDesc
-)
-
-func file_service_mesh_probe_service_mesh_proto_rawDescGZIP() []byte {
-	file_service_mesh_probe_service_mesh_proto_rawDescOnce.Do(func() {
-		file_service_mesh_probe_service_mesh_proto_rawDescData = protoimpl.X.CompressGZIP(file_service_mesh_probe_service_mesh_proto_rawDescData)
-	})
-	return file_service_mesh_probe_service_mesh_proto_rawDescData
-}
-
-var file_service_mesh_probe_service_mesh_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
-var file_service_mesh_probe_service_mesh_proto_msgTypes = make([]protoimpl.MessageInfo, 2)
-var file_service_mesh_probe_service_mesh_proto_goTypes = []interface{}{
-	(Protocol)(0),               // 0: skywalking.v3.Protocol
-	(*ServiceMeshMetric)(nil),   // 1: skywalking.v3.ServiceMeshMetric
-	(*MeshProbeDownstream)(nil), // 2: skywalking.v3.MeshProbeDownstream
-	(v3.DetectPoint)(0),         // 3: skywalking.v3.DetectPoint
-}
-var file_service_mesh_probe_service_mesh_proto_depIdxs = []int32{
-	0, // 0: skywalking.v3.ServiceMeshMetric.protocol:type_name -> skywalking.v3.Protocol
-	3, // 1: skywalking.v3.ServiceMeshMetric.detectPoint:type_name -> skywalking.v3.DetectPoint
-	1, // 2: skywalking.v3.ServiceMeshMetricService.collect:input_type -> skywalking.v3.ServiceMeshMetric
-	2, // 3: skywalking.v3.ServiceMeshMetricService.collect:output_type -> skywalking.v3.MeshProbeDownstream
-	3, // [3:4] is the sub-list for method output_type
-	2, // [2:3] is the sub-list for method input_type
-	2, // [2:2] is the sub-list for extension type_name
-	2, // [2:2] is the sub-list for extension extendee
-	0, // [0:2] is the sub-list for field type_name
-}
-
-func init() { file_service_mesh_probe_service_mesh_proto_init() }
-func file_service_mesh_probe_service_mesh_proto_init() {
-	if File_service_mesh_probe_service_mesh_proto != nil {
-		return
-	}
-	if !protoimpl.UnsafeEnabled {
-		file_service_mesh_probe_service_mesh_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*ServiceMeshMetric); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_service_mesh_probe_service_mesh_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*MeshProbeDownstream); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-	}
-	type x struct{}
-	out := protoimpl.TypeBuilder{
-		File: protoimpl.DescBuilder{
-			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
-			RawDescriptor: file_service_mesh_probe_service_mesh_proto_rawDesc,
-			NumEnums:      1,
-			NumMessages:   2,
-			NumExtensions: 0,
-			NumServices:   1,
-		},
-		GoTypes:           file_service_mesh_probe_service_mesh_proto_goTypes,
-		DependencyIndexes: file_service_mesh_probe_service_mesh_proto_depIdxs,
-		EnumInfos:         file_service_mesh_probe_service_mesh_proto_enumTypes,
-		MessageInfos:      file_service_mesh_probe_service_mesh_proto_msgTypes,
-	}.Build()
-	File_service_mesh_probe_service_mesh_proto = out.File
-	file_service_mesh_probe_service_mesh_proto_rawDesc = nil
-	file_service_mesh_probe_service_mesh_proto_goTypes = nil
-	file_service_mesh_probe_service_mesh_proto_depIdxs = nil
-}
diff --git a/protocol/gen-codes/skywalking/network/servicemesh/v3/service-mesh_grpc.pb.go b/protocol/gen-codes/skywalking/network/servicemesh/v3/service-mesh_grpc.pb.go
deleted file mode 100644
index d413879..0000000
--- a/protocol/gen-codes/skywalking/network/servicemesh/v3/service-mesh_grpc.pb.go
+++ /dev/null
@@ -1,136 +0,0 @@
-// Code generated by protoc-gen-go-grpc. DO NOT EDIT.
-
-package v3
-
-import (
-	context "context"
-	grpc "google.golang.org/grpc"
-	codes "google.golang.org/grpc/codes"
-	status "google.golang.org/grpc/status"
-)
-
-// This is a compile-time assertion to ensure that this generated file
-// is compatible with the grpc package it is being compiled against.
-// Requires gRPC-Go v1.32.0 or later.
-const _ = grpc.SupportPackageIsVersion7
-
-// ServiceMeshMetricServiceClient is the client API for ServiceMeshMetricService service.
-//
-// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.
-type ServiceMeshMetricServiceClient interface {
-	Collect(ctx context.Context, opts ...grpc.CallOption) (ServiceMeshMetricService_CollectClient, error)
-}
-
-type serviceMeshMetricServiceClient struct {
-	cc grpc.ClientConnInterface
-}
-
-func NewServiceMeshMetricServiceClient(cc grpc.ClientConnInterface) ServiceMeshMetricServiceClient {
-	return &serviceMeshMetricServiceClient{cc}
-}
-
-func (c *serviceMeshMetricServiceClient) Collect(ctx context.Context, opts ...grpc.CallOption) (ServiceMeshMetricService_CollectClient, error) {
-	stream, err := c.cc.NewStream(ctx, &ServiceMeshMetricService_ServiceDesc.Streams[0], "/skywalking.v3.ServiceMeshMetricService/collect", opts...)
-	if err != nil {
-		return nil, err
-	}
-	x := &serviceMeshMetricServiceCollectClient{stream}
-	return x, nil
-}
-
-type ServiceMeshMetricService_CollectClient interface {
-	Send(*ServiceMeshMetric) error
-	CloseAndRecv() (*MeshProbeDownstream, error)
-	grpc.ClientStream
-}
-
-type serviceMeshMetricServiceCollectClient struct {
-	grpc.ClientStream
-}
-
-func (x *serviceMeshMetricServiceCollectClient) Send(m *ServiceMeshMetric) error {
-	return x.ClientStream.SendMsg(m)
-}
-
-func (x *serviceMeshMetricServiceCollectClient) CloseAndRecv() (*MeshProbeDownstream, error) {
-	if err := x.ClientStream.CloseSend(); err != nil {
-		return nil, err
-	}
-	m := new(MeshProbeDownstream)
-	if err := x.ClientStream.RecvMsg(m); err != nil {
-		return nil, err
-	}
-	return m, nil
-}
-
-// ServiceMeshMetricServiceServer is the server API for ServiceMeshMetricService service.
-// All implementations must embed UnimplementedServiceMeshMetricServiceServer
-// for forward compatibility
-type ServiceMeshMetricServiceServer interface {
-	Collect(ServiceMeshMetricService_CollectServer) error
-	mustEmbedUnimplementedServiceMeshMetricServiceServer()
-}
-
-// UnimplementedServiceMeshMetricServiceServer must be embedded to have forward compatible implementations.
-type UnimplementedServiceMeshMetricServiceServer struct {
-}
-
-func (UnimplementedServiceMeshMetricServiceServer) Collect(ServiceMeshMetricService_CollectServer) error {
-	return status.Errorf(codes.Unimplemented, "method Collect not implemented")
-}
-func (UnimplementedServiceMeshMetricServiceServer) mustEmbedUnimplementedServiceMeshMetricServiceServer() {
-}
-
-// UnsafeServiceMeshMetricServiceServer may be embedded to opt out of forward compatibility for this service.
-// Use of this interface is not recommended, as added methods to ServiceMeshMetricServiceServer will
-// result in compilation errors.
-type UnsafeServiceMeshMetricServiceServer interface {
-	mustEmbedUnimplementedServiceMeshMetricServiceServer()
-}
-
-func RegisterServiceMeshMetricServiceServer(s grpc.ServiceRegistrar, srv ServiceMeshMetricServiceServer) {
-	s.RegisterService(&ServiceMeshMetricService_ServiceDesc, srv)
-}
-
-func _ServiceMeshMetricService_Collect_Handler(srv interface{}, stream grpc.ServerStream) error {
-	return srv.(ServiceMeshMetricServiceServer).Collect(&serviceMeshMetricServiceCollectServer{stream})
-}
-
-type ServiceMeshMetricService_CollectServer interface {
-	SendAndClose(*MeshProbeDownstream) error
-	Recv() (*ServiceMeshMetric, error)
-	grpc.ServerStream
-}
-
-type serviceMeshMetricServiceCollectServer struct {
-	grpc.ServerStream
-}
-
-func (x *serviceMeshMetricServiceCollectServer) SendAndClose(m *MeshProbeDownstream) error {
-	return x.ServerStream.SendMsg(m)
-}
-
-func (x *serviceMeshMetricServiceCollectServer) Recv() (*ServiceMeshMetric, error) {
-	m := new(ServiceMeshMetric)
-	if err := x.ServerStream.RecvMsg(m); err != nil {
-		return nil, err
-	}
-	return m, nil
-}
-
-// ServiceMeshMetricService_ServiceDesc is the grpc.ServiceDesc for ServiceMeshMetricService service.
-// It's only intended for direct use with grpc.RegisterService,
-// and not to be introspected or modified (even as a copy)
-var ServiceMeshMetricService_ServiceDesc = grpc.ServiceDesc{
-	ServiceName: "skywalking.v3.ServiceMeshMetricService",
-	HandlerType: (*ServiceMeshMetricServiceServer)(nil),
-	Methods:     []grpc.MethodDesc{},
-	Streams: []grpc.StreamDesc{
-		{
-			StreamName:    "collect",
-			Handler:       _ServiceMeshMetricService_Collect_Handler,
-			ClientStreams: true,
-		},
-	},
-	Metadata: "service-mesh-probe/service-mesh.proto",
-}
diff --git a/protocol/satellite-protocol/satellite/Event.proto b/protocol/satellite-protocol/satellite/Event.proto
deleted file mode 100644
index 34a8592..0000000
--- a/protocol/satellite-protocol/satellite/Event.proto
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- * 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/tools/install_protoc.sh b/tools/install_protoc.sh
deleted file mode 100755
index 3c7069b..0000000
--- a/tools/install_protoc.sh
+++ /dev/null
@@ -1,43 +0,0 @@
-#!/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 -ex
-
-PROTOC_VERSION=3.14.0
-
-if uname -s | grep MINGW64_NT || uname -s | grep CYGWIN_NT-6.1; then
-  PROTOC_ZIP=protoc-"$PROTOC_VERSION"-win64.zip
-elif uname -s | grep Darwin; then
-  PROTOC_ZIP=protoc-"$PROTOC_VERSION"-osx-x86_64.zip
-elif uname -s | grep Linux; then
-  PROTOC_ZIP=protoc-"$PROTOC_VERSION"-linux-x86_64.zip
-else
-  echo "Sorry, we cannot install protoc for you, please visit https://github.com/protocolbuffers/protobuf and install protoc by yourself."
-fi
-
-curl -OL https://github.com/protocolbuffers/protobuf/releases/download/v"$PROTOC_VERSION"/$PROTOC_ZIP
-mkdir -p $HOME/usr/local
-unzip -o $PROTOC_ZIP -d $HOME/usr/local bin/protoc > /dev/null 2>&1 || true
-unzip -o $PROTOC_ZIP -d $HOME/usr/local bin/protoc.exe > /dev/null 2>&1 || true
-mv $HOME/usr/local/bin/protoc.exe $HOME/usr/local/bin/protoc > /dev/null 2>&1 || true
-chmod 755  $HOME/usr/local/bin/protoc
-rm -f $PROTOC_ZIP
-
-export PATH=$PATH:$HOME/usr/local/bin
-
-protoc --version
diff --git a/tools/protocol_gen.sh b/tools/protocol_gen.sh
deleted file mode 100755
index 8fd0c68..0000000
--- a/tools/protocol_gen.sh
+++ /dev/null
@@ -1,59 +0,0 @@
-#!/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.
-# ----------------------------------------------------------------------------
-
-
-export PATH=$PATH:$HOME/usr/local/bin
-export PROTO_HOME=protocol/all_protocol
-export COLLECT_PROTOCOL_HOME=protocol/skywalking-data-collect-protocol
-export SATELLITE_PROTOCOL_HOME=protocol/satellite-protocol
-export GEN_CODE_PATH=protocol/gen-codes
-
-export COLLECT_PROTOCOL_MODULE=skywalking/network
-
-export GO111MODULE=on
-go get google.golang.org/protobuf/cmd/protoc-gen-go@v1.26.0
-go get google.golang.org/grpc/cmd/protoc-gen-go-grpc@v1.1.0
-export PATH="$PATH:$(go env GOPATH)/bin"
-
-# generate codes by merged proto files
-rm -rf $GEN_CODE_PATH && rm -rf $PROTO_HOME
-mkdir ${PROTO_HOME} && mkdir $GEN_CODE_PATH
-cp -R ${COLLECT_PROTOCOL_HOME}/* ${PROTO_HOME} && cp -R ${SATELLITE_PROTOCOL_HOME}/* ${PROTO_HOME}
-rm -rf ${PROTO_HOME}/*/*Compat.proto && rm -rf ${PROTO_HOME}/*/*compat.proto
-protoc -I=${PROTO_HOME} --go_out=${GEN_CODE_PATH} --go-grpc_out=${GEN_CODE_PATH} ${PROTO_HOME}/*/*.proto
-rm -rf ${PROTO_HOME}
-
-# init  go modules
-cd ${GEN_CODE_PATH}/${COLLECT_PROTOCOL_MODULE}||exit 1
-go mod init ${COLLECT_PROTOCOL_MODULE}
-go mod edit -replace=google.golang.org/grpc=github.com/grpc/grpc-go@v1.36.1
-go mod edit -replace=google.golang.org/protobuf=github.com/golang/protobuf@v1.4.3
-go mod tidy
-go mod vendor
-go build -mod=vendor
-cd -|| exit 1
-
-
-
-
-
-
-