에이전트 설정
플로우캣은 에이전트와 수집 서버의 원활한 통신을 돕고, 올바른 데이터 수집을 위해 다양한 환경 변수를 제공합니다.
플로우캣 에이전트의 환경 변수는 flowkat.conf 파일에 작성합니다.
플로우캣 에이전트 특징
- 플로우캣 에이전트는 flowkat.conf 파일에 작성된 환경 변수를 읽어 에이전트의 기본 속성을 설정합니다.
- 별도 설정이 없는 경우 자기 자신(flowkat.agent.jar)이 위치한 디렉터리에서 conf/flowkat.conf 파일을 찾습니다.
- 5초에 한번씩 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
수집 서버 IPnet_collector_udp_port
수집 서버 UDP listen portnet_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
환경 변수를 추가합니다.
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 옵션을 추가합니다.
-Dflowkat.config='에이전트 설치 전체 경로/Aservice.conf'
-Dflowkat.config='에이전트 설치 전체 경로/Bservice.conf'
flowkat.conf 설정 파일은 반드시 ${FLOWKAT_HOME}
경로에 있어야 읽을 수 있습니다.
방문자 구분 설정
플로우캣 에이전트는 방문자를 구분하기 위해 다양한 옵션을 제공합니다.
Remote IP
Remote IP를 사용하여 방문자를 구분합니다. Remote IP는 정확한 방문자를 구분하는 데 한계가 있습니다.
trace_user_mode=0
쿠키
기본값으로 쿠키를 사용하여 방문자를 구분합니다. 모든 접속 클라이언트를 대상으로 FLOWKAT이라는 쿠키에 UUID를 저장합니다.
trace_user_mode=2
쿠키 지정
임의의 쿠키 이름을 설정하여 방문자를 구분합니다.
#예시
trace_user_mode=1
trace_user_session_key=JSESSIONID
Header Key
HTTP 헤더에 전달되는 값으로 방문자를 구분합니다.
#예시
trace_user_mode=3
trace_user_session_key=X-VIRTUAL-USER
로그 설정
에이전트 로그 관리 설정을 가이드합니다.
로그 파라미터
Key | 기본값 | 실시간 설정 지원 여부 | 설명 |
---|---|---|---|
log_enabled | false | O | 로그 설정 여부 |
log_dir | $FLOKAT_AGENT_HOME/logs | O | 로그 파일 경로 |
log_rotation_enabled | true | O | 로그 파일을 날짜별로 저장하는 기능을 활성화 |
log_keep_days | 7 | O | 로그 파일 보관 개수 |
로그 파일 경로
기본값은에이전트가 설치된 파일
/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_ip | 127.0.0.1 | O | 수집 서버 IP |
net_collector_udp_port | 6100 | O | 수집 서버 UDP Port |
net_collector_tcp_port | 6100 | O | 수집 서버 TCP Port |
net_collector_tcp_so_timeout_ms | 60000 | X | 수집 서버와 통신하는 TCP 세션의 Socket Timeout(ms) |
net_collector_tcp_connection_timeout_ms | 3000 | X | 수집 서버와 통신하는 TCP 세션 Connection Timeout(ms) |
net_udp_packet_max_bytes | 60000 | X | 수집 서버에 UDP로 수집 데이터 전송 시 보내는 최대 패킷 사이즈 |
트랜잭션 설정
애플리케이션의 성능은 트랜잭션들의 성능으로 요약할 수 있습니다. 트랜잭션 성능은 트랜잭션 시작에서부터 종료 시점, 응답시간 및 자원 사용량 혹은 트랜잭션 호출자 속성 등의 정보를 포함합니다. 기본적으로 트랜잭션 응답 분포와 트랜잭션 통계를 통해서 애플리케이션의 성능을 분석할 수 있습니다.
트랜잭션이란? 웹서비스(URL)에 대한 HTTP Request를 받아 Response를 반환하는 과정
프로파일 파라미터
Key | 기본값 | 실시간 설정 지원 여부 | 설명 |
---|---|---|---|
profile_step_max_count | 1024 | O | Profile Buffer Size |
profile_http_querystring_enabled | false | O | Http Query String 프로파일 |
profile_http_header_enabled | false | O | Http Header 프로파일 |
profile_http_parameter_enabled | false | O | Http Parameter 프로파일 |
profile_fullstack_service_error_enabled | false | O | Service 에러 발생 시 Stack 프로파일 |
profile_fullstack_apicall_error_enabled | false | O | Apicall 에러 발생 시 Stack 프로파일 |
profile_fullstack_sql_error_enabled | false | O | SQL 에러 발생 시 Stack 프로파일 |
profile_fullstack_max_lines | 100 | O | 에러 발생 시 Stack 프로파일 라인 수 |
- profile_step_max_count: 최소 버퍼 사이즈 값은 128 입니다. 128 이하로 설정 시 최소 설정값으로 자동 설정됩니다.
- Apicall/Service/SQL 에러 발생 시 StackTrace 기본 최대 수집 라인 개수는 100라인입니다.
프로파일 트레이싱 파라미터
Key | 기본값 | 실시간 설정 지원 여부 | 설명 |
---|---|---|---|
trace_service_name_header_key | NULL | O | 지정된 Header 값을 Service Name에 추가 |
trace_service_name_get_key | NULL | O | 지정된 Get 파라미터를 Service Name에 추가 |
trace_service_name_post_key | NULL | O | 지정된 Post 파라미터를 Service Name에 추가 |
trace_activeserivce_yellow_time | 3000 | O | Active Thread Warning Time(ms) |
trace_activeservice_red_time | 8000 | O | Active Thread Fatal Time(ms) |
trace_http_client_ip_header_key | NULL | O | Remote IP 헤더 Key 정의 |
trace_user_session_key | JSESSIONID | O | User ID를 위한 JSession Key |
trace_user_mode | 2 | O | User 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_patterns | NULL | X | 메소드 후킹 대상 패턴 |
hook_method_exclude_patterns | NULL | X | 메소드 후킹 대상 제외 패키지(wildcard 사용 가능) |
hook_method_access_public_enabled | true | X | Public 메소드 후킹 활성화 |
hook_method_access_private_enabled | false | X | Private 메소드 후킹 활성화 |
hook_method_access_protected_enabled | false | X | Protected 메소드 후킹 활성화 |
- 패턴(Patterns) 설정 방법
- 후킹 파라미터명이 patterns로 끝나는 경우 아래의 형식으로 사용할 수 있습니다.
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*
: 인식되지 않음, 메소드명에는*
를 조합하여 사용할 수 없음.
- com.card.
에러 표시 파라미터
Key | 기본값 | 실시간 설정 지원 여부 | 설명 |
---|---|---|---|
xlog_error_on_sqlexception_enabled | true | O | SQL 에러 발생 시 에러 표시 여부 |
xlog_error_on_apicall_exception_enabled | true | O | 외부로 요청한 통신에서 에러 발생 시 에러 표시 여부 |
xlog_error_sql_time_max_ms | 30000 | O | SQL 수행 시간 기준이 해당 설정 이상일 경우 에러 표시 여부 |
xlog_error_jdbc_fetch_max | 10000 | O | SQL의 fetch 건수 기준이 해당 설정 이상일 경우 에러 표시 여부 |
XLOG 차트에서 에러를 표시할 수 있는 설정입니다.