TECH ARTICLE

제니퍼 성능 데이터 RDB에 적재해서 활용하기

제니퍼 성능 데이터를 SQL를 활용해서 사용하고 싶다는 고객 요구사항을 위해, 제니퍼 R&D팀에서 연구 개발 통해 2가지 방법으로 제니퍼 데이터를 SQL로 사용할 수 있는 기능을 제공한다고 이전 기술 블로그 “제니퍼 API서버 활용하기”에서 소개해 드렸었습니다.

이번 글은 제니퍼 데이터 SQL로 활용하기 2번째 방법을 소개합니다.

제니퍼 뷰 서버가 제니퍼 성능데이터를 읽어서 직접 관계형 데이터베이스에 제니퍼 데이터를 각 성능별 테이블에 적재하고 이를 사용자가 데이터베이스 접속해서 자유롭게 제니퍼 데이터를 활용하는 방식입니다.

아래의 그림에서 보시는 것과 같이 제니퍼 뷰 서버가 제니퍼 성능데이터를 데이터베이스 (오라클, mysql, postgres)에 주기적으로 적재해 주게 됩니다.

제니퍼 성능데이터 데이터베이스 적재 흐름도

현재 제니퍼 뷰 서버에서 성능데이터 적재를 위해 지원하는 데이터베이스는 오라클 12, Mysql 5.7, Postgres 9.x입니다. 그리고 데이터 종류는 다음과 같습니다.

  • 도메인 메트릭스 (5분/1시간/하루)
  • 인스턴스 매트릭스 (5분/1시간/하루)
  • 애플리케이션 데이터 (하루)
  • X-View 데이터(1분)

어떤 종류의 데이터가 어떤 테이블에 저장되는지는 아래의 테이블을 참고해 주세요.

DOMAIN_INFO 도메인 정보 저장
DOMAIN_METRIC_1DAY 하루치 도메인 메트릭 저장(summary 계열만 저장)
DOMAIN_METRIC_1HOUR 한시간 평균 도메인 매트릭 저장
DOMAIN_METRIC_5MIN 5분평균 도메인 매트릭 저장
INSTANCE_INFO 인스턴스 정보 저장
INSTANCE_METRIC_1DAY 하루치 인스턴스 매트릭 저장(summary 계열만 저장)
INSTANCE_METRIC_1HOUR 한시간평균 인스턴스 매트릭 저장
INSTANCE_METRIC_5MIN 5분평균 인스턴스 매트릭 저장
APPLICATION_METRIC_1DAY 하루치 애플리케이션 통계 저장 (시간단위는 지원 안함)
TRANSACTION_{domain_id}_YYYYMMDD X-View 트랜잭션 데이터 저장

실제 구성하고 사용하는 방법을 살펴볼까요?

일단 server.vier/lib디렉토리에 제니퍼 성능 데이터를 적재할 데이터베이스jdbc 드라이버를 복사해서 넣어 줍니다.

그리고 server.view/conf/server_view.conf에 아래의 옵션만 추가해 주시면 간단하게 제니퍼 성능 데이터를 데이터베이스로 적재할 수 있습니다.

rdb_export_jdbc_driver_class_name=oracle.jdbc.OracleDriver
rdb_export_jdbc_url=jdbc:oracle:thin:@192.168.9.210:1521/JENNIFER

# RDB 사용자 및 암호 
rdb_export_jdbc_user=jennifer
rdb_export_jdbc_password=jennifer

# RDB로 저장할 종류의 도메인id를 콤마로 넣는다 
rdb_export_instance_metric_domain=1004,7002,7908
rdb_export_domain_metric_domain=1004,7002,7908
rdb_export_application_metric_domain=1004,7002,7908
rdb_export_transaction_domain=1004,7002,7908

설정 후 제니퍼 뷰 서버를 재기동하시면 그걸로 모든 설정은 마치게 됩니다.
정상적으로 데이터 적재가 이루어 지고 있다면 제니퍼 뷰 서버 로그파일에서 아래와 같은 로그 메세지를 볼 수 있을 것입니다.

2020-07-24 17:19:10.678 [main] INFO  com.aries.view.export.RDBExportLog - RDB Export: Enabled. config=RDBExportConfig(connection=Connection(driverClassName=oracle.jdbc.OracleDriver, url=jdbc:oracle:thin:@192.168.9.230:1521/JENNIFER, user=jennifer, password=████), instanceMetric=Category(domainIds=[1004, 7002, 7908], batch=false), domainMetric=Category(domainIds=[1004, 7002, 7908], batch=false), applicationMetric=Category(domainIds=[1004, 7002, 7908], batch=true), transaction=Category(domainIds=[1004, 7002, 7908], batch=false), batchMinuteOffsetInDay=925)
2020-07-24 17:19:11.735 [:ME:RDBExportBatch:Running:com.aries.view.export.RDBExporter$start$1] INFO  com.aries.view.export.RDBExportLog - RDB Export: Test connection succeeded. url=jdbc:oracle:thin:@192.168.9.230:1521/JENNIFER

여기서 로그 메시지 읽는 법 몇 가지를 예시를 통해 설명해 드리겠습니다.

예제 1)

RDB Export: Exported. table=instance_metric_5min, domain=7002, range=2020-07-26T13:55~PT5M, records=3, elapsed=0s

이 메시지는 도메인 7002의 인스턴스 매트릭스 중 13:55-14:00까지의 3개 메트릭을 저장하는데 소요되는 시간은 0초라는 의미입니다.

예제 2)

RDB Export: Exported. table=domain_metric_1hour, domain=1004, range=2020-07-26T13:00~PT1H, records=1, elapsed=0s

이 메시지는 도메인 1004의 도메인 매트릭 중 13:00 – 14:00까지의 1개 매트릭을 저장하는데 소요되는 시간은 0초라는 의미입니다.

예제 3)

RDB Export: Exported. table=application_metric_1day, domain=1004, range=2020-07-25T00:00~PT24H, records=1380, elapsed=0s

도메인 1004의 7월 25일 전체 애플리케이션 통계 1380건을 저장하는데 걸린 시간은 0초라는 의미입니다.

예제 4)

RDB Export: Exported. table=transaction_7908_20200726, domain=7908, range=2020-07-26T14:13~PT1M, records=634, elapsed=3s

도메인 7908의 X-View 데이터 중 14:13 – 14:14까지의 데이터 634건을 저장하는데 걸린시간은 3초 라는 의미입니다.

메시지 내용이 직관적으로 표현되어 있어 쉽게 읽고 확인할 수 있습니다.

이제 실제 쿼리를 수행해서 제니퍼 성능 데이터를 조회해 보겠습니다.

인스턴스 매트릭스 5분 평균데이터 조회 예
도메인 매트릭스 1시간 평균 데이터 조회 예
X-View 트랜잭션 테이터 조회 예
애플리케이션 통계정보 조회 예

이상으로 제니퍼 성능데이터 활용하기 2번째 방법인 RDB에 적재해서 사용하는 방법을 살펴보았습니다.

좀 더 구체적인 사용 방법이 궁금하시다면 tech@jennifersoft.com로 문의해 주세요.

감사합니다.

Next

Contact Us

안녕하세요? 제니퍼소프트입니다.
기술 문의의 경우 질문자의 회사/이름/연락처를 본문에 기술해 주셔야만 원할한 지원이 가능합니다.
보내주신 문의 사항을 검토하여 빠른 시일 내에 답변해 드리겠습니다.

  • Chris
  • Irene

메일을 보냈습니다.

메일 전송이 완료되었습니다.
빠른 시일 내에 답변드리겠습니다.
감사합니다.
제니퍼소프트 웹사이트는 쿠키를 사용합니다. 쿠키에 대한 자세한 정보 및 삭제 방법은 제니퍼소프트의 개인정보처리방침을 참고하시기 바라며 본 사이트를 계속해서 이용하는 것은 제니퍼소프트의 쿠키 사용에 동의함을 의미합니다.