Fluent Bit系列:字符集轉碼測試(下)

#作者:程宏斌

文章目錄

    • fluent-bit 1.9.4 轉換測試
  • 結論

接上篇:《Fluent Bit系列:字符集轉碼測試(上)》https://blog.csdn.net/qq_40477248/article/details/150776142?spm=1001.2014.3001.5501

fluent-bit 1.9.4 轉換測試

1、測試使用配置文件

[SERVICE]Flush 1Parsers_File parsers.confHTTP_Server  OnHTTP_Listen  0.0.0.0HTTP_PORT    3194
[INPUT]Name         tailTag          regex-fluentDB           ./db/regex-fluent.dbRead_from_Head truePath  /var/log/pods/logtest/*.logPath_Key  pod_log_path
[FILTER]Name modifyMatch *Add paas_log_belong         userAdd paas_log_type           middlewareAdd paas_collection_type    userfileAdd paas_account_id         123456789Add paas_region_id          lftstAdd paas_product_id         cccAdd paas_instance_name      test10Add paas_host_ip            127.0.0.1Add paas_manager_ip         127.0.0.1Add pod_namespace           defaultAdd pod_name                test-0Add pod_container_name      test 
[FILTER]Name                  multilineMatch                 *multiline.key_content logmultiline.parser      multiline-regex-goemitter_mem_buf_limit 2048M
[FILTER]Name    luaMatch   *script  gbk2utf8.luacall   convert_gbk_to_utf8
[OUTPUT]Name fileMatch *Path /vdata/logtest

核查數據結果

# 檢查采集結果命令
less /vdata/logtest/regex-fluent #提前獲取中文字符
egrep -n '匹配費率為0,不進行計價|to_number' regex-fluent | head -n 5

以下是采集后的結果被輸入到 /vdata/logtest/regex-fluent 文件中。在Linux系統中,通過使用 grep 命令搜索關鍵字,可以看到文件的第135、137行,確認沒有出現任何 GBK 格式的亂碼。這表明 Fluent Bit 1.9.4 成功地將 GBK 格式轉換為 UTF-8。此外,第24、40、41行的內容也確認了日志被正確合并。 但是我發現這個正則沒有處理日志文件中的空行,導致采集的數據有空白。

[root@cdp-10-191-193-8 logtest]# egrep -n '匹配費率為0,不進行計價|to_number' regex-fluent | head -n 5
24:regex-fluent: [1720149989.173038023, {"pod_log_path":"/var/log/pods/logtest/20230911_filerate-3105-9c659b484-kfp5j.0.log","paas_host_ip":"127.0.0.1","paas_log_belong":"user","pod_namespace":"default","paas_log_type":"middleware","pod_name":"test-0","paas_collection_type":"userfile","pod_container_name":"test","paas_account_id":"123456789","paas_region_id":"lftst","paas_manager_ip":"127.0.0.1","paas_product_id":"ccc","log":"329 2023-09-11 17:03:30 [/data01/heht30/guoc//stl_jsdev/src/load_shm.c:fLoadTBillCycle:401] [INFO]sql is [select \na.bill_cycle_seq, \na.bill_period_id, \nto_number(to_char(nvl(a.start_date, add_months(sysdate, 0)), 'yyyymmdd')), \nto_number(to_char(nvl(a.cutoff_date, add_months(sysdate, 240)), 'yyyymmdd')), \nnvl(a.split_table_postfix,-1), \nnvl(b.latn_id,-1), \nto_number(b.status) ","paas_instance_name":"test10"}]
40:regex-fluent: [1720149989.173041374, {"pod_log_path":"/var/log/pods/logtest/20230911_filerate-3105-9c659b484-kfp5j.0.log","paas_host_ip":"127.0.0.1","paas_log_belong":"user","pod_namespace":"default","paas_log_type":"middleware","pod_name":"test-0","paas_collection_type":"userfile","pod_container_name":"test","paas_account_id":"123456789","paas_region_id":"lftst","paas_manager_ip":"127.0.0.1","paas_product_id":"ccc","log":" to_number(nvl(to_char(active_date,'yyyymmdd'),'19700101')), ","paas_instance_name":"test10"}]
41:regex-fluent: [1720149989.173046930, {"pod_log_path":"/var/log/pods/logtest/20230911_filerate-3105-9c659b484-kfp5j.0.log","paas_host_ip":"127.0.0.1","paas_log_belong":"user","pod_namespace":"default","paas_log_type":"middleware","pod_name":"test-0","paas_collection_type":"userfile","pod_container_name":"test","paas_account_id":"123456789","paas_region_id":"lftst","paas_manager_ip":"127.0.0.1","paas_product_id":"ccc","log":" to_number(to_char(nvl(inactive_date,add_months(sysdate,360)),'yyyymmdd'))","paas_instance_name":"test10"}]
135:regex-fluent: [1720149989.173070565, {"pod_log_path":"/var/log/pods/logtest/20230911_filerate-3105-9c659b484-kfp5j.0.log","paas_host_ip":"127.0.0.1","paas_log_belong":"user","pod_namespace":"default","paas_log_type":"middleware","pod_name":"test-0","paas_collection_type":"userfile","pod_container_name":"test","paas_account_id":"123456789","paas_region_id":"lftst","paas_manager_ip":"127.0.0.1","paas_product_id":"ccc","log":"329 2023-09-11 17:04:53 [/data01/heht30/guoc//stl_jsdev/src/stl_pub.c:CdrRating:761] [INFO]匹配費率為0,不進行計價","paas_instance_name":"test10"}]
137:regex-fluent: [1720149989.173070837, {"pod_log_path":"/var/log/pods/logtest/20230911_filerate-3105-9c659b484-kfp5j.0.log","paas_host_ip":"127.0.0.1","paas_log_belong":"user","pod_namespace":"default","paas_log_type":"middleware","pod_name":"test-0","paas_collection_type":"userfile","pod_container_name":"test","paas_account_id":"123456789","paas_region_id":"lftst","paas_manager_ip":"127.0.0.1","paas_product_id":"ccc","log":"329 2023-09-11 17:04:53 [/data01/heht30/guoc//stl_jsdev/src/stl_pub.c:CdrRating:761] [INFO]匹配費率為0,不進行計價","paas_instance_name":"test10"}]

下面是日志文件的前三行

[root@cdp-10-191-193-8 logtest]# head -n 3 /home/dcos/fluentbit/20230911_filerate-3105-9c659b484-kfp5j.0.log 
329 2023-09-11 17:03:29 [/data01/heht30/guoc//stl_jsdev/src/stl_main.c:main:328] [INFO][REPEAT_MESSAGE=2|MESSAGE_SEQUENCE=3105:72:239|THIS_WORKFLOW_ID=72|INSERT_TIME=20230911164216|THIS_NODE_ID=3|GROUP_ID=3105|WORKFLOW_ID=72|FILE_NAME=991000PTSVDA022023090116581100000005.filefmt|PROVINCE_ID=99|FILE_PATH=/jzjs_month/spcp//2799/20230901/99|FMT_NORMAL_REC=10853],    ���?�??��=[2023-09-11 17:03:29]329 2023-09-11 17:03:29 [/data01/heht30/guoc//stl_jsdev/src/stl_main.c:main:341] [ALERT]REPEAT_MESSAGE=2|MESSAGE_SEQUENCE=3105:72:239|THIS_WORKFLOW_ID=72|INSERT_TIME=20230911164216|THIS_NODE_ID=3|GROUP_ID=3105|WORKFLOW_ID=72|FILE_NAME=991000PTSVDA022023090116581100000005.filefmt|PROVINCE_ID=99|FILE_PATH=/jzjs_month/spcp//2799/20230901/99|FMT_NORMAL_REC=10853

下面是采集文件的前三行內容,第二行也就是時間戳為“1720149989.173032110”的行,沒有正常處理空白行。

[root@cdp-10-191-193-8 logtest]# head -n 3 /vdata/logtest/regex-fluent 
regex-fluent: [1720149989.173026110, {"pod_log_path":"/var/log/pods/logtest/20230911_filerate-3105-9c659b484-kfp5j.0.log","paas_host_ip":"127.0.0.1","paas_log_belong":"user","pod_namespace":"default","paas_log_type":"middleware","pod_name":"test-0","paas_collection_type":"userfile","pod_container_name":"test","paas_account_id":"123456789","paas_region_id":"lftst","paas_manager_ip":"127.0.0.1","paas_product_id":"ccc","log":"329 2023-09-11 17:03:29 [/data01/heht30/guoc//stl_jsdev/src/stl_main.c:main:328] [INFO][REPEAT_MESSAGE=2|MESSAGE_SEQUENCE=3105:72:239|THIS_WORKFLOW_ID=72|INSERT_TIME=20230911164216|THIS_NODE_ID=3|GROUP_ID=3105|WORKFLOW_ID=72|FILE_NAME=991000PTSVDA022023090116581100000005.filefmt|PROVINCE_ID=99|FILE_PATH=/jzjs_month/spcp//2799/20230901/99|FMT_NORMAL_REC=10853],    批價開始時間=[2023-09-11 17:03:29]","paas_instance_name":"test10"}]
regex-fluent: [1720149989.173032110, {"pod_log_path":"/var/log/pods/logtest/20230911_filerate-3105-9c659b484-kfp5j.0.log","paas_host_ip":"127.0.0.1","paas_log_belong":"user","pod_namespace":"default","paas_log_type":"middleware","pod_name":"test-0","paas_collection_type":"userfile","pod_container_name":"test","paas_account_id":"123456789","paas_region_id":"lftst","paas_manager_ip":"127.0.0.1","paas_product_id":"ccc","log":" ","paas_instance_name":"test10"}]
regex-fluent: [1720149989.173032547, {"pod_log_path":"/var/log/pods/logtest/20230911_filerate-3105-9c659b484-kfp5j.0.log","paas_host_ip":"127.0.0.1","paas_log_belong":"user","pod_namespace":"default","paas_log_type":"middleware","pod_name":"test-0","paas_collection_type":"userfile","pod_container_name":"test","paas_account_id":"123456789","paas_region_id":"lftst","paas_manager_ip":"127.0.0.1","paas_product_id":"ccc","log":"329 2023-09-11 17:03:29 [/data01/heht30/guoc//stl_jsdev/src/stl_main.c:main:341] [ALERT]REPEAT_MESSAGE=2|MESSAGE_SEQUENCE=3105:72:239|THIS_WORKFLOW_ID=72|INSERT_TIME=20230911164216|THIS_NODE_ID=3|GROUP_ID=3105|WORKFLOW_ID=72|FILE_NAME=991000PTSVDA022023090116581100000005.filefmt|PROVINCE_ID=99|FILE_PATH=/jzjs_month/spcp//2799/20230901/99|FMT_NORMAL_REC=10853 ","paas_instance_name":"test10"}]

結論

Fluent Bit 1.9.4 和 3.0.2 均能夠通過此 Lua 腳本進行字符集轉換驗證,證明字符集轉碼準確性驗證成功。
由于舊版本正則表達式對空白行不進行處理,接下來所有字符集測試都基于新版本正則表達式。因此,不再使用舊版本和新版本正則表達式進行性能對比測試,因為舊版本正則表達式功能不完善,不再具備測試的必要性。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/94420.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/94420.shtml
英文地址,請注明出處:http://en.pswp.cn/web/94420.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

redis-緩存-持久化

redis-緩存-持久化一、來因宮1、啥叫持久化?為何需要持久化?2、redis持久化方案2.1、RDB - 快照持久化A、定義原理B、快照生成流程:Copy-on-Write(寫時復制)C、dump.rdb文件說明D、RDB 數據恢復流程E、RDB的優缺點2.2、…

C++11(Linux/GCC)字節序工具

#pragma once #include <cstdint> #include <climits> #include <type_traits> // 用于類型檢查// 端序宏獲取&#xff08;保持原有邏輯&#xff09; #if __has_include(<endian.h>)#include <endian.h> #elif __has_include(<bits/endian.h…

【MTCNN網絡結構記憶卡片】--003nets.py

&#x1f9e0; MTCNN網絡結構記憶卡片 &#xfffd;&#xfffd; 基礎概念速查 &#x1f524; 庫引入&#xff1a;import torch 和 import torch.nn as nn import torch # PyTorch深度學習框架 import torch.nn as nn # nn Neural Networks (神經網絡)&#x1f3d7;?…

可視化-模塊1-HTML-03

1.發現問題<p>大數據可視化技術及應用課程</p> <img src"pic/圖片2.png" width"300" height"300"/><p></p><img />HTML 標簽按閉合方式只分兩類&#xff1a;雙標簽&#xff08;paired / container&#xff…

前端開發:詳細介紹npm、pnpm和cnpm分別是什么,使用方法以及之間有哪些關系

目錄 npm、pnpm和cnpm分別是什么 npm pnpm cnpm NPM包管理器 使用npm管理&#xff0c;創建/初始化項目 修改npm鏡像&#xff08;npm源設置&#xff09; 基本命令 安裝依賴項 下載特定版本的依賴 下載開發依賴 下載全局依賴&#xff08;全局安裝&#xff09; 升級依賴項 根據依賴…

我們為你連接網絡,安裝驅動程序

Windows 11 家庭版/專業版在安裝時默認要求聯網&#xff0c;其實可以跳過。在這個聯網界面按下 Shift F10 打開命令行。輸入以下命令并回車&#xff1a;OOBE\BYPASSNRO系統會自動重啟&#xff0c;回到聯網界面。這時會多出一個 “我沒有 Internet” 選項&#xff0c;點它&…

智慧交通夜間逆光誤檢率↓81.4%!陌訊多模態融合算法在主干道監測的落地優化

一、智慧交通視覺檢測的行業痛點智慧交通作為城市基建的核心環節&#xff0c;其視覺檢測系統&#xff08;車輛識別、車牌匹配、交通事件預警&#xff09;的可靠性直接影響通行效率與交通安全。但根據《2023 年中國智慧交通發展報告》數據&#xff0c;當前主流方案仍面臨三大核心…

Java和數據庫的關系

數據庫本身是一個獨立的、巨大的知識領域&#xff0c;但“數據庫的使用、優化和深度理解”絕對是Java后端工程師進階的核心組成部分。 它們不是分開的&#xff0c;而是緊密耦合、相輔相成的關系。你可以這樣理解&#xff1a; 數據庫&#xff08;MySQL, Oracle等&#xff09; 就…

Socket some functions

setsockopt 簡介setsockopt 是用于設置套接字&#xff08;socket&#xff09;選項的系統調用函數&#xff0c;允許用戶對套接字的行為進行精細控制。通過調整選項參數&#xff0c;可以優化網絡通信性能、修改超時設置、啟用特殊功能等。該函數在 POSIX 系統和 Windows 平臺均有…

玩轉深度學習數據填補!CNN-GRU組合模型數據填補(四個案例數據)

這兩段MATLAB代碼&#xff08;BABJ.m 和 CNN_GRUQSTB.m&#xff09;分別完成數據預處理與缺失值標識和基于CNN-GRU混合神經網絡的缺失值預測填補任務。以下是詳細分析&#xff1a; 一、主要功能 BABJ.m ? 功能&#xff1a;從多個Excel文件中讀取數據&#xff0c;匹配并合并多個…

基于開源AI智能名片鏈動2+1模式S2B2C商城小程序的營銷創新研究——以“種草”實踐踐行“以人為本”理念

摘要&#xff1a;本文聚焦于營銷本質&#xff0c;強調創造和維護與消費者有價值關系的重要性&#xff0c;指出企業需回歸消費者視角提供有價值產品和服務。深入探討“種草”作為科特勒“以人為本”理念在中國市場的最佳實踐&#xff0c;分析其意義與價值。同時&#xff0c;引入…

基于SpringBoot+Vue的智能停車場管理系統 停車管理小程序

&#x1f525;作者&#xff1a;it畢設實戰小研&#x1f525; &#x1f496;簡介&#xff1a;java、微信小程序、安卓&#xff1b;定制開發&#xff0c;遠程調試 代碼講解&#xff0c;文檔指導&#xff0c;ppt制作&#x1f496; 精彩專欄推薦訂閱&#xff1a;在下方專欄&#x1…

01數據結構-歸并排序和計數排序

01數據結構-歸并排序和計數排序1.歸并排序1.1歸并排序概述1.2歸并排序的執行流程1.2.1遞(分裂)的過程1.2.2歸(合并)的過程1.3歸并排序的代碼實現2.計數排序2.1算法思想2.2計數排序的改進2.2.1優化12.2.2優化21.歸并排序 1.1歸并排序概述 歸并排序&#xff0c;其排序的實現思想…

SQL注入2----(sql注入數據類型分類)

一.前言本章節我們來講解一下sql注入的分類&#xff0c;主要分為四類&#xff0c;數字型、字符型、搜索型、xx型。二.數字型數字型注入的時候&#xff0c;是不需要考慮單\雙引號閉合問題的&#xff0c;因為sql語句中的數字是不需要用引號括起來的&#xff0c;如下mysql> sel…

Elasticsearch Rails 實戰全指南(elasticsearch-rails / elasticsearch-model)

一、背景與生態總覽 elasticsearch-rails&#xff1a;面向 Rails 的“伴生庫”&#xff0c;為 Rails 項目帶來 Rake 任務、日志埋點、模板等特性。elasticsearch-model&#xff1a;把 ES 能力“混入”到 Ruby 模型&#xff08;ActiveRecord/Mongoid&#xff09;&#xff0c;提供…

第三階段數據庫-2:數據庫中的sql語句

1_數據庫操作&#xff08;1&#xff09;注釋&#xff1a;-- 單行注釋 /**/ 多行注釋&#xff08;2&#xff09;創建數據庫&#xff1a;create database 數據庫名-- create database 數據庫名 create database db_first;(3&#xff09;查詢數據庫&#xff1a;if exsists(select…

python中的filter函數

目錄 定義與參數說明 特點 使用場景 常用操作 篩選偶數 去除空字符串 篩選正數 篩選字典 配合集合與元組 注意事項 定義與參數說明 filter函數是Python內置的高階函數之一&#xff0c;用于篩選可迭代對象中的元素&#xff0c;根據返回值的布爾結果&#xff08;True 或…

BERT(Bidirectional Encoder Representations from Transformers)模型詳解

一、BERT 簡介BERT&#xff08;Bidirectional Encoder Representations from Transformers&#xff09;是由 Google 在 2018 年提出的一種預訓練語言表示模型。它基于 Transformer 編碼器結構&#xff0c;首次提出了 雙向上下文建模 的方法&#xff0c;大幅度提升了自然語言處理…

【開題答辯全過程】以 基于Springboot+微信小程序的網上家教預約系統的設計與實現-開題為例,包含答辯的問題和答案

個人簡介&#xff1a;一名14年經驗的資深畢設內行人&#xff0c;語言擅長Java、php、微信小程序、Python、Golang、安卓Android等開發項目包括大數據、深度學習、網站、小程序、安卓、算法。平常會做一些項目定制化開發、代碼講解、答辯教學、文檔編寫、也懂一些降重方面的技巧…

課小悅系列智能耳機上市,用硬核科技為教育賦能

在人工智能與教育深度融合的浪潮中&#xff0c;深圳課小悅科技有限公司以“智慧教育專家”的姿態嶄露頭角。這家深耕智能教育硬件的創新企業&#xff0c;于2025年8月正式推出革命性產品H360PRO系列教考耳機&#xff0c;為語言學習場景提供顛覆性解決方案。創新基因&#xff1a;…