簡體   English   中英

如何從數據流作業發送和過濾結構化日志

[英]How to send and filter structured logs from dataflow job

目標是存儲來自不同應用程序/作業的審核日志記錄,並能夠通過一些 ID 聚合它們。 我們為此選擇了 BigQuery,因此我們需要從日志中獲取結構化信息到 BigQuery。

我們成功地使用部署在 kube.netes 引擎中的應用程序將 output 記錄到標准輸出作為 json 字符串並對其進行解析,並且可以在 stackdriver 中看到結構為jsonPayload 我們從本教程中獲取了它。

但是,當我在數據流作業中使用相同的日志附加程序時,它不會被視為結構化消息,而是被視為jsonPayload.message字段中的字符串。

我需要兩件事的結構:

  • 自定義導出器的過濾器中使用它來進行大查詢
  • 在 BigQuery 中具有此處所述的結構

實現這一目標的最簡單方法是什么?

我知道現在已經很晚了,但令人驚訝的是,根據我現在的研究 (2022-03-22),這個用例仍然沒有簡單的答案。

您有兩種方法可以解決您的問題:

  • [首選] 您將日志生成為TaggedOutput ,然后使用writeTableRows function 在 BigQuery 中“手動”攝取它們。(即,您根本不使用推薦的 SLF4J 進行日志記錄,而是生成您的日志,就好像它是一個單獨但真實的一條數據單獨處理)。
  • [沒有嘗試,也不會推薦,僅供參考]您直接調用 Stackdriver API 或者您仍然像上面那樣生成日志,但是您直接使用 Stackdriver API 和 Java 客戶端批量“在最后記錄它們”(不要調用它為每個日志同步並嘗試利用批處理來避免顯着降低您的性能)。 => 這有節流限制

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM