티스토리 뷰
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 프로세스를 모니터링합니다.
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 화면에서 오류가 발생한 프로세서의 프로파일링 정보를 확인하는 모습
언젠가 누군가에게 도움이 될 것이라 확신을 가지며 마칩니다^^
'IT&MAC Life' 카테고리의 다른 글
복직 후 새로운 IT 기술 환경에서 일하게 되었습니다. (0) | 2020.06.19 |
---|---|
Galaxy Note 10 S-Pen 교체기 (0) | 2019.12.24 |
CJ택배 스미싱 문자 받고 앱까지 설치했네요 ㅠㅠ (13) | 2019.07.11 |
음원 유통의 혁신 '아이튠즈(iTunes)' 18년만에 안녕~ 잘가~ (0) | 2019.06.04 |
스마트폰(태블릿)을 이용하여 CCTV 카메라 구축하기 (0) | 2019.05.29 |