토폴로지

모니터링 대상 서버로부터 실시간으로 수집되고 있는 정보를 통해 애플리케이션 서버 간의 연관관계를 용이하게 파악할 수 있습니다.

분류

Application Monitoring - 토폴로지 분석

와탭이 제공하는 토폴로지의 종류는 총 5가지 형태로 분류됩니다.
각 토폴로지가 표현하는 관계 정보는 다음과 같습니다.

  • 애플리케이션 토폴로지 - 프로젝트 범위에서 포함된 모든 애플리케이션의 관계 정보

  • 그룹 토폴로지 - 프로젝트 범위에서 애플리케이션을 그룹 단위의 관계 정보

  • 통합 토폴로지 - 다중 프로젝트에 걸쳐 애플리케이션 그룹 단위의 관계 정보

  • 인스턴스 토폴로지 - 단일 애플리케이션의 관계 정보

  • Netstat 토폴로지 - 애플리케이션의 리스닝 정보, 아웃바운드 호출 대상 정보

일반적으로 알려진 토폴로지 정의에서는 링크 정보를 가지지 않은 노드를 포함하지 않습니다.
모니터링 관점에서의 토폴로지는 고립된 노드의 정보도 필요합니다.

표현 정보

토폴로지에서 표현하는 정보는 노드와 링크 및 부가정보로 구분됩니다.
각각이 포함하는 정보는 다음과 같습니다.

  • 노드 - 프로젝트, 애플리케이션 그룹, 애플리케이션, 데이터베이스, HTTP 호출 대상 외부 호스트, 외부 모듈(애플리케이션 호출자)을 표현합니다.

    • 노드로의 호출 정보가 존재하는 경우, 노드 외곽에 에러 비중을 표현합니다.

  • 링크 - 애플리케이션 혹은 애플리케이션 그룹 간의 호출 정보, 데이터베이스 호출 정보, 외부 호스트 호출 정보, 외부 모듈로부터의 호출 정보를 표현합니다.

    • 평균 응답시간 - 5초간의 노드 간 트랜잭션 또는 호출 내역의 응답시간 합계를 총건수로 나눈 정보

    • 건수 - 5초간의 노드 간 트랜잭션 또는 호출 내역의 총건수 (에러 건수를 포함)

    • 에러 - 5초간의 노드 간 트랜잭션 또는 호출 내역 중 총 에러 건수

    • 액티브 TX - 노드 간 트랜잭션 또는 호출 중 현재 진행 상태의 건수

    • 패치 시간 - 5초간의 DB 호출 내역의 레코드 취득 시간 총합

    • 패치 건수 - 5초간의 DB 호출 내역의 레코드 취득 건수 총합

topology error information
Figure 1. 토폴로지 노드 에러 정보

제어

토폴로지 화면의 기본 동작은 사용자 편의성을 위하여 다음 기능을 포함합니다.

  • 자동 갱신 - 디폴트 30초 주기의 자동 갱신을 통해 토폴로지의 변경 사항이 자동으로 업데이트됩니다.

    • 사용자가 원하는 경우 갱신 주기를 5초 ~ 5분까지 지정할 수 있습니다. 새로 고침 버튼을 통해 최신 정보로 토폴로지를 업데이트할 수 있습니다.

Netstat 토폴로지의 경우, 에이전트 부하로 인해 자동 갱신을 지원하지 않습니다.
  • 줌 인/줌아웃 - 마우스 스크롤을 통해 토폴로지를 줌인 또는 줌아웃 하여 노드 수가 많은 경우, 원하는 사이즈로 토폴로지를 표현할 수 있으며, 줌인/줌아웃 레벨은 내부 설정에 유지됩니다.

  • 노드 드래그 - 노드의 표시 위치를 사용자가 지정하고자 하는 경우, 드래그하여 위치를 고정할 수 있습니다.

  • 프로젝트 노드 클릭

    • 애플리케이션 토폴로지의 경우, 해당 프로젝트의 애플리케이션 토폴로지로 이동합니다.

    • 그룹 토폴로지의 경우, 해당 프로젝트의 토폴로지 정보를 취득하여, 현재 토포로지에 표현합니다.

  • 하이라이트 필터링 - 노드 및 노드와 인접한 링크를 필터링을 통해 하이라이트 할 수 있습니다.

control topology
Figure 2. 애플리케이션 토폴로지 제어

표현 형태

애플리케이션 토폴로지

프로젝트 내의 애플리케이션 간 호출 연관 정보를 표현합니다.

application topology
Figure 3. 애플리케이션 토폴로지

그룹 토폴로지

프로젝트 내의 애플리케이션 그룹 간 호출 연관 정보를 표현합니다.

데이터베이스 호출 내역을 포함한 토폴로지의 경우, 아래와 같이 데이터베이스 노드를 포함합니다.

group topology
Figure 4. 그룹 토폴로지 (DB 노드 포함)

타 프로젝트로부터 호출 내역이 존재하는 경우, 타 프로젝트의 그룹 노드를 포함합니다.

group topology 2
Figure 5. 그룹 토폴로지 (타 프로젝트 그룹 노드 포함)

타 프로젝트 그룹 노드를 클릭할 경우, 타 프로젝트의 토폴로지 정보를 함께 표시합니다.

group topology 3
Figure 6. 그룹 토폴로지 (타 프로젝트 그룹 클릭)

통합 토폴로지

사용자가 복수 프로젝트에 대한 권한을 보유하고 있다면, 프로젝트 단위 토폴로지로 전체 상황을 조망하기 어려운 제약이 존재합니다.

이와 같은 경우, 복수의 프로젝트를 일괄 선택하여 단일 토폴로지로 보기 위한 요구 사항이 존재하게 되므로 이를 통합 토폴로지로 표현합니다.

통합 토폴로지의 진입 경로 - 프로젝트 미선택 상태에서 노출되는 통합 애플리케이션 토폴로지 메뉴를 클릭합니다.
integration topology menu
Figure 7. 통합 토폴로지 메뉴

상단의 프로젝트 선택 메뉴를 통해 토폴로지에 표현할 프로젝트를 지정합니다.

select projects
Figure 8. 프로젝트 선택

프로젝트 선택 후, 적용 버튼을 클릭하면 복수 프로젝트의 토폴로지를 표시합니다.

토폴로지 화면의 중앙을 기준으로 프로젝트 단위의 클러스터를 형성하여 각 프로젝트에 포함된 그룹을 인접 위치에 군집시켜 표시합니다.
대규모 환경의 경우 보통 멀티 프로젝트로 구성합니다.
이를 토폴로지로 표현할 경우 개별 노드를 화면 전체에 균등 분포시키기보다는 프로젝트 단위로 모아서 배치하는 것이 전체 규모를 파악하는데 용이합니다. 따라서, 군집 단위를 지정하여 화면에 자동 배치합니다.
프로젝트, 데이터베이스, 외부 호스트, 애플리케이션 및 그룹을 호출하는 외부 모듈을 군집 단위로 합니다.
인접한 노드 간의 간격을 조정하고자 하는 경우, 상단의 노드 간격 관련 확대/축소 버튼을 활용하여 노드 간격을 조정할 수 있습니다.
클러스터 구성은 프로젝트, 외부 모듈, 외부 호출, DB 호출 단위로 구성합니다.
integration topology
Figure 9. 통합 토폴로지

확대 버튼을 통해 노드 간의 간격을 확장 시 토폴로지가 변경된 화면은 다음과 같습니다.

expand node distance
Figure 10. 노드 간격 확대/축소

인스턴스 토폴로지

인스턴스 토폴로지는 애플리케이션 토폴로지와 동일한 데이터를 표현합니다. 인스턴스 토폴로지는 단일 애플리케이션을 대상으로 연관성을 지닌 애플리케이션, 외부 모듈, DB 및 외부 호출 노드와의 연관성을 표현합니다. 반면, 애플리케이션 토폴로지는 프로젝트에 포함된 전체 애플리케이션을 대상으로 합니다.

진입 경로 - 사이트맵에서 대시보드 > 토폴로지 > 인스턴스 토폴로지를 클릭합니다.
instance topology
Figure 11. 인스턴스 토폴로지
애플리케이션 토폴로지에 표현되는 정보가 너무 많아 애플리케이션 단위로 보고자 하는 니즈가 존재하는 경우, 인스턴스 토폴로지를 활용할 수 있습니다.
애플리케이션 토폴로지의 애플리케이션 노드를 더블 클릭하는 경우, 인스턴스 토폴로지 화면으로 전환하여 더블클릭한 애플리케이션 중심의 토폴로지를 표시합니다.

Netstat 토폴로지

프로젝트 내의 애플리케이션과 애플리케이션의 리스닝 정보, 아웃바운드 호출 연관 정보를 표현합니다.

netstat topology
Figure 12. Netstat 토폴로지

애플리케이션과 애플리케이션의 리스닝 정보와 아웃바운드 호출 정보를 노드로 표현하며,
리스닝 포트와의 관계는 직선으로, 아웃바운드 호출 정보와의 관계는 곡선으로 표현합니다.

진입 경로 - 사이트맵에서 대시보드 > 토폴로지 > Netstat 토폴로지를 클릭합니다.
Netstat 토폴로지를 취득하는 과정은 에이전트의 부하를 유발하므로 자동 갱신 기능을 제공하지 않습니다. 명시적으로 데이터 조회하기 버튼을 통해 사용자의 요청이 있는 경우 데이터를 조회합니다.

부가 기능

하이라이트 필터

특정 노드를 선택하여 이와 연관관계를 가진 노드를 강조하여 보여주기 위한 기능을 제공합니다. 대량 노드 간의 복잡한 연관관계를 토폴로지로 확인하기 어려운 점을 보완하기 위해 만들어졌습니다.

특정 노드에 마우스 오버 시에 해당 노드 및 연관 노드와 링크 정보를 하이라이트 하여 표시할 수 있습니다. 그뿐만 아니라, 키워드 입력을 통해 원하는 노드의 선택을 유지시킬 수 있습니다. (토폴로지 갱신 시에도 하이라이트 상태가 유지됩니다.)

highlight filter
Figure 13. 하이라이트 필터

하이라이트 필터 서포트

하이라이트 필터 기능을 통해 키워드를 입력하는 방식으로 하이라이트 상태를 유지할 수도 있으나, 화면 우측 하단의 노드 선택 뷰에 표시되는 말단의 노드를 클릭하여 하이라이트 필터를 적용할 수 있습니다.

본 차트에는 프로젝트, DB 호출, 외부 호출 노드를 그룹핑하여 다이어그램으로 제공하고, 본 차트의 말단 노드를 클릭하면 해당 노드의 명칭이 하이라이트 필터에 적용됩니다.

node selection view
Figure 14. 노드 선택 뷰

노드 선택 뷰는 다음의 기능을 제공합니다.

  • 줌인/줌아웃

  • 드래그

  • 말단 노드 클릭 시, 하이라이트 필터에 적용

  • 상위 노드 클릭 시, 말단 노드 비표시

노드 선택 뷰를 활용하지 않는 경우, 노드 선택 뷰 외곽의 점선을 더블 클릭하여 최소화할 수 있습니다. 노드 선택 뷰를 다시 표시하고자 하는 경우, 최소화된 영역을 더블클릭하여 복원할 수 있습니다.

minimized node selection view
Figure 15. 노드 선택 뷰 최소화
node tree folded
Figure 16. DB 호출만 클릭하여 접은 상태의 노드 트리

가변 폰트

차트에 표현되는 정보가 많아질수록 줌아웃 하여 차트를 축소해서 보게 될 가능성이 높습니다. 차트를 축소하게 되면 노드의 위치는 고정하여 노드 식별은 가능할 수 있으나, 글자의 사이즈가 상대적으로 작아져 호출 정보를 식별하기 어려울 수 있습니다. 토폴로지 차트에서는 폰트 사이즈를 노드 간 링크의 거리에 비례하여 표시합니다.

dynamic font size
Figure 17. 가변 폰트

컨텍스트 메뉴

토폴로지의 노드에서 마우스 우측 버튼을 클릭하시면 컨텍스트 메뉴가 노출됩니다. 컨텍스트 메뉴에는 애플리케이션 모니터링 대시보드로 이동하기 위한 링크 등의 메뉴를 제공합니다.

컨테이너 맵, 노드 자원, 컨테이너 자원 메뉴는 컨테이너 모니터링에만 제공됩니다.
context menu
Figure 18. 컨텍스트 메뉴

노드 위치 저장 및 복원

토폴로지 뷰에서 차트의 노드 위치는 변경할 수 있습니다. 변경된 노드의 위치는 다른 메뉴를 클릭한 후 다시 돌아와도 유지됩니다.

변경된 노드의 위치 정보는 웹 브라우저의 로컬 스토리지에 저장됩니다. 때문에 다른 사용자의 화면에서는 변경된 노드 위치가 반영되지 않습니다.
  • 위치 저장 - 화면에 표시되어 있는 노드의 위치 정보를 저장합니다.

  • 위치 저장(병합) - 화면에 표시되어 있는 노드의 위치 정보에 기존에 저장한 정보를 병합하여 저장합니다.

  • 위치 복원 - 라디오 버튼을 체크할 때 현재 표시되어 있는 노드의 위치를 저장된 위치로 이동시킵니다. 리다오 버튼의 체크 상태를 유지할 경우, 차트에 신규 노드가 추가될 때 저장된 정보로 노드의 위치를 이동시킵니다.

save position
Figure 19. 노드 위치 저장 및 복원

별칭 부여 및 제거

화면 우측 하단의 노드 선택 뷰를 통해 노드의 별칭을 적용할 수 있습니다.

노드 선택 뷰의 노드에서 마우스 우측 버튼을 클릭하면 별칭 입력 창이 표시됩니다. 별칭을 입력 후 엔터를 입력하시면 별칭 정보가 저장됩니다.

차트의 데이터가 새로 조회되는 시점에 저장된 별칭이 적용됩니다.

노드 별칭 정보는 웹 브라우저의 로컬 스토리지에 저장됩니다.
set alias
Figure 20. 별칭 지정

저장된 별칭을 제거하고자 할 경우, 화면 상단의 별칭 초기화 버튼을 클릭하여 저장된 별칭 정보를 삭제할 수 있습니다.

차트 데이터가 새로 조회되는 시점에 별칭 정보가 삭제되어 반영됩니다.

reset alias
Figure 21. 별칭 제거

인바운드/아웃바운드 필터

인바운드/아웃바운드 토글 버튼을 통해 토폴로지 상에 표현된 외부 모듈 및 외부 호출 노드의 표시 여부를 변경할 수 있습니다.

inbound/outbound filter
Figure 22. 인바운드/아웃바운드 표시 토글
inbound/outbound displayed
Figure 23. 인바운드/아웃바운드 표시 상태
inbound/outbound hidden
Figure 24. 인바운드/아웃바운드 비표시 상태

임계치 기반 강조

노드 간 호출의 응답시간 및 에러 건수 임계치 설정 시 임계치를 초과한 노드 및 호출 관계를 강조하여 표시합니다.

threshold emphasis
Figure 25. 임계치 설정
threshold emphasized
Figure 26. 임계치 초과 정보 강조

적용 방법

Java

  • java 에이전트 1.7.1 이상

  • 에이전트 옵션 - 토폴로지 표현을 위한 정보 수집 옵션

    • tx_caller_meter_enabled - 애플리케이션 및 그룹 간 호출 정보를 수집합니다.

    • httpc_host_meter_enabled - HTTP 외부 호출 정보를 수집합니다.

    • sql_dbc_meter_enabled - 데이터베이스 호출 정보를 수집합니다.

    • actx_meter_enabled - 액티브 트랜잭션 정보를 수집합니다.

  • 그룹 및 통합 토폴로지 사용을 위해서는 JVM Option을 통해 아래 설정을 추가해야 합니다.

    -Dwhatap.okind={그룹 식별자}

Node.js

  • node.js 에이전트 0.4.1 이상

  • 에이전트 옵션 - 토폴로지 표현을 위한 정보 수집 옵션

    • tx_caller_meter_enabled - 애플리케이션 및 그룹 간 호출 정보를 수집합니다.

    • httpc_host_meter_enabled - HTTP 외부 호출 정보를 수집합니다.

    • sql_dbc_meter_enabled - 데이터베이스 호출 정보를 수집합니다.

    • actx_meter_enabled - 액티브 트랜잭션 정보를 수집합니다.

  • 그룹 및 통합 토폴로지 사용을 위해서는 node.js 환경 설정을 통해 아래 설정을 추가해야 합니다. (프로젝트 에이전트 설치 페이지 참조)

    process.env.WHATAP_OKIND = '{그룹 식별자}'