diff --git a/docs/en/setup/plugins/client_grpc-client.md b/docs/en/setup/plugins/client_grpc-client.md
index 240e22a..3b33e48 100755
--- a/docs/en/setup/plugins/client_grpc-client.md
+++ b/docs/en/setup/plugins/client_grpc-client.md
@@ -27,3 +27,29 @@
 # How frequently to check the connection(second)
 check_period: 5
 ```
+## Configuration
+|Name|Type|Description|
+|----|----|-----------|
+| server_addr | string | The gRPC server address |
+| kubernetes_config | *resolvers.KubernetesConfig | The kubernetes config to lookup addresses |
+| kubernetes_config.api_server | string | The kubernetes API server address, If not define means using in kubernetes mode to connect |
+| kubernetes_config.basic_auth | *resolvers.BasicAuth | The HTTP basic authentication credentials for the targets. |
+| kubernetes_config.basic_auth.username | string |  |
+| kubernetes_config.basic_auth.password | resolvers.Secret |  |
+| kubernetes_config.basic_auth.password_file | string |  |
+| kubernetes_config.bearer_token | resolvers.Secret | The bearer token for the targets. |
+| kubernetes_config.bearer_token_file | string | The bearer token file for the targets. |
+| kubernetes_config.proxy_url | resolvers.URL | HTTP proxy server to use to connect to the targets. |
+| kubernetes_config.tls_config | resolvers.TLSConfig | TLSConfig to use to connect to the targets. |
+| kubernetes_config.namespaces | []string | Support to lookup namespaces |
+| kubernetes_config.kind | string | The kind of api |
+| kubernetes_config.selector | resolvers.Selector | The kind selector |
+| kubernetes_config.extra_port | resolvers.ExtraPort | How to get the address exported port |
+| enable_TLS | bool | Enable TLS connect to server |
+| client_pem_path | string | The file path of client.pem. The config only works when opening the TLS switch. |
+| client_key_path | string | The file path of client.key. The config only works when opening the TLS switch. |
+| ca_pem_path | string | The file path oca.pem. The config only works when opening the TLS switch. |
+| insecure_skip_verify | bool | Controls whether a client verifies the server's certificate chain and host name. |
+| authentication | string | The auth value when send request |
+| check_period | int | How frequently to check the connection(second) |
+
diff --git a/docs/en/setup/plugins/client_kafka-client.md b/docs/en/setup/plugins/client_kafka-client.md
index 39150b3..1a4b50f 100755
--- a/docs/en/setup/plugins/client_kafka-client.md
+++ b/docs/en/setup/plugins/client_kafka-client.md
@@ -51,3 +51,23 @@
 # InsecureSkipVerify controls whether a client verifies the server's certificate chain and host name.
 insecure_skip_verify: true
 ```
+## Configuration
+|Name|Type|Description|
+|----|----|-----------|
+| brokers | string | The Kafka broker addresses (default `localhost:9092`). |
+| version | string | The version should follow this pattern, which is `major.minor.veryMinor.patch`. |
+| enable_TLS | bool | The TLS switch (default false). |
+| client_pem_path | string | The file path of client.pem. The config only works when opening the TLS switch. |
+| client_key_path | string | The file path of client.key. The config only works when opening the TLS switch. |
+| ca_pem_path | string | The file path oca.pem. The config only works when opening the TLS switch. |
+| required_acks | int16 | 0 means NoResponse, 1 means WaitForLocal and -1 means WaitForAll (default 1). |
+| producer_max_retry | int | The producer max retry times (default 3). |
+| meta_max_retry | int | The meta max retry times (default 3). |
+| retry_backoff | int | How long to wait for the cluster to settle between retries (default 100ms). |
+| max_message_bytes | int | The max message bytes. |
+| idempotent_writes | bool | Ensure that exactly one copy of each message is written when is true. |
+| client_id | string | A user-provided string sent with every request to the brokers. |
+| compression_codec | int | Represents the various compression codecs recognized by Kafka in messages. |
+| refresh_period | int | How frequently to refresh the cluster metadata. |
+| insecure_skip_verify | bool | Controls whether a client verifies the server's certificate chain and host name. |
+
diff --git a/docs/en/setup/plugins/fallbacker_none-fallbacker.md b/docs/en/setup/plugins/fallbacker_none-fallbacker.md
index b425422..1f46550 100755
--- a/docs/en/setup/plugins/fallbacker_none-fallbacker.md
+++ b/docs/en/setup/plugins/fallbacker_none-fallbacker.md
@@ -3,3 +3,7 @@
 The fallbacker would do nothing when facing failure data.
 ## DefaultConfig
 ```yaml```
+## Configuration
+|Name|Type|Description|
+|----|----|-----------|
+
diff --git a/docs/en/setup/plugins/fallbacker_timer-fallbacker.md b/docs/en/setup/plugins/fallbacker_timer-fallbacker.md
index f78bd8c..e4bf39e 100755
--- a/docs/en/setup/plugins/fallbacker_timer-fallbacker.md
+++ b/docs/en/setup/plugins/fallbacker_timer-fallbacker.md
@@ -12,3 +12,10 @@
 # with exponential increasing larger than it.(Time unit is millisecond.)
 max_backoff: 5000
 ```
+## Configuration
+|Name|Type|Description|
+|----|----|-----------|
+| max_attempts | int |  |
+| exponential_backoff | int |  |
+| max_backoff | int |  |
+
diff --git a/docs/en/setup/plugins/fetcher_prometheus-metrics-fetcher.md b/docs/en/setup/plugins/fetcher_prometheus-metrics-fetcher.md
index a334e2c..bce387d 100755
--- a/docs/en/setup/plugins/fetcher_prometheus-metrics-fetcher.md
+++ b/docs/en/setup/plugins/fetcher_prometheus-metrics-fetcher.md
@@ -34,3 +34,8 @@
     - role: pod
       label: "app=prometheus"
 ```
+## Configuration
+|Name|Type|Description|
+|----|----|-----------|
+| scrape_configs | []*prometheus.scrapeConfig | config is the top level configuratScrapeConfigsMapion of prometheus |
+
diff --git a/docs/en/setup/plugins/forwarder_nativecds-grpc-forwarder.md b/docs/en/setup/plugins/forwarder_nativecds-grpc-forwarder.md
index ec63c27..57c1b11 100755
--- a/docs/en/setup/plugins/forwarder_nativecds-grpc-forwarder.md
+++ b/docs/en/setup/plugins/forwarder_nativecds-grpc-forwarder.md
@@ -3,3 +3,7 @@
 This is a synchronization grpc forwarder with the SkyWalking native Configuration Discovery Service protocol.
 ## DefaultConfig
 ```yaml```
+## Configuration
+|Name|Type|Description|
+|----|----|-----------|
+
diff --git a/docs/en/setup/plugins/forwarder_nativeevent-grpc-forwarder.md b/docs/en/setup/plugins/forwarder_nativeevent-grpc-forwarder.md
index ace06e8..2dcd0f2 100755
--- a/docs/en/setup/plugins/forwarder_nativeevent-grpc-forwarder.md
+++ b/docs/en/setup/plugins/forwarder_nativeevent-grpc-forwarder.md
@@ -3,3 +3,7 @@
 This is a synchronization grpc forwarder with the SkyWalking native event protocol.
 ## DefaultConfig
 ```yaml```
+## Configuration
+|Name|Type|Description|
+|----|----|-----------|
+
diff --git a/docs/en/setup/plugins/forwarder_nativejvm-grpc-forwarder.md b/docs/en/setup/plugins/forwarder_nativejvm-grpc-forwarder.md
index 5999157..09f9c9a 100755
--- a/docs/en/setup/plugins/forwarder_nativejvm-grpc-forwarder.md
+++ b/docs/en/setup/plugins/forwarder_nativejvm-grpc-forwarder.md
@@ -3,3 +3,7 @@
 This is a synchronization grpc forwarder with the SkyWalking native Configuration Discovery Service protocol.
 ## DefaultConfig
 ```yaml```
+## Configuration
+|Name|Type|Description|
+|----|----|-----------|
+
diff --git a/docs/en/setup/plugins/forwarder_nativelog-grpc-forwarder.md b/docs/en/setup/plugins/forwarder_nativelog-grpc-forwarder.md
index 14350ed..309ab77 100755
--- a/docs/en/setup/plugins/forwarder_nativelog-grpc-forwarder.md
+++ b/docs/en/setup/plugins/forwarder_nativelog-grpc-forwarder.md
@@ -3,3 +3,7 @@
 This is a synchronization grpc forwarder with the SkyWalking native log protocol.
 ## DefaultConfig
 ```yaml```
+## Configuration
+|Name|Type|Description|
+|----|----|-----------|
+
diff --git a/docs/en/setup/plugins/forwarder_nativelog-kafka-forwarder.md b/docs/en/setup/plugins/forwarder_nativelog-kafka-forwarder.md
index a7cf6fe..941e9da 100755
--- a/docs/en/setup/plugins/forwarder_nativelog-kafka-forwarder.md
+++ b/docs/en/setup/plugins/forwarder_nativelog-kafka-forwarder.md
@@ -6,3 +6,8 @@
 # The remote topic. 
 topic: "log-topic"
 ```
+## Configuration
+|Name|Type|Description|
+|----|----|-----------|
+| topic | string | The forwarder topic. |
+
diff --git a/docs/en/setup/plugins/forwarder_nativemanagement-grpc-forwarder.md b/docs/en/setup/plugins/forwarder_nativemanagement-grpc-forwarder.md
index 640d92e..a01c653 100755
--- a/docs/en/setup/plugins/forwarder_nativemanagement-grpc-forwarder.md
+++ b/docs/en/setup/plugins/forwarder_nativemanagement-grpc-forwarder.md
@@ -3,3 +3,7 @@
 This is a synchronization grpc forwarder with the SkyWalking native mangement protocol.
 ## DefaultConfig
 ```yaml```
+## Configuration
+|Name|Type|Description|
+|----|----|-----------|
+
diff --git a/docs/en/setup/plugins/forwarder_nativemeter-grpc-forwarder.md b/docs/en/setup/plugins/forwarder_nativemeter-grpc-forwarder.md
index 3a8d083..78a4c37 100755
--- a/docs/en/setup/plugins/forwarder_nativemeter-grpc-forwarder.md
+++ b/docs/en/setup/plugins/forwarder_nativemeter-grpc-forwarder.md
@@ -3,3 +3,7 @@
 This is a synchronization meter grpc forwarder with the SkyWalking meter protocol.
 ## DefaultConfig
 ```yaml```
+## Configuration
+|Name|Type|Description|
+|----|----|-----------|
+
diff --git a/docs/en/setup/plugins/forwarder_nativeprofile-grpc-forwarder.md b/docs/en/setup/plugins/forwarder_nativeprofile-grpc-forwarder.md
index 6830322..56b4343 100755
--- a/docs/en/setup/plugins/forwarder_nativeprofile-grpc-forwarder.md
+++ b/docs/en/setup/plugins/forwarder_nativeprofile-grpc-forwarder.md
@@ -3,3 +3,7 @@
 This is a synchronization grpc forwarder with the SkyWalking native log protocol.
 ## DefaultConfig
 ```yaml```
+## Configuration
+|Name|Type|Description|
+|----|----|-----------|
+
diff --git a/docs/en/setup/plugins/forwarder_nativetracing-grpc-forwarder.md b/docs/en/setup/plugins/forwarder_nativetracing-grpc-forwarder.md
index eb45ef3..6f986ec 100755
--- a/docs/en/setup/plugins/forwarder_nativetracing-grpc-forwarder.md
+++ b/docs/en/setup/plugins/forwarder_nativetracing-grpc-forwarder.md
@@ -3,3 +3,7 @@
 This is a synchronization grpc forwarder with the SkyWalking native tracing protocol.
 ## DefaultConfig
 ```yaml```
+## Configuration
+|Name|Type|Description|
+|----|----|-----------|
+
diff --git a/docs/en/setup/plugins/queue_memory-queue.md b/docs/en/setup/plugins/queue_memory-queue.md
index 2d77288..224debe 100755
--- a/docs/en/setup/plugins/queue_memory-queue.md
+++ b/docs/en/setup/plugins/queue_memory-queue.md
@@ -6,3 +6,8 @@
 # The maximum buffer event size.
 event_buffer_size: 5000
 ```
+## Configuration
+|Name|Type|Description|
+|----|----|-----------|
+| event_buffer_size | int | configThe maximum buffer event size. |
+
diff --git a/docs/en/setup/plugins/queue_mmap-queue.md b/docs/en/setup/plugins/queue_mmap-queue.md
index d1d3fd0..2c7d7fc 100755
--- a/docs/en/setup/plugins/queue_mmap-queue.md
+++ b/docs/en/setup/plugins/queue_mmap-queue.md
@@ -16,3 +16,13 @@
 # The max size of the input event. Default value is 20k.
 max_event_size: 20480
 ```
+## Configuration
+|Name|Type|Description|
+|----|----|-----------|
+| segment_size | int | The size of each segment. The unit is byte. |
+| max_in_mem_segments | int32 | The max num of segments in memory. |
+| queue_capacity_segments | int | The capacity of Queue = segment_size * queue_capacity_segments. |
+| flush_period | int | The period flush time. The unit is ms. |
+| flush_ceiling_num | int | The max number in one flush time. |
+| max_event_size | int | The max size of the input event. |
+
diff --git a/docs/en/setup/plugins/queue_none-queue.md b/docs/en/setup/plugins/queue_none-queue.md
index 98b6a73..890df50 100755
--- a/docs/en/setup/plugins/queue_none-queue.md
+++ b/docs/en/setup/plugins/queue_none-queue.md
@@ -3,3 +3,7 @@
 This is an empty queue for direct connection protocols, such as SkyWalking native configuration discovery service protocol.
 ## DefaultConfig
 ```yaml```
+## Configuration
+|Name|Type|Description|
+|----|----|-----------|
+
diff --git a/docs/en/setup/plugins/receiver_grpc-nativecds-receiver.md b/docs/en/setup/plugins/receiver_grpc-nativecds-receiver.md
index 4d9ea6b..68b7313 100755
--- a/docs/en/setup/plugins/receiver_grpc-nativecds-receiver.md
+++ b/docs/en/setup/plugins/receiver_grpc-nativecds-receiver.md
@@ -5,3 +5,7 @@
  - [nativecds-grpc-forwarder](forwarder_nativecds-grpc-forwarder.md)
 ## DefaultConfig
 ```yaml```
+## Configuration
+|Name|Type|Description|
+|----|----|-----------|
+
diff --git a/docs/en/setup/plugins/receiver_grpc-nativeevent-receiver.md b/docs/en/setup/plugins/receiver_grpc-nativeevent-receiver.md
index 5e40bf1..caacd67 100755
--- a/docs/en/setup/plugins/receiver_grpc-nativeevent-receiver.md
+++ b/docs/en/setup/plugins/receiver_grpc-nativeevent-receiver.md
@@ -5,3 +5,7 @@
  - [nativeevent-grpc-forwarder](forwarder_nativeevent-grpc-forwarder.md)
 ## DefaultConfig
 ```yaml```
+## Configuration
+|Name|Type|Description|
+|----|----|-----------|
+
diff --git a/docs/en/setup/plugins/receiver_grpc-nativejvm-receiver.md b/docs/en/setup/plugins/receiver_grpc-nativejvm-receiver.md
index 66fda0a..0f75649 100755
--- a/docs/en/setup/plugins/receiver_grpc-nativejvm-receiver.md
+++ b/docs/en/setup/plugins/receiver_grpc-nativejvm-receiver.md
@@ -5,3 +5,7 @@
  - [nativejvm-grpc-forwarder](forwarder_nativejvm-grpc-forwarder.md)
 ## DefaultConfig
 ```yaml```
+## Configuration
+|Name|Type|Description|
+|----|----|-----------|
+
diff --git a/docs/en/setup/plugins/receiver_grpc-nativelog-receiver.md b/docs/en/setup/plugins/receiver_grpc-nativelog-receiver.md
index 9bc2ab9..47572e8 100755
--- a/docs/en/setup/plugins/receiver_grpc-nativelog-receiver.md
+++ b/docs/en/setup/plugins/receiver_grpc-nativelog-receiver.md
@@ -5,3 +5,7 @@
  - [nativelog-grpc-forwarder](forwarder_nativelog-grpc-forwarder.md)
 ## DefaultConfig
 ```yaml```
+## Configuration
+|Name|Type|Description|
+|----|----|-----------|
+
diff --git a/docs/en/setup/plugins/receiver_grpc-nativemanagement-receiver.md b/docs/en/setup/plugins/receiver_grpc-nativemanagement-receiver.md
index 41ce73b..a0b4253 100755
--- a/docs/en/setup/plugins/receiver_grpc-nativemanagement-receiver.md
+++ b/docs/en/setup/plugins/receiver_grpc-nativemanagement-receiver.md
@@ -5,3 +5,7 @@
  - [nativemanagement-grpc-forwarder](forwarder_nativemanagement-grpc-forwarder.md)
 ## DefaultConfig
 ```yaml```
+## Configuration
+|Name|Type|Description|
+|----|----|-----------|
+
diff --git a/docs/en/setup/plugins/receiver_grpc-nativemeter-receiver.md b/docs/en/setup/plugins/receiver_grpc-nativemeter-receiver.md
index 037ce15..d565a09 100755
--- a/docs/en/setup/plugins/receiver_grpc-nativemeter-receiver.md
+++ b/docs/en/setup/plugins/receiver_grpc-nativemeter-receiver.md
@@ -5,3 +5,7 @@
  - [nativemeter-grpc-forwarder](forwarder_nativemeter-grpc-forwarder.md)
 ## DefaultConfig
 ```yaml```
+## Configuration
+|Name|Type|Description|
+|----|----|-----------|
+
diff --git a/docs/en/setup/plugins/receiver_grpc-nativeprofile-receiver.md b/docs/en/setup/plugins/receiver_grpc-nativeprofile-receiver.md
index 6e5ab28..f932292 100755
--- a/docs/en/setup/plugins/receiver_grpc-nativeprofile-receiver.md
+++ b/docs/en/setup/plugins/receiver_grpc-nativeprofile-receiver.md
@@ -5,3 +5,7 @@
  - [nativeprofile-grpc-forwarder](forwarder_nativeprofile-grpc-forwarder.md)
 ## DefaultConfig
 ```yaml```
+## Configuration
+|Name|Type|Description|
+|----|----|-----------|
+
diff --git a/docs/en/setup/plugins/receiver_grpc-nativetracing-receiver.md b/docs/en/setup/plugins/receiver_grpc-nativetracing-receiver.md
index c33c8ce..f4914c7 100755
--- a/docs/en/setup/plugins/receiver_grpc-nativetracing-receiver.md
+++ b/docs/en/setup/plugins/receiver_grpc-nativetracing-receiver.md
@@ -5,3 +5,7 @@
  - [nativetracing-grpc-forwarder](forwarder_nativetracing-grpc-forwarder.md)
 ## DefaultConfig
 ```yaml```
+## Configuration
+|Name|Type|Description|
+|----|----|-----------|
+
diff --git a/docs/en/setup/plugins/receiver_http-nativelog-receiver.md b/docs/en/setup/plugins/receiver_http-nativelog-receiver.md
index ef93c2e..55b6a1c 100755
--- a/docs/en/setup/plugins/receiver_http-nativelog-receiver.md
+++ b/docs/en/setup/plugins/receiver_http-nativelog-receiver.md
@@ -10,3 +10,9 @@
 # The request timeout seconds.
 timeout: 5
 ```
+## Configuration
+|Name|Type|Description|
+|----|----|-----------|
+| uri | string | config |
+| timeout | int |  |
+
diff --git a/docs/en/setup/plugins/server_grpc-server.md b/docs/en/setup/plugins/server_grpc-server.md
index 3681be4..4885f94 100755
--- a/docs/en/setup/plugins/server_grpc-server.md
+++ b/docs/en/setup/plugins/server_grpc-server.md
@@ -16,3 +16,13 @@
 # The TLS key file path.
 tls_key_file: ""
 ```
+## Configuration
+|Name|Type|Description|
+|----|----|-----------|
+| address | string | The address of grpc server. |
+| network | string | The network of grpc. |
+| max_recv_msg_size | int | The max size of the received log. |
+| max_concurrent_streams | uint32 | The max concurrent stream channels. |
+| tls_cert_file | string | The TLS cert file path. |
+| tls_key_file | string | The TLS key file path. |
+
diff --git a/docs/en/setup/plugins/server_http-server.md b/docs/en/setup/plugins/server_http-server.md
index e2b3ab0..1a7d5ee 100755
--- a/docs/en/setup/plugins/server_http-server.md
+++ b/docs/en/setup/plugins/server_http-server.md
@@ -6,3 +6,8 @@
 # The http server address.
 address: ":12800"
 ```
+## Configuration
+|Name|Type|Description|
+|----|----|-----------|
+| address | string |  |
+
diff --git a/docs/en/setup/plugins/server_prometheus-server.md b/docs/en/setup/plugins/server_prometheus-server.md
index db187ce..eda50f2 100755
--- a/docs/en/setup/plugins/server_prometheus-server.md
+++ b/docs/en/setup/plugins/server_prometheus-server.md
@@ -8,3 +8,9 @@
 # The prometheus server metrics endpoint.
 endpoint: "/metrics"
 ```
+## Configuration
+|Name|Type|Description|
+|----|----|-----------|
+| address | string | The prometheus server address. |
+| endpoint | string | The prometheus server metrics endpoint. |
+
diff --git a/go.mod b/go.mod
index de1c0c9..49a9ad4 100644
--- a/go.mod
+++ b/go.mod
@@ -18,6 +18,8 @@
 	github.com/stretchr/testify v1.6.1
 	github.com/urfave/cli/v2 v2.3.0
 	go.uber.org/automaxprocs v1.4.0
+	golang.org/x/mod v0.4.2
+	golang.org/x/tools v0.1.6 // indirect
 	google.golang.org/grpc v1.38.0
 	google.golang.org/protobuf v1.27.0
 	gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b
diff --git a/go.sum b/go.sum
index bef5dff..f925a98 100644
--- a/go.sum
+++ b/go.sum
@@ -826,6 +826,7 @@
 github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
 github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
 github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
+github.com/yuin/goldmark v1.4.0/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k=
 go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU=
 go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU=
 go.etcd.io/etcd v0.0.0-20191023171146-3cf2f69b5738/go.mod h1:dnLIgRNXwCJa5e+c6mIZCrds/GIG4ncV9HhK5PX7jPg=
@@ -911,8 +912,9 @@
 golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg=
 golang.org/x/mod v0.1.1-0.20191107180719-034126e5016b/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg=
 golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
-golang.org/x/mod v0.3.0 h1:RM4zey1++hCTbCVQfnWeKs9/IEsaBLA8vTkd0WVtmH4=
 golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
+golang.org/x/mod v0.4.2 h1:Gz96sIWK3OalVv/I/qNygP42zyoKp3xptRVCWRFEBvo=
+golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
 golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
 golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
 golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
@@ -953,8 +955,9 @@
 golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA=
 golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA=
 golang.org/x/net v0.0.0-20200904194848-62affa334b73/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA=
-golang.org/x/net v0.0.0-20201006153459-a7d1128ccaa0 h1:wBouT66WTYFXdxfVdz9sVWARVd/2vfGcmI45D2gj45M=
 golang.org/x/net v0.0.0-20201006153459-a7d1128ccaa0/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
+golang.org/x/net v0.0.0-20210805182204-aaa1db679c0d h1:20cMwl2fHAzkJMEA+8J4JgqBQcQGzbisXo31MIeenXI=
+golang.org/x/net v0.0.0-20210805182204-aaa1db679c0d/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
 golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
 golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
 golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
@@ -971,8 +974,9 @@
 golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
-golang.org/x/sync v0.0.0-20200930132711-30421366ff76 h1:JnxiSYT3Nm0BT2a8CyvYyM6cnrWpidecD1UuSYbhKm0=
 golang.org/x/sync v0.0.0-20200930132711-30421366ff76/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
+golang.org/x/sync v0.0.0-20210220032951-036812b2e83c h1:5KslGYwFpkhGh+Q16bwMP3cOontH8FOep7tGV86Y7SQ=
+golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
 golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
 golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
@@ -1032,8 +1036,10 @@
 golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20201008064518-c1f3e3309c71/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20201214210602-f9fddec55a1e h1:AyodaIpKjppX+cBfTASF2E1US3H2JFBj920Ot3rtDjs=
 golang.org/x/sys v0.0.0-20201214210602-f9fddec55a1e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20210809222454-d867a43fc93e h1:WUoyKPm6nCo1BnNUvPGnFG3T5DUVem42yDJZZ4CNxMA=
+golang.org/x/sys v0.0.0-20210809222454-d867a43fc93e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw=
 golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1 h1:v+OssWQX+hTHEmOBgwxdZxK4zHq3yOs8F9J7mk0PY8E=
 golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
@@ -1041,8 +1047,9 @@
 golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
 golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
 golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
-golang.org/x/text v0.3.3 h1:cokOdA+Jmi5PJGXLlLllQSgYigAEfHXJAERHVMaCc2k=
 golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
+golang.org/x/text v0.3.6 h1:aRYxNxv6iGQlyVaZmk6ZgYEDa+Jg18DxebPSrd6bg1M=
+golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
 golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
 golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
 golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
@@ -1113,8 +1120,9 @@
 golang.org/x/tools v0.0.0-20200804011535-6c149bb5ef0d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA=
 golang.org/x/tools v0.0.0-20200825202427-b303f430e36d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA=
 golang.org/x/tools v0.0.0-20200904185747-39188db58858/go.mod h1:Cj7w3i3Rnn0Xh82ur9kSqwfTHTeVxaDqrfMjpcNT6bE=
-golang.org/x/tools v0.0.0-20201008025239-9df69603baec h1:RY2OghEV/7X1MLaecgm1mwFd3sGvUddm5pGVSxQvX0c=
 golang.org/x/tools v0.0.0-20201008025239-9df69603baec/go.mod h1:z6u4i615ZeAfBE4XtMziQW1fSVJXACjjbWkB/mvPzlU=
+golang.org/x/tools v0.1.6 h1:SIasE1FVIQOWz2GEAHFOmoW7xchJcqlucjSULTL0Ag4=
+golang.org/x/tools v0.1.6/go.mod h1:LGqMHiF4EqQNHR1JncWGqT5BVaXmza+X+BDGol+dOxo=
 golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
 golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
 golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
diff --git a/internal/satellite/tools/generate_plugin_doc.go b/internal/satellite/tools/generate_plugin_doc.go
index 85442f3..12444e2 100644
--- a/internal/satellite/tools/generate_plugin_doc.go
+++ b/internal/satellite/tools/generate_plugin_doc.go
@@ -19,19 +19,24 @@
 
 import (
 	"fmt"
+	"go/ast"
+	"go/doc"
+	"go/parser"
+	"go/token"
 	"io/ioutil"
 	"os"
 	"reflect"
 	"sort"
 	"strings"
 
+	"github.com/apache/skywalking-satellite/internal/pkg/log"
+	"github.com/apache/skywalking-satellite/internal/pkg/plugin"
+	"github.com/apache/skywalking-satellite/plugins"
 	fetcher_api "github.com/apache/skywalking-satellite/plugins/fetcher/api"
 	forwarder_api "github.com/apache/skywalking-satellite/plugins/forwarder/api"
 	receiver_api "github.com/apache/skywalking-satellite/plugins/receiver/api"
 
-	"github.com/apache/skywalking-satellite/internal/pkg/log"
-	"github.com/apache/skywalking-satellite/internal/pkg/plugin"
-	"github.com/apache/skywalking-satellite/plugins"
+	"golang.org/x/mod/modfile"
 )
 
 const (
@@ -41,6 +46,8 @@
 	yamlQuoteStart = "```yaml"
 	yamlQuoteEnd   = "```"
 	markdownSuffix = ".md"
+
+	commentPrefix = "/ "
 )
 
 func GeneratePluginDoc(outputRootPath, menuFilePath, pluginFilePath string) error {
@@ -119,30 +126,184 @@
 
 func generatePluginListDoc(docDir string, categories []reflect.Type) error {
 	fileName := docDir + "/" + "plugin-list" + markdownSuffix
-	doc := topLevel + "Plugin List" + lf
+	docStr := topLevel + "Plugin List" + lf
 	for _, category := range categories {
-		doc += "- " + category.Name() + lf
+		docStr += "- " + category.Name() + lf
 		pluginList := getPluginsByCategory(category)
 		for _, pluginName := range pluginList {
-			doc += "	- [" + pluginName + "](./" + getPluginDocFileName(category, pluginName) + ")" + lf
+			docStr += "	- [" + pluginName + "](./" + getPluginDocFileName(category, pluginName) + ")" + lf
 			if err := generatePluginDoc(docDir, category, pluginName); err != nil {
 				return err
 			}
 		}
 	}
-	return writeDoc([]byte(doc), fileName)
+	return writeDoc([]byte(docStr), fileName)
 }
 
 func generatePluginDoc(docDir string, category reflect.Type, pluginName string) error {
 	docFileName := docDir + "/" + getPluginDocFileName(category, pluginName)
 	p := plugin.Get(category, plugin.Config{plugin.NameField: pluginName})
-	doc := topLevel + category.Name() + "/" + pluginName + lf
-	doc += secondLevel + "Description" + lf
-	doc += p.Description() + lf
-	doc += generateSupportForwarders(category, p)
-	doc += secondLevel + "DefaultConfig" + lf
-	doc += yamlQuoteStart + p.DefaultConfig() + yamlQuoteEnd + lf
-	return writeDoc([]byte(doc), docFileName)
+	docRes := topLevel + category.Name() + "/" + pluginName + lf
+	docRes += secondLevel + "Description" + lf
+	docRes += p.Description() + lf
+	docRes += generateSupportForwarders(category, p)
+	docRes += secondLevel + "DefaultConfig" + lf
+	docRes += yamlQuoteStart + p.DefaultConfig() + yamlQuoteEnd + lf
+	docRes += secondLevel + "Configuration" + lf
+	docRes += generateConfiguration(category, p) + lf
+	return writeDoc([]byte(docRes), docFileName)
+}
+
+func GetModuleName() string {
+	goModBytes, err := ioutil.ReadFile("go.mod")
+	if err != nil {
+		return ""
+	}
+
+	modName := modfile.ModulePath(goModBytes)
+	return modName
+}
+
+func generateConfiguration(category reflect.Type, p plugin.Plugin) string {
+	var content = ""
+
+	content += "|Name|Type|Description|" + lf
+	content += "|----|----|-----------|" + lf
+
+	configurations := getConfigurations(category, reflect.TypeOf(p).Elem())
+	eachConfigurationItem(configurations, "", func(name, dataType, desc string) {
+		content += fmt.Sprintf("| %s | %s | %s |%s", name, dataType, desc, lf)
+	})
+
+	return content
+}
+
+func eachConfigurationItem(items []*pluginConfigurationItem, parentName string, consumer func(name, dataType, desc string)) {
+	for _, conf := range items {
+		consumer(parentName+conf.name, conf.dataType, conf.description)
+		eachConfigurationItem(conf.children, parentName+conf.name+".", consumer)
+	}
+}
+
+type pluginConfigurationItem struct {
+	name        string
+	description string
+	dataType    string
+	children    []*pluginConfigurationItem
+}
+
+type pluginChildrenFinder struct {
+	childType reflect.Type
+	squash    bool
+}
+
+func getConfigurations(category, p reflect.Type) []*pluginConfigurationItem {
+	pluginDir := strings.TrimPrefix(p.PkgPath(), GetModuleName())
+	fset := token.NewFileSet()
+
+	d, err := parser.ParseDir(fset, "."+pluginDir, nil, parser.ParseComments)
+	if err != nil {
+		log.Logger.Warnf("failed to generate plugin [%s] configuration, error: %v", category.Name()+"/"+p.Name(), err)
+		return make([]*pluginConfigurationItem, 0)
+	}
+
+	result := make([]*pluginConfigurationItem, 0)
+	for _, f := range d {
+		pack := doc.New(f, "./", 0)
+		for _, t := range pack.Types {
+			if t.Name != p.Name() {
+				continue
+			}
+
+			for _, spec := range t.Decl.Specs {
+				typeSpec, ok := spec.(*ast.TypeSpec)
+				if !ok {
+					continue
+				}
+				structType, ok := typeSpec.Type.(*ast.StructType)
+				if !ok {
+					continue
+				}
+
+				for _, field := range structType.Fields.List {
+					item, childFinder := parsePluginConfigurationItem(field, p)
+					if childFinder != nil {
+						configurations := getConfigurations(category, childFinder.childType)
+						if childFinder.squash {
+							result = append(result, configurations...)
+						} else if item != nil {
+							item.children = configurations
+						}
+					}
+					if item != nil {
+						result = append(result, item)
+					}
+				}
+			}
+		}
+	}
+	return result
+}
+
+// parse field to configuration item
+func parsePluginConfigurationItem(field *ast.Field, pType reflect.Type) (*pluginConfigurationItem, *pluginChildrenFinder) {
+	if field.Names == nil || field.Tag == nil {
+		return nil, nil
+	}
+
+	var fieldName = ""
+	for _, n := range field.Names {
+		fieldName += n.Name
+	}
+
+	pluginField, find := pType.FieldByName(fieldName)
+	if !find {
+		return nil, nil
+	}
+	mapStructureValue := pluginField.Tag.Get("mapstructure")
+	var confName string
+	var childrenFinder *pluginChildrenFinder
+	if index := strings.Index(mapStructureValue, ","); index != -1 {
+		if strings.Contains(mapStructureValue[index+1:], "squash") {
+			if pluginField.Type.Kind() == reflect.Struct {
+				return nil, &pluginChildrenFinder{childType: pluginField.Type, squash: true}
+			}
+			log.Logger.Warnf("Could not identity plugin field: %v", pluginField)
+			return nil, nil
+		}
+		confName = mapStructureValue[:index]
+	} else if len(mapStructureValue) > 0 {
+		confName = mapStructureValue
+	} else {
+		confName = fieldName
+	}
+
+	var dataType = pluginField.Type.String()
+	switch pluginField.Type.Kind() {
+	case reflect.Struct:
+	case reflect.Ptr:
+		if pluginField.Type.Elem().PkgPath() != "" {
+			childrenFinder = &pluginChildrenFinder{childType: pluginField.Type.Elem()}
+		}
+	}
+
+	return &pluginConfigurationItem{
+		name:        confName,
+		dataType:    dataType,
+		description: buildPluginDescription(field),
+	}, childrenFinder
+}
+
+func buildPluginDescription(field *ast.Field) string {
+	var comments = ""
+	for _, group := range []*ast.CommentGroup{field.Doc, field.Comment} {
+		if group != nil {
+			for _, comment := range group.List {
+				comments += strings.TrimLeft(comment.Text, commentPrefix)
+			}
+		}
+	}
+	return comments
 }
 
 func generateSupportForwarders(category reflect.Type, p plugin.Plugin) string {
@@ -176,8 +337,8 @@
 	return strings.ToLower(category.Name() + "_" + pluginName + markdownSuffix)
 }
 
-func writeDoc(doc []byte, docFileName string) error {
-	if err := ioutil.WriteFile(docFileName, doc, os.ModePerm); err != nil {
+func writeDoc(docBytes []byte, docFileName string) error {
+	if err := ioutil.WriteFile(docFileName, docBytes, os.ModePerm); err != nil {
 		return fmt.Errorf("cannot init the plugin doc: %v", err)
 	}
 	return nil
diff --git a/plugins/client/grpc/client.go b/plugins/client/grpc/client.go
index 0431a27..22e72fd 100644
--- a/plugins/client/grpc/client.go
+++ b/plugins/client/grpc/client.go
@@ -37,7 +37,7 @@
 	config.CommonFields
 	// server finder config
 	ServerFinderConfig resolvers.ServerFinderConfig `mapstructure:",squash"`
-	// config
+
 	EnableTLS          bool   `mapstructure:"enable_TLS"`           // Enable TLS connect to server
 	ClientPemPath      string `mapstructure:"client_pem_path"`      // The file path of client.pem. The config only works when opening the TLS switch.
 	ClientKeyPath      string `mapstructure:"client_key_path"`      // The file path of client.key. The config only works when opening the TLS switch.
diff --git a/plugins/client/kafka/client.go b/plugins/client/kafka/client.go
index 63c0362..827192a 100644
--- a/plugins/client/kafka/client.go
+++ b/plugins/client/kafka/client.go
@@ -33,7 +33,6 @@
 
 type Client struct {
 	config.CommonFields
-	// config
 	Brokers            string `mapstructure:"brokers"`              // The Kafka broker addresses (default `localhost:9092`).
 	Version            string `mapstructure:"version"`              // The version should follow this pattern, which is `major.minor.veryMinor.patch`.
 	EnableTLS          bool   `mapstructure:"enable_TLS"`           // The TLS switch (default false).
diff --git a/plugins/queue/mmap/queue.go b/plugins/queue/mmap/queue.go
index 3d21340..d7b0c2e 100644
--- a/plugins/queue/mmap/queue.go
+++ b/plugins/queue/mmap/queue.go
@@ -15,6 +15,7 @@
 // specific language governing permissions and limitations
 // under the License.
 
+//go:build !windows
 // +build !windows
 
 package mmap
@@ -53,7 +54,6 @@
 // Queue is a memory mapped queue to store the input data.
 type Queue struct {
 	config.CommonFields
-	// config
 	SegmentSize           int   `mapstructure:"segment_size"`            // The size of each segment. The unit is byte.
 	MaxInMemSegments      int32 `mapstructure:"max_in_mem_segments"`     // The max num of segments in memory.
 	QueueCapacitySegments int   `mapstructure:"queue_capacity_segments"` // The capacity of Queue = segment_size * queue_capacity_segments.
diff --git a/test/e2e/case/native-protocols/expected/service.yml b/test/e2e/case/native-protocols/expected/service.yml
index 129f9d3..e299d8b 100644
--- a/test/e2e/case/native-protocols/expected/service.yml
+++ b/test/e2e/case/native-protocols/expected/service.yml
@@ -13,9 +13,15 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- range . }}
+{{- if eq .name "e2e-service-provider" }}
 - id: {{ b64enc "e2e-service-provider" }}.1
   name: e2e-service-provider
   group: ""
+{{- end }}
+{{- if eq .name "e2e-service-consumer" }}
 - id: {{ b64enc "e2e-service-consumer" }}.1
   name: e2e-service-consumer
-  group: ""
\ No newline at end of file
+  group: ""
+{{- end }}
+{{- end }}
\ No newline at end of file
