JMX 커넥터

JMX 커넥터 (JMX connector)

JMX 커넥터는 Trino 클러스터의 모든 노드에서 Java Management Extensions(JMX) 정보를 질의할 수 있게 해 줘요. 모니터링이나 디버깅에 매우 유용해요. JMX는 JVM과 그 안에서 실행되는 모든 소프트웨어에 대한 정보를 제공해요. Trino 자체도 JMX로 많이 계측(instrument)되어 있어요.

출처: 문서

본문

이 커넥터는 선택된 JMX 정보를 주기적으로 덤프해 메모리에 저장해 나중에 접근할 수 있도록 구성할 수도 있어요.

설정 (Configuration)

JMX 커넥터를 구성하려면 etc/catalog/example.properties 카탈로그 속성 파일을 만들고 다음 내용을 넣으세요:

connector.name=jmx

current 스키마는 노드의 현재 JMX 상태를 질의해요. 선택한 JMX 정보를 주기적으로 덤프하려면 jmx.dump-tables를 지정하세요:

connector.name=jmx
jmx.dump-tables=java.lang:type=Runtime,trino.execution.scheduler:name=NodeScheduler
jmx.dump-period=10s
jmx.max-entries=86400

JMX 이름에 쉼표가 포함된 객체는 백슬래시로 이스케이프해야 해요:

connector.name=jmx
jmx.dump-tables=trino.memory:name=general\\,type=memorypool,trino.memory:name=reserved\\,type=memorypool

여러 줄로도 쓸 수 있어요:

connector.name=jmx
jmx.dump-tables=trino.memory:name=general\\,type=memorypool,\
    trino.memory:name=reserved\\,type=memorypool

쿼리 예시

사용 가능한 테이블 확인:

SHOW TABLES FROM example.current;

JVM 런타임 정보:

SELECT node, vmname, vmversion
FROM example.current."java.lang:type=runtime";
                 node                 |              vmname               | vmversion
--------------------------------------+-----------------------------------+-----------
 ddc4df17-0b8e-4843-bb14-1b8af1a7451a | Java HotSpot(TM) 64-Bit Server VM | 24.60-b09
(1 row)

운영체제 정보:

SELECT openfiledescriptorcount, maxfiledescriptorcount
FROM example.current."java.lang:type=operatingsystem";
 openfiledescriptorcount | maxfiledescriptorcount
-------------------------+------------------------
                     329 |                  10240
(1 row)

와일드카드로 여러 객체를 조회할 수 있어요:

SELECT freebytes, node, object_name
FROM example.current."trino.memory:*type=memorypool*";
 freebytes  |  node   |                       object_name
------------+---------+----------------------------------------------------------
  214748364 | example | trino.memory:type=MemoryPool,name=reserved
 1073741825 | example | trino.memory:type=MemoryPool,name=general
  858993459 | example | trino.memory:type=MemoryPool,name=system
(3 rows)

history 스키마에서 덤프된 과거 정보를 조회할 수 있어요:

SELECT "timestamp", "uptime" FROM example.history."java.lang:type=runtime";
        timestamp        | uptime
-------------------------+--------
 2016-01-28 10:18:50.000 |  11420
 2016-01-28 10:19:00.000 |  21422
 2016-01-28 10:19:10.000 |  31412
(3 rows)

더 알아보기 (Learn more)

JMX로 Trino를 모니터링하는 방법이 궁금하다면 JMX로 모니터링 문서를 이어서 읽어 보세요.