×

扫描二维码登录本站

QQ登录

只需一步,快速开始

如何在应用软件做好监控埋点

标签: 暂无标签
/varz这个HTTP接口只是用文本方式每行一个地列出应用中所暴露的全部监控变量值,格式是空格分隔的键值对。随后,又增加了一种 Map 格式,允许应用程序在键值对上增加标签(label)。例如下面这个例子,展示了25个HTTP200响应,以及12个 HTTP 500 响应。


http_responses map:code 200:25 404:0 500:12


增加一个监控指标只需要在具体服务程序中增加一行代码声明。



不难看出,采用这种无格式的文本形式作为监控的接口使得增加新监控点的门槛变得特别低,这对 SRE 和软件研发部门来说都是好事。但是,这同时也是对可维护性做出的一种妥协。监控指标的定义与 Borgmon中对监控指标的使用分离意味着需要有人小心地维护相关改动(很容易发生的情况就是应用程序删除了某些指标,或者改变了具体含义,需要人工重新修改在 Borgmon规则中的定义)。在实际使用中,我们开发了一个工具,用来自动校验 Borgmon 规则的正确性,从而很大程度上避免了这个问题。



如何将内部变量暴露给监控系统
Google 内部产生的每个二进制文件中都默认包含一个HTTP服务,同时每种主流编程语言都提供了一个编程接口可以自动注册暴露指定的程序变量。软件服务器作者可以随后对这个变量进行简单地增加操作,或者直接修改这个变量的值。Go语言中的expvar 标准库和它的 JSON 输出格式也提供了类似的 API。






上一篇:基于时间序列数据进行有效报警内容介绍
下一篇:分布式系统的监控指标的收集
further

写了 293 篇文章,拥有财富 1574,被 3 人关注

您需要登录后才可以回帖 登录 | 立即注册
B Color Link Quote Code Smilies

成为第一个吐槽的人

手机版|小黑屋|最新100贴|论坛版块|ITIL先锋论坛 |粤ICP备11099876号|网站地图
Powered by Discuz! X3.4 Licensed  © 2001-2017 Comsenz Inc.
返回顶部