Posting

Machbase의 최신 소식을 지금 만나보세요

[MACHBASE 시각화] Grafana 연동 (기초)

Grafana는 대시보드를 쉽게 표현해 주는 오픈 소스 프로그램입니다. 사용해 본 경험이 있거나 현재 쓰고 있는 분들도 많을 것이라 생각됩니다. 물론 MACHBASE도 Grafana용 Datasource Plugin을 제공하고 있습니다. 이를 이용하면 Grafana에서 편리하게 Machbase에 저장되어 있는 data를 시각화 하실 수 있습니다.  이번 포스트에서는 MACHBASE와 Grafana를 연동하는 방법을 간단하게 보겠습니다. 여기서는 Windows 환경을 기준으로 설명드리겠습니다.

* Grafana는 Linux와 Windows 모두 지원 합니다. Grafana에 대한 자세한 사용법을 알고 싶다면,  Grafana 홈페이지를 참고해 주세요.

[1] 설치방법

[1-1] MWA(Machbase Web Analytics) 실행

Grafana용 datasource plugin을 사용하려면 MACHBASE의 MWA를 실행해 두어야 합니다. 아래는 윈도우 환경에서 MWA를 수행하는 방법입니다.

(1) Windows : 바탕화면의 Machbase를 실행하여 MWA를 실행(startup)

vnGJpJv.png

(2) Linux : 명령어를 사용해서 MWA를 실행하실 수 있습니다.

$MWAserver start
SERVER STARTED, PID : 8080
     Connection URL : http://192.168.0.33:5001


[1-2] Grafana 설치

아래의 순서에 따라 Grafana 설치를 진행해 주세요.

(1) 아래의 URL에 접속해서 원하는 OS의 파일을 다운로드 받는다.

https://grafana.com/grafana/download

(2) 다운로드 받은 zip파일의 압축을 원하는 위치에 푼다. 예) D:\grafana-4.4.3

(3) MACHBASE용 Datasource plugin 파일(machbase.zip) 확인 

해당 파일은 {Machbase 설치경로}\machbase_home\3rd-party\grafana 경로에 있습니다. 만일 없다면 패키지를 다시 다운로드 해 주시기 바랍니다.

(4) Datasource plugin 파일 압축 해제

{Grafana 설치경로}\data\plugins 경로의 아래에 MACHBASE경로를 만들고 압축을 풀어주세요. 그리고 폴더명은 반드시 machbase여야 합니다.

dyZla3Y.png

(5) 파일 실행

설치된 경로 밑의 bin 폴더에 있는 grafana-server.exe를 실행해 주세요.

> cd grafana-4.4.3\bin
> grafana-server.exe

(6) Grafana 접속

이제 웹 브라우저로 Grafana에 접속하실 수 있습니다.  예) http://127.0.0.1:3000

  • Default port : 3000
  • Default id : admin
  • Default password: admin

아래 화면과 같이 Machbase Datasource가 설치된 것을 보실 수 있습니다.

q8g7txD.png

[2] Grafana 간단한 사용방법

[2-1] Datasource 생성

Grafana는 여러 개의 DB에서 자료를 가져와서 사용할 수 있습니다. 가장 먼저 사용할 Data Source를 생성해야 합니다.

(1) 좌측상단의 Grafana 아이콘을 클릭해서 ‘Data Sources’를 선택

LXkDLay.png

(2) Data Sources 화면에서 [+Add data source]를 선택

물론, 기존의 Data Source를 선택해서 수정할 수도 있습니다.

(3) MACHBASE 선택

아래 그림과 같이 Name을 입력하고 Type에서 MACHBASE를 선택해 주세요.

KLpAtAz.png

(4) MWA 상태 확인

URL은 기본값으로 http://localhost:5001/machbase 로 설정되어 있다.
http://localhost:5001 는 MWA 접속 URL이다.  (뒷부분의 machbase를 눈여겨보자.)
MWA가 실행중이라면 http://localhost:5001/machbase 에 접속하면 아래와 같이 나타나야 한다.

{
"status": "Working"
}

이 URL을 변경하면 다른 서버에 있는 Machbase에도 접속할 수 있으며, 나머지는 기본값으로 두자.

(5) 하단의 [Add] 버튼을 누르면 Machbase의 상태를 확인하고 이상이 없으면 추가한다.
추가된 후에는 수정 상태로 변경되며,  [Save & Test] 버튼이 나타나면 이미 추가된 것이다.

[2-2] Dashboard Graph 그리기

(1) 좌측상단의 Grafana 아이콘을 클릭해서 ‘Dashboards > +New’ 를 선택한다.

ZUwoYU9.png

(2) Graph 버튼을 눌러서 Graph Panel을 생성한다.

(다른 Panel들도 Machbase와 연결하는 방법은 동일하다)

C8UhIsl.png
하단의 [ADD ROW] 버튼을 누르면 row가 하나 추가된다.

(3) Panel의 Title 부근을 클릭하면 메뉴가 나타나며,  ‘Edit’를 눌러준다.

qA8hHNT.png

(4) 수정할 그래프가 윗부분에 표시되고 아래 부분에서 설정을 변경할 수 있다.
Metric 탭을 선택해서 Graph에서 사용될 Metric을 설정한다.
먼저 Machbase를 사용할 것이므로 ‘Panel Data Source’ 항목을 아까 생성한 Data Source로 변경해 준다.

DOWE17k.png

(5) Graph에서 사용할 Query를 구성한다. 그래프에 필요한 항목을 입력하면 된다.

f7wIiQQ.png
FROM사용할 Table을 선택한다.  그림의 (1)을 누르면 테이블 목록을 다시 읽어 오며, Collector로 수집한 Machbase log 기록이 저장된 MACHBASE_TABLE을 선택한다.
SELECT실제로 그래프를 그릴 때 사용될 값을 어떻게 계산할 지를 결정한다.
(2)를 눌러서 Column과 내장 함수를 선택할 수 있으며, Numeric Column 만 계산용 함수를 사용할 수 있다는 점을 명심하자.
복잡한 함수나 계산식을 사용한다면 직접 입력해야 하지만 간단히 사용할 경우에는 선택하는 것이 편리하다.
Time FieldX축 값으로 사용될 Column 을 지정한다.기본값은 _arrival_time인데 Table에 해당 레코드가 입력된 시간을 나타내는 내부 컬럼이다.
선택된 Table에 Datetime Column이 있다면 그것을 선택하여 사용할 수도 있다.
everyx축의 눈금 간격으로 Grafana에서 Time range와 화면의 크기를 고려하여 자동으로 산정한다.
공란으로 두면 Grafana가 산정한 값을 사용하므로, 공란으로 두는 것이 좋다.
그러나, 시간 간격을 고정해야 할 필요가 있는 경우 이 값을 설정하자.
Titlelegend에 표시되는 Title을 지정한다. 입력하지 않은 경우 Table명:Column명으로 legend에 표시된다.
FilterQuery문의 WHERE 절을 넣는 곳이다.Column 을 선택하고 조건을 입력하면 된다.
비교 값은 선택하면 되는데 (3)을 누르면 직접 입력할 수도 있다.
(5)를 눌러 조건을 추가하고, 삭제는 (4)를 누르면 된다.주의할 점은 모든 조건은 and로 연결된다는 것이다.

WHERE 절이 복잡해서 Filter로 표현되지 않는 경우 아래와 같이 직접 입력할 수 있도록 되어 있다.

eFIGWIg.png
(a) 버튼을 누르고 ‘Toggle Edit Mode’를 선택하면 입력/선택 모드가 변경되며,  ‘WHERE’를 제외하고 조건을 직접 입력한다.
(b) 는 show/hide 를 변경하는 것이다. hide 상태가 되면 Graph를 보여주지 않는다.
(c) 는 삭제하는 것이다.

(6) 하나의 Panel에 다른 Graph를 추가하려는 경우 [Add Query] 버튼을 누르면 추가할 수 있다.

(7) General 탭을 선택해서 Panel의 Title을 입력하면 간단한 Graph Panel 설정이 끝난다. Ctrl-S를 누르거나 상단의 디스크 모양 아이콘을 눌러서 Dashboard를 저장한다.

(8) 다시 접속해서 ‘Dashboard > Home’을 접속하면 저장한 Dashboard를 볼 수 있다.

[3] 기타 참고사항

A. Dashboard의 Time range와 refresh 주기는 Dashboard 상단의 (1) 부분을 눌러서 변경한다.

Qc1HrjQ.png

Time range : 그림의 (2)부분
now(현재)를 기준으로 -값으로 입력한다.

now-1h는 현재시간보다 1시간 전을 뜻하며,  시간단위는 s(초), m(분), h(시), d(일), M(월), y(년) 으로 구성된다.  만일 시간 범위를 절대값으로 설정하려면 (3)을 누르면 된다.

Refresh 주기 : 그림의 (4)부분
Dashboard를 다시 그리는 주기이며, 준비된 주기들 중에서 선택하면 된다.
선택할 수 있는 값의 리스트는 상단의 톱니바퀴 모양 아이콘을 누르고,  Settings 메뉴의 Time picker 탭에서 Auto-refresh 항목에 설정하면 된다.

입력후 [Apply] 버튼을 누르면 적용되는데, 만일  잘못된 값이 입력되면 [Apply] 버튼이 비활성화 된다는 것을 명심한다.

B. 특정 Panel만 별도의 Time range로 고정시키려면 [Time range] 탭을 선택하여 설정해 준다.

93FOysk.png

마무리

Machbase와 Grafana를 연동해서 Graph를 그리는 방법에 대해서 간략하게 기술했습니다. Grafana는 워낙 유명한 툴이어서 기존에 사용해 본 개발자라면 설치와 사용에 큰 어려움이 없었을 것이라고 생각됩니다.

Contact the Machbase team with your questions!
info@machbase.com

연관 포스트

C언어로 Binary data를 Machbase에 넣기

1.개요 Data를 다루다 보면 numeric, varchar 형 데이터뿐만 아니라 JPG, PNG, MP3와 같은 Binary data도 database에 저장해야 할 때가 존재한다. 그러나 일반 data들과는 달리 Binary

[MACHBASE 연동] Android studio에서 JDBC 연결하기

마크베이스 기술지원본부 이현민 1. 개요 수많은 데이터들이 많은 환경에서 생성되고 있는 오늘날, 우리 현대인들의 동반자인 스마트폰 또한 데이터생성의 주체로써 또는 전달자로서 알게 모르게 그 구실을