datadog的数据流转

datadog是个典型的类zabbix的agent,其主要数据流转以下:java

输入图片说明

数据类型有三种,一个是metric,一个是server_check,一个是event,分别存到指标数据库,作服务状态标记和事件报警用,但这里面有些坑。数据库

    collectd的数据来源有两个,一个是是checksd,一个是system指标。这里的system指标采集格式很恶心,并非metrci格式,直接给个键值对,致使后端解析一次再丢到数据库,给后端带来压力,这里其实能够将格式封装同样的。json

    stastd是个udp server,jmxfetch用java封装了个stasd的client,专门去抓jmx的数据。后端

    jmxfetch被打成了个jar包,没什么好说的,这里有个坑,安装后权限被修改,或者localhost的域名被篡改了,这里就没数据了。datadog运行的时候会降权运行并发

    forward是个tornado的转发器,异步的方式,使得foraward自己能作内网代理,这个也是dataog支持内网代理的方式之一,forward最大特色一个是异步,一个是事务,每一个包启动个事务,性能强悍。 异步

    上图缺个gohai,全部系统静态指标,好比cpu核,ip等静态信息都是gohai去获取的,用go写的个agent,被subprocess调用,返回个json,目前13版本的mac已经将这个移除,缘由是,,,吃cpu。tornado

    不得不提,datadog对资源占用很小,cpu占用不到1%,内存不到150m。为了避免占用系统性能,collectd的一个关键点,特地用循环遍历,不使用并发!性能

相关文章
相关标签/搜索