본문으로 건너뛰기

에이전트 설정

플로우캣은 에이전트와 수집 서버의 원활한 통신을 돕고, 올바른 데이터 수집을 위해 다양한 환경 변수를 제공합니다.

플로우캣 에이전트의 환경 변수는 flowkat.conf 파일에 작성합니다.

플로우캣 에이전트 특징

  • 플로우캣 에이전트는 flowkat.conf 파일에 작성된 환경 변수를 읽어 에이전트의 기본 속성을 설정합니다.
  • 별도 설정이 없는 경우 자기 자신(flowkat.agent.jar)이 위치한 디렉터리에서 conf/flowkat.conf 파일을 찾습니다.
  • 5초에 한번씩 flowkat.conf 파일의 변경 여부를 체크하고 다시 읽어 에이전트 속성을 반영합니다.

기본 설정

에이전트가 데이터를 수집하고, 수집 서버로 데이터를 전송하기 위해서는 서버 주소가 필요합니다.

flowkat.conf
obj_name=flowkat-01
net_collector_ip=127.0.0.1
net_collector_udp_port=6100
net_collector_tcp_port=6100
  • obj_name 모니터링 대상의 별칭
  • net_collector_ip 수집 서버 IP
  • net_collector_udp_port 수집 서버 UDP listen port
  • net_collector_tcp_port 수집 서버 TCP listen port

에이전트 이름 식별

플로우캣은 설치된 에이전트를 식별하기 위해 서버의 호스트네임과 flowkat.conf 파일에 설정된 obj_name을 조합하여 사용합니다.

  • /$obj_host_name/$obj_name ex) /prod-card-ws-1/gateway01, /prod-card-ws-5/market02

에이전트가 설치된 서버의 호스트네임을 변경해야 하는 경우, obj_host_name 환경 변수를 추가합니다.

flowkat.conf 파일 변경
obj_name=flowkat-01
obj_host_name=apm-gs
net_collector_ip=127.0.0.1
net_collector_udp_port=6100
net_collector_tcp_port=6100

에이전트 이름은 모니터링 단위의 고유값이어야 하며, 에이전트 이름을 변경하면 이전 데이터와 연결되지 않습니다.

여러 애플리케이션 서버의 설정 파일 관리

한 서버에 여러 개의 애플리케이션을 운영할 경우, 각 애플리케이션별 설정 파일을 별도로 관리하려면 flowkat.conf 파일명을 변경하고 시작 스크립트에 JVM 옵션을 추가합니다.

자바 인스턴스 서비스-A
-Dflowkat.config='에이전트 설치 전체 경로/Aservice.conf'
자바 인스턴스 서비스-B
-Dflowkat.config='에이전트 설치 전체 경로/Bservice.conf'

flowkat.conf 설정 파일은 반드시 ${FLOWKAT_HOME} 경로에 있어야 읽을 수 있습니다.

방문자 구분 설정

플로우캣 에이전트는 방문자를 구분하기 위해 다양한 옵션을 제공합니다.

Remote IP

Remote IP를 사용하여 방문자를 구분합니다. Remote IP는 정확한 방문자를 구분하는 데 한계가 있습니다.

flowkat.conf
trace_user_mode=0

쿠키

기본값으로 쿠키를 사용하여 방문자를 구분합니다. 모든 접속 클라이언트를 대상으로 FLOWKAT이라는 쿠키에 UUID를 저장합니다.

flowkat.conf
trace_user_mode=2

쿠키 지정

임의의 쿠키 이름을 설정하여 방문자를 구분합니다.

flowkat.conf
#예시
trace_user_mode=1
trace_user_session_key=JSESSIONID

Header Key

HTTP 헤더에 전달되는 값으로 방문자를 구분합니다.

flowkat.conf
#예시
trace_user_mode=3
trace_user_session_key=X-VIRTUAL-USER

로그 설정

에이전트 로그 관리 설정을 가이드합니다.

로그 파라미터

Key기본값실시간 설정 지원 여부설명
log_enabledfalseO로그 설정 여부
log_dir$FLOKAT_AGENT_HOME/logsO로그 파일 경로
log_rotation_enabledtrueO로그 파일을 날짜별로 저장하는 기능을 활성화
log_keep_days7O로그 파일 보관 개수
  • 로그 파일 경로 기본값은 에이전트가 설치된 파일/logs 입니다.
  • log_dir 에이전트가 로그 파일 경로의 쓰기 권한이 없을 시 로그 파일은 생성되지 않습니다.
  • log_rotation_enabled=true 설정 시 로그 파일명은 flowkat-$obj_name-yyyyMMdd.log 형태로 저장합니다.
  • log_rotation_enabled=false 설정 시 로그 파일명은 flowkat-$obj_name.log 형태로 저장합니다.

obj_name 설정값을 boot로 설정 시 로그파일은 생성 되지 않습니다.

통신 설정

에이전트가 애플리케이션 서버로부터 수집한 데이터를 수집 서버로 전송하기 위한 네트워크 설정 가이드입니다. 주요 설정 옵션으로는 수집 서버 호스트, 포트, 타임아웃, 네트워크 전송 크기 등이 있으며, 에이전트의 안정적인 서버 통신을 보장하는 데 중요합니다.

통신 파라미터

Key기본값실시간 설정 지원 여부설명
net_collector_ip127.0.0.1O수집 서버 IP
net_collector_udp_port6100O수집 서버 UDP Port
net_collector_tcp_port6100O수집 서버 TCP Port
net_collector_tcp_so_timeout_ms60000X수집 서버와 통신하는 TCP 세션의 Socket Timeout(ms)
net_collector_tcp_connection_timeout_ms3000X수집 서버와 통신하는 TCP 세션 Connection Timeout(ms)
net_udp_packet_max_bytes60000X수집 서버에 UDP로 수집 데이터 전송 시 보내는 최대 패킷 사이즈

트랜잭션 설정

애플리케이션의 성능은 트랜잭션들의 성능으로 요약할 수 있습니다. 트랜잭션 성능은 트랜잭션 시작에서부터 종료 시점, 응답시간 및 자원 사용량 혹은 트랜잭션 호출자 속성 등의 정보를 포함합니다. 기본적으로 트랜잭션 응답 분포와 트랜잭션 통계를 통해서 애플리케이션의 성능을 분석할 수 있습니다.

트랜잭션이란? 웹서비스(URL)에 대한 HTTP Request를 받아 Response를 반환하는 과정

프로파일 파라미터

Key기본값실시간 설정 지원 여부설명
profile_step_max_count1024OProfile Buffer Size
profile_http_querystring_enabledfalseOHttp Query String 프로파일
profile_http_header_enabledfalseOHttp Header 프로파일
profile_http_parameter_enabledfalseOHttp Parameter 프로파일
profile_fullstack_service_error_enabledfalseOService 에러 발생 시 Stack 프로파일
profile_fullstack_apicall_error_enabledfalseOApicall 에러 발생 시 Stack 프로파일
profile_fullstack_sql_error_enabledfalseOSQL 에러 발생 시 Stack 프로파일
profile_fullstack_max_lines100O에러 발생 시 Stack 프로파일 라인 수
  • profile_step_max_count: 최소 버퍼 사이즈 값은 128 입니다. 128 이하로 설정 시 최소 설정값으로 자동 설정됩니다.
  • Apicall/Service/SQL 에러 발생 시 StackTrace 기본 최대 수집 라인 개수는 100라인입니다.

프로파일 트레이싱 파라미터

Key기본값실시간 설정 지원 여부설명
trace_service_name_header_keyNULLO지정된 Header 값을 Service Name에 추가
trace_service_name_get_keyNULLO지정된 Get 파라미터를 Service Name에 추가
trace_service_name_post_keyNULLO지정된 Post 파라미터를 Service Name에 추가
trace_activeserivce_yellow_time3000OActive Thread Warning Time(ms)
trace_activeservice_red_time8000OActive Thread Fatal Time(ms)
trace_http_client_ip_header_keyNULLORemote IP 헤더 Key 정의
trace_user_session_keyJSESSIONIDOUser ID를 위한 JSession Key
trace_user_mode2OUser ID 기준(0 : Remote Address, 1 : JSessionID, 2 : FlowKat Cookie)

trace_service_name_header_key, trace_service_name_get_key, trace_service_name_post_key 설정은 HTTP 서비스에서만 수행되며 해당 시점 Service Name은 URL입니다.

프로파일 메소드 후킹 파라미터

Key기본값실시간 설정 지원 여부설명
hook_method_patternsNULLX메소드 후킹 대상 패턴
hook_method_exclude_patternsNULLX메소드 후킹 대상 제외 패키지(wildcard 사용 가능)
hook_method_access_public_enabledtrueXPublic 메소드 후킹 활성화
hook_method_access_private_enabledfalseXPrivate 메소드 후킹 활성화
hook_method_access_protected_enabledfalseXProtected 메소드 후킹 활성화
  • 패턴(Patterns) 설정 방법
    • 후킹 파라미터명이 patterns로 끝나는 경우 아래의 형식으로 사용할 수 있습니다.
flowkat.conf
hook_method_patterns=com.card.*Controller.*,com.card.*Service.*,com.order.*Repository.*

마지막 마침표(.)를 구분자를 이용하여 클래스 이름과 메소드로 구분하며 와일드 카드(*)를 지원합니다. 대상이 여러 개인 경우 쉼표(,)로 구분합니다.

  • 패턴 설정 예시
    • com.card.*.* : com.card로 시작하는 패키지 내의 모든 클래스 내의 모든 메소드
    • com.card.Order.* : com.card.Order 클래스의 모든 메소드
    • com.card.*Service.* : com.card. 패키지의 클래스 중 Service로 끝나는 클래스의 모든 메소드
    • com.card.Order.findOrder : com.card.Order 클래스 메소드 중 findOrder 메소드
    • com.card.Order.find* : 인식되지 않음, 메소드명에는 *를 조합하여 사용할 수 없음.

에러 표시 파라미터

Key기본값실시간 설정 지원 여부설명
xlog_error_on_sqlexception_enabledtrueOSQL 에러 발생 시 에러 표시 여부
xlog_error_on_apicall_exception_enabledtrueO외부로 요청한 통신에서 에러 발생 시 에러 표시 여부
xlog_error_sql_time_max_ms30000OSQL 수행 시간 기준이 해당 설정 이상일 경우 에러 표시 여부
xlog_error_jdbc_fetch_max10000OSQL의 fetch 건수 기준이 해당 설정 이상일 경우 에러 표시 여부

XLOG 차트에서 에러를 표시할 수 있는 설정입니다.