我将每秒收集服务器指标,如操作系统指标、Java进程信息等。
例如JSON:
{
"localhost": {
"os": {
"cpu": 4,
"memory": 16
},
"java": {
"jvm": {
"vendor": "Oracle"
},
"heap": 4,
"version": 1.8
}
}
}对于这类数据,最好的数据模型是什么?我应该将每种类型的指标存储在单独的表中还是全部存储在一个表中?
发布于 2020-01-06 23:14:04
一种选择是将每个单独的指标转换为带点的字符串,以便您的JSON:
{
"localhost": {
"os": {
"cpu": 4,
"memory": 16
},
"java": {
"jvm": {
"vendor": "Oracle"
},
"heap": 4,
"version": 1.8
}
}
}会变成这样:
Host Key Value
localhost os.cpu 4
localhost os.memory 16
localhost java.jvm.vendor Oracle
localhost java.heap 4
localhost java.version 1.8 上面未显示的是时间戳列。主键将是host+key+timestamp。如果您不需要能够按单个主机进行查询,则可以将主机名集中到键中,即key=localhost.os.cpu。
查询需求的精确细节很大程度上决定了这是否是正确的选择。
https://stackoverflow.com/questions/59611782
复制相似问题