小编urs*_*acv的帖子

如何为 Google Cloud Ops Agent 编写自定义多行解析器

我正在尝试配置 google-cloud-ops-agent 以从应用程序收集日志记录。日志是一行或多行。

多行日志示例:

[2023-02-08 10:32:23] production.ERROR: App\Jobs\Message::handle (Symfony\\Component\\Mime\\Exception\\RfcComplianceException(code: 0): Email \"3712\" does not comply with addr-spec of RFC 2822. at /var/www/html/vendor/symfony/mime/Address.php:54)
[stacktrace]
#0 /var/www/html/vendor/laravel/framework/src/Illuminate/Mail/Message.php(244): Symfony\\Component\\Mime\\Address->__construct()
#1 /var/www/html/vendor/laravel/framework/src/Illuminate/Mail/Message.php(108): Illuminate\\Mail\\Message->addAddresses()
[2023-02-08 20:53:30] production.ERROR: RuntimeException: User not found in /var/www/html/app/Services/UserService.php:82
Stack trace:
#0 /var/www/html/app/Services/UserService.php(63): App\Services\UserService->init()
#1 /var/www/html/app/Helpers/UserHelper.php(128): App\Services\UserHelper->__construct()
Run Code Online (Sandbox Code Playgroud)

我的配置如下:

logging:
  receivers:
    customFile:
      type: files
      include_paths:
      - /var/www/html/storage/logs/error.log
  processors:
    extract_structure:
      type: parse_regex
      field: message
      regex: "^\[(?<time>[\d-]*\s[\d:]*)\]\sproduction.(?<severity>[^ :]*):\s(?<message>[\s\S]*)$"
      time_key: time
      time_format: "%Y-%m-%d %H:%M:%S"
    move_severity:
      type: modify_fields
      fields:
        jsonPayload."logging.googleapis.com/severity":
          move_from: jsonPayload.severity
  service:
    pipelines:
      default_pipeline:
        receivers: …
Run Code Online (Sandbox Code Playgroud)

google-cloud-platform google-cloud-logging google-cloud-ops-agent

5
推荐指数
0
解决办法
395
查看次数