JMX(Java Management Extensions)를 사용하여 Kafka 커넥터 모니터링하기¶
이 항목에서는 JMX(Java Management Extension)를 사용하여 Kafka용 Snowflake 커넥터를 모니터링하는 방법을 설명합니다. Kafka Connect는 Kafka 커넥터에 대한 정보를 제공하도록 사전 구성된 JMX 메트릭을 제공합니다. Kafka용 Snowflake 커넥터는 Kafka 환경에 대한 메트릭을 수집하는 데 사용할 수 있는 여러 MBeans(Managed Beans)를 제공합니다. Prometheus 및 Grafana를 포함한 서드 파티 도구로 이 정보를 로딩할 수 있습니다.
JMX 기능은 커넥터에서 기본적으로 활성화됩니다. JMX를 비활성화하려면 jmx
속성을 false
로 설정하십시오.
이 항목의 내용:
Kafka 커넥터에서 JMX 구성하기¶
JMX는 Snowflake Kafka 커넥터에서 기본적으로 활성화됩니다. Kafka에서 JMX를 활성화하려면 다음을 수행하십시오.
Kafka 설치에 연결할 JMX 활성화:
원격 서버에서 실행 중인 Kafka 설치에 JMX를 연결하려면 다음과 같이 Kafka Connect 시작 스크립트에
KAFKA_JMX_OPTS
환경 변수를 설정하십시오.export KAFKA_JMX_OPTS="-Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=<ip_address> -Dcom.sun.management.jmxremote.port=<jmx_port>"
여기서:
ip_address
: Kafka Connect 설치의 IP 주소를 지정합니다.jmx_port
: Kafka Connect가 JMX 연결을 수신하는 JMX 포트를 지정합니다.
같은 서버에서 실행 중인 Kafka에 JMX를 연결하려면 다음과 같이 Kafka 시작 스크립트에
JMX_PORT
환경 변수를 설정하십시오.export JMX_PORT=<port_number>
여기서
port_number
는 Kafka 설치의 JMX 포트입니다.
Kafka 커넥터를 다시 시작합니다.
Snowflake Kafka 커넥터 MBeans(Managed Beans) 사용하기¶
JMX는 MBeans를 사용해 모니터링할 수 있는 Kafka 내의 오브젝트를 나타냅니다(예: 스레드 수, CPU 부하 등). Snowflake Kafka 커넥터는 커넥터에서 관리하는 오브젝트에 액세스하기 위해 MBeans를 제공합니다. 이러한 MBeans를 사용하여 모니터링 대시보드를 만들 수 있습니다.
Kafka 커넥터 MBean 오브젝트 이름의 일반적인 형식은 다음과 같습니다.
snowflake.kafka.connector:connector=connector_name,pipe=pipe_name,category=category_name,name=metric_name
여기서:
connector=connector_name
은 Kafka 구성 파일에 정의된 커넥터의 이름을 지정합니다.pipe=pipe_name
은 데이터 수집에 사용되는 Snowpipe 오브젝트를 지정합니다. Kafka 커넥터는 각 파티션에 대한 Snowpipe 오브젝트를 정의합니다.category=category_name
은 MBean의 카테고리를 지정합니다. 각 카테고리에는 메트릭 세트가 포함됩니다.name=metric_name
은 메트릭의 이름을 지정합니다.
다음 섹션에는 Snowflake Kafka 커넥터에서 제공하는 카테고리와 메트릭의 이름이 나열되어 있습니다.
카테고리: file-counts
¶
이 메트릭 카테고리는 Snowpipe 기반 Kafka 커넥터에만 적용되며 Snowpipe Streaming에는 적용되지 않습니다.
메트릭 이름 |
데이터 타입 |
설명 |
---|---|---|
|
long |
현재 내부 스테이지에 있는 파일의 수. 이 값은 파일 제거 프로세스가 시작된 후에 감소합니다. 이 속성은 현재 내부 스테이지에 있는 파일 수의 추정치를 제공합니다. |
|
long |
|
|
long |
수집에 실패한 테이블 스테이지의 파일 수. |
|
long |
손상된 오프셋에 해당하는 테이블 스테이지에 있는 파일 수. |
|
long |
수집 상태를 확인한 후 내부 스테이지에서 제거한 파일 수. |
카테고리: offsets
¶
offsetPersistedInSnowflake
및 latestConsumerOffset
메트릭은 Snowpipe Streaming 기반 Kafka 커넥터에 적용됩니다. 이 카테고리의 나머지 부분은 Snowpipe 기반 Kafka 커넥터에만 적용됩니다.
메트릭 이름 |
데이터 타입 |
설명 |
---|---|---|
|
long |
메모리 내 버퍼로 전송된 가장 최근 레코드를 참조하는 오프셋. |
|
long |
버퍼 임계값에 도달한 후 내부 스테이지에서 플러시되는 레코드를 참조하는 오프셋. 버퍼는 시간, 레코드 수 또는 크기를 기준으로 임계값에 도달할 수 있습니다. |
|
long |
사전 커밋 API가 호출되고 호출된 Snowpipe |
|
long |
내부 스테이지에서 제거되는 레코드를 참조하는 오프셋. 이 숫자는 내부 스테이지에서 제거된 가장 최근 오프셋의 값입니다. |
|
long |
Snowflake에 유지되는 최신 데이터가 있는 레코드를 참조하는 오프셋입니다. 오프셋은 |
|
long |
메모리 내 버퍼로 전송된 가장 최근 레코드를 참조하는 오프셋. 채널 오프셋 토큰이 |
카테고리: buffer
¶
이 메트릭 카테고리는 Snowpipe 기반 Kafka 커넥터에만 사용할 수 있습니다.
메트릭 이름 |
데이터 타입 |
설명 |
---|---|---|
|
long |
버퍼 임계값을 기준으로, 내부 스테이지로 플러시되기 전에 버퍼 크기(바이트)를 반환합니다. 이 값은 내부 스테이지로 로딩 시 파일이 압축되므로 파일 크기와 같지 않을 수 있습니다. |
|
long |
버퍼 임계값을 기준으로, 버퍼가 내부 스테이지로 플러시되기 전에 메모리에 버퍼링된 Kafka 레코드 수를 반환합니다. |
카테고리: latencies
¶
이 메트릭 카테고리는 Snowpipe 기반 Kafka 커넥터에만 사용할 수 있습니다.
메트릭 이름 |
데이터 타입 |
설명 |
---|---|---|
|
long |
레코드를 Kafka에 넣은 시간과 레코드를 Kafka Connect로 가져온 시간 사이의 차이(초). 이 값이 레코드 내부에 설정되지 않은 경우에는 null일 수 있습니다. |
|
long |
파일이 내부 스테이지에 업로드된 시간과 |
|
long |
파일이 내부 스테이지에 업로드된 시간과 파일 수집 상태가 |