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

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


The following commit(s) were added to refs/heads/main by this push:
     new 6f23cf3  Support generate plugin configuration (#73)
6f23cf3 is described below

commit 6f23cf3b82cad2778b3991807577fb26dfb466d7
Author: mrproliu <[email protected]>
AuthorDate: Tue Sep 28 12:11:42 2021 +0800

    Support generate plugin configuration (#73)
---
 docs/en/setup/plugins/client_grpc-client.md        |  26 +++
 docs/en/setup/plugins/client_kafka-client.md       |  20 +++
 .../en/setup/plugins/fallbacker_none-fallbacker.md |   4 +
 .../setup/plugins/fallbacker_timer-fallbacker.md   |   7 +
 .../plugins/fetcher_prometheus-metrics-fetcher.md  |   5 +
 .../plugins/forwarder_nativecds-grpc-forwarder.md  |   4 +
 .../forwarder_nativeevent-grpc-forwarder.md        |   4 +
 .../plugins/forwarder_nativejvm-grpc-forwarder.md  |   4 +
 .../plugins/forwarder_nativelog-grpc-forwarder.md  |   4 +
 .../plugins/forwarder_nativelog-kafka-forwarder.md |   5 +
 .../forwarder_nativemanagement-grpc-forwarder.md   |   4 +
 .../forwarder_nativemeter-grpc-forwarder.md        |   4 +
 .../forwarder_nativeprofile-grpc-forwarder.md      |   4 +
 .../forwarder_nativetracing-grpc-forwarder.md      |   4 +
 docs/en/setup/plugins/queue_memory-queue.md        |   5 +
 docs/en/setup/plugins/queue_mmap-queue.md          |  10 ++
 docs/en/setup/plugins/queue_none-queue.md          |   4 +
 .../plugins/receiver_grpc-nativecds-receiver.md    |   4 +
 .../plugins/receiver_grpc-nativeevent-receiver.md  |   4 +
 .../plugins/receiver_grpc-nativejvm-receiver.md    |   4 +
 .../plugins/receiver_grpc-nativelog-receiver.md    |   4 +
 .../receiver_grpc-nativemanagement-receiver.md     |   4 +
 .../plugins/receiver_grpc-nativemeter-receiver.md  |   4 +
 .../receiver_grpc-nativeprofile-receiver.md        |   4 +
 .../receiver_grpc-nativetracing-receiver.md        |   4 +
 .../plugins/receiver_http-nativelog-receiver.md    |   6 +
 docs/en/setup/plugins/server_grpc-server.md        |  10 ++
 docs/en/setup/plugins/server_http-server.md        |   5 +
 docs/en/setup/plugins/server_prometheus-server.md  |   6 +
 go.mod                                             |   2 +
 go.sum                                             |  20 ++-
 internal/satellite/tools/generate_plugin_doc.go    | 193 +++++++++++++++++++--
 plugins/client/grpc/client.go                      |   2 +-
 plugins/client/kafka/client.go                     |   1 -
 plugins/queue/mmap/queue.go                        |   2 +-
 .../e2e/case/native-protocols/expected/service.yml |   8 +-
 36 files changed, 379 insertions(+), 26 deletions(-)

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 @@ authentication: ""
 # 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 @@ refresh_period: 10
 # 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 @@ exponential_backoff: 2000
 # 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 @@ scrape_configs:
     - 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 @@ This is a synchronization Kafka forwarder with the SkyWalking 
native log protoco
 # 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 @@ This is a memory queue to buffer the input event.
 # 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 @@ flush_ceiling_num: 10000
 # 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 @@ This is a receiver for SkyWalking native Configuration 
Discovery Service format,
  - [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 @@ This is a receiver for SkyWalking native meter format, which is 
defined at https
  - [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 @@ This is a receiver for SkyWalking native jvm format, which is 
defined at https:/
  - [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 @@ This is a receiver for SkyWalking native logging format, which 
is defined at htt
  - [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 @@ This is a receiver for SkyWalking native management format, 
which is defined at
  - 
[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 @@ This is a receiver for SkyWalking native meter format, which is 
defined at https
  - [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 @@ This is a receiver for SkyWalking native profile format, which 
is defined at htt
  - [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 @@ This is a receiver for SkyWalking native tracing format, which 
is defined at htt
  - [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 @@ uri: "/logging"
 # 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 @@ tls_cert_file: ""
 # 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 @@ This is a sharing plugin, which would start a http server.
 # 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 @@ address: ":1234"
 # 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 @@ require (
        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.25/go.mod 
h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9de
 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.0/go.mod 
h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY=
 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-20200625001655-4c5254603344/go.mod 
h1:/O7V0waA8r7cgGh81R
 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-20190423024810-112230192c58/go.mod 
h1:RxMgew5VJxzue5/jJ
 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-20200905004654-be1d3432aa8f/go.mod h1:h1NjWce9XRLGQEsW7w
 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.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fq
 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-20200729194436-6467de6f59a7/go.mod h1:njjCfa9FT2d7l9Bc
 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 @@ package tools
 
 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 @@ const (
        yamlQuoteStart = "```yaml"
        yamlQuoteEnd   = "```"
        markdownSuffix = ".md"
+
+       commentPrefix = "/ "
 )
 
 func GeneratePluginDoc(outputRootPath, menuFilePath, pluginFilePath string) 
error {
@@ -119,30 +126,184 @@ func updateMenuPluginListDoc(outputRootPath, 
menuFilePath, pluginFilePath string
 
 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 @@ func getPluginDocFileName(category reflect.Type, pluginName 
string) string {
        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 @@ type Client struct {
        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 @@ const Name = "kafka-client"
 
 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 @@ const (
 // 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

Reply via email to