github.com/GuanceCloud/cliutils@v1.1.21/pipeline/ptinput/funcs/md/point_window.md (about) 1 ### `point_window()` {fn-point-window} 2 3 函数原型: `fn point_window(before: int, after: int, stream_tags = ["filepath", "host"])` 4 5 函数说明: 记录被丢弃的数据,配合 `window_hit` 函数使用,上传被丢弃的上下文 `Point` 数据。 6 7 函数参数: 8 9 - `before`: 函数 `window_hit` 执行之前的最大可暂存的 Point 个数,未丢弃的数据参与计数。 10 - `after`: 函数 `window_hit` 执行之后保留的 Point 个数,未丢弃的数据参与计数。 11 - `stream_tags`: 通过数据上的标签区分日志(指标,链路等)流,默认数使用 `filepath` 和 `host` 可用于区分来自同一文件的日志。 12 13 示例: 14 15 ```python 16 # 建议放置在脚本首行 17 # 18 point_window(8, 8) 19 20 # 如果是 panic 日志,保留前 8 条,以及后 8 条(包含当前一条) 21 if grok(_, "abc.go:25 panic: xxxxxx") { 22 # 只有此次运行过程中 point_window() 被执行,这个函数才会生效 23 # 触发窗口内的数据恢复行为 24 # 25 window_hit() 26 } 27 28 # 默认丢弃全部的 service 为 test_app 的日志; 29 # 若包含 panic 的日志,则保留相邻的 15 条以及当前这条 30 # 31 if service == "test_app" { 32 drop() 33 } 34 ```