Promtail 错误管道阶段必须只包含一个键

Promtail error pipeline stage must only contain one key

尝试设置 Promtail 时出现以下错误:

level=error ts=2020-11-27T06:10:30.310583Z caller=main.go:104 msg="error creating promtail" error="failed to make file target manager: pipeline stage must contain only one key"

我是运行命令行下的

promtail-windows-amd64.exe --config.file=../conf/promtail-local-config.yml

我的日志行如下所示:

13:21:03.183 - INFO - Successfully received document from '127.0.0.1'. Saved as 'c:\test\test_file.txt' in 102ms from address '/127.0.0.1'

13:21:05.275 - WARN - Failed to receive document from '127.0.0.1'. Error creating file c:\test\error_file.txt'

我的配置如下:

scrape_configs:
- job_name: promtailTest
  pipeline_stages:
  - match:
    selector: '{job="promtailTest"}'
    stages:
    - regex:
      expression: '^(?P<timestamp>\d{2}:\d{2}:\d{2}\.\d{3})\s\-\s(?P<logLevel>[A-Z]{4,5})\s\-\s(?P<logMessage>.*)$'
    - labels:
      logLevel:
  static_configs:
  - targets:
      - localhost
    labels:
      job: promtailTest
      app: promtailTest
      host: LOCAL
      __path__: C:/test/logs/*log

当我取出 pipeline_stages: 部分时,我确实看到了 grafana 中的行,但是我无法让正则表达式部分工作。我实际上想为日志记录级别添加一个标签(这样我就可以计算错误)

呸!!我是个傻瓜。我认为问题出在我的格式上(YAML 可以是真正的 PITA!!!)

我的新配置现在看起来像这样并且可以正常工作。

scrape_configs:

  - job_name: promtailTest
    static_configs:
    - targets:
        - localhost
      labels:
        job: promtailTest
        app: promtailTest
        host: APOLLO99
        __path__: D:/SXI/XPress/Dispatch/logs/*log
    pipeline_stages:
    - match:
        selector: '{job="promtailTest"}'
        stages:
        - regex:
            expression: "^^(?P<myTime>\d{2}:\d{2}:\d{2}\.\d{3})\s\-\s(?P<logLevel>[A-Z]{4,5})\s\-\s(?P<logMessage>.*)$$"
        - labels:
            logLevel: