时间:2025-09-12 17:47
人气:
作者:admin
作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢!
读了大约半天的 vmagent 的代码,为了确定一些特定的用法的实现逻辑。
增加了很多中文注释,并且把代码提交到了:https://github.com/ahfuzhang/VictoriaMetrics_cluster_v1.96.0/tree/dev/comment_vmagent
通过 github.com/ahfuzhang/VictoriaMetrics_cluster_v1.96.0/app/vmagent/main.go 这个文件开始,可以看到 vmagent 初始化等部分的详细注释。
下面用一句话表达的模式,来总结源码阅读的心得:
-promscrape.config=xx.yaml 这个配置项感觉是 vmagent 最重要的配置项
kubernetes_sd_configs 的方式来寻找 exporter
scrape_interval 这个参数只能来自 yaml 配置文件,无法从其他地方修改。
-remoteWrite.XX 这一系列的参数是第二重要的:具体见 here
-remoteWrite.url 对应着一个 aggregation 的计算对象
-remoteWrite.url 上面。-remoteWrite.streamAggr.config 命令行参数中进行配置,也可以通过 -remoteWrite.streamAggr.xx 的系列参数进行配置。
scrape_interval 的间隔,vmagent 会抓取所有 exporter 的 time series 数据,然后进入 aggregation 的计算逻辑streamAggrDropInput=true 并且 streamAggrKeepInput=false 的时候,会只留下 aggregation 后的结果,而丢弃原始的 time series
-remoteWrite.streamAggr.dedupInterval 这里配置的这么长的时间后, aggregation 的结果会被发送到 remoteWrite URLHave Fun. 希望对大家有用。 ????