본문으로 건너뛰기

에이전트 설정

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

플로우캣 에이전트의 환경 변수는 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 차트에서 에러를 표시할 수 있는 설정입니다.