@p-moon/yue-cli 0.1.6 → 0.1.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +297 -12
- package/dist/bin/yue.js +1484 -62
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# yue
|
|
2
2
|
|
|
3
|
-
CLI tool for [mydb.jdfmgt.com](https://mydb.jdfmgt.com/)
|
|
3
|
+
CLI tool for [mydb.jdfmgt.com](https://mydb.jdfmgt.com/), [Digger](https://joywatch.jd.com/digger/techApp/overview), and [Taishan JMQ](https://taishan.jd.com/jmq/application?JMQ_ENV=prod) — query databases, execute SQL, search application logs, and manage JMQ groups & topics via opencli's browser session.
|
|
4
4
|
|
|
5
5
|
## Install
|
|
6
6
|
|
|
@@ -39,32 +39,224 @@ yue mydb query --dbName jdinsure_trade_cds --sql 'select 1' --output json
|
|
|
39
39
|
yue mydb query --dbName jdinsure_trade_cds --sql 'select * from big_table' --page 2 --limit 50
|
|
40
40
|
```
|
|
41
41
|
|
|
42
|
-
###
|
|
42
|
+
### Digger — 历史日志
|
|
43
43
|
|
|
44
44
|
```bash
|
|
45
45
|
# List available apps (no --keyWord)
|
|
46
46
|
yue digger history --appName baoxian
|
|
47
47
|
|
|
48
48
|
# Search logs with keyword match (default)
|
|
49
|
-
yue digger history --appName baoxian
|
|
49
|
+
yue digger history --appName baoxian-mall-trade --keyWord getUserAuthInfo
|
|
50
50
|
|
|
51
51
|
# Search logs with regex match
|
|
52
|
-
yue digger history --appName baoxian
|
|
52
|
+
yue digger history --appName baoxian-mall-trade --keyWord "getUserAuthInfo.*req" --searchType regular
|
|
53
53
|
|
|
54
54
|
# With time range
|
|
55
|
-
yue digger history --appName baoxian
|
|
55
|
+
yue digger history --appName baoxian-mall-trade --keyWord getUserAuthInfo \
|
|
56
|
+
--startTime "2026-07-01 09:00:00" --endTime "2026-07-01 18:00:00"
|
|
56
57
|
|
|
57
58
|
# Limit results
|
|
58
|
-
yue digger history --appName baoxian
|
|
59
|
+
yue digger history --appName baoxian-mall-trade --keyWord getUserAuthInfo --limit 20
|
|
59
60
|
|
|
60
61
|
# Filter by log level
|
|
61
|
-
yue digger history --appName baoxian
|
|
62
|
+
yue digger history --appName baoxian-mall-trade --keyWord getUserAuthInfo --logLevel ERROR
|
|
63
|
+
|
|
64
|
+
# Exclude keywords
|
|
65
|
+
yue digger history --appName baoxian-mall-trade --keyWord Exception --exclude "pfinder,sgm"
|
|
62
66
|
|
|
63
67
|
# JSON output
|
|
64
|
-
yue digger history --appName baoxian
|
|
68
|
+
yue digger history --appName baoxian-mall-trade --keyWord getUserAuthInfo --output json
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
### Digger — 本地日志
|
|
72
|
+
|
|
73
|
+
通过 `grep` 在应用主机的本地日志文件中搜索,支持多台主机并发搜索并汇总结果。
|
|
74
|
+
|
|
75
|
+
```bash
|
|
76
|
+
# Basic search (auto-detect main log file)
|
|
77
|
+
yue digger local --appName baoxian-bridgehead-zx --grep error
|
|
78
|
+
|
|
79
|
+
# Specify log file
|
|
80
|
+
yue digger local --appName baoxian-bridgehead-zx \
|
|
81
|
+
--file /export/log/baoxian-bridgehead-zx/catalina.out \
|
|
82
|
+
--grep error
|
|
83
|
+
|
|
84
|
+
# Exclude keywords (comma-separated)
|
|
85
|
+
yue digger local --appName baoxian-bridgehead-zx --grep Exception --grep-v "pfinder,sgm"
|
|
86
|
+
|
|
87
|
+
# Max match rows and JSON output
|
|
88
|
+
yue digger local --appName baoxian-bridgehead-zx --grep error --maxMatchRow 100 --output json
|
|
89
|
+
|
|
90
|
+
# Query specific IP only
|
|
91
|
+
yue digger local --appName baoxian-bridgehead-zx --grep error --ip 100.99.57.237
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
### Digger — 实时日志
|
|
95
|
+
|
|
96
|
+
```bash
|
|
97
|
+
# Stream realtime logs (Ctrl+C to stop)
|
|
98
|
+
yue digger realtime \
|
|
99
|
+
--appName baoxian-bridgehead \
|
|
100
|
+
--ip 100.99.232.222 \
|
|
101
|
+
--file /export/log/jdos_kj_baoxian-bridgehead/catalina.out \
|
|
102
|
+
--maxLines 100
|
|
103
|
+
|
|
104
|
+
# One-shot JSON output (useful for debugging)
|
|
105
|
+
yue digger realtime \
|
|
106
|
+
--appName baoxian-bridgehead \
|
|
107
|
+
--ip 100.99.232.222 \
|
|
108
|
+
--file /export/log/jdos_kj_baoxian-bridgehead/catalina.out \
|
|
109
|
+
--output json
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
### Digger — 查询实例 IP
|
|
113
|
+
|
|
114
|
+
```bash
|
|
115
|
+
# List app instance IPs with Pod name and group
|
|
116
|
+
yue digger ips --appName baoxian-bridgehead-zx
|
|
117
|
+
|
|
118
|
+
# JSON output
|
|
119
|
+
yue digger ips --appName baoxian-bridgehead-zx --output json
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
### Digger — 查询日志文件列表
|
|
123
|
+
|
|
124
|
+
```bash
|
|
125
|
+
# List main log files
|
|
126
|
+
yue digger files --appName baoxian-bridgehead-zx
|
|
127
|
+
|
|
128
|
+
# Include all files (historical archives)
|
|
129
|
+
yue digger files --appName baoxian-bridgehead-zx --containAll
|
|
130
|
+
|
|
131
|
+
# JSON output
|
|
132
|
+
yue digger files --appName baoxian-bridgehead-zx --output json
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
### Digger — 查询实例 IP(旧版)
|
|
136
|
+
|
|
137
|
+
```bash
|
|
138
|
+
# List app instance IPs (default time range: last 1h)
|
|
139
|
+
yue digger app-ips --appName baoxian-bridgehead --productName _jdosApp_
|
|
140
|
+
|
|
141
|
+
# With time range (ms timestamps)
|
|
142
|
+
yue digger app-ips --appName baoxian-bridgehead --productName _jdosApp_ \
|
|
143
|
+
--start 1782891564642 --end 1782895164642
|
|
144
|
+
|
|
145
|
+
# JSON output
|
|
146
|
+
yue digger app-ips --appName baoxian-bridgehead --productName _jdosApp_ --output json
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
### JMQ — 搜索 Group
|
|
150
|
+
|
|
151
|
+
查询泰山 JMQ 的 Group(即原来的应用),支持模糊搜索,不传 `--name` 则查询所有。
|
|
152
|
+
|
|
153
|
+
`--env` 环境说明:
|
|
154
|
+
|
|
155
|
+
| 值 | 站点 | 域名 |
|
|
156
|
+
|----|------|------|
|
|
157
|
+
| `prod` | 中国站生产 | `taishan.jd.com` |
|
|
158
|
+
| `test` | 测试站 | `test.taishan.jd.com` |
|
|
159
|
+
| `th` | 新加坡生产 | `th.taishan.jd.com` |
|
|
160
|
+
| `hl` | 荷兰站生产 | `hl.taishan.jd.com` |
|
|
161
|
+
| `intl` | 国际站生产 | `joybuy.taishan.jd.com` |
|
|
162
|
+
| `intl-test` | 国际测试站 | `test-intl.taishan.jd.com` |
|
|
163
|
+
|
|
164
|
+
```bash
|
|
165
|
+
# 查询所有 Group(中国站生产)
|
|
166
|
+
yue jmq groups
|
|
167
|
+
|
|
168
|
+
# 按 Group 名称模糊搜索
|
|
169
|
+
yue jmq groups --name baoxian
|
|
170
|
+
|
|
171
|
+
# 测试站
|
|
172
|
+
yue jmq groups --name baoxian --env test
|
|
173
|
+
|
|
174
|
+
# 荷兰站
|
|
175
|
+
yue jmq groups --name baoxian --env hl
|
|
176
|
+
|
|
177
|
+
# 只看某一页
|
|
178
|
+
yue jmq groups --name baoxian --page 2
|
|
179
|
+
|
|
180
|
+
# JSON 输出
|
|
181
|
+
yue jmq groups --name baoxian --output json
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
### JMQ — 搜索 Topic
|
|
185
|
+
|
|
186
|
+
查询泰山 JMQ 的 Topic,支持模糊搜索,不传 `--name` 则查询所有。
|
|
187
|
+
|
|
188
|
+
```bash
|
|
189
|
+
# 查询所有 Topic(中国站生产)
|
|
190
|
+
yue jmq topics
|
|
191
|
+
|
|
192
|
+
# 按 Topic 名称模糊搜索
|
|
193
|
+
yue jmq topics --name baoxian
|
|
194
|
+
|
|
195
|
+
# 只看我的主题
|
|
196
|
+
yue jmq topics --name baoxian --personal
|
|
197
|
+
|
|
198
|
+
# 测试站
|
|
199
|
+
yue jmq topics --name baoxian --env test
|
|
200
|
+
|
|
201
|
+
# 荷兰站
|
|
202
|
+
yue jmq topics --name baoxian --env hl
|
|
203
|
+
|
|
204
|
+
# 只看某一页
|
|
205
|
+
yue jmq topics --name baoxian --page 2
|
|
206
|
+
|
|
207
|
+
# JSON 输出
|
|
208
|
+
yue jmq topics --name baoxian --output json
|
|
65
209
|
```
|
|
66
210
|
|
|
67
|
-
|
|
211
|
+
### JMQ — Group 详情
|
|
212
|
+
|
|
213
|
+
查看 Group 的运行时详情:消费端和生产线端的 Topic 订阅、积压数、重试数、连接数、出入队数等。
|
|
214
|
+
|
|
215
|
+
```bash
|
|
216
|
+
# 查看 Group 详情(中国站生产)
|
|
217
|
+
yue jmq group baoxianMessageMall
|
|
218
|
+
|
|
219
|
+
# 测试站
|
|
220
|
+
yue jmq group baoxianMessageMall --env test
|
|
221
|
+
|
|
222
|
+
# 荷兰站
|
|
223
|
+
yue jmq group baoxianMessageMall --env hl
|
|
224
|
+
|
|
225
|
+
# JSON 输出
|
|
226
|
+
yue jmq group baoxianMessageMall --output json
|
|
227
|
+
```
|
|
228
|
+
|
|
229
|
+
输出包含两张表:
|
|
230
|
+
- **消费者 (Consumer)**:Topic、连接数、积压数、出队数、重试数、订阅线程、消费状态
|
|
231
|
+
- **生产者 (Producer)**:Topic、连接数、入队数
|
|
232
|
+
|
|
233
|
+
### JMQ — Topic 详情
|
|
234
|
+
|
|
235
|
+
查看 Topic 的运行时详情:消费组、生产组、积压、重试、死信消息等。
|
|
236
|
+
|
|
237
|
+
```bash
|
|
238
|
+
# 查看 Topic 详情(中国站生产)
|
|
239
|
+
yue jmq topic baoxianMessageMall_Order_Submit
|
|
240
|
+
|
|
241
|
+
# 测试站
|
|
242
|
+
yue jmq topic baoxianMessageMall_Order_Submit --env test
|
|
243
|
+
|
|
244
|
+
# 荷兰站
|
|
245
|
+
yue jmq topic baoxianMessageMall_Order_Submit --env hl
|
|
246
|
+
|
|
247
|
+
# JSON 输出
|
|
248
|
+
yue jmq topic baoxianMessageMall_Order_Submit --output json
|
|
249
|
+
```
|
|
250
|
+
|
|
251
|
+
输出包含两张表:
|
|
252
|
+
- **消费组 (Consumer)**:Group、连接数、积压数、出队数、重试数、高性能重试、死信消息、消费状态
|
|
253
|
+
- **生产组 (Producer)**:Group、连接数、入队数
|
|
254
|
+
|
|
255
|
+
---
|
|
256
|
+
|
|
257
|
+
## Options Reference
|
|
258
|
+
|
|
259
|
+
### `yue digger history` — 历史日志
|
|
68
260
|
|
|
69
261
|
| Flag | Description | Default |
|
|
70
262
|
|------|-------------|---------|
|
|
@@ -74,10 +266,97 @@ yue digger history --appName baoxian.mall.trade --keyWord getUserAuthInfo --outp
|
|
|
74
266
|
| `--startTime <datetime>` | Start time, e.g. `"2026-07-01 09:00:00"` | 1 hour ago |
|
|
75
267
|
| `--endTime <datetime>` | End time, e.g. `"2026-07-01 18:00:00"` | now |
|
|
76
268
|
| `--limit <n>` | Max log entries to return | 50 |
|
|
77
|
-
| `--logLevel <level>` | Log level filter | `ALL` |
|
|
78
|
-
| `--
|
|
269
|
+
| `--logLevel <level>` | Log level filter (`ALL`/`ERROR`/`WARN`/`INFO`/`DEBUG`) | `ALL` |
|
|
270
|
+
| `--exclude <text>` | Exclude keyword | — |
|
|
271
|
+
| `--filePaths <paths>` | Log file path filter, comma-separated | — |
|
|
272
|
+
| `--output <fmt>` | `plain` or `json` | `plain` |
|
|
273
|
+
|
|
274
|
+
> **Note:** Without `--keyWord`, it lists matching apps with usage hints.
|
|
79
275
|
|
|
80
|
-
|
|
276
|
+
### `yue digger local` — 本地日志
|
|
277
|
+
|
|
278
|
+
| Flag | Description | Default |
|
|
279
|
+
|------|-------------|---------|
|
|
280
|
+
| `--appName <name>` | App name | — |
|
|
281
|
+
| `--file <path>` | Log file path; auto-detects if omitted | auto |
|
|
282
|
+
| `--grep <keyword>` | Grep keyword (≥3 chars) | — |
|
|
283
|
+
| `--grep-v <keywords>` | Exclude keywords (comma-separated) | — |
|
|
284
|
+
| `--maxMatchRow <n>` | Max matching lines per host | 50 |
|
|
285
|
+
| `--lineOffsetBefore <n>` | Context lines before match | 0 |
|
|
286
|
+
| `--lineOffsetAfter <n>` | Context lines after match | 0 |
|
|
287
|
+
| `--searchScope <scope>` | Search scope (e.g. `100M`, `200M`) | `100M` |
|
|
288
|
+
| `--ip <ip>` | Query specific IP only (default: all hosts) | — |
|
|
289
|
+
| `--output <fmt>` | `plain` or `json` | `plain` |
|
|
290
|
+
|
|
291
|
+
### `yue digger realtime` — 实时日志
|
|
292
|
+
|
|
293
|
+
| Flag | Description | Default |
|
|
294
|
+
|------|-------------|---------|
|
|
295
|
+
| `--appName <name>` | App name | — |
|
|
296
|
+
| `--ip <ip>` | Instance IP | — |
|
|
297
|
+
| `--file <path>` | Log file path | — |
|
|
298
|
+
| `--maxLines <n>` | Max lines to fetch | 100 |
|
|
299
|
+
| `--output <fmt>` | `plain` (streaming) or `json` | `plain` |
|
|
300
|
+
|
|
301
|
+
### `yue digger ips` — 实例 IP 列表
|
|
302
|
+
|
|
303
|
+
| Flag | Description | Default |
|
|
304
|
+
|------|-------------|---------|
|
|
305
|
+
| `--appName <name>` | App name | — |
|
|
306
|
+
| `--output <fmt>` | `table` or `json` | `table` |
|
|
307
|
+
|
|
308
|
+
### `yue digger files` — 日志文件列表
|
|
309
|
+
|
|
310
|
+
| Flag | Description | Default |
|
|
311
|
+
|------|-------------|---------|
|
|
312
|
+
| `--appName <name>` | App name | — |
|
|
313
|
+
| `--containAll` | Include all files (historical archives) | false |
|
|
314
|
+
| `--output <fmt>` | `list` or `json` | `list` |
|
|
315
|
+
|
|
316
|
+
### `yue digger app-ips` — 实例 IP 列表(旧版)
|
|
317
|
+
|
|
318
|
+
| Flag | Description | Default |
|
|
319
|
+
|------|-------------|---------|
|
|
320
|
+
| `--appName <name>` | Instance name (appName) | — |
|
|
321
|
+
| `--productName <name>` | Product name | `_jdosApp_` |
|
|
322
|
+
| `--start <ms>` | Start time (ms timestamp) | now - 1h |
|
|
323
|
+
| `--end <ms>` | End time (ms timestamp) | now |
|
|
324
|
+
| `--output <fmt>` | `table` or `json` | `table` |
|
|
325
|
+
|
|
326
|
+
### `yue jmq groups` — JMQ Group 搜索
|
|
327
|
+
|
|
328
|
+
| Flag | Description | Default |
|
|
329
|
+
|------|-------------|---------|
|
|
330
|
+
| `--name <keyword>` | Group 名称关键字(模糊搜索),不传则查询所有 | — |
|
|
331
|
+
| `--env <env>` | 环境:`prod` / `test` / `th` / `hl` / `intl` / `intl-test`(见上方环境说明) | `prod` |
|
|
332
|
+
| `--page <n>` | 页码(不指定则返回全部) | 全部 |
|
|
333
|
+
| `--output <fmt>` | `table` 或 `json` | `table` |
|
|
334
|
+
|
|
335
|
+
### `yue jmq topics` — JMQ Topic 搜索
|
|
336
|
+
|
|
337
|
+
| Flag | Description | Default |
|
|
338
|
+
|------|-------------|---------|
|
|
339
|
+
| `--name <keyword>` | Topic 名称关键字(模糊搜索),不传则查询所有 | — |
|
|
340
|
+
| `--env <env>` | 环境:`prod` / `test` / `th` / `hl` / `intl` / `intl-test`(见上方环境说明) | `prod` |
|
|
341
|
+
| `--personal` | 只看我的主题 | false |
|
|
342
|
+
| `--page <n>` | 页码(不指定则返回全部) | 全部 |
|
|
343
|
+
| `--output <fmt>` | `table` 或 `json` | `table` |
|
|
344
|
+
|
|
345
|
+
### `yue jmq group` — JMQ Group 详情
|
|
346
|
+
|
|
347
|
+
| Flag | Description | Default |
|
|
348
|
+
|------|-------------|---------|
|
|
349
|
+
| `<groupCode>` | Group 名称(必填,位置参数) | — |
|
|
350
|
+
| `--env <env>` | 环境:`prod` / `test` / `th` / `hl` / `intl` / `intl-test`(见上方环境说明) | `prod` |
|
|
351
|
+
| `--output <fmt>` | `table` 或 `json` | `table` |
|
|
352
|
+
|
|
353
|
+
### `yue jmq topic` — JMQ Topic 详情
|
|
354
|
+
|
|
355
|
+
| Flag | Description | Default |
|
|
356
|
+
|------|-------------|---------|
|
|
357
|
+
| `<topicCode>` | Topic 名称(必填,位置参数) | — |
|
|
358
|
+
| `--env <env>` | 环境:`prod` / `test` / `th` / `hl` / `intl` / `intl-test`(见上方环境说明) | `prod` |
|
|
359
|
+
| `--output <fmt>` | `table` 或 `json` | `table` |
|
|
81
360
|
|
|
82
361
|
## Development
|
|
83
362
|
|
|
@@ -85,6 +364,12 @@ yue digger history --appName baoxian.mall.trade --keyWord getUserAuthInfo --outp
|
|
|
85
364
|
# Run directly (no build)
|
|
86
365
|
npm run dev -- mydb query --dbName jdinsure_trade_cds --sql 'select 1'
|
|
87
366
|
npm run dev -- digger history --appName baoxian --keyWord getUserAuthInfo
|
|
367
|
+
npm run dev -- digger local --appName baoxian-bridgehead-zx --grep error
|
|
368
|
+
npm run dev -- digger ips --appName baoxian-bridgehead-zx
|
|
369
|
+
npm run dev -- jmq groups --name baoxian
|
|
370
|
+
npm run dev -- jmq topics --name baoxian
|
|
371
|
+
npm run dev -- jmq group baoxianMessageMall
|
|
372
|
+
npm run dev -- jmq topic baoxianMessageMall_Order_Submit
|
|
88
373
|
|
|
89
374
|
# Build
|
|
90
375
|
npm run build
|