콘텐츠로 이동

토폴로지 뷰 데이터 구조 설명

필드 설명

매개변수 유형 필수 설명
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 필수 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
          }
        ]
      }
    ]
  }

문서 평가

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