#作者:程宏斌

文章目录

    • 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;…