티스토리 뷰

반응형

NiFi 에 Scouter APM 툴을 적용해서 모니터링 하기

 

SpringBoot 기반의 RESTful API 서비스를 운영하면서 Scouter APM 툴을 요긴하게 잘 사용했습니다.

이렇게 좋은 툴을 오픈소스로 공개해주신 분들께 아주 감사하죠.

제니퍼 같은 상용 툴도 좋지만 이것 만으로도 충분히 성능 측정 및 모니터링, 프로파일링이 가능해서 좋습니다.

 

그러다 다른 애플리케이션 운영을 하게 되었는데 NiFi 툴을 이용한 Data Movement 서비스였습니다.

듣지도 보지도 못한 NiFi.... 보니 Java 애플리케이션이긴 한데 개념도 생소하고 WEB UI에서 그리는 프로세스 그룹? 프로세서? 등의 용어들도 생소하더군요.

 

분명히 NiFi로 개발/운영하시는 분들 중에 Scouter를 적용하고 싶으신 분들도 계실 테니 몇 번의 시행착오를 통해 나름? 성공한 방법을 공유합니다.

 

1. NiFi 구동스크립트(nifi.sh)를 수정하면 안 되고/conf/bootstrap.conf 파일에 설정을 해야 합니다.

   구동 스크립트에 적용하고 성공한 줄 알고 좋아했다가 Java 힙 메모리가 20메가 정도만 잡히는 게 이상했었는데,

   그것은 org.apache.nifi.bootstrap.RunNiFi 프로세스에 적용한 것이었고  bootstrap.conf 에 적용해야 실질적으로 일하는  org.apache.nifi.NiFi 프로세스를 모니터링합니다.

 

nifi.sh 일부
bootstrap.conf 일부 (JVM옵션에 추가할 내용을 java.arg.N 형식으로 추가하면 NiFi 구동시 적용됩니다)

 

2.  아래 URL을 참조해서 Java Agent Config 설정을 합니다.

https://github.com/scouter-project/scouter/blob/master/scouter.document/use-case/NON-HTTP-Service-Trace_kr.md



  1) NiFI WEB에서 조작을 하거나 API 호출에 대한 것을 보기 싫으면 맨 아래 xlog_discard_service_patterns 옵션 주석을 해제하면 됩니다.

  2) 저는 주요? 프로세서 실행상황을 모니터링하려고 hook_method_patterns 옵션에 각 프로세서의 onTrigger 메서드를 후크했습니다. --> 이건 필요에 따라서 대상을 확대/축소하면 될 거 같아요.

 

hook_method_patterns=org.apache.nifi.processors.standard.LogMessage.onTrigger,org.apache.nifi.processors.standard.PutDatabaseRecord.onTrigger,org.apache.nifi.processors.standard.PutFTP.onTrigger

_trace_auto_service_enabled=true
_trace_auto_service_backstack_enabled=true

#hook_method_patterns=
hook_method_access_public_enabled=true
hook_method_access_private_enabled=false
hook_method_access_protected_enabled=false
hook_method_access_none_enabled=false
hook_method_ignore_prefixes=get,set

#xlog_discard_service_patterns=/nifi/*,/nifi-api/*

agent.java의 scouter.conf 파일

 

 

Xlog 화면에서 오류가 발생한 프로세서의 프로파일링 정보를 확인하는 모습


언젠가 누군가에게 도움이 될 것이라 확신을 가지며 마칩니다^^

반응형
댓글
최근에 올라온 글