Datadog에서 Java 메트릭 얻기

3008 단어 DatadogAWS
Java 애플리케이션의 성능을 Datadog로 시각화하려고 할 때 빠졌기 때문에,
누군가의 도움이 된다고 생각하고 남겨 둡니다.

하고 싶었던 일


  • JVMHeap 사용 상황 등의 메트릭스를 취득하고 싶었습니다.

  • 공식 문서는 아래에 있으므로 문서를 참고해 봅니다.
    JMX Checks

    Java Integration 사용



    Datadog는 기본적으로 Java 메트릭을 검색하지 않습니다.
    그래서 명시적으로 설정을 On으로 할 필요가 있습니다.
    사이드바의 Integration에서 Java를 검색하여 설정을 On으로 설정합니다.


    available을 클릭하고 상세 화면에서 install integration을 클릭합니다.



    jmx.yaml 추가



    다음으로 datagg-agent를 install한 서버내에 들어가, Java가 움직이고 있는 서버의 정보를 datagg-agent에게 가르쳐 줄 필요가 있습니다.

    datadog-agent는 디폴트로 다양한 integration의 컨피그 파일 예를 준비해 주고 있어, 이번은 그것을 복사해 그대로 사용합니다.
    $ cp /etc/dd-agent/conf.d/jmx.yaml.example  /etc/dd-agent/conf.d/jmx.yaml
    
    $ vim /etc/dd-agent/conf.d/jmx.yaml
    

    /etc/dd-agent/conf.d/jmx.yaml
    init_config:
    instances:
    -   host: localhost
        port: 7199
    

    port: 7199등 신경이 쓰이는 설정은 있습니다만, 그대로 사용합니다.

    datadog-agent 다시 시작



    설정 파일을 변경하면 agent를 restart하면 변경한 설정을 읽습니다.
    $ sudo /etc/init.d/datadog-agent restart
    

    하지만 값은 취할 수 없다.



    dashboard를 만들 때 jmx.hogehoge가 후보로 나올 것으로 예상하지만 나오지 않습니다.
    Listen하지 않는 port등을 지정하고 있었으므로 당연하다고 하면 당연합니다.

    결론부터 말하면 Java 어플리케이션 기동시에 JMX의 포트를 공개해 두지 않으면 값을 취할 수 없습니다.
    JMX란 무엇인가라고 하는 분은 이하를 참조해 주세요.
    JMX 정보

    시작 시 다음 옵션을 추가합니다.
    # jmxをonにする
    -Dcom.sun.management.jmxremote
    # jmxの情報を取得できるportを指定します。jmx.yamlで指定したportはここでの設定したportになります
    -Dcom.sun.management.jmxremote.port=7199
    # 通信時にsslをonにするかどうか。今回はlocalhostでの通信なのでOffにします。
    -Dcom.sun.management.jmxremote.ssl=false
    # password認証をするか
    -Dcom.sun.management.jmxremote.authenticate=false
    -Dcom.sun.management.jmxremote.local.only=true
    

    추가하면



    jvm이 접두사에 붙는 메트릭이 이제 Datadog 콘솔에 표시됩니다.

    좋은 웹페이지 즐겨찾기