jetalog.net

Jetronome Client


Jetronome Client는 Application의 상태를 모니터링 할 수 있는 가장 간단한 방법입니다.

License: MIT License


Features

- 주기적 실행 여부 확인

- 실행 중인 PC의 자원 확인


Install

- 점검할 Node.js 프로젝트에서 다음 명령을 실행합니다.

npm i --save jetronome-client


Usage

초기화와 함께 신호 발생 시작

require('./jetronome-client').init({
    name: 'Dummy App', // Application Name (required)
    description: 'This is a test application.', // Description (required)
    server: 'http://localhost', // Jetronome Server (required)
    port: 7828, // Jetronome Server Port (optional) (default: 7828)
    interval: 3000, // Signal Interval (optional) (default: 3000)
    testApi: 'http://localhost/api/test', // App Test API (optional)
    autoStart: true,
});

- 모니터링 할 Node.js 프로젝트의 적당한 위치에 위 코드를 입력합니다. 일반적으로는 초기화 직후에 사용합니다.

- 2: Application의 이름을 지정합니다. Jetronome Server는 각 App의 이름을 기준으로 신호를 확인하기 때문에 고유한 값을 가져야 합니다.

- 3: Application에 대한 설명을 간략히 입력합니다.

- 4: Jetronome Server의 위치를 입력합니다. IP 혹은 도메인을 입력합니다.

- 5: Jetronome Server가 사용 중인 포트를 입력합니다.

- 6: 신호 발생 주기를 입력합니다. Jetronome Server는 처음 약속된 신호 발생 주기의 3배의 시간 동안 신호가 수신 되지 않으면 오류로 간주합니다.

- 7: 이 Application의 상태를 확인할 수 있는 API를 입력합니다. 만약 Test API가 존재하는 경우 Jetronome Server가 매 신호 주기마다 Test API로 접속을 시도합니다.

- 8: 초기화 후 자동으로 신호를 발생할지 여부입니다.


초기화 후 신호 발생 시작

const jetronome = require('./jetronome-client');
jetronome.init({
    name: 'Dummy App', // Application Name (required)
    description: 'This is a test application.', // Description (required)
    server: 'http://localhost', // Jetronome Server (required)
    port: 7828, // Jetronome Server Port (optional) (default: 7828)
    interval: 3000, // Signal Interval (optional) (default: 3000)
    testApi: 'http://localhost/api/test', // App Test API (optional)
});
 
setTimeout(() => {
    jetronome.start();
}, 5000);

- 2~9: 초기화를 진행합니다.

- 11: 신호 발생을 시작합니다.


Advanced Use

Test API

Jetronome Client가 모니터링 할 수 없는 점검은 Test API를 제공하여 모니터링 할 수 있습니다.

Jetronome Server는 제공된 Test API의 HTTP Status Code를 확인합니다.

예를 들어 Dummy App이 DB 서버와 연결되어 있는 경우 Test API에서 DB 서버와 연결이 정상인지 반환할 수 있습니다.

만약 정상이라면 200을 반환하고 이상이 있다면 500을 반환하도록 하면, Jetronome Server가 지속적으로 DB 서버와의 연결 상태를 확인할 수 있을 것입니다.


System 자원 (0.1.4~)

Jetronome Client는 주기적으로 시스템 자원의 사용률을 조회합니다.

CPU와 메모리는 OS에 무관하게 동일하지만 디스크에 경우는 조금 다릅니다. 이에 따라 기본적으로 Windows는 C드라이브를, *nix (Linux, MacOS)는 루트(/)를 기준으로 조회합니다.


특정 경로(예: D드라이브)를 수집하고자 하면 아래와 같이 초기화를 진행합니다.

const jetronome = require('./jetronome-client');
jetronome.init({
    name: 'Dummy App',
    description: 'This is a test application.',
    server: 'http://localhost',
    advancedOptions: { diskPath: 'D:' },
});


만약 C드라이브와 D드라이브를 합산하여 조회하고자 하거나, 특정 파일의 크기 등을 조회하고자 한다면 본 기능을 이용하는 것보다 Test API를 이용해 구현하는 것이 더 적합합니다.


Feedback

Github Repository

https://github.com/jetronome/jetronome-client


Blog

https://jetalog.net/79