作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢!


2022 年 6 月的时候,正在痛苦的研究 grafana loki, 团队希望用这个新组件来替换成本巨高的 ElasticSearch。但是 loki 用来用去都像是个半成品,文档不全,难用,代码混乱,实在是一段痛苦的经历。

当时我就在想:完全可以基于 VictoriaMetrics 的源码,改出一套低成本存储的日志系统来。

思路是这样的:

  1. 目前的日志都是半结构化的,通常格式如下:
    tag name1 : tag value1
tag name2: tag value2
log content (long text)
  1. 日志的结构化部分,与 metric 完全一样,因此可以存储在 vm-storage 的索引部分。

    • 结构化的部分能够被索引化的存储和检索,并且可以使用 promql 来检索。
    • 只要结构化的部分,其全新组合的 tag 不会剧烈增加,则索引部分的增量就是可控的。
  2. 日志的非结构化部分是一段长文本。

    这些长文本可以顺序存储在 VictoriaMetrics 的数据文件部分。

    首先使用结构化的标签进行过滤,缩小范围后,再在长文本中去匹配关键词。这里的搜索可能比较耗资源,一方面相比es而言存储成本小了很多,另一方面可以对长文本再做很多算法上的优化。

    可能单纯的文本匹配,es 的性能会更好,但是综合成本和使用频率等因素,半结构化的方式够用且成本低廉。

终于,在六月底,Valyala 大神发布了 VictoriaLogs,很多评测文章表示简单易用且性能卓越。

希望 Victoria 系列产品能够在整个可观测领域大放异彩。

后面我也想办法再去研究研究 VictoriaLogs 底层的实现原理。

果然,基于 VictoriaMetrics 修改而来的 VictoriaLogs 来了!!!的更多相关文章

  1. WinForm的EXE破解(基于IL修改)

    一.目的与目标 1.1 主题目的 部门新人较多,希望通过本次分享让同学们对以下知识点有个认识: 破解原理 IL原理 强签名与加密 resx文件 由于时间有限,本文作为部门分享演示过程中辅助性文档,会对 ...

  2. 行人重识别(ReID) ——基于Person_reID_baseline_pytorch修改业务流程

    下载Person_reID_baseline_pytorch地址:https://github.com/layumi/Person_reID_baseline_pytorch/tree/master/ ...

  3. FrameWork数据权限浅析1之基于手工修改模型实现行级数据安全

    1:环境 Cognos10.2.0,Oracle 2:实现过程 在设置Framework数据级别权限的时候,通常用到的就是在FM的设置数据安全的地方添加安全过滤器,如下图 step1:选中部门维度表→ ...

  4. 修改Coney主题之侧边栏移位

    title: 修改Coney主题之侧边栏移位 date: 2014-12-15 18:09:54 categories: Hexo tags: [hexo,css] --- Coney是一个非常漂亮的 ...

  5. 基于SlidePanelLayout实现ResideMenu

    同步发表于http://avenwu.net/2015/02/24/custom_slide_panel_layout_as_reside_style_on_dribble_and_qq Fork o ...

  6. 基于redis分布式缓存实现

    Redis的复制功能是完全建立在之前我们讨论过的基 于内存快照的持久化策略基础上的,也就是说无论你的持久化策略选择的是什么,只要用到了Redis的复制功能,就一定会有内存快照发生,那么首先要注意你 的 ...

  7. win10 uwp 修改Pivot Header 颜色

    我们在xaml创建一个Pivot <Pivot Grid.Row="1"> <PivotItem Header="lindexi">&l ...

  8. win10 uwp 修改CalendarDatePicker图标颜色

    CalendarDatePicker 是一个好用的东西,但是我发现想要修改他右边的那个图标,显示日历的图标颜色,没有这个选项. 如果不知道我说的是哪个,请看下面的图. 左边颜色变化的就是我们要修改的图 ...

  9. 基于PU-Learning的恶意URL检测

    https://xz.aliyun.com/t/2190 Ya-Lin Zhang, Longfei Li, Jun Zhou, Xiaolong Li, Yujiang Liu, Yuanchao ...

  10. 基于PU-Learning的恶意URL检测——半监督学习的思路来进行正例和无标记样本学习

    PU learning问题描述 给定一个正例文档集合P和一个无标注文档集U(混合文档集),在无标注文档集中同时含有正例文档和反例文档.通过使用P和U建立一个分类器能够辨别U或测试集中的正例文档 [即想 ...

随机推荐

  1. 关于 DataLeap 中的 Notebook,你想知道的都在这

    更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 DataLeap 是火山引擎数智平台 VeDI 旗下的大数据研发治理套件产品,帮助用户快速完成数据集成.开发.运维 ...

  2. C# 跳过值班时间代码逻辑

    /// <summary> /// 当前时间是否是值班时间 /// </summary> private bool IsDutyTime { get { var dutyTim ...

  3. 用 Python 开发了一个 PDF 抽取Excel表格的小工具

    大家好哇 从 PDF 里 copy 表格时,粘贴出来后格式都是错乱的.这麻烦事交给 Python 再合适不过里,我开发了一个从 PDF 抽取表格另存为 Excel 文件的应用,我把它部到 huggin ...

  4. 模板层之标签 自定义模板语法 模板的继承与导入 搭建测试环境 ORM常用关键字

    目录 模板层之标签 自定义模板语法 快速浏览 前期准备 自定义过滤器 自定义标签 自定义inclusion_tag 模板的继承与导入 快速浏览 引入 模板的继承 划定子板可修改的区域 block 在模 ...

  5. 共享内存原理与VCS监控采集实战

    作者:cluo 一.前言 共享内存广泛用于Redis,Kafka,RabbitMQ 等高性能组件中,本文主要提供一个共享内存在广告埋点数据采集的实战场景. 二.共享内存原理 1.原理 在Linux中, ...

  6. KSP(坎巴拉)萌新感悟

    1.为什么降落月球等无大气星球时减速为亚轨道之后便不再减速,等到快坠落的时候在满节流阀极限减速最省燃料? 因为我们的dv是确定的,燃料能给我们带来一定量的冲量,却因此可以带来不一定量的动量,显然速度越 ...

  7. 如何使用Markdown编写笔记

    Markdown是什么? Markdown 是一种轻量级标记语言,创始人为约翰·格鲁伯(John Gruber). 它允许人们使用易读易写的纯文本格式编写文档,然后转换成有效的 XHTML(或者HTM ...

  8. (已解决)pulse secure 连接功能变灰禁用 连接面板找不到

    今天打开 pulse secure 时,发现窗口变成了这样: 连接功能是灰色的,被禁用了: 解决方案: 运行 PulseSecureService 服务. 然后就正常了!

  9. mybatis plus 获取新增实体的主键

    转载请注明出处: mybatis plus 新增实体对象调用的是 IService 接口中的 save 方法: default boolean save(T entity) { return SqlH ...

  10. C++ list容器

    一.前言 list容器,又称为双向链表容器,即该容器的底层是以双向链表的形式实现的,因此list容器中的元素可以分散存储在内存空间里,而不是必须存储在一整块连续的内存空间中. list容器中各个元素的 ...