대상 스펙 프로브

대상 스펙은 프로브를 적용해야 하는 클래스 및 메소드를 표시합니다.

대상 스펙은 선택사항입니다. 대상이 지정되지 않은 경우, 프로브는 인스트루먼테이션 엔진에서 처리하는 모든 클래스에 적용됩니다.

대상 스펙을 사용하면 패키지, 클래스, 메소드 이름 및 메소드 서명과 일치하는 패턴에 따라 인스트루먼테이션에서 메소드를 포함하거나 제외하는 필터 규칙을 작성할 수 있습니다. 패턴은 와일드 카드를 포함할 수 있습니다. 여기서 별표(*)는 0개 이상의 문자와 일치합니다.

대상의 와일드 카드 패턴이 메소드의 패키지, 클래스, 이름 및 서명과 일치하는 경우, type 특성은 메소드가 인스트루먼트화되었는지(include) 또는 인스트루먼트화되지 않았는지exclude)를 판별합니다. 패턴이 메소드의 패키지, 클래스 이름 및 서명과 일치하지 않을 경우, 기본적으로 메소드가 인스트루먼트화됩니다.

대상의 특성은 다음과 같습니다.
특성 설명
type 필수적. type 특성은 프로브가 대상 메소드에 적용되는지 여부를 판별합니다. 프로브를 와일드 카드 패턴과 일치하는 메소드 및 클래스에 적용하려면 include를 지정하고, 제외시키려면 exclude를 지정하십시오.
package 선택적. 클래스 이름의 패키지 부분과 일치하는 와일드 카드 패턴을 지정하십시오. 예를 들어, java.util*java.util 패키지 및 하위 패키지의 모든 클래스와 일치합니다. 지정하지 않을 경우 기본값은 *입니다.
className 선택적. 클래스 이름과 일치하는 와일드 카드 패턴을 지정하십시오. 지정하지 않을 경우 기본값은 *입니다.
method 선택적. 메소드 이름과 일치하는 와일드 카드 패턴을 지정하십시오. 지정하지 않을 경우 기본값은 *입니다.
signature 선택적. 메소드의 서명과 일치하는 와일드 카드 패턴을 지정하십시오. 여기서 signature는 메소드 인수 및 리턴 유형을 표시하는 문자열입니다. 메소드 서명으로 Java 내부 형식을 사용하십시오. 예를 들어, (Ljava/lang/Object;)D는 Object를 매개변수로 사용하고 double 형식을 리턴하는 메소드의 서명입니다. 이 와일드 카드 패턴은 과부하된 메소드 중에서 구별하는 데 사용할 수 있습니다. 지정하지 않을 경우 기본값은 *입니다.

참고:

  • 프로브에는 연속 대상 규칙을 포함하는 여러 대상 스펙이 있을 수 있습니다. 특정 메소드에만 프로브를 적용하려면 먼저 포함할 메소드를 지정한 후 마지막 대상 스펙 package=* className=* method=* signature=* type=exclude를 추가하십시오.
  • 지정한 패키지 및 클래스 이름은 클래스가 구현하는 모든 인터페이스의 패키지 및 클래스 이름에서도 점검됩니다. 예를 들어, java.util.HashMapjava.util.Map 인터페이스를 구현합니다. 프로브가 패키지 java.util, 클래스 이름 Map 및 메소드 이름 size를 대상으로 할 경우, 이 프로브는 java.util.HashMap.size() 및 맵 인터페이스를 구현하는 다른 모든 클래스의 size 메소드에 적용됩니다.
  • 패턴 일치는 상속 관계로 간주되지 않습니다. Derived 클래스가 Base로 확장되고 프로브 대상이 Base.run()으로 지정된 경우 프로브는 Derived.run()에 자동으로 적용되지 않습니다.
  • 대상 스펙의 패키지 패턴이 마침표(".")인 경우, 이는 이름이 지정되지 않은 글로벌 Java 패키지를 나타냅니다. 이를 사용하여 글로벌 패키지의 클래스를 명시적으로 대상으로 지정할 수 있습니다.
  • 호출 사이트 프로브는 호출된 메소드의 패키지, 클래스 이름 및 서명과 대상 패턴 및 규칙을 일치시킵니다. 일치는 컴파일 시간으로도 알려진 호출된 메소드에서 수행됩니다. 즉, 상속 및 가상 함수 때문에 호출되는 실제 메소드가 아니라 정적으로 알려진 클래스 및 메소드 이름에서 수행됩니다. 호출이 인터페이스 참조를 통해 완료된 경우, 인터페이스 이름이 일치해야 합니다.
예제:

대상을 지정하려면 프로브 페이지의 트리 분할창에서 대상을 선택한 후 편집 분할창에서 추가를 클릭하고 편집을 클릭하십시오.

이 예제는 com.example 패키지에서 이름이 Proxy로 끝나는 클래스에서 이름이 Get으로 시작하는 메소드에만 프로브를 적용합니다. 포함 또는 제외 대상 항목 유형. 제외 대상 항목에서 모든 항목을 제외할 경우 별표 와일드 카드를 사용합니다. 포함 항목에서는 완전히 일치하는 메소드를 대상으로 지정합니다. 기타 모든 클래스 및 메소드는 인스트루먼테이션에서 제외됩니다.