mirror of
https://gitee.com/arthas/arthas.git
synced 2024-12-02 12:17:45 +08:00
143 lines
8.1 KiB
Markdown
143 lines
8.1 KiB
Markdown
# monitor
|
||
|
||
[`monitor`在线教程](https://arthas.aliyun.com/doc/arthas-tutorials.html?language=cn&id=command-monitor)
|
||
|
||
::: tip
|
||
方法执行监控
|
||
:::
|
||
|
||
对匹配 `class-pattern`/`method-pattern`/`condition-express`的类、方法的调用进行监控。
|
||
|
||
`monitor` 命令是一个非实时返回命令.
|
||
|
||
实时返回命令是输入之后立即返回,而非实时返回的命令,则是不断的等待目标 Java 进程返回信息,直到用户输入 `Ctrl+C` 为止。
|
||
|
||
服务端是以任务的形式在后台跑任务,植入的代码随着任务的中止而不会被执行,所以任务关闭后,不会对原有性能产生太大影响,而且原则上,任何 Arthas 命令不会引起原有业务逻辑的改变。
|
||
|
||
## 监控的维度说明
|
||
|
||
| 监控项 | 说明 |
|
||
| --------: | :------------------------- |
|
||
| timestamp | 时间戳 |
|
||
| class | Java 类 |
|
||
| method | 方法(构造方法、普通方法) |
|
||
| total | 调用次数 |
|
||
| success | 成功次数 |
|
||
| fail | 失败次数 |
|
||
| rt | 平均 RT |
|
||
| fail-rate | 失败率 |
|
||
|
||
## 参数说明
|
||
|
||
方法拥有一个命名参数 `[c:]`,意思是统计周期(cycle of output),拥有一个整型的参数值
|
||
|
||
| 参数名称 | 参数说明 |
|
||
| ------------------: | :----------------------------------------------------------------- |
|
||
| _class-pattern_ | 类名表达式匹配 |
|
||
| _method-pattern_ | 方法名表达式匹配 |
|
||
| _condition-express_ | 条件表达式 |
|
||
| [E] | 开启正则表达式匹配,默认为通配符匹配 |
|
||
| `[c:]` | 统计周期,默认值为 120 秒 |
|
||
| [b] | 在**方法调用之前**计算 condition-express |
|
||
| `[m <arg>]` | 指定 Class 最大匹配数量,默认值为 50。长格式为`[maxMatch <arg>]`。 |
|
||
|
||
## 使用参考
|
||
|
||
```bash
|
||
$ monitor -c 5 demo.MathGame primeFactors
|
||
Press Ctrl+C to abort.
|
||
Affect(class-cnt:1 , method-cnt:1) cost in 94 ms.
|
||
timestamp class method total success fail avg-rt(ms) fail-rate
|
||
-----------------------------------------------------------------------------------------------
|
||
2018-12-03 19:06:38 demo.MathGame primeFactors 5 1 4 1.15 80.00%
|
||
|
||
timestamp class method total success fail avg-rt(ms) fail-rate
|
||
-----------------------------------------------------------------------------------------------
|
||
2018-12-03 19:06:43 demo.MathGame primeFactors 5 3 2 42.29 40.00%
|
||
|
||
timestamp class method total success fail avg-rt(ms) fail-rate
|
||
-----------------------------------------------------------------------------------------------
|
||
2018-12-03 19:06:48 demo.MathGame primeFactors 5 3 2 67.92 40.00%
|
||
|
||
timestamp class method total success fail avg-rt(ms) fail-rate
|
||
-----------------------------------------------------------------------------------------------
|
||
2018-12-03 19:06:53 demo.MathGame primeFactors 5 2 3 0.25 60.00%
|
||
|
||
timestamp class method total success fail avg-rt(ms) fail-rate
|
||
-----------------------------------------------------------------------------------------------
|
||
2018-12-03 19:06:58 demo.MathGame primeFactors 1 1 0 0.45 0.00%
|
||
|
||
timestamp class method total success fail avg-rt(ms) fail-rate
|
||
-----------------------------------------------------------------------------------------------
|
||
2018-12-03 19:07:03 demo.MathGame primeFactors 2 2 0 3182.72 0.00%
|
||
```
|
||
|
||
### 指定 Class 最大匹配数量
|
||
|
||
```bash
|
||
$ monitor -c 1 -m 1 demo.MathGame primeFactors
|
||
Press Q or Ctrl+C to abort.
|
||
Affect(class count:1 , method count:1) cost in 384 ms, listenerId: 6.
|
||
timestamp class method total success fail avg-rt(ms) fail-rate
|
||
-----------------------------------------------------------------------------------------------
|
||
2022-12-25 21:12:58 demo.MathGame primeFactors 1 1 0 0.18 0.00%
|
||
|
||
timestamp class method total success fail avg-rt(ms) fail-rate
|
||
-----------------------------------------------------------------------------------------------
|
||
2022-12-25 21:12:59 demo.MathGame primeFactors 0 0 0 0.00 0.00%
|
||
```
|
||
|
||
### 计算条件表达式过滤统计结果(方法执行完毕之后)
|
||
|
||
```bash
|
||
monitor -c 5 demo.MathGame primeFactors "params[0] <= 2"
|
||
Press Q or Ctrl+C to abort.
|
||
Affect(class count: 1 , method count: 1) cost in 19 ms, listenerId: 5
|
||
timestamp class method total success fail avg-rt(ms) fail-rate
|
||
-----------------------------------------------------------------------------------------------
|
||
2020-09-02 09:42:36 demo.MathGame primeFactors 5 3 2 0.09 40.00%
|
||
|
||
timestamp class method total success fail avg-rt(ms) fail-rate
|
||
----------------------------------------------------------------------------------------------
|
||
2020-09-02 09:42:41 demo.MathGame primeFactors 5 2 3 0.11 60.00%
|
||
|
||
timestamp class method total success fail avg-rt(ms) fail-rate
|
||
----------------------------------------------------------------------------------------------
|
||
2020-09-02 09:42:46 demo.MathGame primeFactors 5 1 4 0.06 80.00%
|
||
|
||
timestamp class method total success fail avg-rt(ms) fail-rate
|
||
----------------------------------------------------------------------------------------------
|
||
2020-09-02 09:42:51 demo.MathGame primeFactors 5 1 4 0.12 80.00%
|
||
|
||
timestamp class method total success fail avg-rt(ms) fail-rate
|
||
----------------------------------------------------------------------------------------------
|
||
2020-09-02 09:42:56 demo.MathGame primeFactors 5 3 2 0.15 40.00%
|
||
```
|
||
|
||
### 计算条件表达式过滤统计结果(方法执行完毕之前)
|
||
|
||
```bash
|
||
monitor -b -c 5 com.test.testes.MathGame primeFactors "params[0] <= 2"
|
||
Press Q or Ctrl+C to abort.
|
||
Affect(class count: 1 , method count: 1) cost in 21 ms, listenerId: 4
|
||
timestamp class method total success fail avg-rt(ms) fail-rate
|
||
----------------------------------------------------------------------------------------------
|
||
2020-09-02 09:41:57 demo.MathGame primeFactors 1 0 1 0.10 100.00%
|
||
|
||
timestamp class method total success fail avg-rt(ms) fail-rate
|
||
----------------------------------------------------------------------------------------------
|
||
2020-09-02 09:42:02 demo.MathGame primeFactors 3 0 3 0.06 100.00%
|
||
|
||
timestamp class method total success fail avg-rt(ms) fail-rate
|
||
----------------------------------------------------------------------------------------------
|
||
2020-09-02 09:42:07 demo.MathGame primeFactors 2 0 2 0.06 100.00%
|
||
|
||
timestamp class method total success fail avg-rt(ms) fail-rate
|
||
----------------------------------------------------------------------------------------------
|
||
2020-09-02 09:42:12 demo.MathGame primeFactors 1 0 1 0.05 100.00%
|
||
|
||
timestamp class method total success fail avg-rt(ms) fail-rate
|
||
----------------------------------------------------------------------------------------------
|
||
2020-09-02 09:42:17 demo.MathGame primeFactors 2 0 2 0.10 100.00%
|
||
```
|