V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
cloudfly
V2EX  ›  程序员

整理了一份 VictoriaMetrics 中文文档

  •  
  •   cloudfly ·
    cloudfly · 2 天前 · 685 次点击
    最近写了一份 VictoriaMetrics 的中文文档,希望能帮到一些做可观测或监控方向的小伙伴。

    https://victoriametrics.com.cn/docs/concepts/

    还有一些内容还在翻译整理中……
    10 条回复    2024-10-19 20:37:55 +08:00
    grzhan
        1
    grzhan  
       2 天前
    点赞,近期刚好在看 VictoriaMetrics 的源码,感觉受益匪浅,很多性能优化技巧可能自己也需要做些 benchmark 再思考验证。

    翻译工作如果有需要的话我可以帮忙做一些。
    GoRuby
        2
    GoRuby  
       1 天前
    👍
    cloudfly
        3
    cloudfly  
    OP
       1 天前
    @grzhan 嗯,源码确实优秀,我读完也是受益良多。如果单纯看 Go 语言的性能优化技巧,作者写的 fasthttp 推荐下,fasthttp 功能纯粹些,容易阅读,一些代码技巧都是他的风格。

    VictoriaMetrics 另外优秀的地方是一些设计没走寻常路,比如 不用 wal ,不用 mmap ,这两点是大多数 db 都引擎会无脑使用的。然后也不用 facebook 开源的 Gorilla 时序数据专用压缩算法,采用 SN 架构做集群。

    就感觉这个作者真是每个细节上都认真做了思考,没有照搬其他 db 。
    grzhan
        4
    grzhan  
       1 天前
    @cloudfly 是这样,老毛子做东西抛去了很多繁文缛节,同时没有过多封装和抽象,读的时候感觉应跳出一些思维定式和权威崇拜的桎梏,很多主流的方案未必没有优化的空间。

    以及 VM 作者让我感觉 Go 的上限其实不低,即便不用 C++/Rust 也还是可以通过 Go 写出性能满足生产要求的代码(当然前提还是对于计算机系统、网络等有足够深刻的理解)

    我应该会把 VM 系统性读完后去把记录的一些优化技巧和调参梳理下,自己写 benchmark 多进行验证(比如频繁使用 sync.Pool 以及序列化时将数据梳理在一个大 []byte 里带来的局部性…),然后再去看看 fasthttp 的部分……当然,更进一步来说,通过这种阅读也更进一步认知到自己对于系统、网络理解上的不足,后续还是要继续钻下去。
    grzhan
        5
    grzhan  
       1 天前
    像 mmap ,作者在 18 年时候就提过 Golang 使用 mmap 的问题: https://valyala.medium.com/mmap-in-go-considered-harmful-d92a25cb161d
    但我最近看源码发现其实现在 VM 还是会用到一点 mmap 的,并在注释中说明在实际生产环境中这么写还是 ok 的:
    https://github.com/VictoriaMetrics/VictoriaMetrics/blob/025eec2cb00381b5292d34601f96d7fcf7503191/lib/fs/reader_at.go#L81
    具体情况如何后面我想写点 benchmark 梳理看下。
    liuliancao
        6
    liuliancao  
       1 天前   ❤️ 1
    看了下 翻译的真好 就是左上角那个中文手册左边的那个 victoria 单词拼错了 哈哈
    Jzdoxc
        7
    Jzdoxc  
       1 天前
    文档写的很棒👍
    cloudfly
        8
    cloudfly  
    OP
       15 小时 41 分钟前
    @liuliancao 哈哈哈😂,感谢感谢
    cloudfly
        9
    cloudfly  
    OP
       15 小时 33 分钟前
    @grzhan 牛逼,你看得比我细致多了。我是为了解决生产环境的压力,要做一些源码定制,倒逼着自己把源码读了个大概。

    mmap 那个我几年前也看到了,这次也翻译放手册里了。

    用 Victoria Metrics 之前,我用了一年半的 m3db ,这家伙 90 多万行代码,各种过度抽象,感觉自己在读 java 。性能还不及 vm 的 1/10 。
    grzhan
        10
    grzhan  
       3 小时 0 分钟前
    @cloudfly 我也不大习惯类似很多 Java/C# 项目这样的复杂的抽象,也可能是自己脑子不好不大擅长设计这些 hhh
    包括 Kubernetes 源码也有点这味,相比于阅读 VM 以及 Go runtime 的代码,会很不适应。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2415 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 20ms · UTC 15:38 · PVG 23:38 · LAX 08:38 · JFK 11:38
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.