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  ```