VictoriaMetrics vmagent的一些介绍

以前有简单说明过vmagent,实际上vmagent可以替代我们做好多事情.以下是一个说明

vmagent的作用

主要目的是实现metrics 的收集然后存储到VictoriaMetrics以及prometheus兼容的存储系统(主要支持remote_write 协议即可,有好多实现)
同时一个好处是实现了metrics 的push,而不是prometheus 的pull(比如无法pull 的场景)

参考架构图

 

 

特性

  • 替换prometheus 的scraping target(比如node export)
  • 基于prometheus relabeling 的模式添加,移除,修改labels ,可以方便在数据发送到远端存储之前进行数据的过滤
  • 支持多种数据协议,influx line 协议,grapgite 文本协议,opentsdb 协议,prometheus remote write 协议,json lines协议,csv 数据
  • 支持收集数据的同时,并复制到多种远端存储系统
  • 支持不可靠远端存储(通过本地存储 -remoteWrite.tmpDataPath ),同时支持最大磁盘占用
  • 相比prometheus使用较少的内存,cpu,磁盘io,以及网络带宽

启动模式

  • 参考命令
 
/path/to/vmagent -promscrape.config=/path/to/prometheus.yml -remoteWrite.url=https://victoria-metrics-host:8428/api/v1/write

使用场景

  • iot 以及边缘监控
  • 替换prometheus
  • 数据复制以及高可用
  • 标签重命名以及过滤
  • 多种存储系统系统数据流的切分(比如到kafka,timescaledb,cratedb,es。。。)
  • prometheus remote_write 的proxy (promxy 也是一个可选方案)

收集 prometheus 格式数据

  • 配置说明
    类似prometheus,主要使用了global以及scrape_configs,注意remote_write 会被忽略,应该使用-remoteWrite.* 替换
  • scrape_config 支持的配置
 
- static_configs -  静态配置
- file_sd_configs - 基于文件的服务发现
- kubernetes_sd_configs -  k8s 服务发现
- ec2_sd_configs -  ec2 服务发现
- gce_sd_configs - gce_sd 服务发现
- dns_sd_configs - consul 服务发现

添加label 到metrics

支持的模式为

  • promscrape.config 文件中的 global -> external_labels 配置节点
  • 通过remoteWrite.label 命令行参数,当然为添加到所有的metrics到 remoteWrite.url 支持的存储

标签重命名

  • 支持的操作
replace_all:替换的所有OCCURENCES regex中的值source_labels与replacement和结果存储在target_label。
labelmap_all:将所有regex标签名称中所有出现的内容替换
  • 支持的配置位置
在文件promscrape.config scrape_config -> relabel_configs部分。此重新标记将应用于目标标签。
在文件promscrape.config scrape_config -> metric_relabel_configs部分。此重新标记将应用于给定中的所有已抓取指标scrape_config。
-remoteWrite.relabelConfig文件。在将所有收集到的度量标准发送到远程存储之前,会将其重新贴标签。
-remoteWrite.urlRelabelConfig文件。将此重新标记应用于发送到相应的-remoteWrite.url 

监控

vmagent 暴露了一些metrics 以及 http://vmagent-host:8429/targets 方便查看target

常见问题

  • 推荐增加ulimit 限制
  • 当住区大量不可达target的时候会有错误提示,可以通过-promscrape.suppressScrapeErrors 命令行参数禁止
  • 推荐增加-remoteWrite.queues 对于如果有超过10万的采样,我们可以通过暴露的vmagent_remotewrite_pending_data_bytes metrics查看
  • vmagent 支持数据的本地cache,好多时候对于大量数据可能会有磁盘空间的问题,我们可以通过-remoteWrite.maxDiskUsagePerURL 参数调整

说明

以上内容来自官方文档,通过文档我们可以了解vmagent的场景,同时也可以学习到很多不错的设计理念,可以看看源码

参考资料

https://github.com/VictoriaMetrics/VictoriaMetrics/tree/master/app/vmagent

posted on 2020-05-12 21:05  荣锋亮  阅读(2924)  评论(2编辑  收藏  举报

导航