프로젝트/Pinpoint, Scouter 구축(APM)

Pinpoint - flink 연동 2

블랑v 2024. 1. 22. 17:51

https://csg1353.tistory.com/145

 

Pinpoint - Application Inspector 기능 적용 (Flink 연동)

https://pinpoint-apm.github.io/pinpoint/applicationinspector.html#application-inspector-1 How to use Application Inspector | Leading Open-Source APM English | 한글 Application Inspector 1. Introduction Application inspector provides an aggregate view of

csg1353.tistory.com

 

이전 게시글에서 이어서 리부트를 실행하였음.

 

환경 변수 밀어버린 이후 에러 발생 (테이블 확인 불가능 -> 테이블 날아감)

스크립트 확인 결과 이전 것들이 날아갔다.

 

조치 : 새로 스크립트 실행 후 테이블 생성

 

 

 

 

Collector Table 인식 에러 : Failed to get region location 
org.apache.hadoop.hbase.TableNotFoundException: AgentStatV2

 

Pinpoint Collector 실행 시 테이블을 읽어오지 못함. 분명 테이블이 존재하는데

 

Hbase 재설치 : https://peterica.tistory.com/32

 

[APM] PinPoint 설치 - 1편 - JAVA, hbase 설치

나의 첫 APM은 Splunk 전자결제팀 소속으로 근무할 때에 splunk를 사용하였다. 특정 거래의 transaction_id를 검색하며, client, Auth, Engin에서 수행된 로그를 한 눈에 볼 수 있었다. 데시보드에는 현재의 트

peterica.tistory.com

 

 

 

 

 

 

 

 

 

 

Flink

Web UI 설정

conf - yaml에서 rest 부분을 잘 설정해줄 것. 자세한 내용은 버전에 따른 자체 문서 확인

 

1. 주소 설정을 0.0.0.0 으로 broadcast해줄것 (localhost도 자체적으로 볼수 있다면 상관없음)

 

2. Please specify JAVA_HOME. Either in Flink config ./conf/flink-conf.yaml or as system-wide JAVA_HOME. <<- yaml 설정 통해 JAVA_HOME 적용  

 

Flink 클러스터 접속

1. Flink가 설치된 서버나 클러스터에 접속

2. Flink 서비스가 실행 중인지 확인.

./bin/start-cluster.sh 명령을 사용하여 Flink 클러스터를 시작


3. job 제출:

./flink 명령어를 실행하여 job을 제출. 이 때, Spring 프로필을 job parameter로 지정해야 한다.

클래스명 : JAR 파일은 하나 이상의 클래스를 포함할 수 있으며, 이 중 하나의 클래스가 메인 클래스로 지정되어야 함.

이 메인 클래스는 Flink 잡(job)의 진입점(entry point)으로 작용한다. Flink job을 실행하기 위해서는 이 메인 클래스의 이름을 명령어에 포함시켜야 한다. 

 

.. 라고 하지만 실제 명령어에 구체적으로 넣지 않아도 알아서 찾아서 실행하는 것 같다.


만약 메인 클래스의 이름을 모르는 경우, JAR 파일을 분석하여 찾아야 한다.

일반적으로 JAR 파일을 생성할 때 메인 클래스는 MANIFEST.MF 파일에 지정된다. JAR 파일 내의 META-INF/MANIFEST.MF 파일을 열어 Main-Class 속성을 확인하면 메인 클래스의 이름을 알 수 있다.

 

이런 식으로.. MANIFEST.MF 파일을 열어보자.



나의 경우는 이 명령어이다. (bin 폴더 내에 저장, bin에서 실행)

클래스명 명시하여 실행
sudo ./flink run -c com.navercorp.pinpoint.flink.StatStreamingVer2Job -Dspring.profiles.active=release pinpoint-flink-job-2.3.3.jar

혹은 생략해도 실행 자체는 된다.
sudo ./flink run pinpoint-flink-job-2.3.3.jar -Dspring.profiles.active=release

 

 

에러  1. LocalStreamEnvironment 문제 : jar 파일의 server 설정

https://github.com/pinpoint-apm/pinpoint/issues/10628

 

Pinpoint - Flink 설정 문제(LocalStreamEnvironment) · Issue #10628 · pinpoint-apm/pinpoint

Prerequisites Please check the FAQ, and search existing issues for similar questions before creating a new issue.YOU MAY DELETE THIS PREREQUISITES SECTION. [v] I have checked the FAQ, and issues an...

github.com

 

Local 폴더 내의 properties도 server로 설정하니 변경되었음.

 

local 폴더 내부의 flink.properties의 설정 역시 local이 아닌 server로 수정해주어야 한다.

 

에러  2. JobExecutionException 문제 : Flink 버전 문제였다.

1.6.x 버전이 호환되는데 1.16.x를 설치하였음. 

다시 설치하고 세팅하니 해결. 버전 관리를 확실하게 하자.

 

 

 

추가 세팅 + Collector And Web

 

https://pinpoint-apm.gitbook.io/pinpoint/documents/application-inspector#application-inspector-1

 

How to use Application Inspector - Pinpoint

Application inspector provides an aggregate view of all the agent's resource data (cpu, memory, tps, datasource connection count, etc) registered under the same application name. A separate view is provided for the application inspector with stat charts si

pinpoint-apm.gitbook.io

 

ref Docs

 

이전과 마찬가지로 .jar의 properties의 내부 값들을 변경해주자.

 

 

 

 

 

Hbase Web UI

기본 내장 설정 사용.

#HBase Root Directory: HBase 데이터를 저장할 파일 시스템의 경로를 설정
<property>
    <name>hbase.rootdir</name>
    <value>file:///opt/hbase-1.4.6/data/hbase_data</value>
</property>

#ZooKeeper 데이터 디렉토리: ZooKeeper가 사용할 데이터 디렉토리를 지정
<property>
    <name>hbase.zookeeper.property.dataDir</name>
    <value>/opt/hbase-1.4.6/data/zookeeper_data</value>
</property>


#HBase Master Web UI 포트
<property>
    <name>hbase.master.info.port</name>
    <value>16010</value>
</property>

정도만 hbase-site.xml에 적용하였다.