Grafana

Ben Lee·2022년 4월 22일
0

SCADA

목록 보기
4/4
post-thumbnail

설치/ Plugin

Grafana에 접속하는 방법에는 두 가지가 있다.

  1. Web-base(non-installation)
  2. Local-base (installation)

추후 메인 서버컴퓨터에서 SCADA를 운용할 계획이므로 우선 로컬에 설치하도록 한다.
Grafana는 다양한 DB 타입을 지원하지만 유독 SQlite는 없...다 그냥 기본제공하면 될 것을..

Plugin 설치를 위해 로컬의 Grafana/Plugin 폴더로가서 다운받은 플러그인을 설치해준다.
물론 CLi로 설치해야 함

접속/ 로그인

Grafana를 설치 후 default 접속 경로는 localhost:3000 이고,
계정 정보는 admin/admin 이다. 추후 접속 경로의 라우팅이나 계정 정보를 변경하길 바람.

DB 연동

SQLite is in process database.
In other words, it is part of your program that share the address space with your program.
So it does not need any port for listening and accepting new connections.
It is very different from databases like MySql, postgres, which runs as server application listening on some port. -Quora.com

일반적인 RDBMS에 비해 대규모 작업에는 적합하지 않지만, 중소 규모라면 속도에 손색이 없다. 또 API는 단순히 라이브러리를 호출하는 것만 있으며, 데이터를 저장하는 데 하나의 파일만을 사용하는 것이 특징이다. -Wikipedia

즉, SQLite는 MySQL나 PostgreSQL와 같은 DBMS이지만, 서버가 아니라 응용 프로그램에 넣어 사용하는 비교적 가벼운 데이터베이스이다. 그래서 이름도 lite(light)..

함께 작업 중인 PLC 엔지니어가 내부 DB를 SQlite로 구성했기 때문에 Grafana에서도 동일한 DB를 가지고 간다.
우선 정상적으로 Grafana를 설치 후 로그인 했기 때문에 로컬 내 DB 경로를 지정해주고 DB를 연동한다.

Save & test 버튼을 누르고 위 화면처럼 Data source is working이란 문구가 출력되면 DB 연동 완료!

Dashboard/ Query

SQlite는 정말 멍청하게도 Time column을 인식하지 못해 직접 SQlite가 지정하는 형태로 형식을 변경해야만 정상적으로 읽을 수 있다. 숟가락으로 직접 먹여주기까지....

SQlite가 지원하는 데이터 타입은 여기에서 확인할 수 있다.

하지만 Sqlite에서는 정상적으로 불러오지만 (i.e. strftime(.....)) 해당 열을 Grafana에서는 Time column으로 인식하지 못하는 골때리는 문제가 발생했다.
PLC의 time step은 ms라서 strftime 함수의 %f;fractional seconds까지 사용하였으나 정작 Grafana에서는 읽지 못하는 문제가 발생했다. 울며겨자먹기로 강제로 날짜와 시간열 사이에 dateTtimeZ를 삽입하여 Query를 날리긴 했으나 추후 SQlite는 사용을 다시 고려해봐야겠다.

profile
개발자가 되고픈 엔지니어

0개의 댓글