VictoriaMetrics 中文教程(01)简介

快猫运营团队 2024-10-18 10:08:59

VictoriaMetrics

在国内 IT 监控领域,上规模的公司极大概率会选型 VictoriaMetrics 作为时序存储,但是 VictoriaMetrics 中文教程较少,我们希望通过这个系列文章,帮助大家更好的了解 VictoriaMetrics,希望对大家有所帮助。本文是 VictoriaMetrics 中文教程第 01 篇。

VictoriaMetrics 简介

VictoriaMetrics 是一种快速、经济高效且可扩展的监控解决方案和时间序列数据库。其目标是替换 Prometheus,注意,大部分 Prometheus 生态的时序库都主张把自身定位为 Prometheus 的远端存储,但是 VictoriaMetrics 不是,的目标是替代 Prometheus。从 VictoriaMetrics 对待 remote read 接口的态度上可见一斑。

VictoriaMetrics 分为社区版和商业版,对于大部分企业社区版就够用了。后续在文章中会标注哪些是商业版的功能(不标注就表示是社区版的功能)。

VictoriaMetrics 突出特点

  • 可以用作 Grafana 中 Prometheus 的直接替代品,因为它支持Prometheus 查询 API 。
  • 可以用作 Grafana 中 Graphite 的直接替代品,因为它支持Graphite API 。与 Graphite 相比,VictoriaMetrics 可以将基础设施成本降低 10 倍以上。
  • 运维简单
    • VictoriaMetrics 由一个小型可执行文件组成,没有外部依赖项。
    • 所有配置都是通过具有合理默认值的显式命令行参数完成的。
    • 所有数据都存储在-storageDataPath命令行标志指定的单个目录中。
    • 可以使用vmbackup / vmrestore工具从即时快照轻松快速地进行备份。
  • 它实现了类似 PromQL 的查询语言 - MetricsQL ,它在 PromQL 之上提供了改进的功能。
  • 它提供了全局查询视图。多个 Prometheus 实例或任何其他数据源可能会将数据摄取到 VictoriaMetrics 中。稍后可以通过单个查询来查询该数据。
  • 它为数据摄取和数据查询提供高性能和良好的垂直和水平可扩展性。它的性能比 InfluxDB 和 TimescaleDB 高出 20 倍。
  • 在处理数百万个独特的时间序列(又名高基数)时,它使用的 RAM 比 InfluxDB 少 10 倍,比 Prometheus、Thanos 或 Cortex 少 7 倍。
  • 它针对高流失率的时间序列进行了优化。所谓高流失率,就是很多指标上报了一段时间之后就再也不上报了,比如 Kubernetes 环境下,服务变更频繁,导致很多 Pod 指标上报了一段时间之后就再也不上报了。
  • 它提供高数据压缩:根据这些基准测试,与 TimescaleDB 相比,有限存储中可以存储多达 70 倍的数据点,并且与 Prometheus、Thanos 或 Cortex 相比,所需的存储空间减少多达 7 倍。
  • 它针对高延迟 IO 和低 IOPS 的存储(AWS、Google Cloud、Microsoft Azure 等中的 HDD 和网络存储)进行了优化。
  • 单节点 VictoriaMetrics 可以替代使用 Thanos、M3DB、Cortex、InfluxDB 或 TimescaleDB 等竞争解决方案构建的中等大小的集群。查看垂直可扩展性基准比较 Thanos 与 VictoriaMetrics 集群以及PromCon 2019 的远程写入存储战争演讲。
  • 由于存储架构,它可以保护存储免受非正常关闭(即 OOM、硬件重置或kill -9 )时的数据损坏。
  • 它支持通过以下协议进行指标抓取数据:
    • 从 Prometheus exporter 抓取数据
    • 通过 Prometheus remote write 接收数据
    • Prometheus exposition format
    • 基于 HTTP、TCP 和 UDP 的InfluxDB 行协议
    • 支持 tags 的 Graphite plaintext 协议
    • OpenTSDB put 协议
    • JSON 行协议
    • 任意 CSV 格式
    • 原生二进制协议
    • Datadog agent 或 DogStatsD
    • NewRelic infrastructure agent
    • OpenTelemetry 指标协议
  • 从上面可以看出,VictoriaMetrics 希望对接接收各种各样的数据,做大一统存储方案。
  • 它支持强大的流聚合,可以作为statsd 的替代品。
  • 支持 relabel
  • 支持 series limiter 做高基数限制和高流失率限制
  • 它非常适合处理来自 APM、Kubernetes、物联网传感器、联网汽车、工业遥测、财务数据和各种企业工作负载的大量时间序列数据。
  • 集群版本也是开源的(这显然是针对 InfluxDB 的哈哈)。
  • 它可以将数据存储在基于 NFS 的存储上,例如Amazon EFS和Google Filestore 。

VictoriaMetrics 的组件

除了单节点 VictoriaMetrics之外,VictoriaMetrics 生态系统还包含以下组件:

  • vmagent - 轻量级代理,用于通过 PULL 和 PUSH 的协议接收指标,将其转换并发送到已配置的与 Prometheus 兼容的远程存储系统,例如 VictoriaMetrics。
  • vmalert - 用于处理与 Prometheus 兼容的警报和记录规则的服务。
  • vmalert-tool - 用于验证警报和记录规则的工具。
  • vmauth - 针对 VictoriaMetrics 产品优化的授权代理和负载均衡器。
  • vmgateway - 具有每个租户速率限制功能的授权代理。
  • vmctl - 用于在不同存储系统之间迁移和复制数据以获取指标的工具。
  • vmbackup 、 vmrestore 和 vmbackupmanager - 用于为 VictoriaMetrics 数据创建备份和从备份恢复的工具。
  • vminsert 、 vmselect 和 vmstorage —— VictoriaMetrics 集群的组件。
  • VictoriaLogs - 用户友好、经济高效的日志数据库。这个跟时序指标无关,是 VictoriaMetrics 公司的另一个产品。

总结

VictoriaMetrics 是一个非常优秀的时序数据库,它的性能、稳定性、易用性都非常好,是国内很多大厂的选择。本文是 VictoriaMetrics 中文教程第 01 篇,对 VictoriaMetrics 进行了简单的介绍,后续文章会对 VictoriaMetrics 的更多功能进行详细介绍,敬请期待。

快猫星云 联系方式 快猫星云 联系方式
快猫星云 联系方式
快猫星云 联系方式
快猫星云 联系方式
快猫星云
OpenSource
开源版
Flashcat
Flashcat
FlashDuty
Flashduty