看完了Java服务器监控中的基本变量 Metrics之后,不难想到的问题就是,我们应该如何存储这些监控数据。这就是本篇文章主要讲述的内容。
这篇文章主要分为三个部分,第一部分主要描述监控数据的特点,第二部分主要讨论不同db的存储方式,第三部分则会简单地对tsdb进行介绍。
监控数据的特点
首先我们需要了解的是,监控数据必须包含的属性。一个标准的监控数据,一定会包含以下属性
-
指标名称 不同指标之间需要进行相互区分
-
时间 监控数据就是指在特定时间下特定指标的值,有了时间,我们才能知道服务器在某个特定时间点的特定状态
-
标签 监控数据一般还会带有标签,如产生这个监控数据的服务器ip,所属的机房,以及其它我们用于标识或排查问题所需要的属性
综上,我们可以得出一个简单的json模型用于表示监控数据
{
"metricsName" : "test",
"timestamp" : 1539688435,
"tags" : [{
"ip" : "127.0.0.1",
"dc" : "local"
}]
}
了解完基本的数据结构之后,接下来的问题就是,数据量会有多大?
按照每10秒钟采集一次数据计算,一个小时会产生360条数据,一天会产生360*24=8640
条数据。