콘텐츠로 이동

텔레메트리

jvmguard는 네 가지 타입의 소스로부터 스칼라 값을 관찰합니다:

  • jvmguard 수집기가 관리하는 엔터티의 수(예: 연결된 VM 수 또는 트랜잭션 수). 이것은 모니터링되는 VM에서의 직접적인 측정이 아니라 jvmguard 서버에서의 평가입니다.
  • 힙 크기, CPU 사용량 또는 활성 스레드 수와 같이 모니터링되는 VM 내부에서 측정되는 텔레메트리.
  • 기록 설정에서 구성된 MBean 텔레메트리.
  • jvmguard API의 텔레메트리 어노테이션을 사용한 선언적 텔레메트리.

모든 텔레메트리는 “텔레메트리” 뷰에서 사용할 수 있습니다. 각 표준 텔레메트리, MBean 텔레메트리 및 선언적 텔레메트리는 “텔레메트리” 노드 아래에 자체 항목이 있습니다.

많은 텔레메트리는 개별 라인이 합산되어 총계 값이 되는 누적 영역 플롯입니다. 예를 들어, “트랜잭션” 텔레메트리는 시간에 따른 총 트랜잭션 수를 보여 주며 다양한 정책 위반에 대한 개별 라인으로 분할됩니다.

텔레메트리 뷰를 직접 활성화하면 현재 시간까지의 10분 간격이 표시됩니다. 여기에 표시된 데이터는 1분 해상도로 기록되었습니다. 트랜잭션 관찰에서 데이터를 얻지 않는 다른 텔레메트리는 10초의 해상도를 갖습니다. 텔레메트리 상단의 탐색 버튼이나 텔레메트리 자체 가장자리의 호버 버튼으로 과거로 이동할 수 있지만, 어느 시점에서 1분당 하나의 해상도는 끝납니다. jvmguard는 텔레메트리를 점진적으로 더 거친 해상도로 통합하고 점진적으로 더 긴 기간 동안 보관합니다. 총 범위가 최소 3시간인 간격으로 축소하면 2분 해상도의 통합된 데이터 포인트와 더 긴 이력 기록이 표시됩니다. 이제 이전의 더 높은 해상도에 비해 더 멀리 과거로 이동할 수 있습니다.

해상도와 보관 시간이 변경되는 모든 표시 간격의 전체 테이블은 다음과 같습니다:

표시 간격 해상도 보관 시간
10분 10초(트랜잭션 기반 데이터는 1분) 6시간(트랜잭션 기반 데이터는 48시간)
3시간 2분 10일
3일 1시간 1년
30일 12시간 무제한

이전 또는 이후 시간으로 이동하면 표시된 간격의 시작 지점이 전체 표시 범위만큼 이동합니다.

이러한 표시 간격 사이에는 표시되는 시간 범위만 늘리고 동일한 해상도를 사용하는 다른 많은 간격이 있습니다. 상단의 확대/축소 버튼이나 텔레메트리의 컨텍스트 메뉴에서 확대/축소 수준을 변경하여 더 많거나 더 적은 데이터를 볼 수 있습니다. 텔레메트리를 두 번 클릭하면 가능한 경우 선택한 시점으로 확대됩니다.

일부 텔레메트리에는 합산되어 총계가 되지 않는 여러 데이터 라인이 있습니다. 이 경우 그래프 위에 드롭다운 상자가 있고 텔레메트리는 라인 플롯으로 표시됩니다.

또 다른 예로 힙 텔레메트리는 시간에 따른 사용된 힙 메모리를 보여 줍니다.

그래프 위에 마우스를 올리면 자세한 숫자를 얻을 수 있습니다. 누적 영역 플롯에서는 범례 항목을 클릭하여 개별 데이터 라인을 토글할 수 있습니다.

텔레메트리의 컨텍스트 메뉴에는 선택한 시점의 관련 뷰로 이동하는 액션이 있습니다. 모든 텔레메트리에서 호출 트리와 핫스팟 뷰로 이동할 수 있습니다.

VM 뷰는 현재 텔레메트리 데이터의 작은 버전을 소위 “스파크라인”으로 보여 줍니다. 스파크라인에는 레이블이 지정된 축이 없으며 관찰된 스칼라 값의 최근 변화에 대한 시각적 인상을 주기 위한 것입니다. 그래프 뒤에는 현재 숫자 값이 있습니다. 위 첨자는 관찰된 최댓값을 나타내고 아래 첨자는 표시된 시간 범위의 최솟값을 나타냅니다.

“텔레메트리” 뷰를 선택하면 “개요” 탭에 지난 1시간과 지난 하루 동안의 모든 텔레메트리가 스파크라인으로 표시되고 현재 값과 최댓값 및 최솟값이 별도의 열에 표시됩니다.

“VM” 뷰에서는 스파크라인 열 집합을 구성할 수 있습니다. 이를 통해 모니터링되는 값에 대해 다양한 VM과 VM 그룹을 상대적으로 평가할 수 있습니다. 스파크라인은 개별적으로, 각 그룹에 대한 공통 스케일로, 또는 모든 VM에 대한 공통 스케일로 조정할 수 있습니다.

스파크라인 열 집합은 “VM” 뷰의 도구 모음에 있는 “텔레메트리” 선택기에서 선택합니다.

“VM” 뷰 또는 텔레메트리 개요에서 스파크라인을 클릭하면 선택한 스파크라인에 표시된 간격과 가장 가까운 시간 간격으로 전체 텔레메트리 뷰가 활성화됩니다.

많은 애플리케이션 서버와 프레임워크는 모니터링 목적으로 유용한 값이 포함된 MBean을 게시합니다. MBean이 게시하는 모든 숫자 값은 jvmguard 에이전트가 폴링할 수 있으며 텔레메트리의 일부가 될 수 있습니다. 이를 위해 JMX 서버가 실제로 외부에 열려 있을 필요는 없습니다. MBean이 내부적으로 어떤 MBean 서버에든 등록되어 있으면 충분합니다.

기록 설정의 “텔레메트리” 단계에서 MBean 텔레메트리와 해당 텔레메트리 라인을 추가할 수 있습니다. 텔레메트리는 텔레메트리의 이름, 단위 및 전반적인 동작을 정의하고 텔레메트리 라인은 실제 데이터를 정의합니다.

텔레메트리 라인이 총계 값의 일부인 경우 영역 그래프로 누적할 수 있습니다. 서로 다른 VM에서 모니터링된 값의 평균을 구해야 하는 경우 “그룹 내 모든 VM의 값 평균”을 선택하고, 그렇지 않으면 값이 합산됩니다. 합산은 “로그인한 사용자 수”와 같은 비즈니스 측정값이나 “데이터베이스 연결 수”와 같은 공유 리소스의 사용에 의미가 있습니다.

구성 가능한 단위는 기본 단위이며 필요에 따라 단위 접두사가 추가됩니다. 예를 들어, “바이트” 단위를 선택하면 텔레메트리의 큰 값이 자동으로 “kB”, “MB”, “GB”로 표시됩니다. 때로는 기록된 값에서 선택한 단위로 변환하기 위해 스케일 팩터를 적용해야 합니다. 해당 스케일 팩터를 10의 음수 거듭제곱으로 추가할 수 있습니다. 예를 들어, 0.01을 곱하려면 스케일 팩터는 2입니다.

각 MBean 라인은 MBean 객체 이름MBean 값 경로로 정의됩니다. 이러한 설정은 MBean 라인 구성 대화 상자에서 선택 버튼을 클릭하여 가장 쉽게 얻을 수 있습니다. 모니터링되는 VM 중 하나에서 숫자 값을 선택할 수 있는 MBean 속성 브라우저가 표시됩니다. 구성된 라인 이름은 텔레메트리의 범례에 표시됩니다.

jvmguard는 플랫폼 MBean 서버가 존재하지 않으면 생성하지 않으므로, 플랫폼 MBean 서버에서 텔레메트리를 구성하는 경우 모니터링되는 VM을 다시 시작한 후에도 텔레메트리가 작동하도록 애플리케이션 시작 시 다음을 호출해야 합니다:

ManagementFactory.getPlatformMBeanServer();

애플리케이션의 모든 스칼라 값을 모니터링하려면 기본형 또는 기본형 래퍼인 숫자 값을 반환하는 매개변수 없는 public 정적 메서드를 추가할 수 있습니다. 그런 다음 메서드에 @Telemetry 어노테이션을 추가합니다. 포함하는 클래스가 실제로 로드되었는지 확인해야 합니다. 그렇지 않으면 jvmguard가 어노테이션이 지정된 메서드를 감지하지 못합니다.

“텔레메트리” 뷰로 이동하여 텔레메트리 드롭다운에서 해당 텔레메트리를 찾아 사용자 정의 텔레메트리를 표시할 수 있습니다.

어노테이션 텔레메트리가 jvmguard에 의해 감지되면 어노테이션이 지정된 메서드가 현재 연결된 VM에서 사용 가능한지 여부에 관계없이 항상 이 목록에 표시됩니다. 이러한 텔레메트리를 사용 중지할 때는 일반 설정으로 이동하여 디스플레이 탭을 열고 숨겨진 선언적 텔레메트리 선택기를 사용하세요. 여기에서 선택한 텔레메트리를 숨길 수 있습니다. 텔레메트리는 어노테이션이 지정된 메서드가 아니라 이름으로 일치된다는 점에 유의하세요.

자세한 내용은 jvmguard 설치의 api/doc 디렉터리에도 있는 dev.jvmguard.annotation.Telemetry 클래스의 Javadoc을 참조하세요.

표시된 모든 시간은 서버의 시간대로 표현됩니다. 다른 시간대에 있는 경우 표시된 시간과 현지 벽시계 시간 사이에 오프셋이 있습니다.