다음을 통해 공유


JMX 메트릭 구성

Application Insights Java 3.x는 기본적으로 JMX(Java Management Extensions) 메트릭 중 일부를 수집하지만 대부분의 경우 충분하지 않습니다. 이 문서에서는 JMX 구성 옵션에 대해 자세히 설명합니다.

추가 JMX 메트릭을 수집하려면 어떻게 해야 하나요?

JMX 메트릭 수집은 applicationinsights.json 파일에 "jmxMetrics" 섹션을 추가하여 구성할 수 있습니다. Application Insights 리소스의 Azure Portal에 표시할 메트릭의 이름을 입력합니다. 수집하려는 각 메트릭에 대해 개체 이름과 특성이 필요합니다. glob 스타일 와일드카드의 개체 이름에 *을 사용할 수 있습니다(세부 정보).

어떤 메트릭을 구성에 사용할 수 있는지 아는 방법은 무엇인가요?

중요한 질문입니다. 개체 이름 및 특성을 알고 계셔야 합니다. 해당 속성은 라이브러리, 프레임워크 및 애플리케이션 서버별로 다르고 제대로 문서화되지 않는 경우가 많습니다. 다행히 특정 환경에서 지원되는 JMX 메트릭을 정확히 쉽게 찾을 수 있습니다.

사용 가능한 메트릭을 보려면 applicationinsights.json 구성 파일에서 자가 진단 수준을 DEBUG로 설정합니다. 예를 들면 다음과 같습니다.

{
  "selfDiagnostics": {
    "level": "DEBUG"
  }
}

개체 이름 및 특성 이름이 있는 사용 가능한 JMX 메트릭이 Application Insights 로그 파일에 표시됩니다.

로그 파일 출력은 이러한 예제와 유사합니다. 경우에 따라 광범위할 수 있습니다.

로그 파일에서 사용 가능한 JMX 메트릭의 스크린샷

명령줄 도구를 사용하여 사용 가능한 JMX 메트릭을 확인할 수도 있습니다.

구성 예

어떤 메트릭을 사용할 수 있는지 알면 이를 수집하도록 에이전트를 구성할 수 있습니다. 첫 번째는 중첩된 메트릭인 LastGcInfo의 예이며 이 메트릭에는 몇 가지 속성이 있는데 이 중에 GcThreadCount를 캡처하려고 합니다.

"jmxMetrics": [
      {
        "name": "Demo - GC Thread Count",
        "objectName": "java.lang:type=GarbageCollector,name=PS MarkSweep",
        "attribute": "LastGcInfo.GcThreadCount"
      },
      {
        "name": "Demo - GC Collection Count",
        "objectName": "java.lang:type=GarbageCollector,name=PS MarkSweep",
        "attribute": "CollectionCount"
      },
      {
        "name": "Demo - Thread Count",
        "objectName": "java.lang:type=Threading",
        "attribute": "ThreadCount"
      }
],

Application Insights에서 JMX 메트릭을 찾을 수 있는 위치는 어디인가요?

Azure Portal의 Application Insights 리소스로 이동하여 애플리케이션이 실행되는 동안 수집된 JMX 메트릭을 볼 수 있습니다. 메트릭 탭에서 표시된 것처럼 드롭다운을 선택하면 해당 메트릭이 표시됩니다.

포털에서 메트릭의 스크린샷