You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@skywalking.apache.org by ke...@apache.org on 2021/02/11 04:24:26 UTC

[skywalking-satellite] branch doc/polish updated (afa1c40 -> 059580c)

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

kezhenxu94 pushed a change to branch doc/polish
in repository https://gitbox.apache.org/repos/asf/skywalking-satellite.git.


 discard afa1c40  Polish the doc and compact the GHA configs
     new 059580c  Polish the doc and compact the GHA configs

This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version.  This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:

 * -- * -- B -- O -- O -- O   (afa1c40)
            \
             N -- N -- N   refs/heads/doc/polish (059580c)

You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.

Any revisions marked "omit" are not gone; other references still
refer to them.  Any revisions marked "discard" are gone forever.

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 go.mod                                             |    1 +
 go.sum                                             |    2 +
 protoc-3.14.0-osx-x86_64.zip                       |  Bin 0 -> 2576755 bytes
 protocol/all_protocol/README.md                    |   14 +
 .asf.yaml => protocol/all_protocol/WORKSPACE       |   42 +-
 .asf.yaml => protocol/all_protocol/bazel/BUILD     |   27 +-
 protocol/all_protocol/bazel/repositories.bzl       |   41 +
 protocol/all_protocol/browser/BrowserPerf.proto    |  111 ++
 .asf.yaml => protocol/all_protocol/common/BUILD    |   33 +-
 protocol/all_protocol/common/Common.proto          |   54 +
 .../event/Event.proto                              |    0
 .../all_protocol/language-agent/BUILD              |   49 +-
 .../all_protocol/language-agent/CLRMetric.proto    |   60 ++
 .../ConfigurationDiscoveryService.proto            |   54 +
 .../all_protocol/language-agent/JVMMetric.proto    |   92 ++
 protocol/all_protocol/language-agent/Meter.proto   |   88 ++
 protocol/all_protocol/language-agent/Tracing.proto |  223 ++++
 protocol/all_protocol/logging/Logging.proto        |  114 +++
 protocol/all_protocol/management/Management.proto  |   53 +
 protocol/all_protocol/profile/Profile.proto        |   82 ++
 .../service-mesh-probe/service-mesh.proto          |   67 ++
 .../all_protocol/tools/check-license-header.py     |   70 ++
 protocol/gen-codes/satellite/protocol/Event.pb.go  |  498 ---------
 .../v3/ConfigurationDiscoveryService.pb.go         |  203 ----
 .../v3/ConfigurationDiscoveryService_grpc.pb.go    |  119 ---
 .../skywalking/network/common/v3/Common.pb.go      |  441 --------
 protocol/gen-codes/skywalking/network/go.mod       |    9 -
 protocol/gen-codes/skywalking/network/go.sum       |   85 --
 .../network/language/agent/v3/BrowserPerf.pb.go    |  632 ------------
 .../language/agent/v3/BrowserPerf_grpc.pb.go       |  177 ----
 .../network/language/agent/v3/CLRMetric.pb.go      |  500 ---------
 .../network/language/agent/v3/CLRMetric_grpc.pb.go |  103 --
 .../network/language/agent/v3/JVMMetric.pb.go      |  815 ---------------
 .../network/language/agent/v3/JVMMetric_grpc.pb.go |  103 --
 .../network/language/agent/v3/Meter.pb.go          |  657 ------------
 .../network/language/agent/v3/Meter_grpc.pb.go     |  138 ---
 .../network/language/agent/v3/Tracing.pb.go        | 1067 --------------------
 .../network/language/agent/v3/Tracing_grpc.pb.go   |  188 ----
 .../network/language/profile/v3/Profile.pb.go      |  484 ---------
 .../network/language/profile/v3/Profile_grpc.pb.go |  215 ----
 .../skywalking/network/logging/v3/Logging.pb.go    |  753 --------------
 .../network/logging/v3/Logging_grpc.pb.go          |  142 ---
 .../network/management/v3/Management.pb.go         |  289 ------
 .../network/management/v3/Management_grpc.pb.go    |  146 ---
 .../network/servicemesh/v3/service-mesh.pb.go      |  435 --------
 .../network/servicemesh/v3/service-mesh_grpc.pb.go |  136 ---
 tools/install_protoc.sh                            |    3 +-
 47 files changed, 1181 insertions(+), 8434 deletions(-)
 create mode 100644 protoc-3.14.0-osx-x86_64.zip
 create mode 100644 protocol/all_protocol/README.md
 copy .asf.yaml => protocol/all_protocol/WORKSPACE (58%)
 copy .asf.yaml => protocol/all_protocol/bazel/BUILD (58%)
 create mode 100644 protocol/all_protocol/bazel/repositories.bzl
 create mode 100644 protocol/all_protocol/browser/BrowserPerf.proto
 copy .asf.yaml => protocol/all_protocol/common/BUILD (58%)
 create mode 100644 protocol/all_protocol/common/Common.proto
 copy protocol/{satellite-protocol => all_protocol}/event/Event.proto (100%)
 copy .asf.yaml => protocol/all_protocol/language-agent/BUILD (53%)
 create mode 100644 protocol/all_protocol/language-agent/CLRMetric.proto
 create mode 100644 protocol/all_protocol/language-agent/ConfigurationDiscoveryService.proto
 create mode 100644 protocol/all_protocol/language-agent/JVMMetric.proto
 create mode 100644 protocol/all_protocol/language-agent/Meter.proto
 create mode 100644 protocol/all_protocol/language-agent/Tracing.proto
 create mode 100644 protocol/all_protocol/logging/Logging.proto
 create mode 100644 protocol/all_protocol/management/Management.proto
 create mode 100644 protocol/all_protocol/profile/Profile.proto
 create mode 100644 protocol/all_protocol/service-mesh-probe/service-mesh.proto
 create mode 100644 protocol/all_protocol/tools/check-license-header.py
 delete mode 100644 protocol/gen-codes/satellite/protocol/Event.pb.go
 delete mode 100644 protocol/gen-codes/skywalking/network/agent/configuration/v3/ConfigurationDiscoveryService.pb.go
 delete mode 100644 protocol/gen-codes/skywalking/network/agent/configuration/v3/ConfigurationDiscoveryService_grpc.pb.go
 delete mode 100644 protocol/gen-codes/skywalking/network/common/v3/Common.pb.go
 delete mode 100644 protocol/gen-codes/skywalking/network/go.mod
 delete mode 100644 protocol/gen-codes/skywalking/network/go.sum
 delete mode 100644 protocol/gen-codes/skywalking/network/language/agent/v3/BrowserPerf.pb.go
 delete mode 100644 protocol/gen-codes/skywalking/network/language/agent/v3/BrowserPerf_grpc.pb.go
 delete mode 100644 protocol/gen-codes/skywalking/network/language/agent/v3/CLRMetric.pb.go
 delete mode 100644 protocol/gen-codes/skywalking/network/language/agent/v3/CLRMetric_grpc.pb.go
 delete mode 100644 protocol/gen-codes/skywalking/network/language/agent/v3/JVMMetric.pb.go
 delete mode 100644 protocol/gen-codes/skywalking/network/language/agent/v3/JVMMetric_grpc.pb.go
 delete mode 100644 protocol/gen-codes/skywalking/network/language/agent/v3/Meter.pb.go
 delete mode 100644 protocol/gen-codes/skywalking/network/language/agent/v3/Meter_grpc.pb.go
 delete mode 100644 protocol/gen-codes/skywalking/network/language/agent/v3/Tracing.pb.go
 delete mode 100644 protocol/gen-codes/skywalking/network/language/agent/v3/Tracing_grpc.pb.go
 delete mode 100644 protocol/gen-codes/skywalking/network/language/profile/v3/Profile.pb.go
 delete mode 100644 protocol/gen-codes/skywalking/network/language/profile/v3/Profile_grpc.pb.go
 delete mode 100644 protocol/gen-codes/skywalking/network/logging/v3/Logging.pb.go
 delete mode 100644 protocol/gen-codes/skywalking/network/logging/v3/Logging_grpc.pb.go
 delete mode 100644 protocol/gen-codes/skywalking/network/management/v3/Management.pb.go
 delete mode 100644 protocol/gen-codes/skywalking/network/management/v3/Management_grpc.pb.go
 delete mode 100644 protocol/gen-codes/skywalking/network/servicemesh/v3/service-mesh.pb.go
 delete mode 100644 protocol/gen-codes/skywalking/network/servicemesh/v3/service-mesh_grpc.pb.go


[skywalking-satellite] 01/01: Polish the doc and compact the GHA configs

Posted by ke...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit 059580cd0d0ff0e7ca960a0d48e7e788fa216f60
Author: kezhenxu94 <ke...@apache.org>
AuthorDate: Thu Feb 11 11:10:15 2021 +0800

    Polish the doc and compact the GHA configs
---
 .github/workflows/build-and-test.yaml              |   62 +-
 .licenserc.yaml                                    |   36 +
 Makefile                                           |    8 +-
 README.md                                          |    2 +-
 docs/en/concepts-and-designs/project-goals.md      |    8 +-
 docs/en/guides/contribuation/plugin.md             |    2 +-
 docs/en/setup/README.md                            |    4 +-
 docs/en/setup/configuration/common.md              |    6 +-
 .../en/setup/plugins/fallbacker_none-fallbacker.md |    2 +-
 go.mod                                             |    1 +
 go.sum                                             |    2 +
 plugins/fallbacker/none/none_fallbacker.go         |    2 +-
 .../{queue_opreation.go => queue_operation.go}     |    0
 protoc-3.14.0-osx-x86_64.zip                       |  Bin 0 -> 2576755 bytes
 protocol/all_protocol/README.md                    |   14 +
 .../all_protocol/WORKSPACE                         |   30 +-
 .../all_protocol/bazel/BUILD                       |   17 +-
 protocol/all_protocol/bazel/repositories.bzl       |   41 +
 protocol/all_protocol/browser/BrowserPerf.proto    |  111 ++
 .../all_protocol/common/BUILD                      |   21 +-
 protocol/all_protocol/common/Common.proto          |   54 +
 protocol/all_protocol/event/Event.proto            |   72 ++
 .../all_protocol/language-agent/BUILD              |   37 +-
 .../all_protocol/language-agent/CLRMetric.proto    |   60 ++
 .../ConfigurationDiscoveryService.proto            |   54 +
 .../all_protocol/language-agent/JVMMetric.proto    |   92 ++
 protocol/all_protocol/language-agent/Meter.proto   |   88 ++
 protocol/all_protocol/language-agent/Tracing.proto |  223 ++++
 protocol/all_protocol/logging/Logging.proto        |  114 +++
 protocol/all_protocol/management/Management.proto  |   53 +
 protocol/all_protocol/profile/Profile.proto        |   82 ++
 .../service-mesh-probe/service-mesh.proto          |   67 ++
 .../all_protocol/tools/check-license-header.py     |   70 ++
 protocol/gen-codes/satellite/protocol/Event.pb.go  |  498 ---------
 .../v3/ConfigurationDiscoveryService.pb.go         |  203 ----
 .../v3/ConfigurationDiscoveryService_grpc.pb.go    |  119 ---
 .../skywalking/network/common/v3/Common.pb.go      |  441 --------
 protocol/gen-codes/skywalking/network/go.mod       |    9 -
 protocol/gen-codes/skywalking/network/go.sum       |   85 --
 .../network/language/agent/v3/BrowserPerf.pb.go    |  632 ------------
 .../language/agent/v3/BrowserPerf_grpc.pb.go       |  177 ----
 .../network/language/agent/v3/CLRMetric.pb.go      |  500 ---------
 .../network/language/agent/v3/CLRMetric_grpc.pb.go |  103 --
 .../network/language/agent/v3/JVMMetric.pb.go      |  815 ---------------
 .../network/language/agent/v3/JVMMetric_grpc.pb.go |  103 --
 .../network/language/agent/v3/Meter.pb.go          |  657 ------------
 .../network/language/agent/v3/Meter_grpc.pb.go     |  138 ---
 .../network/language/agent/v3/Tracing.pb.go        | 1067 --------------------
 .../network/language/agent/v3/Tracing_grpc.pb.go   |  188 ----
 .../network/language/profile/v3/Profile.pb.go      |  484 ---------
 .../network/language/profile/v3/Profile_grpc.pb.go |  215 ----
 .../skywalking/network/logging/v3/Logging.pb.go    |  753 --------------
 .../network/logging/v3/Logging_grpc.pb.go          |  142 ---
 .../network/management/v3/Management.pb.go         |  289 ------
 .../network/management/v3/Management_grpc.pb.go    |  146 ---
 .../network/servicemesh/v3/service-mesh.pb.go      |  435 --------
 .../network/servicemesh/v3/service-mesh_grpc.pb.go |  136 ---
 tools/install_protoc.sh                            |   25 +-
 tools/protocol_gen.sh                              |    2 +-
 59 files changed, 1328 insertions(+), 8469 deletions(-)

diff --git a/.github/workflows/build-and-test.yaml b/.github/workflows/build-and-test.yaml
index 7eb20c1..90a2200 100644
--- a/.github/workflows/build-and-test.yaml
+++ b/.github/workflows/build-and-test.yaml
@@ -21,59 +21,16 @@ on:
   push:
     branches:
       - main
+      - doc/polish
 
 jobs:
-  CI-Windows:
-    runs-on: windows-latest
-    timeout-minutes: 90
-    strategy:
-      matrix:
-        go-version: [ 1.14, 1.15 ]
-      fail-fast: true
-    steps:
-      - name: Set up Go ${{ matrix.go-version }}
-        uses: actions/setup-go@v2
-        with:
-          go-version: ${{ matrix.go-version }}
-      - name: Check out code into the Go module directory
-        uses: actions/checkout@v2
-        with:
-          submodules: true
-      - name: Get dependencies
-        run: make deps
-      - name: Test
-        run: make test
-      - name: Build
-        run: make build
-
-  CI-MacOS:
-    runs-on: macos-latest
-    timeout-minutes: 90
-    strategy:
-      matrix:
-        go-version: [ 1.14, 1.15 ]
-      fail-fast: true
-    steps:
-      - name: Set up Go ${{ matrix.go-version }}
-        uses: actions/setup-go@v2
-        with:
-          go-version: ${{ matrix.go-version }}
-      - name: Check out code into the Go module directory
-        uses: actions/checkout@v2
-        with:
-          submodules: true
-      - name: Get dependencies
-        run: make deps
-      - name: Test
-        run: make test
-      - name: Build
-        run: make build
   CI:
-    runs-on: ubuntu-latest
-    timeout-minutes: 90
+    runs-on: ${{ matrix.runner }}-latest
+    timeout-minutes: 30
     strategy:
       matrix:
         go-version: [ 1.14, 1.15 ]
+        runner: [ ubuntu, macos, windows ]
       fail-fast: true
     steps:
       - name: Set up Go ${{ matrix.go-version }}
@@ -85,22 +42,27 @@ jobs:
         with:
           submodules: true
       - name: Check License
-        run: make license
+        if: matrix.runner == 'ubuntu'
+        uses: apache/skywalking-eyes@9bd5feb86b5817aa6072b008f9866a2c3bbc8587
+        env:
+          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
       - name: Get dependencies
         run: make deps
       - name: Check generate
         run: make gen && make build
       - name: Check CI Consistency
-        if: matrix.go-version == '1.15'
+        if: matrix.go-version == '1.15' && matrix.runner == 'ubuntu'
         run: make check
       - name: Lint
         run: make lint
       - name: Test
         run: make test
+      - name: Build
+        run: make build
 
   result:
     runs-on: ubuntu-latest
-    timeout-minutes: 90
+    timeout-minutes: 30
     needs: [ CI ]
     steps:
       - name: Build Result
diff --git a/.licenserc.yaml b/.licenserc.yaml
new file mode 100644
index 0000000..45dc67c
--- /dev/null
+++ b/.licenserc.yaml
@@ -0,0 +1,36 @@
+#
+# 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.
+#
+
+header:
+  license:
+    spdx-id: Apache-2.0
+    copyright-owner: Apache Software Foundation
+
+  paths-ignore:
+    - '**/gen-codes/**'
+    - '**/*.md'
+    - .gitignore
+    - .gitmodules
+    - LICENSE
+    - NOTICE
+    - go.mod
+    - go.sum
+    - plugins/queue/mmap/queue_operation.go
+
+  comment: on-failure
diff --git a/Makefile b/Makefile
index a1251cd..0230b7a 100644
--- a/Makefile
+++ b/Makefile
@@ -33,7 +33,6 @@ GO_BUILD = $(GO) build
 GO_GET = $(GO) get
 GO_TEST = $(GO) test
 GO_LINT = $(GO_PATH)/bin/golangci-lint
-GO_LICENSER = $(GO_PATH)/bin/go-licenser
 GO_BUILD_FLAGS = -v
 GO_BUILD_LDFLAGS = -X main.version=$(VERSION)
 GQL_GEN = $(GO_PATH)/bin/gqlgen
@@ -49,7 +48,6 @@ all: deps verify build check
 .PHONY: tools
 tools:
 	$(GO_LINT) version || curl -sfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b $(GO_PATH)/bin v1.33.0
-	$(GO_LICENSER) -version || GO111MODULE=off $(GO_GET) -u github.com/elastic/go-licenser
 
 deps: tools
 	$(GO_GET) -v -t -d ./...
@@ -67,12 +65,8 @@ lint: tools
 test: clean
 	$(GO_TEST) ./... -coverprofile=coverage.txt -covermode=atomic
 
-.PHONY: license
-license: clean tools
-	$(GO_LICENSER) -d -exclude=plugins/queue/mmap/queue_opreation.go -exclude=protocol/gen-codes -licensor='Apache Software Foundation (ASF)' ./
-
 .PHONY: verify
-verify: clean license lint test
+verify: clean lint test
 
 .PHONY: clean
 clean: tools
diff --git a/README.md b/README.md
index 67d2417..f46a0d9 100644
--- a/README.md
+++ b/README.md
@@ -15,7 +15,7 @@ Apache SkyWalking Satellite
 NOTICE, SkyWalking Satellite uses [v3 protocols](https://github.com/apache/skywalking/blob/master/docs/en/protocols/README.md). They are incompatible with previous SkyWalking releases before SkyWalking 8.0.
 
 # Download
-Go to the [download page](https://skywalking.apache.org/downloads/) to download all available binaries, including MacOS, Linux and Windows. Due to system compatibility problems, some plugins of SkyWalking Satellite cannot be used in Windows system. Check [the corresponding documentation](./docs/en/guides/compile/compile.md) to see whether the plugin is available on Windows.
+Go to the [download page](https://skywalking.apache.org/downloads/) to download all available binaries, including MacOS, Linux and Windows. Due to system compatibility problems, some plugins of SkyWalking Satellite cannot be used in Windows system. Check [the corresponding documentation](./docs/en/setup/plugins) to see whether the plugin is available on Windows.
 
 # Compile
 As SkyWalking Satellite is using `Makefile`, compiling the project is as easy as executing a command in the root directory of the project.
diff --git a/docs/en/concepts-and-designs/project-goals.md b/docs/en/concepts-and-designs/project-goals.md
index c620f4c..c8795b2 100644
--- a/docs/en/concepts-and-designs/project-goals.md
+++ b/docs/en/concepts-and-designs/project-goals.md
@@ -3,13 +3,13 @@ The document outlines the core design goals for SkyWalking Satellite project.
 
 - **Light Weight**. SkyWalking Satellite has a limited cost for resources and high-performance because of the requirements of the sidecar deployment model.
 
-- **Pluggable**. SkyWalking Satellite core team provides many default implementations, but definitely it is not enough,
+- **Pluggability**. SkyWalking Satellite core team provides many default implementations, but definitely it is not enough,
 and also don't fit every scenario. So, we provide a lot of features for being pluggable. 
 
 - **Portability**. SkyWalking Satellite can run in multiple environments, including: 
-    - Use traditional deployment as a demon process to collect data.
-    - Use cloud services as a sidecar, such as in the kubernetes platform.
+    - Use traditional deployment as a daemon process to collect data.
+    - Use cloud services as a sidecar, such as in the Kubernetes platform.
 
-- **Interop**.  Observability is a big landscape, SkyWalking is impossible to support all, even by its community. So SkyWalking Satellite is compatible with many protocols, including: 
+- **Interoperability**. Observability is a big landscape, SkyWalking is impossible to support all, even by its community. So SkyWalking Satellite is compatible with many protocols, including: 
     - SkyWalking protocol
     - (WIP) Prometheus protocol.
diff --git a/docs/en/guides/contribuation/plugin.md b/docs/en/guides/contribuation/plugin.md
index ffbd624..b2f4a61 100644
--- a/docs/en/guides/contribuation/plugin.md
+++ b/docs/en/guides/contribuation/plugin.md
@@ -2,7 +2,7 @@
 If you want to add a custom plugin in SkyWalking Satellite, the following contents would guide you.
 Let's use memory-queue as an example of how to write a plugin.
 
-1. Choose the plugin category. According to the memory-queue is a queue, the plugin should be write in the **skywalking-satellite/plugins/queue** directory. So we create a new directory called memory as the plugin codes space.  
+1. Choose the plugin category. As the memory-queue is a queue, the plugin should be written in the **skywalking-satellite/plugins/queue** directory. So we create a new directory called memory as the plugin codes space.  
 
 2. Implement the interface in the **skywalking-satellite/plugins/queue/api**. Each plugin has 3 common methods, which are Name(), Description(), DefaultConfig().
     - Name() returns the unique name in the plugin category.
diff --git a/docs/en/setup/README.md b/docs/en/setup/README.md
index 77a2d2c..3c5ab09 100644
--- a/docs/en/setup/README.md
+++ b/docs/en/setup/README.md
@@ -1,5 +1,5 @@
 # Setup
-First and most important thing is, SkyWalking Satellite startup behaviours are driven by configs/satellite_config.yaml. Understood the setting file will help you to read this document.
+First and most important thing is, SkyWalking Satellite startup behaviours are driven by configs/satellite_config.yaml. Understanding the setting file will help you to read this document.
 
 ## Startup script
 The startup script is /bin/skywalking-satellite-{version}-{plateform}-amd64. 
@@ -16,4 +16,4 @@ So, in satellite_config.yaml, there are three parts.
 3. [The pipe plugin configurations](./configuration/pipe-plugins.md).
 
 ## Advanced feature document link list
-1. [Overriding settings](./configuration/override-settings.md) in satellite_config.yaml is supported
\ No newline at end of file
+1. [Overriding settings](./configuration/override-settings.md) in satellite_config.yaml is supported
diff --git a/docs/en/setup/configuration/common.md b/docs/en/setup/configuration/common.md
index e4581e2..4990d01 100644
--- a/docs/en/setup/configuration/common.md
+++ b/docs/en/setup/configuration/common.md
@@ -12,7 +12,7 @@ configuration and the telemetry configuration.
 ## Self Telemetry
 |  Config   |Default| Description  |
 |  ----  | ----  | ----  |
-| cluster  | default-cluster | The space concept for the deployment, such as the namespace concept in the kubernetes.|
-| service  | default-service | The group concept for the deployment, such as the service resource concept in the kubernetes.|
-| instance  | default-instance |The minimum running unit, such as the pod concept in the kubernetes.|
+| cluster  | default-cluster | The space concept for the deployment, such as the namespace concept in the Kubernetes.|
+| service  | default-service | The group concept for the deployment, such as the service resource concept in the Kubernetes.|
+| instance  | default-instance |The minimum running unit, such as the pod concept in the Kubernetes.|
 
diff --git a/docs/en/setup/plugins/fallbacker_none-fallbacker.md b/docs/en/setup/plugins/fallbacker_none-fallbacker.md
index 4b8fa4d..b425422 100755
--- a/docs/en/setup/plugins/fallbacker_none-fallbacker.md
+++ b/docs/en/setup/plugins/fallbacker_none-fallbacker.md
@@ -1,5 +1,5 @@
 # Fallbacker/none-fallbacker
 ## Description
-The fallbacker would nothing to do when facing failure data.
+The fallbacker would do nothing when facing failure data.
 ## DefaultConfig
 ```yaml```
diff --git a/go.mod b/go.mod
index 0c7e00c..08981e8 100644
--- a/go.mod
+++ b/go.mod
@@ -15,6 +15,7 @@ require (
 	github.com/spf13/viper v1.7.1
 	github.com/urfave/cli/v2 v2.3.0
 	google.golang.org/grpc v1.35.0
+	google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0 // indirect
 	google.golang.org/protobuf v1.25.0
 	skywalking/network v1.0.0
 )
diff --git a/go.sum b/go.sum
index 13be86f..f615de1 100644
--- a/go.sum
+++ b/go.sum
@@ -591,6 +591,8 @@ google.golang.org/grpc v1.27.0 h1:rRYRFMVgRv6E0D70Skyfsr28tDXIuuPZyWGMPdMcnXg=
 google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk=
 google.golang.org/grpc v1.35.0 h1:TwIQcH3es+MojMVojxxfQ3l3OF2KzlRxML2xZq0kRo8=
 google.golang.org/grpc v1.35.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU=
+google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0 h1:M1YKkFIboKNieVO5DLUEVzQfGwJD30Nv2jfUgzb5UcE=
+google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0/go.mod h1:6Kw0yEErY5E/yWrBtf03jp27GLLJujG4z/JK95pnjjw=
 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=
diff --git a/plugins/fallbacker/none/none_fallbacker.go b/plugins/fallbacker/none/none_fallbacker.go
index ffb4822..f61cff1 100644
--- a/plugins/fallbacker/none/none_fallbacker.go
+++ b/plugins/fallbacker/none/none_fallbacker.go
@@ -34,7 +34,7 @@ func (f *Fallbacker) Name() string {
 }
 
 func (f *Fallbacker) Description() string {
-	return "The fallbacker would nothing to do when facing failure data."
+	return "The fallbacker would do nothing when facing failure data."
 }
 
 func (f *Fallbacker) DefaultConfig() string {
diff --git a/plugins/queue/mmap/queue_opreation.go b/plugins/queue/mmap/queue_operation.go
similarity index 100%
rename from plugins/queue/mmap/queue_opreation.go
rename to plugins/queue/mmap/queue_operation.go
diff --git a/protoc-3.14.0-osx-x86_64.zip b/protoc-3.14.0-osx-x86_64.zip
new file mode 100644
index 0000000..c5f5cdd
Binary files /dev/null and b/protoc-3.14.0-osx-x86_64.zip differ
diff --git a/protocol/all_protocol/README.md b/protocol/all_protocol/README.md
new file mode 100644
index 0000000..b80cc06
--- /dev/null
+++ b/protocol/all_protocol/README.md
@@ -0,0 +1,14 @@
+# Apache SkyWalking data collect protocol
+Apache SkyWalking typically collect data from 
+1. Tracing agent.
+1. Service mesh proxy, especially Envoy controlled by Istio.
+1. Meter data, also known pure metrics data.
+1. Logs.
+
+This repo hosts the protocol of SkyWalking native report protocol, defined in gRPC. Read [Protocol DOC](https://github.com/apache/skywalking/blob/master/docs/en/protocols/README.md#probe-protocols) for more details
+
+## Release
+This repo wouldn't release separately. All source codes have been included in the main repo release. The tags match the [main repo](https://github.com/apache/skywalking) tags.
+
+## License
+Apache 2.0
diff --git a/tools/install_protoc.sh b/protocol/all_protocol/WORKSPACE
old mode 100755
new mode 100644
similarity index 57%
copy from tools/install_protoc.sh
copy to protocol/all_protocol/WORKSPACE
index 5cecfda..e0d778b
--- a/tools/install_protoc.sh
+++ b/protocol/all_protocol/WORKSPACE
@@ -1,5 +1,3 @@
-#!/usr/bin/env bash
-
 #
 # Licensed to the Apache Software Foundation (ASF) under one or more
 # contributor license agreements.  See the NOTICE file distributed with
@@ -8,7 +6,7 @@
 # (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
+#     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,
@@ -17,16 +15,22 @@
 # limitations under the License.
 #
 
+workspace(name = "skywalking_data_collect_protocol")
+
+load("//bazel:repositories.bzl", "skywalking_data_collect_protocol_dependencies")
+
+skywalking_data_collect_protocol_dependencies()
+
+load("@rules_proto//proto:repositories.bzl", "rules_proto_dependencies", "rules_proto_toolchains")
+
+rules_proto_dependencies()
+
+rules_proto_toolchains()
+
+load("@com_github_grpc_grpc//bazel:grpc_deps.bzl", "grpc_deps")
 
-if [[ "$(uname)"=="Darwin" || "$(expr substr $(uname -s) 1 10)"=="MINGW32_NT" ]];then
-  echo "sorry, please install protoc by yourself."
-  exit 1
-fi
+grpc_deps()
 
-PROTOC_ZIP=protoc-3.14.0-linux-x86_64.zip
-curl -OL https://github.com/protocolbuffers/protobuf/releases/download/v3.14.0/$PROTOC_ZIP
-sudo unzip -o $PROTOC_ZIP -d /usr/local bin/protoc
-sudo chmod 755  /usr/local/bin/protoc
-rm -f $PROTOC_ZIP
+load("@com_github_grpc_grpc//bazel:grpc_extra_deps.bzl", "grpc_extra_deps")
 
-echo `protoc --version`
+grpc_extra_deps()
diff --git a/tools/install_protoc.sh b/protocol/all_protocol/bazel/BUILD
old mode 100755
new mode 100644
similarity index 60%
copy from tools/install_protoc.sh
copy to protocol/all_protocol/bazel/BUILD
index 5cecfda..5f2cf4c
--- a/tools/install_protoc.sh
+++ b/protocol/all_protocol/bazel/BUILD
@@ -1,4 +1,3 @@
-#!/usr/bin/env bash
 
 #
 # Licensed to the Apache Software Foundation (ASF) under one or more
@@ -8,7 +7,7 @@
 # (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
+#     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,
@@ -16,17 +15,3 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 #
-
-
-if [[ "$(uname)"=="Darwin" || "$(expr substr $(uname -s) 1 10)"=="MINGW32_NT" ]];then
-  echo "sorry, please install protoc by yourself."
-  exit 1
-fi
-
-PROTOC_ZIP=protoc-3.14.0-linux-x86_64.zip
-curl -OL https://github.com/protocolbuffers/protobuf/releases/download/v3.14.0/$PROTOC_ZIP
-sudo unzip -o $PROTOC_ZIP -d /usr/local bin/protoc
-sudo chmod 755  /usr/local/bin/protoc
-rm -f $PROTOC_ZIP
-
-echo `protoc --version`
diff --git a/protocol/all_protocol/bazel/repositories.bzl b/protocol/all_protocol/bazel/repositories.bzl
new file mode 100644
index 0000000..481a762
--- /dev/null
+++ b/protocol/all_protocol/bazel/repositories.bzl
@@ -0,0 +1,41 @@
+#
+# 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.
+#
+
+load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
+
+def skywalking_data_collect_protocol_dependencies():
+  rules_proto()
+  com_github_grpc_grpc()
+
+def com_github_grpc_grpc():
+  http_archive(
+    name = "com_github_grpc_grpc",
+    sha256 = "3ccc4e5ae8c1ce844456e39cc11f1c991a7da74396faabe83d779836ef449bce",
+    urls = ["https://github.com/grpc/grpc/archive/v1.27.0.tar.gz"],
+    strip_prefix = "grpc-1.27.0",
+  )
+
+def rules_proto():
+  http_archive(
+    name = "rules_proto",
+    sha256 = "602e7161d9195e50246177e7c55b2f39950a9cf7366f74ed5f22fd45750cd208",
+    strip_prefix = "rules_proto-97d8af4dc474595af3900dd85cb3a29ad28cc313",
+    urls = [
+        "https://mirror.bazel.build/github.com/bazelbuild/rules_proto/archive/97d8af4dc474595af3900dd85cb3a29ad28cc313.tar.gz",
+        "https://github.com/bazelbuild/rules_proto/archive/97d8af4dc474595af3900dd85cb3a29ad28cc313.tar.gz",
+    ],
+  )
diff --git a/protocol/all_protocol/browser/BrowserPerf.proto b/protocol/all_protocol/browser/BrowserPerf.proto
new file mode 100644
index 0000000..6660558
--- /dev/null
+++ b/protocol/all_protocol/browser/BrowserPerf.proto
@@ -0,0 +1,111 @@
+/*
+ * 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 java_multiple_files = true;
+option java_package = "org.apache.skywalking.apm.network.language.agent.v3";
+option csharp_namespace = "SkyWalking.NetworkProtocol.V3";
+option go_package = "skywalking/network/language/agent/v3";
+
+import "common/Common.proto";
+
+// Collect performance raw data from browser.
+service BrowserPerfService {
+
+    // report once per page
+    rpc collectPerfData (BrowserPerfData) returns (Commands) {
+    }
+
+    // report one or more error logs for pages, could report multiple times.
+    rpc collectErrorLogs (stream BrowserErrorLog) returns (Commands) {
+    }
+}
+
+message BrowserPerfData {
+    string service = 1;
+    // Service version in browser is the Instance concept in the backend.
+    string serviceVersion = 2;
+    // Perf data time, set by the backend side.
+    int64 time = 3;
+    // Page path in browser is the endpoint concept in the backend
+    // Page path in the browser, mostly it is URI, without parameter
+    string pagePath = 4;
+    // Unit of all time related field should be `ms`.
+    int32 redirectTime = 5;
+    // DNS query time
+    int32 dnsTime = 6;
+    // Time to first Byte
+    int32 ttfbTime = 7;
+    //  TCP connection time
+    int32 tcpTime = 8;
+    // Content transfer time
+    int32 transTime = 9;
+    // Dom parsing time
+    int32 domAnalysisTime = 10;
+    // First paint time or blank screen time
+    int32 fptTime = 11;
+    // Dom ready time
+    int32 domReadyTime = 12;
+    // Page full load time
+    int32 loadPageTime = 13;
+    // Synchronous load resources in the page
+    int32 resTime = 14;
+    // Only valid for HTTPS
+    int32 sslTime = 15;
+    // Time to interact
+    int32 ttlTime = 16;
+    // First pack time
+    int32 firstPackTime = 17;
+    // First Meaningful Paint
+    int32 fmpTime = 18;
+}
+
+message BrowserErrorLog {
+    // UUID
+    string uniqueId = 1;
+    string service = 2;
+    // Service version in browser is the Instance concept in the backend.
+    string serviceVersion = 3;
+    // Error log time, set by the backend side.
+    int64 time = 4;
+    // Page path in browser is the endpoint concept in the backend
+    // Page path in the browser, mostly it is URI, without parameter
+    string pagePath = 5;
+    ErrorCategory category = 6;
+    string grade = 7;
+    string message = 8;
+    int32 line = 9;
+    int32 col = 10;
+    string stack = 11;
+    string errorUrl = 12;
+    // Then the PV with error is only calculated when firstReportedError is true.
+    bool firstReportedError = 13;
+}
+
+enum ErrorCategory {
+    ajax = 0;
+    resource = 1;
+    vue = 2;
+    promise = 3;
+    js = 4;
+    unknown = 5;
+}
+
diff --git a/tools/install_protoc.sh b/protocol/all_protocol/common/BUILD
old mode 100755
new mode 100644
similarity index 60%
copy from tools/install_protoc.sh
copy to protocol/all_protocol/common/BUILD
index 5cecfda..55d0e92
--- a/tools/install_protoc.sh
+++ b/protocol/all_protocol/common/BUILD
@@ -1,5 +1,3 @@
-#!/usr/bin/env bash
-
 #
 # Licensed to the Apache Software Foundation (ASF) under one or more
 # contributor license agreements.  See the NOTICE file distributed with
@@ -8,7 +6,7 @@
 # (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
+#     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,
@@ -17,16 +15,13 @@
 # limitations under the License.
 #
 
+load("@rules_proto//proto:defs.bzl", "proto_library")
 
-if [[ "$(uname)"=="Darwin" || "$(expr substr $(uname -s) 1 10)"=="MINGW32_NT" ]];then
-  echo "sorry, please install protoc by yourself."
-  exit 1
-fi
+package(default_visibility = ["//visibility:public"])
 
-PROTOC_ZIP=protoc-3.14.0-linux-x86_64.zip
-curl -OL https://github.com/protocolbuffers/protobuf/releases/download/v3.14.0/$PROTOC_ZIP
-sudo unzip -o $PROTOC_ZIP -d /usr/local bin/protoc
-sudo chmod 755  /usr/local/bin/protoc
-rm -f $PROTOC_ZIP
+licenses(["notice"])  # Apache 2
 
-echo `protoc --version`
+proto_library(
+  name = "common_protocol_proto_lib",
+  srcs = ["Common.proto"],
+)
diff --git a/protocol/all_protocol/common/Common.proto b/protocol/all_protocol/common/Common.proto
new file mode 100644
index 0000000..09c50d4
--- /dev/null
+++ b/protocol/all_protocol/common/Common.proto
@@ -0,0 +1,54 @@
+/*
+ * 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 java_multiple_files = true;
+option java_package = "org.apache.skywalking.apm.network.common.v3";
+option csharp_namespace = "SkyWalking.NetworkProtocol.V3";
+option go_package = "skywalking/network/common/v3";
+
+message KeyStringValuePair {
+    string key = 1;
+    string value = 2;
+}
+
+message CPU {
+    double usagePercent = 2;
+}
+
+// In most cases, detect point should be `server` or `client`.
+// Even in service mesh, this means `server`/`client` side sidecar
+// `proxy` is reserved only.
+enum DetectPoint {
+    client = 0;
+    server = 1;
+    proxy = 2;
+}
+
+message Commands {
+    repeated Command commands = 1;
+}
+
+message Command {
+    string command = 1;
+    repeated KeyStringValuePair args = 2;
+}
+
diff --git a/protocol/all_protocol/event/Event.proto b/protocol/all_protocol/event/Event.proto
new file mode 100644
index 0000000..69efbbc
--- /dev/null
+++ b/protocol/all_protocol/event/Event.proto
@@ -0,0 +1,72 @@
+/*
+ * 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 = "satellite/protocol";
+
+
+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/protocol/all_protocol/language-agent/BUILD
old mode 100755
new mode 100644
similarity index 50%
copy from tools/install_protoc.sh
copy to protocol/all_protocol/language-agent/BUILD
index 5cecfda..6ea7b94
--- a/tools/install_protoc.sh
+++ b/protocol/all_protocol/language-agent/BUILD
@@ -1,5 +1,3 @@
-#!/usr/bin/env bash
-
 #
 # Licensed to the Apache Software Foundation (ASF) under one or more
 # contributor license agreements.  See the NOTICE file distributed with
@@ -8,7 +6,7 @@
 # (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
+#     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,
@@ -17,16 +15,29 @@
 # limitations under the License.
 #
 
+load("@rules_proto//proto:defs.bzl", "proto_library")
+load("@rules_cc//cc:defs.bzl", "cc_proto_library")
+load("@com_github_grpc_grpc//bazel:cc_grpc_library.bzl", "cc_grpc_library")
+
+package(default_visibility = ["//visibility:public"])
+
+licenses(["notice"])  # Apache 2
 
-if [[ "$(uname)"=="Darwin" || "$(expr substr $(uname -s) 1 10)"=="MINGW32_NT" ]];then
-  echo "sorry, please install protoc by yourself."
-  exit 1
-fi
+proto_library(
+  name = "tracing_protocol_proto_lib",
+  srcs = ["Tracing.proto"],
+  deps = ["//common:common_protocol_proto_lib"],
+)
 
-PROTOC_ZIP=protoc-3.14.0-linux-x86_64.zip
-curl -OL https://github.com/protocolbuffers/protobuf/releases/download/v3.14.0/$PROTOC_ZIP
-sudo unzip -o $PROTOC_ZIP -d /usr/local bin/protoc
-sudo chmod 755  /usr/local/bin/protoc
-rm -f $PROTOC_ZIP
+cc_proto_library(
+  name = "tracing_protocol_cc_proto",
+  deps = [":tracing_protocol_proto_lib"],
+)
 
-echo `protoc --version`
+cc_grpc_library(
+  name = "tracing_protocol_cc_grpc",
+  srcs = [":tracing_protocol_proto_lib"],
+  deps = [":tracing_protocol_cc_proto"],
+  grpc_only = True,
+  generate_mocks = True,
+)
diff --git a/protocol/all_protocol/language-agent/CLRMetric.proto b/protocol/all_protocol/language-agent/CLRMetric.proto
new file mode 100644
index 0000000..a719fb8
--- /dev/null
+++ b/protocol/all_protocol/language-agent/CLRMetric.proto
@@ -0,0 +1,60 @@
+/*
+ * 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 java_multiple_files = true;
+option java_package = "org.apache.skywalking.apm.network.language.agent.v3";
+option csharp_namespace = "SkyWalking.NetworkProtocol.V3";
+option go_package = "skywalking/network/language/agent/v3";
+
+import "common/Common.proto";
+
+service CLRMetricReportService {
+    rpc collect (CLRMetricCollection) returns (Commands) {
+    }
+}
+
+message CLRMetricCollection {
+    repeated CLRMetric metrics = 1;
+    string service = 2;
+    string serviceInstance = 3;
+}
+
+message CLRMetric {
+    int64 time = 1;
+    CPU cpu = 2;
+    ClrGC gc = 3;
+    ClrThread thread = 4;
+}
+
+message ClrGC {
+    int64 Gen0CollectCount = 1;
+    int64 Gen1CollectCount = 2;
+    int64 Gen2CollectCount = 3;
+    int64 HeapMemory = 4;
+}
+
+message ClrThread {
+    int32 AvailableCompletionPortThreads = 1;
+    int32 AvailableWorkerThreads = 2;
+    int32 MaxCompletionPortThreads = 3;
+    int32 MaxWorkerThreads = 4;
+}
diff --git a/protocol/all_protocol/language-agent/ConfigurationDiscoveryService.proto b/protocol/all_protocol/language-agent/ConfigurationDiscoveryService.proto
new file mode 100644
index 0000000..e4d8f10
--- /dev/null
+++ b/protocol/all_protocol/language-agent/ConfigurationDiscoveryService.proto
@@ -0,0 +1,54 @@
+/*
+ * 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 java_multiple_files = true;
+option java_package = "org.apache.skywalking.apm.network.language.agent.v3";
+option csharp_namespace = "SkyWalking.NetworkProtocol.V3";
+option go_package = "skywalking/network/agent/configuration/v3";
+
+import "common/Common.proto";
+
+// Fetch the latest dynamic configurations of the service.
+service ConfigurationDiscoveryService {
+    // 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.
+    rpc fetchConfigurations (ConfigurationSyncRequest) returns (Commands) {
+    }
+}
+
+message ConfigurationSyncRequest {
+    // Current agent service name.
+    string service = 1;
+
+    // [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.
+    string uuid = 2;
+}
diff --git a/protocol/all_protocol/language-agent/JVMMetric.proto b/protocol/all_protocol/language-agent/JVMMetric.proto
new file mode 100644
index 0000000..ec776fc
--- /dev/null
+++ b/protocol/all_protocol/language-agent/JVMMetric.proto
@@ -0,0 +1,92 @@
+/*
+ * 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 java_multiple_files = true;
+option java_package = "org.apache.skywalking.apm.network.language.agent.v3";
+option csharp_namespace = "SkyWalking.NetworkProtocol.V3";
+option go_package = "skywalking/network/language/agent/v3";
+
+import "common/Common.proto";
+
+// Define the JVM metrics report service.
+service JVMMetricReportService {
+    rpc collect (JVMMetricCollection) returns (Commands) {
+    }
+}
+
+message JVMMetricCollection {
+    repeated JVMMetric metrics = 1;
+    string service = 2;
+    string serviceInstance = 3;
+}
+
+message JVMMetric {
+    int64 time = 1;
+    CPU cpu = 2;
+    repeated Memory memory = 3;
+    repeated MemoryPool memoryPool = 4;
+    repeated GC gc = 5;
+    Thread thread = 6;
+}
+
+message Memory {
+    bool isHeap = 1;
+    int64 init = 2;
+    int64 max = 3;
+    int64 used = 4;
+    int64 committed = 5;
+}
+
+message MemoryPool {
+    PoolType type = 1;
+    int64 init = 2;
+    int64 max = 3;
+    int64 used = 4;
+    int64 committed = 5;
+}
+
+enum PoolType {
+    CODE_CACHE_USAGE = 0;
+    NEWGEN_USAGE = 1;
+    OLDGEN_USAGE = 2;
+    SURVIVOR_USAGE = 3;
+    PERMGEN_USAGE = 4;
+    METASPACE_USAGE = 5;
+}
+
+message GC {
+    GCPhrase phrase = 1;
+    int64 count = 2;
+    int64 time = 3;
+}
+
+enum GCPhrase {
+    NEW = 0;
+    OLD = 1;
+}
+
+message Thread {
+  int64 liveCount = 1;
+  int64 daemonCount = 2;
+  int64 peakCount = 3;
+}
+
diff --git a/protocol/all_protocol/language-agent/Meter.proto b/protocol/all_protocol/language-agent/Meter.proto
new file mode 100644
index 0000000..337b18e
--- /dev/null
+++ b/protocol/all_protocol/language-agent/Meter.proto
@@ -0,0 +1,88 @@
+/*
+ * 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 java_multiple_files = true;
+option java_package = "org.apache.skywalking.apm.network.language.agent.v3";
+option go_package = "skywalking/network/language/agent/v3";
+
+import "common/Common.proto";
+
+service MeterReportService {
+    // Meter data is reported in a certain period. The agent/SDK should report all collected metrics in this period through one stream.
+    rpc collect (stream MeterData) returns (Commands) {
+    }
+}
+
+// Label of the meter
+message Label {
+    string name = 1;
+    string value = 2;
+}
+
+// The histogram element definition. It includes the bucket lower boundary and the count in the bucket.
+message MeterBucketValue {
+    // 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.
+    double bucket = 1;
+    int64 count = 2;
+}
+
+// Meter single value
+message MeterSingleValue {
+    // Meter name
+    string name = 1;
+    // Labels
+    repeated Label labels = 2;
+    // Single value
+    double value = 3;
+}
+
+// Histogram
+message MeterHistogram {
+    // Meter name
+    string name = 1;
+    // Labels
+    repeated Label labels = 2;
+    // Customize the buckets
+    repeated MeterBucketValue values = 3;
+}
+
+// Single meter data, if the same metrics have a different label, they will separate.
+message MeterData {
+    // Meter data could be a single value or histogram.
+    oneof metric {
+        MeterSingleValue singleValue = 1;
+        MeterHistogram histogram = 2;
+    }
+    // Service name, be set value in the first element in the stream-call.
+    string service = 3;
+    // Service instance name, be set value in the first element in the stream-call.
+    string serviceInstance = 4;
+    // Meter data report time, be set value in the first element in the stream-call.
+    int64 timestamp = 5;
+}
+
+message MeterDataCollection {
+    repeated MeterData meterData = 1;
+}
diff --git a/protocol/all_protocol/language-agent/Tracing.proto b/protocol/all_protocol/language-agent/Tracing.proto
new file mode 100644
index 0000000..79af24f
--- /dev/null
+++ b/protocol/all_protocol/language-agent/Tracing.proto
@@ -0,0 +1,223 @@
+/*
+ * 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 java_multiple_files = true;
+option java_package = "org.apache.skywalking.apm.network.language.agent.v3";
+option csharp_namespace = "SkyWalking.NetworkProtocol.V3";
+option go_package = "skywalking/network/language/agent/v3";
+
+import "common/Common.proto";
+
+// Define a trace segment report service.
+// All language agents or any trace collecting component, could use this service to send span collection to the SkyWalking OAP backend.
+service TraceSegmentReportService {
+    // Recommended trace segment report channel.
+    // gRPC streaming provides better performance.
+    // All language agents should choose this.
+    rpc collect (stream SegmentObject) returns (Commands) {
+    }
+
+    // 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
+    rpc collectInSync (SegmentCollection) returns (Commands) {
+    }
+}
+
+// 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.
+message SegmentObject {
+    // A string id represents the whole trace.
+    string traceId = 1;
+    // A unique id represents this segment. Other segments could use this id to reference as a child segment.
+    string traceSegmentId = 2;
+    // Span collections included in this segment.
+    repeated SpanObject spans = 3;
+    // **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.
+    string service = 4;
+    // **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.
+    string serviceInstance = 5;
+    // 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.
+    bool isSizeLimited = 6;
+}
+
+// Segment reference represents the link between two existing segment.
+message SegmentReference {
+    // 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 = 1;
+    // A string id represents the whole trace.
+    string traceId = 2;
+    // Another segment id as the parent.
+    string parentTraceSegmentId = 3;
+    // The span id in the parent trace segment.
+    int32 parentSpanId = 4;
+    // The service logic name of the parent segment.
+    // If refType == CrossThread, this name is as same as the trace segment.
+    string parentService = 5;
+    // The service logic name instance of the parent segment.
+    // If refType == CrossThread, this name is as same as the trace segment.
+    string parentServiceInstance = 6;
+    // 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.
+    string parentEndpoint = 7;
+    // 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/
+    string networkAddressUsedAtPeer = 8;
+}
+
+// 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.
+message SpanObject {
+    // The number id of the span. Should be unique in the whole segment.
+    // Starting at 0.
+    int32 spanId = 1;
+    // 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.
+    int32 parentSpanId = 2;
+    // Start timestamp in milliseconds of this span,
+    // measured between the current time and midnight, January 1, 1970 UTC.
+    int64 startTime = 3;
+    // End timestamp in milliseconds of this span,
+    // measured between the current time and midnight, January 1, 1970 UTC.
+    int64 endTime = 4;
+    // <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.
+    repeated SegmentReference refs = 5;
+    // 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
+    string operationName = 6;
+    // 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/
+    string peer = 7;
+    // Span type represents the role in the RPC context.
+    SpanType spanType = 8;
+    // Span layer represent the component tech stack, related to the network tech.
+    SpanLayer spanLayer = 9;
+    // 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
+    int32 componentId = 10;
+    // 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.
+    bool isError = 11;
+    // 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
+    repeated KeyStringValuePair tags = 12;
+    // String key, String value pair with an accurate timestamp.
+    // Logging some events happening in the context of the span duration.
+    repeated Log logs = 13;
+    // 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.
+    bool skipAnalysis = 14;
+}
+
+message Log {
+    // The timestamp in milliseconds of this event.,
+    // measured between the current time and midnight, January 1, 1970 UTC.
+    int64 time = 1;
+    // String key, String value pair.
+    repeated KeyStringValuePair data = 2;
+}
+
+// Map to the type of span
+enum SpanType {
+    // Server side of RPC. Consumer side of MQ.
+    Entry = 0;
+    // Client side of RPC. Producer side of MQ.
+    Exit = 1;
+    // A common local code execution.
+    Local = 2;
+}
+
+// A ID could be represented by multiple string sections.
+message ID {
+    repeated string id = 1;
+}
+
+// Type of the reference
+enum RefType {
+    // Map to the reference targeting the segment in another OS process.
+    CrossProcess = 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.
+    CrossThread = 1;
+}
+
+// Map to the layer of span
+enum SpanLayer {
+    // Unknown layer. Could be anything.
+    Unknown = 0;
+    // A database layer, used in tracing the database client component.
+    Database = 1;
+    // A RPC layer, used in both client and server sides of RPC component.
+    RPCFramework = 2;
+    // HTTP is a more specific RPCFramework.
+    Http = 3;
+    // A MQ layer, used in both producer and consuer sides of the MQ component.
+    MQ = 4;
+    // A cache layer, used in tracing the cache client component.
+    Cache = 5;
+}
+
+// The segment collections for trace report in batch and sync mode.
+message SegmentCollection {
+    repeated SegmentObject segments = 1;
+}
diff --git a/protocol/all_protocol/logging/Logging.proto b/protocol/all_protocol/logging/Logging.proto
new file mode 100644
index 0000000..5bad8ab
--- /dev/null
+++ b/protocol/all_protocol/logging/Logging.proto
@@ -0,0 +1,114 @@
+/*
+ * 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 java_multiple_files = true;
+option java_package = "org.apache.skywalking.apm.network.logging.v3";
+option csharp_namespace = "SkyWalking.NetworkProtocol.V3";
+option go_package = "skywalking/network/logging/v3";
+
+import "common/Common.proto";
+
+// Report collected logs into the OAP backend
+service LogReportService {
+    // 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.
+    rpc collect (stream LogData) returns (Commands) {
+    }
+}
+
+// Log data is collected through file scratcher of agent.
+// Natively, Satellite provides various ways to collect logs.
+message LogData {
+    // [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.
+    int64 timestamp = 1;
+    // [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.
+    string service = 2;
+    // [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.
+    string serviceInstance = 3;
+    // [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.
+    string endpoint = 4;
+    // [Required] The content of the log.
+    LogDataBody body = 5;
+    // [Optional] Logs with trace context
+    TraceContext traceContext = 6;
+    // [Optional] The available tags. OAP server could provide search/analysis capabilities base on these.
+    LogTags tags = 7;
+}
+
+// The content of the log data
+message LogDataBody {
+    // A type to match analyzer(s) at the OAP server.
+    // The data could be analysis at the client side, but could be partial
+    string type = 1;
+    // Content with extendable format.
+    oneof content {
+        TextLog text = 2;
+        JSONLog json = 3;
+        YAMLLog yaml = 4;
+    }
+}
+
+// Literal text log, typically requires regex or split mechanism to filter meaningful info.
+message TextLog {
+    string text = 1;
+}
+
+// JSON formatted log. The json field represents the string could be formatted as a JSON object.
+message JSONLog {
+    string json = 1;
+}
+
+// YAML formatted log. The yaml field represents the string could be formatted as a YAML map.
+message YAMLLog {
+    string yaml = 1;
+}
+
+// Logs with trace context, represent agent system has injects context(IDs) into log text.
+message TraceContext {
+    // [Optional] A string id represents the whole trace.
+    string traceId = 1;
+    // [Optional] A unique id represents this segment. Other segments could use this id to reference as a child segment.
+    string traceSegmentId = 2;
+    // [Optional] The number id of the span. Should be unique in the whole segment.
+    // Starting at 0.
+    int32 spanId = 3;
+}
+
+message LogTags {
+    // String key, String value pair.
+    repeated KeyStringValuePair data = 1;
+}
+
+
diff --git a/protocol/all_protocol/management/Management.proto b/protocol/all_protocol/management/Management.proto
new file mode 100644
index 0000000..ab7885f
--- /dev/null
+++ b/protocol/all_protocol/management/Management.proto
@@ -0,0 +1,53 @@
+/*
+ * 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 java_multiple_files = true;
+option java_package = "org.apache.skywalking.apm.network.management.v3";
+option csharp_namespace = "SkyWalking.NetworkProtocol.V3";
+option go_package = "skywalking/network/management/v3";
+
+import "common/Common.proto";
+
+// Define the service reporting the extra information of the instance.
+service ManagementService {
+    // Report custom properties of a service instance.
+    rpc reportInstanceProperties (InstanceProperties) returns (Commands) {
+    }
+
+    // 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.
+    rpc keepAlive (InstancePingPkg) returns (Commands) {
+
+    }
+}
+
+message InstanceProperties {
+    string service = 1;
+    string serviceInstance = 2;
+    repeated KeyStringValuePair properties = 3;
+}
+
+message InstancePingPkg {
+    string service = 1;
+    string serviceInstance = 2;
+}
diff --git a/protocol/all_protocol/profile/Profile.proto b/protocol/all_protocol/profile/Profile.proto
new file mode 100644
index 0000000..1fa6812
--- /dev/null
+++ b/protocol/all_protocol/profile/Profile.proto
@@ -0,0 +1,82 @@
+/*
+ * 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 java_multiple_files = true;
+option java_package = "org.apache.skywalking.apm.network.language.profile.v3";
+option csharp_namespace = "SkyWalking.NetworkProtocol.V3";
+option go_package = "skywalking/network/language/profile/v3";
+
+import "common/Common.proto";
+
+service ProfileTask {
+
+    // query all sniffer need to execute profile task commands
+    rpc getProfileTaskCommands (ProfileTaskCommandQuery) returns (Commands) {
+    }
+
+    // collect dumped thread snapshot
+    rpc collectSnapshot (stream ThreadSnapshot) returns (Commands) {
+    }
+
+    // report profiling task finished
+    rpc reportTaskFinish (ProfileTaskFinishReport) returns (Commands) {
+    }
+
+}
+
+message ProfileTaskCommandQuery {
+    // current sniffer information
+    string service = 1;
+    string serviceInstance = 2;
+
+    // last command timestamp
+    int64 lastCommandTime = 3;
+}
+
+// dumped thread snapshot
+message ThreadSnapshot {
+    // profile task id
+    string taskId = 1;
+    // dumped segment id
+    string traceSegmentId = 2;
+    // dump timestamp
+    int64 time = 3;
+    // snapshot dump sequence, start with zero
+    int32 sequence = 4;
+    // snapshot stack
+    ThreadStack stack = 5;
+}
+
+message ThreadStack {
+    // stack code signature list
+    repeated string codeSignatures = 1;
+}
+
+// profile task finished report
+message ProfileTaskFinishReport {
+    // current sniffer information
+    string service = 1;
+    string serviceInstance = 2;
+
+    // profile task
+    string taskId = 3;
+}
diff --git a/protocol/all_protocol/service-mesh-probe/service-mesh.proto b/protocol/all_protocol/service-mesh-probe/service-mesh.proto
new file mode 100644
index 0000000..ebf8cb1
--- /dev/null
+++ b/protocol/all_protocol/service-mesh-probe/service-mesh.proto
@@ -0,0 +1,67 @@
+/*
+ * 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 java_multiple_files = true;
+option java_package = "org.apache.skywalking.apm.network.servicemesh.v3";
+option csharp_namespace = "SkyWalking.NetworkProtocol.V3";
+option go_package = "skywalking/network/servicemesh/v3";
+
+import "common/Common.proto";
+
+// Define metrics report service. The metrics format is typically representing the data model collected in the service mesh case.
+service ServiceMeshMetricService {
+    rpc collect(stream ServiceMeshMetric) returns (MeshProbeDownstream) {
+    }
+}
+
+message ServiceMeshMetric {
+    // Start timestamp in milliseconds of this RPC,
+    // measured between the current time and midnight, January 1, 1970 UTC.
+    int64 startTime = 1;
+    // End timestamp in milliseconds of this RPC,
+    // measured between the current time and midnight, January 1, 1970 UTC.
+    int64 endTime = 2;
+    string sourceServiceName = 3;
+    string sourceServiceInstance = 4;
+    string destServiceName = 5;
+    string destServiceInstance = 6;
+    string endpoint = 7;
+    int32 latency = 8;
+    int32 responseCode = 9;
+    // Status represents the response status of this calling.
+    bool status = 10;
+    Protocol protocol = 11;
+    DetectPoint detectPoint = 12;
+    // NONE, mTLS, or TLS
+    string tlsMode = 13;
+    // 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
+    string internalErrorCode = 14;
+}
+
+enum Protocol {
+    HTTP = 0;
+    gRPC = 1;
+}
+
+message MeshProbeDownstream {
+}
diff --git a/protocol/all_protocol/tools/check-license-header.py b/protocol/all_protocol/tools/check-license-header.py
new file mode 100644
index 0000000..2039278
--- /dev/null
+++ b/protocol/all_protocol/tools/check-license-header.py
@@ -0,0 +1,70 @@
+#
+# 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.
+#
+
+import os
+import sys
+
+ignored_chars = '#\n \t:/**/'
+
+license_header = ' '.join(
+    [
+        line.strip(ignored_chars) for line in """
+        #
+        # 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.
+        #
+        """.splitlines()
+    ]
+).strip(ignored_chars)
+
+comment_leading_chars = ('#', '::', '/*', '*', ' ')
+
+
+def walk_through_dir(d) -> bool:
+    checked = True
+    for root, sub_dirs, files in os.walk(d):
+        for filename in files:
+            file_path = os.path.join(root, filename)
+            if '.git' in file_path or filename.endswith('.md'):
+                continue
+            with open(file_path, 'r') as f:
+                header = ' '.join([
+                    line.strip(ignored_chars) for line in f.readlines() if line.startswith(comment_leading_chars)
+                ]).strip()
+                print('%s license header in file: %s' % ('✅' if license_header in header else '❌', file_path))
+                checked &= license_header in header
+    return checked
+
+
+if __name__ == "__main__":
+    checked = True
+    for _, directory in enumerate(sys.argv):
+        checked &= walk_through_dir(directory)
+    if not checked:
+        sys.exit(1)
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 89d4821..0000000
--- a/protocol/gen-codes/satellite/protocol/Event.pb.go
+++ /dev/null
@@ -1,498 +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.25.0
-// 	protoc        v3.14.0
-// source: event/Event.proto
-
-package protocol
-
-import (
-	proto "github.com/golang/protobuf/proto"
-	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)
-)
-
-// This is a compile-time assertion that a sufficiently up-to-date version
-// of the legacy proto package is being used.
-const _ = proto.ProtoPackageIsVersion4
-
-// 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 023a8b1..0000000
--- a/protocol/gen-codes/skywalking/network/agent/configuration/v3/ConfigurationDiscoveryService.pb.go
+++ /dev/null
@@ -1,203 +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.25.0
-// 	protoc        v3.14.0
-// source: language-agent/ConfigurationDiscoveryService.proto
-
-package v3
-
-import (
-	proto "github.com/golang/protobuf/proto"
-	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)
-)
-
-// This is a compile-time assertion that a sufficiently up-to-date version
-// of the legacy proto package is being used.
-const _ = proto.ProtoPackageIsVersion4
-
-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 a3c545d..0000000
--- a/protocol/gen-codes/skywalking/network/common/v3/Common.pb.go
+++ /dev/null
@@ -1,441 +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.25.0
-// 	protoc        v3.14.0
-// source: common/Common.proto
-
-package v3
-
-import (
-	proto "github.com/golang/protobuf/proto"
-	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)
-)
-
-// This is a compile-time assertion that a sufficiently up-to-date version
-// of the legacy proto package is being used.
-const _ = proto.ProtoPackageIsVersion4
-
-// 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 0797ac0..0000000
--- a/protocol/gen-codes/skywalking/network/go.mod
+++ /dev/null
@@ -1,9 +0,0 @@
-module skywalking/network
-
-go 1.15
-
-require (
-	github.com/golang/protobuf v1.4.3
-	google.golang.org/grpc v1.35.0
-	google.golang.org/protobuf v1.25.0
-)
diff --git a/protocol/gen-codes/skywalking/network/go.sum b/protocol/gen-codes/skywalking/network/go.sum
deleted file mode 100644
index 8f0da6e..0000000
--- a/protocol/gen-codes/skywalking/network/go.sum
+++ /dev/null
@@ -1,85 +0,0 @@
-cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
-github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
-github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
-github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
-github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk=
-github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
-github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
-github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
-github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk=
-github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
-github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
-github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A=
-github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
-github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
-github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8=
-github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA=
-github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs=
-github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w=
-github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0=
-github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8=
-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.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M=
-github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
-github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
-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/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-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
-golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU=
-golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
-golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
-golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
-golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
-golang.org/x/net v0.0.0-20190311183353-d8887717615a 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-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
-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-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
-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-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
-golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY=
-golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
-golang.org/x/tools v0.0.0-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.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=
-google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
-google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=
-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=
-google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
-google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg=
-google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY=
-google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk=
-google.golang.org/grpc v1.35.0 h1:TwIQcH3es+MojMVojxxfQ3l3OF2KzlRxML2xZq0kRo8=
-google.golang.org/grpc v1.35.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU=
-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=
-google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE=
-google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo=
-google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
-google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
-google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
-google.golang.org/protobuf v1.25.0 h1:Ejskq+SyPohKW+1uil0JJMtmHCgJPJ/qWTxr8qp+R4c=
-google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c=
-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 b460ab9..0000000
--- a/protocol/gen-codes/skywalking/network/language/agent/v3/BrowserPerf.pb.go
+++ /dev/null
@@ -1,632 +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.25.0
-// 	protoc        v3.14.0
-// source: browser/BrowserPerf.proto
-
-package v3
-
-import (
-	proto "github.com/golang/protobuf/proto"
-	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)
-)
-
-// This is a compile-time assertion that a sufficiently up-to-date version
-// of the legacy proto package is being used.
-const _ = proto.ProtoPackageIsVersion4
-
-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 53ce96d..0000000
--- a/protocol/gen-codes/skywalking/network/language/agent/v3/CLRMetric.pb.go
+++ /dev/null
@@ -1,500 +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.25.0
-// 	protoc        v3.14.0
-// source: language-agent/CLRMetric.proto
-
-package v3
-
-import (
-	proto "github.com/golang/protobuf/proto"
-	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)
-)
-
-// This is a compile-time assertion that a sufficiently up-to-date version
-// of the legacy proto package is being used.
-const _ = proto.ProtoPackageIsVersion4
-
-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 e322cf4..0000000
--- a/protocol/gen-codes/skywalking/network/language/agent/v3/JVMMetric.pb.go
+++ /dev/null
@@ -1,815 +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.25.0
-// 	protoc        v3.14.0
-// source: language-agent/JVMMetric.proto
-
-package v3
-
-import (
-	proto "github.com/golang/protobuf/proto"
-	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)
-)
-
-// This is a compile-time assertion that a sufficiently up-to-date version
-// of the legacy proto package is being used.
-const _ = proto.ProtoPackageIsVersion4
-
-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 fa944d4..0000000
--- a/protocol/gen-codes/skywalking/network/language/agent/v3/Meter.pb.go
+++ /dev/null
@@ -1,657 +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.25.0
-// 	protoc        v3.14.0
-// source: language-agent/Meter.proto
-
-package v3
-
-import (
-	proto "github.com/golang/protobuf/proto"
-	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)
-)
-
-// This is a compile-time assertion that a sufficiently up-to-date version
-// of the legacy proto package is being used.
-const _ = proto.ProtoPackageIsVersion4
-
-// 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 e502b84..0000000
--- a/protocol/gen-codes/skywalking/network/language/agent/v3/Tracing.pb.go
+++ /dev/null
@@ -1,1067 +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.25.0
-// 	protoc        v3.14.0
-// source: language-agent/Tracing.proto
-
-package v3
-
-import (
-	proto "github.com/golang/protobuf/proto"
-	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)
-)
-
-// This is a compile-time assertion that a sufficiently up-to-date version
-// of the legacy proto package is being used.
-const _ = proto.ProtoPackageIsVersion4
-
-// 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 9f84f14..0000000
--- a/protocol/gen-codes/skywalking/network/language/profile/v3/Profile.pb.go
+++ /dev/null
@@ -1,484 +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.25.0
-// 	protoc        v3.14.0
-// source: profile/Profile.proto
-
-package v3
-
-import (
-	proto "github.com/golang/protobuf/proto"
-	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)
-)
-
-// This is a compile-time assertion that a sufficiently up-to-date version
-// of the legacy proto package is being used.
-const _ = proto.ProtoPackageIsVersion4
-
-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 557d33a..0000000
--- a/protocol/gen-codes/skywalking/network/logging/v3/Logging.pb.go
+++ /dev/null
@@ -1,753 +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.25.0
-// 	protoc        v3.14.0
-// source: logging/Logging.proto
-
-package v3
-
-import (
-	proto "github.com/golang/protobuf/proto"
-	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)
-)
-
-// This is a compile-time assertion that a sufficiently up-to-date version
-// of the legacy proto package is being used.
-const _ = proto.ProtoPackageIsVersion4
-
-// 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 daf8426..0000000
--- a/protocol/gen-codes/skywalking/network/management/v3/Management.pb.go
+++ /dev/null
@@ -1,289 +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.25.0
-// 	protoc        v3.14.0
-// source: management/Management.proto
-
-package v3
-
-import (
-	proto "github.com/golang/protobuf/proto"
-	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)
-)
-
-// This is a compile-time assertion that a sufficiently up-to-date version
-// of the legacy proto package is being used.
-const _ = proto.ProtoPackageIsVersion4
-
-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 37065d3..0000000
--- a/protocol/gen-codes/skywalking/network/servicemesh/v3/service-mesh.pb.go
+++ /dev/null
@@ -1,435 +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.25.0
-// 	protoc        v3.14.0
-// source: service-mesh-probe/service-mesh.proto
-
-package v3
-
-import (
-	proto "github.com/golang/protobuf/proto"
-	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)
-)
-
-// This is a compile-time assertion that a sufficiently up-to-date version
-// of the legacy proto package is being used.
-const _ = proto.ProtoPackageIsVersion4
-
-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
-}
-
... 407 lines suppressed ...