Datadog数据包分析

    datadog后台一个会产生5种数据包,其中,collectd产生一个url为intake的包,包含指标,事件和服务检查以及一系列全局key-value。statsd会接受一种udp数据包,会发出三种http包,这三种http的url分别为series,intake和check_run.其中series为metric包,intake为事件检查包,check_run为服务检查包,这三种包内容来自对udp的重新解析,与collectd内容一致。

    1,首先分析udp包,udp包的形式如下:

<name>:<value>|<metric_type>|@<sample_rate>|#<tag1_name>:<tag1_value>,<tag2_name>:<tag2_value>:<value>|<metric_type>...

其中,name有三种类型,分别以_sc/_e和其他开头,分别代表这一行数据是service_check,events和intake类型,metric_type表示指标类型,sample_rate是采样方式,后其他的数据都是tags。udp一个抓包数据显示如下,其中,g表示guage:

jvm.heap_memory_max:1908932608|g|#type:Memory,jmx_domain:java.lang,instance:solr_instance
jvm.heap_memory:19460696|g|#type:Memory,jmx_domain:java.lang,instance:solr_instance
jvm.non_heap_memory_init:2555904|g|#type:Memory,jmx_domain:java.lang,instance:solr_instance
jvm.non_heap_memory_committed:32702464|g|#type:Memory,jmx_domain:java.lang,instance:solr_instance
jvm.non_heap_memory_max:-1|g|#type:Memory,jmx_domain:java.lang,instance:solr_instance
jvm.non_heap_memory:30390320|g|#type:Memory,jmx_domain:java.lang,instance:solr_instance
_sc|solr.can_connect|0|#jmx_server:127.0.0.1,instance:solr_instance

2,分析series包,series包数据来源于udp包,数据格式如下,series key对应的list中,points中的值是时间戳和value,时间间隔来源于statsd,其余数据都是拼接。注意的是tags是jmx直接传送的,不同server对应的tags的数量不一样。

{
    "series": [
        {
            "tags": [
                "J2EEApplication:none",
                "J2EEServer:none",
                "WebModule://localhost/examples",
                "instance:tomcat-127.0.0.1-7199",
                "j2eeType:Servlet",
                "jmx_domain:Catalina",
                "name:RequestParamExample"
            ],
            "metric": "tomcat.servlet.error_count",
            "interval": 10,
            "device_name": null,
            "host": "xuxideMacBook-Pro.local",
            "points": [
                [
                    1478159460,
                    0
                ]
            ],
            "type": "gauge"
        },

3,分析check_run数据包。check_run数据包的形式对应的是collectd的service_check,数据包部分数据如下:

"service_checks":[
        {
            "status":2,
            "tags":[
                "host:localhost",
                "port:8125"
            ],
            "timestamp":1478067233.459331,
            "check":"statsd.can_connect",
            "host_name":"wdm-ThinkPad-E450",
            "message":null,
            "id":1
        },
        {
            "status":2,
            "tags":[
                "check:statsd"
            ],
            "timestamp":1478067233.460122,
            "check":"datadog.agent.check_status",
            "host_name":"wdm-ThinkPad-E450",
            "message":null,
            "id":2
        },

    这个数据包的两条记录中有个明显的不同,一个是check,一个是tags,凡是checksd文件夹下服务都会产生一条记录,这条记录的check对应的值一定是"datadog.agent.check_status",tags中的value会指出检查的服务类型,只有一条记录。而一些有连接状态的服务会产生check的第二种的类型,例如这里的'statsd.can_connect',此时的tags数量不定,此处对于后台解析比较重要,要筛选出check是"datadog.agent.check_status"的记录。这里status(0,1,2,3)分别表示OK, WARNING, CRITICAL, UNKNOWN

4,第四种包是event数据包,数据类型如下:

"events":{
        "System":[
            {
                "timestamp":1478067233.806147,
                "host":"wdm-ThinkPad-E450",
                "api_key":"e7afaf986f5cc822406cbd5831328462",
                "msg_text":"Version 5.9.1",
                "event_type":"Agent Startup"
            }
        ]
    },

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值