• 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

  • 相关阅读:
    用Html+Js实现的“自动补全”功能
    利用js为table添加行
    Flex 当鼠标悬停在DataGrid某行上时用datatoolField显示当前行
    Flex中设置编译器参数
    Linux2 在Linux(CentOS)上配置SSH免登陆
    线程笔记
    I/O
    网络编程
    Linux基础
    进程间的通信
  • 原文地址:https://www.cnblogs.com/rongfengliang/p/12878594.html
Copyright © 2020-2023  润新知