Skip to the content.

框架数据说明

企业版中的数据构成

企业版本中, 不同组件会产生不用的组件, 包括如下数据:

tarsregistry主控服务是基于raft实现的, 内部记录了所有框架上部署的服务的元数据信息, 数据目录为:

$install-path/tarsnode/data/tars.tarsregistry/data

当tarsregistry扩容时, 数据会自动迁移扩容到新的节点中.

tarspatch发布服务是基于raft实现的, 保存了所有的发布包, 数据目录为:

$install-path/tarsnode/data/tars.tarspatch/data

当tarspatch扩容时, 数据会自动迁移扩容到新的节点中.

当在管理平台删除发布记录时, 也会删除tarspatch中对应的记录.

tarscollect的模板中, 可以修改每类数据的存储时间, 过期的数据会被删除:

  <collect>
    # tarsstat采集的调用数据保留时间(天)
    stat_retain_day=31 
    # tarspropery采集的属性上报数据保留时间(天)
    prop_retain_day=31
    # tarsnotify 采集的异常上报数据的保留条数(每个服务)
    notify_retain_count=1000
    # cpu负载数据保留时间(天)
    load_cpu_retain_day=31
    # 每节点内存数据保留时间(天)
    load_mem_retain_day=31
    # 每节点磁盘空间数据保留时间(天)
    load_disk_retain_day=31
    # 每节点机器时间和tarscollect leader节点时间的差异值, 保存时间
    load_time_diff_retain_day=31
    # 调用链数据的保存时间(天)
    trace_retain_day=7
  </collect>

对于tarsnode而言, 会定时删除本节点上业务服务产生的日志文件, 通过在模板中配置保留时间:

  #日志文件保留天数
    retainDayLog=7
  #产生的core文件保留天数
    retainDayCore=7

监控数据说明

在开源版本中, tars的统计监控数据分散在mysql, es中, 为了更好的管理相关的数据, 企业版本tars框架将所有统计监控数据都存在了tarscollect组件中, 该组件基于raft实现了高可用.

收集的数据如下:

接口调用数据结构

采用5个索引表+一个数据表的构成, 每个表对应rocksdb中的一个column, 每条数据会计算一个唯一值uniqueId: md5(masterName + “|” + slaveName + “|” + interfaceName + “|” + masterIp + “|” + slaveIp) 数据表:

索引表:

检索时:

如何设计分布式

属性上报数据结构

采用4个索引表+一个数据表的构成, 每个表对应rocksdb中的一个column, 每条数据会计算一个唯一值uniqueId: md5(moduleName + “|” + propertyName + “|” + nodeName + “|” + policy) 数据表:

索引表:

检索时:

notify上报数据结构

根据 时间(可选), application, server_name, node_name(可选) 检索

索引表:

检索时:

tarsnode上报数据

tarsnode 每隔5分钟会上报一次本机的数据, 包括以下数据:

节点时间对比数据

根据节点, 时间范围检索

硬盘大小监控

数据表:

CPU监控

数据表:

内存监控

数据表:

调用链数据说明

tarscollect也收集了调用链相关的数据, 这部分数据结构相对比较复杂, 这里单独重点介绍:

日志结构体:

存储结构:

存储结构:

存储结构

除开关键的数据表以外, 还有几张检索的索引的表: