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-rover.git


The following commit(s) were added to refs/heads/main by this push:
     new 8cd7adc  Update project description and add access log documentation 
(#108)
8cd7adc is described below

commit 8cd7adc8f2367717a86442b3432ae3eadd580194
Author: mrproliu <[email protected]>
AuthorDate: Thu Dec 28 16:54:20 2023 +0800

    Update project description and add access log documentation (#108)
---
 .asf.yaml                                          |  2 +-
 README.md                                          |  3 +-
 docs/en/concepts-and-designs/overview.md           |  7 +-
 docs/en/setup/configuration/accesslog.md           | 47 +++++++++++
 docs/en/setup/configuration/core.md                | 20 ++---
 docs/en/setup/configuration/logger.md              |  6 +-
 .../kubernetes.md => process-discovery.md}         | 78 ++++++++++-------
 .../configuration/process_discovery/overview.md    | 17 ----
 .../configuration/process_discovery/scanner.md     | 97 ----------------------
 docs/en/setup/configuration/profiling.md           |  7 ++
 .../en/setup/examples/cases/agent-sensor/readme.md | 50 -----------
 .../examples/cases/profiling-process/readme.md     | 88 --------------------
 .../kubernetes}/readme.md                          |  8 +-
 .../kubernetes}/rover-daemonset.yml                |  2 +
 docs/en/setup/examples/deploy/linux/readme.md      | 19 -----
 docs/en/setup/overview.md                          | 12 +--
 docs/menu.yml                                      | 22 ++---
 17 files changed, 142 insertions(+), 343 deletions(-)

diff --git a/.asf.yaml b/.asf.yaml
index e1358e9..598d806 100644
--- a/.asf.yaml
+++ b/.asf.yaml
@@ -16,7 +16,7 @@
 #
 
 github:
-  description: Metrics collector and profiler powered by eBPF to diagnose CPU 
and network performance.
+  description: Monitor and profiler powered by eBPF to monitor network 
traffic, and diagnose CPU and network performance.
   homepage: https://skywalking.apache.org/
   labels:
     - skywalking
diff --git a/README.md b/README.md
index 9eca6e8..f117c60 100644
--- a/README.md
+++ b/README.md
@@ -3,11 +3,12 @@ Apache SkyWalking Rover
 
 <img src="http://skywalking.apache.org/assets/logo.svg"; alt="Sky Walking logo" 
height="90px" align="right" />
 
-**SkyWalking Rover**: Metrics collector and profiler powered by eBPF to 
diagnose CPU and network performance.
+**SkyWalking Rover**: Monitor and profiler powered by eBPF to monitor network 
traffic, and diagnose CPU and network performance.
 
 - CPU On/Off profiling for C, C++, Golang, and Rust.
 - Network profiling for TCP, TCP(TLS), HTTP(s) traffic with topology and 
metrics.
 - Tracing enhancement. Collect extra information from OS level as attached 
events for the existing tracing system, such as attach raw data of HTTP request 
and reponse.
+- Kubernetes network monitoring for generating network access logs. 
 
 [![GitHub 
stars](https://img.shields.io/github/stars/apache/skywalking.svg?style=for-the-badge&label=Stars&logo=github)](https://github.com/apache/skywalking)
 [![Twitter 
Follow](https://img.shields.io/twitter/follow/asfskywalking.svg?style=for-the-badge&label=Follow&logo=twitter)](https://twitter.com/AsfSkyWalking)
diff --git a/docs/en/concepts-and-designs/overview.md 
b/docs/en/concepts-and-designs/overview.md
index ac4ebf1..cb111ef 100644
--- a/docs/en/concepts-and-designs/overview.md
+++ b/docs/en/concepts-and-designs/overview.md
@@ -1,15 +1,16 @@
 # Overview
 
-SkyWalking Rover is an open-source collector, which provides a metrics 
collector and eBPF-based profiler for C, C++, Golang, and Rust.
+SkyWalking Rover is an open-source collector, which provides a eBPF-based 
monitor and profiler in the Kubernetes.
 
 ## Why use SkyWalking Rover?
 
-On the Linux platform, we could collect a lot of telemetry data. Rover could 
collect them based on the eBPF technology,
+On the Kubernetes platform, we could collect a lot of telemetry data. Rover 
could collect them based on the eBPF technology,
 and upload them to the SkyWalking backend for analysis, aggregate, and 
visualize them.
 
 1. EBPF-based profiling for C, C++, Golang, and Rust.
 2. Network profiling for L4(TCP) and L7(HTTP) traffic, including with TLS.
-3. Tracing enhancement. Collect extra information from OS level as attached 
events for the existing tracing system, such as attach raw data of HTTP request 
and reponse.
+3. Tracing enhancement. Collect extra information from OS level as attached 
events for the existing tracing system, such as attach raw data of HTTP request 
and response.
+4. Network monitoring for generating network access logs.
 
 ## Architecture
 
diff --git a/docs/en/setup/configuration/accesslog.md 
b/docs/en/setup/configuration/accesslog.md
new file mode 100644
index 0000000..048e864
--- /dev/null
+++ b/docs/en/setup/configuration/accesslog.md
@@ -0,0 +1,47 @@
+# Access Log Module
+
+The access log module is used to collecting the network access logs from the 
[Kerbernetes Module](process_discovery/kubernetes.md),
+and send [access 
logs](https://github.com/apache/skywalking-data-collect-protocol/blob/master/ebpf/accesslog.proto)
 to the backend server for analyze.
+
+## Configuration
+
+| Name                                       | Default | Environment Key       
                           | Description                                        
        |
+|--------------------------------------------|---------|--------------------------------------------------|------------------------------------------------------------|
+| access_log.active                          | false   | 
ROVER_ACCESS_LOG_ACTIVE                          | Is active the access log 
monitoring.                       |
+| access_log.flush.max_count                 | 2000    | 
ROVER_ACCESS_LOG_FLUSH_MAX_COUNT                 | The max count of the access 
log when flush to the backend. |
+| access_log.flush.period                    | 5s      | 
ROVER_ACCESS_LOG_FLUSH_PERIOD                    | The period of flush access 
log to the backend.             |
+| access_log_protocol_analyze.per_cpu_buffer | 400KB   | 
ROVER_ACCESS_LOG_PROTOCOL_ANALYZE_PER_CPU_BUFFER | The size of socket data 
buffer on each CPU.                |
+| access_log.protocol_analyze.parallels      | 2       | 
ROVER_ACCESS_LOG_PROTOCOL_ANALYZE_PARALLELS      | The count of parallel 
protocol analyzer.                   |
+| access_log.protocol_analyze.queue_size     | 5000    | 
ROVER_ACCESS_LOG_PROTOCOL_ANALYZE_QUEUE_SIZE     | The size of per paralleled 
analyze queue.                  |
+
+
+## Collectors
+
+### Socket Connect/Accept/Close
+
+Monitor all socket `connect`, `accept`, and `close` events from monitored 
processes by attaching eBPF program to the respective [trace 
points](https://docs.kernel.org/trace/tracepoints.html).
+
+### Socket traffic
+
+Capture all socket traffic from monitored processes by attaching eBPF program 
to [network 
syscalls](https://linasm.sourceforge.net/docs/syscalls/network.php). 
+
+#### Protocol
+
+Data collection is followed by protocol analysis. Currently, the supported 
protocols include:
+
+1. HTTP/1.x
+2. HTTP/2
+
+Note: As HTTP2 is a stateful protocol, it only supports monitoring processes 
that start after monitor. Processes already running at the time of monitoring 
may fail to provide complete data, leading to unsuccessful analysis.
+
+#### TLS
+
+When a process uses the TLS protocol for data transfer, Rover monitors 
libraries such as OpenSSL, BoringSSL, GoTLS, and NodeTLS to access the raw 
content. 
+This feature is also applicable for protocol analysis. 
+
+Note: the parsing of TLS protocols in Java is currently not supported.
+
+#### L2-L4
+
+During data transmission, Rover records each packet's through the network 
layers L2 to L4 using [kprobes](https://docs.kernel.org/trace/kprobes.html). 
+This approach enhances the understanding of each packet's transmission 
process, facilitating easier localization and troubleshooting of network issues.
diff --git a/docs/en/setup/configuration/core.md 
b/docs/en/setup/configuration/core.md
index 45e07d9..618a174 100644
--- a/docs/en/setup/configuration/core.md
+++ b/docs/en/setup/configuration/core.md
@@ -5,13 +5,13 @@ It provides APIs for other modules to establish connections 
with the backend.
 
 ## Configuration
 
-| Name | Default | Environment Key | Description |
-|------|---------|-----------------|-------------|
-| core.backend.addr | localhost:11800 | ROVER_BACKEND_ADDR | The backend 
server address. |
-| core.backend.enable_TLS | false | ROVER_BACKEND_ENABLE_TLS | The TLS switch. 
|
-| core.backend.client_pem_path | client.pem | ROVER_BACKEND_PEM_PATH | The 
file path of client.pem. The config only works when opening the TLS switch.|
-| core.backend.client_key_path | client.key | ROVER_BACKEND_KEY_PATH | The 
file path of client.key. The config only works when opening the TLS switch.|
-| core.backend.insecure_skip_verify | false | 
ROVER_BACKEND_INSECURE_SKIP_VERIFY | InsecureSkipVerify controls whether a 
client verifies the server's certificate chain and host name. |
-| core.backend.ca_pem_path | ca.pem | ROVER_BACKEND_CA_PEM_PATH | The file 
path oca.pem. The config only works when opening the TLS switch. |
-| core.backend.check_period | 5 | ROVER_BACKEND_CHECK_PERIOD | How frequently 
to check the connection(second). |
-| core.backend.authentication | | ROVER_BACKEND_AUTHENTICATION | The auth 
value when send request. |
\ No newline at end of file
+| Name                              | Default         | Environment Key        
            | Description                                                       
                                  |
+|-----------------------------------|-----------------|------------------------------------|-----------------------------------------------------------------------------------------------------|
+| core.backend.addr                 | localhost:11800 | ROVER_BACKEND_ADDR     
            | The backend server address.                                       
                                  |
+| core.backend.enable_TLS           | false           | 
ROVER_BACKEND_ENABLE_TLS           | The TLS switch.                            
                                                         |
+| core.backend.client_pem_path      | client.pem      | ROVER_BACKEND_PEM_PATH 
            | The file path of client.pem. The config only works when opening 
the TLS switch.                     |
+| core.backend.client_key_path      | client.key      | ROVER_BACKEND_KEY_PATH 
            | The file path of client.key. The config only works when opening 
the TLS switch.                     |
+| core.backend.insecure_skip_verify | false           | 
ROVER_BACKEND_INSECURE_SKIP_VERIFY | InsecureSkipVerify controls whether a 
client verifies the server's certificate chain and host name. |
+| core.backend.ca_pem_path          | ca.pem          | 
ROVER_BACKEND_CA_PEM_PATH          | The file path oca.pem. The config only 
works when opening the TLS switch.                           |
+| core.backend.check_period         | 5               | 
ROVER_BACKEND_CHECK_PERIOD         | How frequently to check the 
connection(second).                                                     |
+| core.backend.authentication       |                 | 
ROVER_BACKEND_AUTHENTICATION       | The auth value when send request.          
                                                         |
\ No newline at end of file
diff --git a/docs/en/setup/configuration/logger.md 
b/docs/en/setup/configuration/logger.md
index 0b9f26e..60a73e1 100644
--- a/docs/en/setup/configuration/logger.md
+++ b/docs/en/setup/configuration/logger.md
@@ -4,6 +4,6 @@ Logger module is used to configure the system log.
 
 ## Configuration
 
-| Name | Default | Environment Key | Description |
-|------|---------|-----------------|-------------|
-| logger.level | INFO | ROVER_LOGGER_LEVEL | The lowest level of printing 
allowed. |
\ No newline at end of file
+| Name          | Default | Environment Key     | Description                  
          |
+|---------------|---------|---------------------|----------------------------------------|
+| logger.level  | INFO    | ROVER_LOGGER_LEVEL  | The lowest level of printing 
allowed.  |
\ No newline at end of file
diff --git a/docs/en/setup/configuration/process_discovery/kubernetes.md 
b/docs/en/setup/configuration/process-discovery.md
similarity index 65%
rename from docs/en/setup/configuration/process_discovery/kubernetes.md
rename to docs/en/setup/configuration/process-discovery.md
index 1291948..60ee2b8 100644
--- a/docs/en/setup/configuration/process_discovery/kubernetes.md
+++ b/docs/en/setup/configuration/process-discovery.md
@@ -1,41 +1,48 @@
-# Kubernetes Process Detector
+# Process Discovery Module
+
+The process Discovery module is used to discover the existing processes in the 
current machine and report them to the backend service.
+After the process upload is completed, the other modules could perform more 
operations with the process, such as process profiling and collecting process 
metrics.
+
+## Configuration
+
+| Name                                                 | Default | Environment 
Key                                  | Description                              
                                                                                
          |
+|------------------------------------------------------|---------|--------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------|
+| process_discovery.heartbeat_period                   | 20s     | 
ROVER_PROCESS_DISCOVERY_HEARTBEAT_PERIOD         | The period of report or 
keep-alive process to the backend.                                              
                           |
+| process_discovery.properties_report_period           | 10      | 
ROVER_PROCESS_DISCOVERY_PROPERTIES_REPORT_PERIOD | The agent sends the process 
properties to the backend every: heartbeart period * properties report period.  
                       |
+| process_discovery.kubernetes.active                  | false   | 
ROVER_PROCESS_DISCOVERY_KUBERNETES_ACTIVE        | Is active the kubernetes 
process discovery.                                                              
                          |
+| process_discovery.kubernetes.node_name               |         | 
ROVER_PROCESS_DISCOVERY_KUBERNETES_NODE_NAME     | Current deployed node name, 
it could be inject by `spec.nodeName`.                                          
                       |
+| process_discovery.kubernetes.namespaces              |         | 
ROVER_PROCESS_DISCOVERY_KUBERNETES_NAMESPACES    | Including pod by namespaces, 
if empty means including all namespaces. Multiple namespaces split by ",".      
                      |
+| process_discovery.kubernetes.analyzers               |         |             
                                     | Declare how to build the process. The 
istio and k8s resources are active by default.                                  
             |
+| process_discovery.kubernetes.analyzers.active        |         |             
                                     | Set is active analyzer.                  
                                                                                
          |
+| process_discovery.kubernetes.analyzers.filters       |         |             
                                     | Define which process is match to current 
process builder.                                                                
          |
+| process_discovery.kubernetes.analyzers.service_name  |         |             
                                     | The Service Name of the process entity.  
                                                                                
          |
+| process_discovery.kubernetes.analyzers.instance_name |         |             
                                     | The Service Instance Name of the process 
entity, by default, the instance name is the host IP v4 address from "en0" net 
interface. |
+| process_discovery.kubernetes.analyzers.process_name  |         |             
                                     | The Process Name of the process entity, 
by default, the process name is the executable name of the process.             
           |
+| process_discovery.kubernetes.analyzers.labels        |         |             
                                     | The Process Labels, used to aggregate 
similar process from service entity. Multiple labels split by ",".              
             |
+
+## Kubernetes Process Detector
 
 The Kubernetes process detector could detect any process under the Kubernetes 
container.
 If active the Kubernetes process detector, the rover must be deployed in the 
Kubernetes cluster.
 After finding the process, it would collect the metadata of the process when 
the report to the backend.
 
-## Configuration
-
-| Name                                                 | Default | Environment 
Key                               | Description                                 
                                                                                
       |
-|------------------------------------------------------|---------|-----------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------|
-| process_discovery.kubernetes.active                  | false   | 
ROVER_PROCESS_DISCOVERY_KUBERNETES_ACTIVE     | Is active the kubernetes 
process discovery.                                                              
                          |
-| process_discovery.kubernetes.node_name               |         | 
ROVER_PROCESS_DISCOVERY_KUBERNETES_NODE_NAME  | Current deployed node name, it 
could be inject by `spec.nodeName`.                                             
                    |
-| process_discovery.kubernetes.namespaces              |         | 
ROVER_PROCESS_DISCOVERY_KUBERNETES_NAMESPACES | Including pod by namespaces, if 
empty means including all namespaces. Multiple namespaces split by ",".         
                   |
-| process_discovery.kubernetes.analyzers               |         |             
                                  | Declare how to build the process. The istio 
and k8s resources are active by default.                                        
       |
-| process_discovery.kubernetes.analyzers.active        |         |             
                                  | Set is active analyzer.                     
                                                                                
       |
-| process_discovery.kubernetes.analyzers.filters       |         |             
                                  | Define which process is match to current 
process builder.                                                                
          |
-| process_discovery.kubernetes.analyzers.service_name  |         |             
                                  | The Service Name of the process entity.     
                                                                                
       |
-| process_discovery.kubernetes.analyzers.instance_name |         |             
                                  | The Service Instance Name of the process 
entity, by default, the instance name is the host IP v4 address from "en0" net 
interface. |
-| process_discovery.kubernetes.analyzers.process_name  |         |             
                                  | The Process Name of the process entity, by 
default, the process name is the executable name of the process.                
        |
-| process_discovery.kubernetes.analyzers.labels        |         |             
                                  | The Process Labels, used to aggregate 
similar process from service entity. Multiple labels split by ",".              
             |
-
-## Process Analyze
+### Process Analyze
 
 The process analysis declares which process could be profiled and how to build 
the process entity.
 The Istio and Kubernetes resources are active on default.
 
-### Filter
+#### Filter
 
 The filter provides an expression(go template) mechanism to match the process 
that can build the entity. Multiple expressions work together to determine 
whether the process can create the entity.
 Each expression must return the boolean value. Otherwise, the decision throws 
an error.
 
 The context is similar to the entity builder. Using context could help the 
rover understand which process could build the entity.
 
-#### Process Context
+##### Process Context
 
 Is the same with the [process context in scanner](./scanner.md#process), but 
doesn't need to add the `{{` and `}}` in prefix and suffix.
 
-#### Pod Context
+##### Pod Context
 
 Provide current pod information and judgments.
 
@@ -51,7 +58,7 @@ Provide current pod information and judgments.
 | HasServiceName | None           | `.Pod.HasServiceName`                    | 
The pod has the matched service.                                                
                                                                                
                                                 |
 | HasOwnerName   | kindNames      | `.Pod.HasOwnerName "Service,Deployment"` | 
The pod has the matched owner name.                                             
                                                                                
                                                 |
 
-#### Container Context
+##### Container Context
 
 Provide current container(under the pod) information.
 
@@ -59,20 +66,35 @@ Provide current container(under the pod) information.
 
|-------|----------|-------------------------------------|------------------------------------------------------------------------------------------------------------------|
 | Name  | None     | `eq .Container.Name "istio-proxy"`  | The name of the 
current container under the pod. The examples show the container name is equal 
to `istio-proxy`. |
 
-### Entity
+#### Entity
 The entity including `layer`, `serviceName`, `instanceName`, `processName` and 
`labels` properties.
 
 The entity also could use expression to build(`serviceName`, `instanceName` 
and `processName`).
 
-#### Rover
+##### Rover
+
+Rover context provides the context of the rover process instance and VM data.
+
+| Name       | Argument           | Example                     | Description  
                                                   |
+|------------|--------------------|-----------------------------|-----------------------------------------------------------------|
+| InstanceID | None               | `{{.Rover.InstanceID}}`     | Get the 
Instance ID of the rover.                               |
+| HostIPV4   | The Interface name | `{{.Rover.HostIPV4 "en0"}}` | Get the ipv4 
address from the appointed network interface name. |
+| HostIPV6   | The Interface name | `{{.Rover.HostIPV6 "en0"}}` | Get the ipv6 
address from the appointed network interface name. |
+| HostName   | None               | `{{.Rover.HostName}}`       | Get the host 
name of current machine.                           |
 
-Same with the [rover context in the scanner](./scanner.md#rover).
+##### Process
 
-#### Process
+Process context provides the context relate to which process is matched.
 
-Same with the [process context in the scanner](./scanner.md#process).
+| Name        | Argument | Example                    | Description            
                 |
+|-------------|----------|----------------------------|-----------------------------------------|
+| ExeFilePath | None     | `{{.Process.ExeFilePath}}` | The execute file path 
of process.       |
+| ExeName     | None     | `{{.Process.ExeName}}`     | The execute file name. 
                 |
+| CommandLine | None     | `{{.Process.CommandLine}}` | The command line of 
process.            |
+| Pid         | None     | `{{.Process.Pid}}`         | The id of the process. 
                 |
+| WorkDir     | None     | `{{.Process.WorkDir}}`     | The work directory 
path of the process. |
 
-#### Pod
+##### Pod
 
 The information on the current pod.
 
@@ -86,7 +108,7 @@ The information on the current pod.
 | FindContainer | ContainerName     | `{{.Pod.FindContainer "test"}}`          
 | Find the Container context by container name.                                
                                                                                
                        |
 | OwnerName     | KindNames         | `{{.Pod.OwnerName 
"Service,Deployment"}}` | Find the Owner name by owner kind name.               
                                                                                
                                               |
 
-#### Container
+##### Container
 
 The information of the current container under the pod.
 
diff --git a/docs/en/setup/configuration/process_discovery/overview.md 
b/docs/en/setup/configuration/process_discovery/overview.md
deleted file mode 100644
index b3c574c..0000000
--- a/docs/en/setup/configuration/process_discovery/overview.md
+++ /dev/null
@@ -1,17 +0,0 @@
-# Process Discovery Module
-
-The process Discovery module is used to discover the existing processes in the 
current machine and report them to the backend service.
-After the process upload is completed, the other modules could perform more 
operations with the process, such as process profiling and collecting process 
metrics.
-
-## Configuration
-
-| Name | Default | Environment Key | Description |
-|------|---------|-----------------|-------------|
-| process_discovery.heartbeat_period | 20s | 
ROVER_PROCESS_DISCOVERY_HEARTBEAT_PERIOD | The period of report or keep-alive 
process to the backend. |
-| process_discovery.properties_report_period | 10 | 
ROVER_PROCESS_DISCOVERY_PROPERTIES_REPORT_PERIOD | The agent sends the process 
properties to the backend every: heartbeart period * properties report period. |
-
-## Process Detector
-
-Process Detector is used to detect the process from the VM with the different 
environments:
-1. [Linux Process Scanner](./scanner.md)
-2. [Kubernetes Process Detector](./kubernetes.md)
diff --git a/docs/en/setup/configuration/process_discovery/scanner.md 
b/docs/en/setup/configuration/process_discovery/scanner.md
deleted file mode 100644
index 133285b..0000000
--- a/docs/en/setup/configuration/process_discovery/scanner.md
+++ /dev/null
@@ -1,97 +0,0 @@
-# Linux Process Detector
-
-The Linux process scanner could detect any process in Linux with finders. It 
has two modes:
-1. **REGEX**: could define a regex to filter which processes declare to 
monitor.
-2. **AGENT_SENSOR**: scan recent active agents which have process status hook.
-
-After finding the process, it would collect the metadata of the process when 
the report to the backend.
-
-## Configuration
-
-| Name | Default | Environment Key | Description |
-|------|---------|-----------------|-------------|
-| process_discovery.scanner.period | 3s | ROVER_PROCESS_DISCOVERY_SCAN_PERIOD 
| The period to detect the process. |
-| process_discovery.scanner.mode | AGENT_SENSOR | 
ROVER_PROCESS_DISCOVERY_SCAN_MODE | The process detection modes of the scanner. 
Support "REGEX", "AGENT_SENSOR". |
-| process_discovery.scanner.agent | | | Active when using the "AGENT_SENSOR" 
mode scanner. |
-| process_discovery.scanner.agent.process_status_refresh_period | 1m | 
ROVER_PROCESS_DISCOVERY_AGENT_PROCESS_STATUS_REFRESH_PERIOD | Set the agent 
refresh period. |
-| process_discovery.scanner.regex | | | Active when using the "REGEX" mode 
scanner, it supports using multiple regex to matches difference processes. |
-| process_discovery.scanner.regex.match_cmd | | 
ROVER_PROCESS_DISCOVERY_REGEX_SCANNER_MATCH_CMD | Use regex string to locate 
the process from the command line of the process. |
-| process_discovery.scanner.regex.layer | OS_LINUX | 
ROVER_PROCESS_DISCOVERY_REGEX_SCANNER_LAYER | The Layer of the process entity |
-| process_discovery.scanner.regex.service_name | | 
ROVER_PROCESS_DISCOVERY_REGEX_SCANNER_SERVICE_NAME | The Service Name of the 
process entity. |
-| process_discovery.scanner.regex.instance_name | {{.Rover.HostIPV4 "en0"}} | 
ROVER_PROCESS_DISCOVERY_REGEX_SCANNER_INSTANCE_NAME | The Service Instance Name 
of the process entity, by default, the instance name is the host IP v4 address 
from "en0" net interface. |
-| process_discovery.scanner.regex.process_name | {{.Process.ExeName}} | 
ROVER_PROCESS_DISCOVERY_REGEX_SCANNER_PROCESS_NAME | The Process Name of the 
process entity, by default, the process name is the executable name of the 
process. |
-| process_discovery.scanner.regex.labels | | 
ROVER_PROCESS_DISCOVERY_REGEX_SCANNER_LABELS | The Process Labels, used to 
aggregate similar process from service entity. Multiple labels split by ",". |
-
-## Agent Sensor Mode
-
-Agent Sensor mode scanner could scan processes that have installed the 
skywalking agent and report them.
-
-### Process Status Hook File Protocol
-
-The agent must be implemented the process status hook file protocol, then the 
rover could be collected the information on the process.
-
-This protocol is mainly a metadata file, which contains the metadata of the 
process.
-It should be saved in: 
`{TMPDIR}/apache_skywalking/process/{pid}/metadata.properties`, and update 
modify time with the interval to keep alive, the content in the `properties` 
format as below:
-
-| Key | Type | Description |
-|-----|------|------------|
-|layer|string|this process layer.|
-|service_name|string|this process service name.|
-|instance_name|string|this process instance name.|
-|process_name|string|this process process name, it's same with the instance 
name.|
-|properties|json|the properties in instance, the process labels also in the 
properties value.|
-|labels|string|the process labels, multiple labels split by ",".|
-|language|string|current process language, which is `golang`.|
-
-## Regex Mode
-
-Regex mode scanner could define a regex to filter which process declare to 
monitor by command line.
-Multiple regexes can be defined to match different types of processes.
-
-Note, that the duplicate processes entities cannot be reported. If multiple 
entities are generated, only one process will be reported.
-If the multiple finders could match the same process, only the first finder 
could be selected and reported.
-
-### Entity Builder
-
-The metadata of the process could build by the Go Template to help dynamically 
build them, also, you could just configure it as the string value, and it still 
works.
-
-These fields are supported using the template to build:
-1. Service Name
-2. Service Instance Name
-3. Process NAme
-
-#### Context
-
-The context provides multiple functions for helping you build the process 
metadata.
-
-##### Rover
-
-Rover context provides the context of the rover process instance and VM data.
-
-| Name | Argument |  Example  | Description |
-|------|--------- |-----------|-------------|
-| InstanceID | None | `{{.Rover.InstanceID}}` | Get the Instance ID of the 
rover. |
-| HostIPV4 | The Interface name | `{{.Rover.HostIPV4 "en0"}}` | Get the ipv4 
address from the appointed network interface name. |
-| HostIPV6 | The Interface name | `{{.Rover.HostIPV6 "en0"}}` | Get the ipv6 
address from the appointed network interface name. |
-| HostName | None | `{{.Rover.HostName}}` | Get the host name of current 
machine.|
-
-##### Finder
-
-Finder context provides the context of the current process finder.
-
-| Name | Argument |  Example  | Description |
-|------|--------- |-----------|-------------|
-| Layer | None | `{{.Finder.Layer}}` | The layer of the current process which 
defines in the configuration | 
-| RegexMatchGroup | The index of the regex pattern | 
`{{.Finder.RegexMatchGroup 1}}`| When using the regex to match the process 
command line, it could use the group concept in the regex. This function could 
help you get the group value from it. |
-
-##### Process
-
-Process context provides the context relate to which process is matched.
-
-| Name | Argument |  Example  | Description |
-|------|--------- |-----------|-------------|
-| ExeFilePath | None | `{{.Process.ExeFilePath}}` | The execute file path of 
process. |
-| ExeName | None | `{{.Process.ExeName}}` | The execute file name. |
-| CommandLine | None | `{{.Process.CommandLine}}` | The command line of 
process. |
-| Pid | None | `{{.Process.Pid}}` | The id of the process. |
-| WorkDir | None | `{{.Process.WorkDir}}` | The work directory path of the 
process. |
\ No newline at end of file
diff --git a/docs/en/setup/configuration/profiling.md 
b/docs/en/setup/configuration/profiling.md
index fc4263e..742b36a 100644
--- a/docs/en/setup/configuration/profiling.md
+++ b/docs/en/setup/configuration/profiling.md
@@ -24,6 +24,13 @@ and send the snapshot to the backend server.
 | profiling.continuous.trigger.execute_duration                                
   | 10m         | ROVER_PROFILING_CONTINUOUS_TRIGGER_EXECUTE_DURATION          
                         | The duration of the profiling task.                  
                                 |
 | profiling.continuous.trigger.silence_duration                                
   | 20m         | ROVER_PROFILING_CONTINUOUS_TRIGGER_SILENCE_DURATION          
                         | The minimal duration between the execution of the 
same profiling task.                |
 
+## Prepare service
+
+Before profiling your service, please make sure your service already has the 
symbol data inside the binary file.
+So we could locate the stack symbol, It could be checked following these ways:
+1. **objdump**: Using `objdump --syms path/to/service`.
+2. **readelf**: Using `readelf --syms path/to/service`.
+
 ## Profiling Type
 
 All the profiling tasks are using the [Linux Official 
Function](https://man7.org/linux/man-pages/man2/perf_event_open.2.html) and 
`kprobe` or `uprobe` to open perf event,
diff --git a/docs/en/setup/examples/cases/agent-sensor/readme.md 
b/docs/en/setup/examples/cases/agent-sensor/readme.md
deleted file mode 100644
index 1630207..0000000
--- a/docs/en/setup/examples/cases/agent-sensor/readme.md
+++ /dev/null
@@ -1,50 +0,0 @@
-# Detect Process by Agent Sensor
-
-This documentation helps you to set up a service that could let rover detected 
automatically.
-
-## Configure Service
-
-Configure your service to enable the Process Status Hook feature. Take 
[go2sky](https://github.com/SkyAPM/go2sky) as an example here, which version 
must `>= v1.5.0`.
-
-```go
-// update the oap address here
-r, err := reporter.NewGRPCReporter("oap-skywalking:11800", 
reporter.WithProcessStatusHook(true))
-if err != nil {
-    log.Fatalf("new reporter error %v \n", err)
-}
-defer r.Close()
-tracer, err := go2sky.NewTracer("example", go2sky.WithReporter(r))
-```
-
-The `reporter.WithProcessStatusHook(true)` declares to enable the Process 
Status Hook feature.
-
-## Starting Rover
-
-### Enable Linux Process Scanner
-
-After your service has been startup, then configure the Linux process scanner 
with "AGENT_SENSOR" mode.
-
-### Full Configuration
-
-Please follow the comment to update the backend address to your SkyWalking OAP 
address.
-
-```shell
-core:
-  backend:
-    addr: localhost:11800 # please change the backend address to your 
SkyWalking OAP address
-    enable_TLS: false
-    client_pem_path: "client.pem"
-    client_key_path: "client.key"
-    insecure_skip_verify: false
-    ca_pem_path: "ca.pem"
-    check_period: 5
-    authentication: ""
-    
-process_discovery:
-  heartbeat_period: 20s
-  scanner:
-    period: 3s
-    mode: AGENT_SENSOR
-    agent:
-      processStatusRefreshPeriod: 1m
-```
diff --git a/docs/en/setup/examples/cases/profiling-process/readme.md 
b/docs/en/setup/examples/cases/profiling-process/readme.md
deleted file mode 100644
index 47ec0cc..0000000
--- a/docs/en/setup/examples/cases/profiling-process/readme.md
+++ /dev/null
@@ -1,88 +0,0 @@
-# Profiling a Golang/C/C++/Rust service on Linux
-
-This documentation helps you set up the configuration to find which processes 
want to be monitored and profiled.
-
-## Startup service
-
-Startup your service in Linux, and make sure your service already has the 
symbol data inside the binary file.
-So we could locate the stack symbol, It could be checked following these ways:
-1. **objdump**: Using `objdump --syms path/to/service`.
-2. **readelf**: Using `readelf --syms path/to/service`.
-
-## Starting Rover
-
-### Enable Linux Process Scanner
-
-After your service has been started, then configure the Linux process scanner 
to let Rover know how to find the service.
-Please make sure the Linux Process Detector has been active.
-
-Then configure the finder to locate/identity service. It contains these data 
configure:
-1. Regex to locate the service by command line.
-2. Update the process entity builder.
-
-#### Locate Service
-
-You could use the `ps -ef` and `grep` to filter the which process you want to 
profile. In this case, my service is `sqrt`.
-
-```shell
-$ ps -ef|grep sqrt
-root      2072    1790  0 14:59 pts/0    00:00:00 ./sqrt name=a
-```
-
-Following the command example above, you could see the last column showing the 
process command line is `./sqrt name=a`.
-We use the regex to filter the process, In this case, we could use `sqrt` as 
the service identity.
-
-#### Update Process Entity
-
-For the demo, we update the entity data as:
-1. **layer**: As the `OS_LINUX`.
-2. **service**: As the `sqrt`.
-3. **instance**: As local IPv4 address by network interface `en0`.
-4. **process**: As the executable file name: `sqrt`.
-5. **labels***: As empty.
-
-You could be following [this 
configuration](../../../configuration/process_discovery/scanner.md) to get more 
configuration information.
-
-### Enable Profiling
-
-Make sure the profiling module has been active.
-
-You could be following [this 
configuration](../../../configuration/profiling.md) to get more configuration 
information.
-
-### Full Configuration
-
-Please follow the comment to update the backend address to your SkyWalking OAP 
address.
-
-```shell
-core:
-  backend:
-    addr: localhost:11800 # please change the backend address to your 
SkyWalking OAP address
-    enable_TLS: false
-    client_pem_path: "client.pem"
-    client_key_path: "client.key"
-    insecure_skip_verify: false
-    ca_pem_path: "ca.pem"
-    check_period: 5
-    authentication: ""
-    
-process_discovery:
-  heartbeat_period: 20s
-  scanner:
-    period: 3s
-    mode: REGEX
-    regex:
-      - match_cmd: sqrt
-        layer: OS_LINUX
-        service_name: sqrt
-        instance_name: {{.Rover.HostIPV4 "en0"}}
-        process_name: {{.Process.ExeName}}
-        labels: ""
-
-profiling:
-  active: true
-  check_interval: 10s
-  flush_interval: 5s
-  task:
-    on_cpu:
-      dump_period: 9ms
-```
diff --git a/docs/en/setup/examples/cases/kubernetes-process/readme.md 
b/docs/en/setup/examples/deploy/kubernetes/readme.md
similarity index 79%
rename from docs/en/setup/examples/cases/kubernetes-process/readme.md
rename to docs/en/setup/examples/deploy/kubernetes/readme.md
index 1ef177e..c9c11ae 100644
--- a/docs/en/setup/examples/cases/kubernetes-process/readme.md
+++ b/docs/en/setup/examples/deploy/kubernetes/readme.md
@@ -1,6 +1,6 @@
-# Detect Process by Kubernetes
+# Deploy on Kubernetes
 
-This documentation helps you to set up the rover in the Kubernetes environment 
and detect the kubernetes process automatically.
+This documentation helps you to set up the rover in the Kubernetes environment.
 
 ## Startup Kubernetes
 
@@ -13,8 +13,8 @@ or [minikube](https://minikube.sigs.k8s.io) to create a 
cluster.
 
 Please follow the [rover-daemonset.yml](./rover-daemonset.yml) to deploy the 
rover in your Kubernetes cluster.
 Update the comment in the file, which includes two configs:
-1. **Rover docker image**: You could use `make docker` to build an image and 
upload it to your private registry.
+1. **Rover docker image**: You could use `make docker` to build an image and 
upload it to your private registry, or update from the public image.
 2. **OAP address**: Update the OAP address.
 
 Then, you could use `kuberctl apply -f rover-daemonset.yml` to deploy the 
skywalking-rover into your cluster.
-It would deploy in each node as a DaemonSet. 
+It would deploy in each node as a DaemonSet. 
\ No newline at end of file
diff --git 
a/docs/en/setup/examples/cases/kubernetes-process/rover-daemonset.yml 
b/docs/en/setup/examples/deploy/kubernetes/rover-daemonset.yml
similarity index 97%
rename from docs/en/setup/examples/cases/kubernetes-process/rover-daemonset.yml
rename to docs/en/setup/examples/deploy/kubernetes/rover-daemonset.yml
index b31e35c..7d402e9 100644
--- a/docs/en/setup/examples/cases/kubernetes-process/rover-daemonset.yml
+++ b/docs/en/setup/examples/deploy/kubernetes/rover-daemonset.yml
@@ -82,6 +82,8 @@ spec:
             - name: ROVER_BACKEND_ADDR
               # backend OAP address
               value: oap:11800
+            - name: ROVER_HOST_MAPPING
+              value: /host
       hostPID: true
       hostNetwork: true
       dnsPolicy: ClusterFirstWithHostNet
diff --git a/docs/en/setup/examples/deploy/linux/readme.md 
b/docs/en/setup/examples/deploy/linux/readme.md
deleted file mode 100644
index 30c8545..0000000
--- a/docs/en/setup/examples/deploy/linux/readme.md
+++ /dev/null
@@ -1,19 +0,0 @@
-# Deploy on Linux
-
-## Install
-
-### Download
-
-Download the latest release version from [SkyWalking Release 
Page](https://skywalking.apache.org/downloads/#SkyWalkingRover).
-
-### Update the address of the backend
-
-Update the backend address in the config file, please read [this 
documentation](../../../configuration/core.md) for more detail.
-
-### Active Feature
-
-Active features need to use, please follow the [Use 
case](../../../overview.md#use-cases).
-
-### Start Rover
-
-Execute the script `bin/startup.sh` to start. Then It could print logging to 
this file: `logs/rover.log`.
\ No newline at end of file
diff --git a/docs/en/setup/overview.md b/docs/en/setup/overview.md
index d64ad54..481c32b 100644
--- a/docs/en/setup/overview.md
+++ b/docs/en/setup/overview.md
@@ -15,7 +15,8 @@ The SkyWalking Rover requires specialized protocols to 
communicate with SkyWalki
 
 | SkyWalking Rover Version | SkyWalking OAP |
 |--------------------------|----------------|
-|0.1.0+                    | \> = 9.1.0     |
+| 0.1.0+                   | \> = 9.1.0     |
+| 0.6.0+                   | \> = 10.0.0    |
 
 ## Startup script
 Startup Script
@@ -29,7 +30,7 @@ You can quickly build your Rover according to the following 
examples:
 
 ### Deploy
 
-1. [Deploy on Linux](examples/deploy/linux/readme.md)
+1. [Deploy on Kubernetes](examples/deploy/kubernetes/readme.md)
 
 ### Use Cases
 
@@ -43,9 +44,10 @@ The core concept behind this setting file is, that 
SkyWalking Rover is based on
 
 So, in rover_configs.yaml, there contains these parts.
 1. [Logger Module](./configuration/logger.md).
-1. [Core Module](./configuration/core.md).
-2. [Process Discovery Module](./configuration/process_discovery/overview.md).
-3. [Profiling Module](./configuration/profiling.md).
+2. [Core Module](./configuration/core.md).
+3. [Process Discovery Module](configuration/process-discovery.md).
+4. [Profiling Module](./configuration/profiling.md).
+5. [Access Log Module](./configuration/accesslog.md).
 
 Also, You could using [Overriding 
Setting](./configuration/override-settings.md) feature to setup the 
configuration.
 
diff --git a/docs/menu.yml b/docs/menu.yml
index 719b1ec..edc2b54 100644
--- a/docs/menu.yml
+++ b/docs/menu.yml
@@ -40,29 +40,17 @@ catalog:
             - name: Core Module
               path: /en/setup/configuration/core
             - name: Process Discovery Module
-              catalog:
-                - name: Overview
-                  path: /en/setup/configuration/process_discovery/overview
-                - name: Linux Process Scanner
-                  path: /en/setup/configuration/process_discovery/scanner
-                - name: Kubernetes Process Detector
-                  path: /en/setup/configuration/process_discovery/kubernetes
+              path: /en/setup/configuration/process-discovery
             - name: Profiling Module
               path: /en/setup/configuration/profiling
+            - name: Access Log Module
+              path: /en/setup/configuration/accesslog
         - name: Examples
           catalog:
             - name: Deploy
               catalog:
-                - name: Deploy on Linux
-                  path: /en/setup/examples/deploy/linux/readme
-            - name: Use Cases
-              catalog:
-                - name: Profiling a Golang/C/C++/Rust service on Linux
-                  path: /en/setup/examples/cases/profiling-process/readme
-                - name: Detect Process by Agent Sensor
-                  path: /en/setup/examples/cases/agent-sensor/readme
-                - name: Detect Process in Kubernetes Environemnt
-                  path: /en/setup/examples/cases/kubernetes-process/readme
+                - name: Deploy on Kubernetes
+                  path: /en/setup/examples/deploy/kubernetes/readme
     - name: Guides
       catalog:
         - name: Contribution


Reply via email to