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 949fbfc Polish documentation and add changes (#22)
949fbfc is described below
commit 949fbfcc63131c3ccc718a1cfc9998b548b27bd6
Author: mrproliu <[email protected]>
AuthorDate: Thu May 5 23:47:48 2022 +0800
Polish documentation and add changes (#22)
---
CHANGES.md | 2 +
README.md | 2 +-
docs/en/concepts-and-designs/overview.md | 6 +--
docs/en/guides/compile/how-to-compile.md | 2 +-
.../configuration/process_discovery/kubernetes.md | 44 +++++++++++-----------
.../configuration/process_discovery/overview.md | 6 +--
.../configuration/process_discovery/scanner.md | 20 +++++-----
docs/en/setup/configuration/profiling.md | 4 +-
.../en/setup/examples/cases/agent-sensor/readme.md | 8 ++--
.../examples/cases/kubernetes-process/readme.md | 14 +++----
.../examples/cases/profiling-process/readme.md | 10 ++---
docs/en/setup/overview.md | 2 +-
docs/menu.yml | 2 +-
13 files changed, 62 insertions(+), 60 deletions(-)
diff --git a/CHANGES.md b/CHANGES.md
index daec542..c545b0e 100644
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -5,6 +5,8 @@ Release Notes.
0.1.0
------------------
#### Features
+* Support detect processes in `scanner` or `kubernetes` mode.
+* Support profiling C, C++, Golang, and Rust service.
#### Bug Fixes
diff --git a/README.md b/README.md
index 790661e..3456657 100644
--- a/README.md
+++ b/README.md
@@ -3,7 +3,7 @@ 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 ebpf-based profiler for C, C++,
Golang and Rust.
+**SkyWalking Rover**: Metrics collector and ebpf-based profiler for C, C++,
Golang, and Rust.
[](https://github.com/apache/skywalking)
[](https://twitter.com/AsfSkyWalking)
diff --git a/docs/en/concepts-and-designs/overview.md
b/docs/en/concepts-and-designs/overview.md
index a072002..ac9c3dd 100644
--- a/docs/en/concepts-and-designs/overview.md
+++ b/docs/en/concepts-and-designs/overview.md
@@ -1,13 +1,13 @@
# 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 metrics
collector and eBPF-based profiler for C, C++, Golang, and Rust.
## 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,
and upload them to the SkyWalking backend for analysis, aggregate, and
visualize them.
-1. EBPF based profiling for C, C++, Golang and Rust.
+1. EBPF-based profiling for C, C++, Golang, and Rust.
## Architecture
@@ -15,4 +15,4 @@ and upload them to the SkyWalking backend for analysis,
aggregate, and visualize
- **Process** represents the data monitored by Rover.
- **Rover** is deployed in the VM instance, collects data in VM and Process,
and reports it to the OAP cluster.
-- **OAP** collect data from the rover side, analysis, and storage them.
\ No newline at end of file
+- **OAP** collect data from the rover side, analysis, and stores them.
diff --git a/docs/en/guides/compile/how-to-compile.md
b/docs/en/guides/compile/how-to-compile.md
index 2b51725..f9aee78 100644
--- a/docs/en/guides/compile/how-to-compile.md
+++ b/docs/en/guides/compile/how-to-compile.md
@@ -14,7 +14,7 @@ Linux version >= `4.4`, and dependency these tools:
### MacOS or Windows
-Make sure it already has docker environment.
+Make sure it already has a docker environment.
## Command
```shell script
diff --git a/docs/en/setup/configuration/process_discovery/kubernetes.md
b/docs/en/setup/configuration/process_discovery/kubernetes.md
index b70eda4..eede8c8 100644
--- a/docs/en/setup/configuration/process_discovery/kubernetes.md
+++ b/docs/en/setup/configuration/process_discovery/kubernetes.md
@@ -1,8 +1,8 @@
# 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 find the process, it would be collect the metadata of the process when
the report to the backend.
+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
@@ -21,32 +21,32 @@ After find the process, it would be collect the metadata of
the process when the
## Process Analyze
-The process analyze declares which process could be profiled and how to build
the process entity.
-The istio and kuberentes resources is active on default.
+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
-The filter provide expression(go template) mechanism to match process that can
build the entity. Multiple expressions work together to determine whether the
process can create entity.
-Each expression must be return the boolean value. Otherwise, the decision
throws an error.
+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. Use context could help rover
understanding which process could build entity.
+The context is similar to the entity builder. Using context could help the
rover understand which process could build the entity.
#### Process Context
-Is same with the [process context in scanner](./scanner.md#process), but don't
need to add the `{{` and `}}` in prefix and suffix.
+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
-Provide current pod information and judgements.
+Provide current pod information and judgments.
| Name | Argument | Example | Description |
|------|--------- |-----------|-------------|
-| Name | None | `eq .Pod.Name "test-pod-name"` | The name of current pod. The
example shows the pod name is equals to `test-pod-name`. |
-| Namespace | None | `eq .Pod.Namespace "test-namesapce"` | The name of
current pod namespace. The example shows the pod namespace name is equals to
`test-namespace`. |
-| Node | None | `eq .Pod.Node "test-node"` | The name of node which deployed.
The example shows the pod node name is equals to `test-node`. |
-| LabelValue | KeyNames | `eq .Pod.LavelValue "a,b" "v"` | The label value of
the label keys, If provide multiple keys, if any key has value, then don't need
to get other values. The examples shows the pod has any one `a` or `b` label
key, and the value matches to `v`. |
+| Name | None | `eq .Pod.Name "test-pod-name"` | The name of the current pod.
The example shows the pod name is equal to `test-pod-name`. |
+| Namespace | None | `eq .Pod.Namespace "test-namesapce"` | The name of the
current pod namespace. The example shows the pod namespace name is equal to
`test-namespace`. |
+| Node | None | `eq .Pod.Node "test-node"` | The name of the node deployed.
The example shows the pod node name is equal to `test-node`. |
+| LabelValue | KeyNames | `eq .Pod.LavelValue "a,b" "v"` | The label value of
the label keys, If provide multiple keys, if any key has value, then don't need
to get other values. The example shows the pod has anyone `a` or `b` label key,
and the value matches to `v`. |
| ServiceName | None | `eq .Pod.ServiceName "test-service"` | The service name
of the pod. The example shows current pods matched service name is
`test-service`. |
-| HasContainer | Container name | `.Pod.HasContainer "istio-proxy"` | The pod
is have the appoint container name. |
+| HasContainer | Container name | `.Pod.HasContainer "istio-proxy"` | The pod
has the appointed container name. |
| LabelSelector | selector | `.Pod.LabelSelector` | The pod is matches the
label selector. For more details, please read the [official
documentation](https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors).
|
| HasServiceName | None | `.Pod.HasServiceName` | The pod has the matched
service. |
@@ -56,10 +56,10 @@ Provide current container(under the pod) information.
| Name | Argument | Example | Description |
|------|--------- |-----------|-------------|
-| Name | None | `eq .Container.Name "istio-proxy"`| The name of current
container under the pod. The examples shows the container name is equals to
`istio-proxy`. |
+| 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
-The entity including `layer`, `serviceName`, `instanceName`, `processName` and
`labels` properties.
+### Entity
+The entity including `layer`, `serviceName`, `instanceName`, `processName` and
`labels` properties.
The entity also could use expression to build(`serviceName`, `instanceName`
and `processName`).
@@ -73,15 +73,15 @@ Same with the [process context in the
scanner](./scanner.md#process).
#### Pod
-The information of the current pod.
+The information on the current pod.
| Name | Argument | Example | Description |
|------|--------- |-----------|-------------|
| Name | None | `{{.Pod.Name}}` | The name of current pod. |
| Namespace | None | `{{.Pod.Namespace}}` | The name of current pod namespace.
|
-| Node | None | `{{.Pod.Node}}` | The name of node which deployed. |
+| Node | None | `{{.Pod.Node}}` | The name of the node deployed. |
| LabelValue | KeyNames | `{{.Pod.LavelValue "a,b"}}` | The label value of the
label keys, If provide multiple keys, if any key has value, then don't need to
get other values. |
-| ServiceName | None | `{{.Pod.ServiceName}}` | The service name of the pod.
If the pod haven't matched service, then return empty string. |
+| ServiceName | None | `{{.Pod.ServiceName}}` | The service name of the pod.
If the pod hasn't matched service, then return an empty string. |
#### Container
@@ -89,5 +89,5 @@ The information of the current container under the pod.
| Name | Argument | Example | Description |
|------|--------- |-----------|-------------|
-| Name | None | `{{.Container.Name}}`| The name of current container under the
pod. |
-| ID | None | `{{.Container.ID}}`| The id of current container under the pod. |
\ No newline at end of file
+| Name | None | `{{.Container.Name}}`| The name of the current container under
the pod. |
+| ID | None | `{{.Container.ID}}`| The id of the current container under the
pod. |
\ No newline at end of file
diff --git a/docs/en/setup/configuration/process_discovery/overview.md
b/docs/en/setup/configuration/process_discovery/overview.md
index 07944c4..9abb8ad 100644
--- a/docs/en/setup/configuration/process_discovery/overview.md
+++ b/docs/en/setup/configuration/process_discovery/overview.md
@@ -7,10 +7,10 @@ After the process upload is completed, the other modules
could perform more oper
| 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.heartbeat_period | 20s |
ROVER_PROCESS_DISCOVERY_HEARTBEAT_PERIOD | The period of report or keep-alive
process to the backend. |
## Process Detector
-Process Detector is used to detect the process from the VM with the different
environment:
+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)
\ No newline at end of file
+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
index 0628dbd..133285b 100644
--- a/docs/en/setup/configuration/process_discovery/scanner.md
+++ b/docs/en/setup/configuration/process_discovery/scanner.md
@@ -1,10 +1,10 @@
# Linux Process Detector
-The Linux process scanner could detect any process in the Linux with finders.
It has two mode:
+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 agent which have process status hook.
+2. **AGENT_SENSOR**: scan recent active agents which have process status hook.
-After find the process, it would be collect the metadata of the process when
the report to the backend.
+After finding the process, it would collect the metadata of the process when
the report to the backend.
## Configuration
@@ -24,13 +24,13 @@ After find the process, it would be collect the metadata of
the process when the
## Agent Sensor Mode
-Agent Sensor mode scanner could scan process which have installed the
skywalking agent and report them.
+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 of the process.
+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 is a metadata file, which contains the metadata of 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 |
@@ -45,17 +45,17 @@ It should be saved in:
`{TMPDIR}/apache_skywalking/process/{pid}/metadata.proper
## Regex Mode
-Regex mode scanner could define a regex to filter which process declare to
monitor by command line.
-Multiple regex can be defined to mach different types of processes.
+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, the duplicate processes entities cannot be reported. If multiple
entities are generated, only one process will be reported.
+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 template to build:
+These fields are supported using the template to build:
1. Service Name
2. Service Instance Name
3. Process NAme
diff --git a/docs/en/setup/configuration/profiling.md
b/docs/en/setup/configuration/profiling.md
index 46a27c6..1a3db98 100644
--- a/docs/en/setup/configuration/profiling.md
+++ b/docs/en/setup/configuration/profiling.md
@@ -13,7 +13,7 @@ and send the snapshot to the backend server.
## Profiling Type
-All the profiling tasks is using the [Linux Official
Function](https://man7.org/linux/man-pages/man2/perf_event_open.2.html) to open
perf event,
+All the profiling tasks are using the [Linux Official
Function](https://man7.org/linux/man-pages/man2/perf_event_open.2.html) to open
perf event,
and attach the eBPF Program to dump stacks.
### On CPU
@@ -24,4 +24,4 @@ On CPU Profiling task is using `PERF_COUNT_SW_CPU_CLOCK` to
profiling the proces
| Name | Default | Environment Key | Description |
|------|---------|-----------------|-------------|
-| profiling.task.on_cpu.dump_period | 9ms |
ROVER_PROFILING_TASK_ON_CPU_DUMP_PERIOD | The profiling stack dump period. |
\ No newline at end of file
+| profiling.task.on_cpu.dump_period | 9ms |
ROVER_PROFILING_TASK_ON_CPU_DUMP_PERIOD | The profiling stack dump period. |
diff --git a/docs/en/setup/examples/cases/agent-sensor/readme.md
b/docs/en/setup/examples/cases/agent-sensor/readme.md
index 63f0a4c..1630207 100644
--- a/docs/en/setup/examples/cases/agent-sensor/readme.md
+++ b/docs/en/setup/examples/cases/agent-sensor/readme.md
@@ -1,6 +1,6 @@
# Detect Process by Agent Sensor
-This documentation helps you to set up service which could let rover detected
automatically.
+This documentation helps you to set up a service that could let rover detected
automatically.
## Configure Service
@@ -16,13 +16,13 @@ defer r.Close()
tracer, err := go2sky.NewTracer("example", go2sky.WithReporter(r))
```
-The `reporter.WithProcessStatusHook(true)` declare to enable the Process
Status Hook feature.
+The `reporter.WithProcessStatusHook(true)` declares to enable the Process
Status Hook feature.
## Starting Rover
### Enable Linux Process Scanner
-After your service been startup, then configure the Linux process scanner with
"AGENT_SENSOR" mode.
+After your service has been startup, then configure the Linux process scanner
with "AGENT_SENSOR" mode.
### Full Configuration
@@ -47,4 +47,4 @@ process_discovery:
mode: AGENT_SENSOR
agent:
processStatusRefreshPeriod: 1m
-```
\ No newline at end of file
+```
diff --git a/docs/en/setup/examples/cases/kubernetes-process/readme.md
b/docs/en/setup/examples/cases/kubernetes-process/readme.md
index 2cf276f..17fd0d3 100644
--- a/docs/en/setup/examples/cases/kubernetes-process/readme.md
+++ b/docs/en/setup/examples/cases/kubernetes-process/readme.md
@@ -1,20 +1,20 @@
# Detect Process by Kubernetes
-This documentation helps you to set up the rover in the kubernetes environment
and detect kubernetes process automaticlly.
+This documentation helps you to set up the rover in the Kubernetes environment
and detect the kubernetes process automatically.
## Startup Kubernetes
-Make sure that you already have a Kubernetes cluster.
+Make sure that you already have a Kubernetes cluster.
If you don't have a running cluster, you can also leverage [KinD (Kubernetes
in Docker)](https://kind.sigs.k8s.io)
or [minikube](https://minikube.sigs.k8s.io) to create a cluster.
## Deploy Rover
-Please following the [rover-darmonset.yml](./rover-darmonset.yml) to deploy
the rover in your kubernetes cluster.
-Update the comment in the file, which including two config:
-1. **Rover docker image**: You could use `make docker` to build an image and
upload to your private registry.
+Please follow the [rover-darmonset.yml](./rover-darmonset.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.
2. **OAP address**: Update the OAP address.
-Then, you could use `kuberctl apply -f rover-darmonset.yml` to deploy the
skywalking-rover into your cluster.
-It would deploy in each node as a DaemonSet.
\ No newline at end of file
+Then, you could use `kuberctl apply -f rover-darmonset.yml` to deploy the
skywalking-rover into your cluster.
+It would deploy in each node as a DaemonSet.
diff --git a/docs/en/setup/examples/cases/profiling-process/readme.md
b/docs/en/setup/examples/cases/profiling-process/readme.md
index e48a9c8..47ec0cc 100644
--- a/docs/en/setup/examples/cases/profiling-process/readme.md
+++ b/docs/en/setup/examples/cases/profiling-process/readme.md
@@ -1,10 +1,10 @@
-# Profiling a Golang/C service on Linux
+# 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 the Linux, and make sure your service already have the
symbol data inside the binary file.
+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`.
@@ -13,8 +13,8 @@ So we could locate the stack symbol, It could be checked
following these ways:
### Enable Linux Process Scanner
-After your service been startup, then configure the Linux process scanner to
let Rover known how to find service.
-Please make sure the Linux Process Detector have been active.
+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.
@@ -29,7 +29,7 @@ $ ps -ef|grep sqrt
root 2072 1790 0 14:59 pts/0 00:00:00 ./sqrt name=a
```
-Follow the command example in above, you could see the last column showing the
process command line is `./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
diff --git a/docs/en/setup/overview.md b/docs/en/setup/overview.md
index f94579d..2e1bea7 100644
--- a/docs/en/setup/overview.md
+++ b/docs/en/setup/overview.md
@@ -25,7 +25,7 @@ You can quickly build your Rover according to the following
examples:
### Use Cases
-1. [Profiling a Golang/C service on
Linux](examples/cases/profiling-process/readme.md)
+1. [Profiling a Golang/C/C++/Rust service on
Linux](examples/cases/profiling-process/readme.md)
1. [Detect Process by Agent Sensor](examples/cases/agent-sensor/readme.md)
1. [Detect Process in Kubernetes
Environemnt](examples/cases/kubernetes-process/readme.md)
diff --git a/docs/menu.yml b/docs/menu.yml
index 640a6f4..307ae21 100644
--- a/docs/menu.yml
+++ b/docs/menu.yml
@@ -55,7 +55,7 @@ catalog:
path: /en/setup/examples/deploy/linux/readme
- name: Use Cases
catalog:
- - name: Profiling a Golang/C service on Linux
+ - 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