Application Insight의 javaagent에서 실행되는 SQL 추적

나는 단지 문서의 내용을 만들었을 뿐이다.
이렇게 된 느낌.

이 검은 페인트가 가득한 그림은 5분의 미혹적인 요구를 조사할 때였다.
SQL 쿼리 4회 수행 여부와 2개의 쿼리 수행 여부를 확인할 수 있다.질의를 클릭하면 오른쪽 명령에 SQL이 표시됩니다.
SQL의 내용은 PrepredStation을 사용했기 때문에 Prepted SQL이 되었을 수 있습니다. 매개 변수는이렇게 되기 전엔 볼 수 없었어요.(거꾸로 묻혀도 기밀 정보를 볼 수 있으니 이 정도면 될 것 같다.)
호출된 코드의 위치도 모른다.하지만 실사자라면 유용하겠죠.
물론 DB에서 조회한 정보를 Application Insights에 보내기 위해서는 전송량이 필요하므로 주의하십시오.

전제 조건

  • Java 애플리케이션
  • Application Insights
  • 가져오기

    구조


    JavaAgent를 사용하여 클래스 로더를 사용하여 클래스 파일을 읽을 때 클래스 파일을 수정하고 감지 측정 구조를 작성합니다.
    JavaAgent만 설치하면 됩니다. 이동하는 코드를 수정하지 않아도 됩니다.

    가져오기

  • java에이전트 파일 다운로드
  • AI-Agent.제작xml
  • JVM 매개 변수에 추가-javaagent:...
  • 애플리케이션 재부팅
  • 가져오기 프로그램은 Azure WebApp에서 구상하지만 자바의 웹 응용 프로그램은 Azure WebApp에 국한되지 않고 조금만 바꾸면 가져올 수 있다.

    Application Insight의 javaagent 가져오기


    https://github.com/microsoft/ApplicationInsights-Java/releases/에 공개되기 때문에 가져온 Application Insights 버전의 에이전트를 넣습니다.
    아주웹앱이라면 쿠두에서 이렇게 조작할 수 있다.D:\home\data 근처라면 방해가 되지 않도록 적당히 변경해주세요.
    
    cd D:\home\data
    curl -LO https://github.com/microsoft/ApplicationInsights-Java/releases/download/2.1.1/applicationinsights-agent-2.1.1.jar
    

    AI-Agent.xml 파일 만들기


    방금 다운로드한jar 파일이 있는 곳과 같은 곳에서 AI-Agent.xml 파일을 만드세요.
    컨텐트는 다음과 같이 복사할 수 있습니다.
    AI-Agent.xml
    <?xml version="1.0" encoding="utf-8"?>
    <ApplicationInsightsAgent>
        <Instrumentation>
            <BuiltIn enabled="true"> <!-- ここのenabled属性も見ているため忘れずに。 -->
                <JDBC enabled="true" /> <!-- JDBCでクエリを投げた時にクエリの実行時間とPreparedなSQLのテレメトリを送信 -->
            </BuiltIn>
        </Instrumentation>
    </ApplicationInsightsAgent>
    
    이번에는 JDBC만 있지만 설정을 통해 HTTP 호출 등을 추적할 수 있다.

    JVM 매개 변수 -javaagent의 경우:...덧붙이다


    JVM 매개 변수에 다음 항목을 추가합니다.파일 경로를 적절하게 바꿉니다.
    -javaagent:D:/home/data/applicationinsights-agent-2.1.1.jar
    
    Tomcat로 이동하는 애플리케이션의 경우 환경 변수JAVA_OPTSCATALINA_OPTS를 사용할 수 있습니다.
    Azure WebApp이면 앱을 설정하거나 kudu에서 웹을 시작할 수 있다.config를 사용합니다.그러나 응용 프로그램 설정이 우선일 수 있으니 이 점을 고려해 주십시오.

    애플리케이션 재시작


    java에이전트를 읽으려면 다시 시작해야 합니다.
    이상.

    기타


    지루한 도량을 억제하고 싶다


    현재로서는 시간이 걸리는 상황에서만 발송할 수 없다.
    예를 들어 일찌감치 조회를 알았거나 연결고리를 사용하면 수영장에서 꺼낼 때 고장이 났는지 검사할 때SELECT 1전위법을 보낸다.
    방지하려면 필터를 써야 합니다.TelemetryProcessor의 설치 예는 다음 Issue에 나와 있습니다.
    참조: https://github.com/microsoft/ApplicationInsights-Java/issues/837#issuecomment-471610584

    좋은 웹페이지 즐겨찾기