관리 메뉴

HAMA 블로그

InfluxDB 와 Grafana 사용시 시간에 관하여 본문

데이터 가시화 (d3.js , Plotly, Grafana, Kibana 등)

InfluxDB 와 Grafana 사용시 시간에 관하여

[하마] 이승현 (wowlsh93@gmail.com) 2016. 10. 21. 18:23


InfluxDB 와 Grafana 를 사용하는 방법은 아래 링크를 통해 알 수 있다. 

http://hamait.tistory.com/537


이 둘을 같이 쓰다보면 시간때문에 헥깔릴 수 있는데 간단 정리 해본다.

A 기기 :  InfluxDB 에 데이터를 넣는 머신  ( OS시간 1시 30분 ) 

DB 서버 : InfluxDB 가 돌아가는 서버 ( OS 시간 1시 ) 

내 PC :  브라우저를 (Grafana) 통해 가시화하는 내 컴퓨터  (OS 시간 12시 30분) 

가 있다고 하자.

A 기기에서 InfluxDB 서버에 현재 시간 1시 30분을 UTC 시간으로 변경하여 데이터와 함께 INSERT 해주면 
InfluxDB 에 저장된다.

이때 내  PC, 즉 내 브라우저 통해서는 어떻게 데이터가 나올까?
내 컴퓨터에선 안나온다. 아마 한 시간 후에나 나올 것이다. (물론 타임쉬프트는 0 이다) 

매우 상식적인 범위에서 시간이 다루어지는데..

내 브라우저에서의 Grafana 의 x 축은 InfluxDB 의 시간에 따라 변경되는건 아니다. 즉 InfluxDB 에 데이터가 1시30분으로 들어가 있으므로 , 내 브라우저에서의 X 축이 1시30분까지 보여지는게 아니라 내 브라우저의 시간인 12시 30분까지만 보여진다. 따라서 입력된 데이터가 보여지지 않는다. 데이터가 보여지게 하려면 적어도
내 PC 의 시간이 입력시간보다 빨라야한다. 

서버에 저장된 시간이 내 컴퓨터의 OS 시간에 맞추어져서 변경된다든가..
입력하면 InfluxDB 의 OS 시간에 맞추어서 재 변경된다던가 하는 이런 일들이 벌어지진 않는다.

매우 상식적인 일도 몇가지가 꼬이니깐 헥깔려지더라..



InfluxDB 시간 쿼리 예제 ) 

1. 하루전 부터 지금까지  (상대시간 지정) 

SELECT mean("watt") as watt, mean("pf") as pf FROM "jinyoung1_5" WHERE time > now() - 1d GROUP BY time(1h)

2. 날짜 지정  (8월 12일만 출력됨) 

SELECT mean("watt") as watt, mean("pf") as pf FROM "{0}"
WHERE time > '2013-08-12' and time < '2013-08-13' # 2017-04-04 00:00:01
GROUP BY time({1}) fill(null)

3. 절대시간 지정  (00:00:00 Coordinated Universal Time (UTC), Thursday, 1 January 1970.)

select value from response_times where time > 1388534400s


Comments