콘텐츠로 이동

토폴로지 데이터 구조 설명

필드 설명

매개변수 유형 필수 여부 설명
column_names list 값에 해당하는 열 이름 집합, 외부 함수 데이터 소스의 경우 series 데이터에 따라 자동으로 채워짐
column_names[#] str
series list 필수 데이터 그룹, 길이는 데이터 그룹 개수를 나타냄(토폴로지 맵에서는 한 그룹만 존재)
series[#] dict 하나의 데이터 그룹
series[#].tags dict 데이터 관련 속성(데이터 관련 속성 표시, table에서는 열 데이터로 표시, alias 키 값 매핑)
series[#].columns list 필수 데이터 소스 필드 키 목록, 고정값 ['time', 'data']
series[#].values list 필수 2차원 배열, 배열의 각 항목은 하나의 데이터를 나타내며, 여기서는 하나의 데이터만 존재
series[#].values[#] list [타임스탬프, 데이터 값]으로 구성, 길이는 series[#].columns와 일치해야 함
series[#].values[#][0] str 'time' 열에 해당하는 값, null일 수 있음
series[#].values[#][1] str 'data' 열에 해당하는 값, 직렬화된 객체이며 ServiceMap, ResourceMap 유형 지원

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 필수 노드 유형, 노드 중앙 아이콘 표시에 사용(지원 유형: '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 필수 리소스 유형, 노드 아이콘 표시에 사용(지원 유형: '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='dataPlatform.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
          }
        ]
      }
    ]
  }

문서 평가

이 페이지가 도움이 되었나요?