跳转至

拓扑图数据结构说明

字段说明

参数 类型 是否必须 说明
column_names list 数值对应的列名集合,外部函数数据源该值会根据series 数据自动填充
column_names[#] str
series list 必须 数据组,长度代表有几组数据(拓扑图这里只有一组数据)
series[#] dict 一组数据集合
series[#].tags dict 数据关联属性(用于展示数据的相关属性展示,table 将其作为列数据展示,别名 key 值的映射)
series[#].columns list 必须 数据源字段 key 列表,固定为 ['time', 'data']
series[#].values list 必须 二维数组,数组中的每一项代表一条数据,这里只有一条数据
series[#].values[#] list [时间戳, 数据值] 组成,长度应跟series[#].columns一致
series[#].values[#][0] str 列 'time' 对应的数值,可以为 null
series[#].values[#][1] str 列 'data' 对应的数值,其值是一个序列化对象,支持类型 ServiceMapResourceMap

ServiceMap 服务关系图

拓扑图以圆形节点的形式展示,节点名称作为唯一标识,用于展示节点信息及节点连接关系。

{
  "services": [
    {
      "data": {
        "__size": 10,
        "__fill": 10,
        "fieldA": "1.0",
        "fieldB": "test"
      },
      "name": "demo_web",
      "type": "web"
    },
    {
      "data": {
        "__size": 10,
        "__fill": 10,
        "fieldA": "1.0",
        "fieldB": "test"
      },
      "name": "demo_framework",
      "type": "framework"
    }
  ],
  "maps": [
    {
      "source": "demo_web",
      "target": "demo_framework"
    }
  ]
}

字段说明

参数 类型 是否必须 说明
services list 必须 节点详情列表
services[#] dict 节点详情
services[#].name string 必须 节点名称,展示在节点底部
services[#].type string 必须 节点类型,用于节点中心 Icon 显示(支持类型:'web', 'custom', 'cache', 'db', 'app', 'front', 'aws_lambda'),不在范围内则默认为 'custom'
services[#].data dict 节点属性
services[#].data.__size number 圆圈大小字段的值,该值无范围 按照设置的大小自适应显示
services[#].data.__fill number 必须 填充颜色字段的值,该值的范围为设置的渐变色系的最大和最小值
services[#].data.fieldA string/number 必须 节点 hover 内容显示,除了 ‘__size’,‘__fill’ 字段其他都会被当作自定义字段显示
maps list 必须 节点连接关系列表
maps[#] dict 服务连接关系(方向:source->target)
maps[#].source string 必须 起始节点
maps[#].target string 必须 目标节点

ResourceMap 资源关系图

拓扑图以卡片节点的形式展示,连接关系应满足有且只有一个中心节点,serviceResource 是卡片节点详情列表(service:resource 应保持唯一性,其作为卡片节点的唯一标识),maps 是中心节点和其他点的连接关系,中心节点指向的位于中心节点右侧,指向中心节点的,位于中心节点左侧。

{
  "serviceResource": [
    {
      "data": {
        "__fill": 10,
        "avg_per_second_title": "AAA",
        "avg_per_second": 1,
        "p99_title": "AAA",
        "p99": 1,
        "error_rate_title": "AAA",
        "error_rate": 1
      },
      "service": "demo_web",
      "resource": "demo_web_resource",
      "source_type": "web"
    },
    {
      "data": {
        "__fill": 10,
        "avg_per_second_title": "AAA",
        "avg_per_second": 1,
        "p99_title": "AAA",
        "p99": 1,
        "error_rate_title": "AAA",
        "error_rate": 1
      },
      "service": "demo_framework",
      "resource": "demo_framework_resource",
      "source_type": "framework"
    }
  ],
  "maps": [
    {
      "source": "demo_web",
      "source_resource": "demo_web_resource",
      "target": "demo_framework",
      "target_resource": "demo_framework_resource"
    }
  ]
}

字段说明

参数 类型 是否必须 说明
serviceResource list 必须 卡片节点详情列表表
serviceResource[#] dict 卡片详情
serviceResource[#].service string 必须 卡片底部文本展示内容
serviceResource[#].resource string 必须 卡片顶部文本展示内容
serviceResource[#].source_type string 必须 资源类型,用于节点 Icon 显示(支持类型:'web', 'custom', 'cache', 'db', 'app', 'front', 'message'),不在范围内则默认为'custom'
serviceResource[#].data dict 服务下资源数据参数
serviceResource[#].data.avg_per_second number 中部居左边展示内容值
serviceResource[#].data.avg_per_second_title number 中部居左 hover 展示内容
serviceResource[#].data.error_rate number 中部居右展示内容
serviceResource[#].data.error_rate_title number 中部居右 hover 展示内容
serviceResource[#].data.p99 number 中部展示内容
serviceResource[#].data.p99_title number 中部居右 hover 展示内容
maps list 必须 卡片节点连接关系列表
maps[#] dict 卡片节点连接关系(方向 source_resource->target_resource)
maps[#].source string 必须 同 serviceResource[#].service 名
maps[#].source_resource string 必须 同 serviceResource[#].resource
maps[#].target string 必须 同 serviceResource[#].service
maps[#].target_resource string 必须 同 serviceResource[#].resource

外部函数响应结构例子

@DFF.API('函数名', category='guance.dataQueryFunc')
def whytest_topology_test():
    now = int(time.time()) * 1000
    # 此处的 data 就是上文中「ServiceMap 服务关系图,ResourceMap 资源关系图 」的完整结构
    data = {}
    return {
    "content": [
      {
        "series": [
          {
            "columns": ["time", "data"],
            "values": [
              now, json.dumps(data)
            ],
            "total_hits": 1
          }
        ]
      }
    ]
  }

文档评价

文档内容是否对您有帮助? ×