InfluxDB คือ time series, metrics และ analytics database ซึ่งเขียนด้วยภาษา Go ซึ่งไม่ต้องการ external dependency ใดๆ อีกแล้ว ในตอนนี้ InfluxDB ได้ออกมาล่าสุด version 0.8.8 ซึ่งยังเป็น alpha version อยู่ หรือยังอยู่ในระหว่างการพัฒนานั้นเอง InfluxDB มี feature ที่สำคัญได้แก่ ใช้ภาษา SQL, มี HTTP(S) API, สามารถเก็บ data ได้เป็นหลัก billions เลยทีเดียว, Built in management interface และอื่นๆ สามารถอ่านเพิ่มเติมได้ที่ website InfluxDB การติดตั้งนั้นก็ง่ายๆ โดยการ download package มาติดตั้งโดยใช้ dpkg หรือ rpm ในตัวอย่างใช้ OS Ubuntu server 14.04 ติดตั้ง InfluxDB มี ip address 192.168.56.118
เริ่มด้วยการ download package และติดตั้ง
wget http://s3.amazonaws.com/influxdb/influxdb_latest_amd64.deb; sudo dpkg -i influxdb_latest_amd64.deb
แล้วสั่ง start service InfluxDB
sudo service influxdb start
ที่นี้เรามาลองใช้งาน InfluxDB ผ่าน User interface ดูโดยใช้ Web browser เข้าไปที่ URL: http://192.168.56.118:8083
แล้วใส่ข้อมูลตามนี้
- Username: root
- password: root
- hostname: ip address influxDB server
- port: 8086
แล้วใส่ชื่อ database แล้วคลิ๊ก create database
ให้ลองเขียน data ลง database ดูโดยใช้ web ui ที่หน้าต่าง write point ใส่ค่าตามลำดับดังนี้
ใส่ครั้งที่ 1 (ใส่เสร็จแล้วคลิ๊กที่ Write Point Button)
Time Series Name: log_lines Values: {"line": "here's some useful log info from paul@influxdb.com"}
ใส่ครั้งที่ 2 (ใส่เสร็จแล้วคลิ๊กที่ Write Point Button)
Time Series Name: response_times Values: {"code": 200,"value": 234,"controller_action": "users#show"}
ใส่ครั้งที่ 3 (ใส่เสร็จแล้วคลิ๊กที่ Write Point Button)
Time Series Name: user_events Values: {"type":"add_friend","url_base":"/friends/show","user_id": 23}
ใส่ครั้งที่ 4 (ใส่เสร็จแล้วคลิ๊กที่ Write Point Button)
Time Series Name: device_temperatures Values: {"value": 88.2}
ใส่ครั้งที่ 5 (ใส่เสร็จแล้วคลิ๊กที่ Write Point Button)
Time Series Name: cpu_idle Values: {"value": 88.2,"host":"serverA"}
เสร็จแล้วในหน้าต่าง Read Point ในช่อง query ให้ใส่ค่าดังนี้
select * from /.*/ limit 1
จะเห็นเป็นกราฟแสดง data ในลักษณะ timeline
ลองใส่เป็นค่าอื่นๆ ดู
select * from cpu_idle -- select * from response_times where value > 200 -- select * from user_events where url_base = 'friends#show' -- select line from log_lines where line =~ /paul@influx.com/
ที่นี้เรามาลองดู syntax query database ใน InfluxDB กันบ้าง
การ query ตัวอักษรพิเศษ เช่น #$%^&*() ให้ใส่ backslash หน้าตัวอักษรพิเศษ
select * from "series with \"double quotes\""
การ query เลือกช่วงเวลา เช่น
select value from response_times where time > '2013-08-12 23:32:01.232' and time < '2013-08-13';
การ query จุดที่กำหนด
select * from events where time = 1400497861762723 and sequence_number = 2321;
การ query หลายๆ serie เช่น query series ชื่อ events และ errors เมื่อ 1 ชั่วโมงที่แล้ว
select * from /^stats\./i where time > now() - 1h;
การลบ series จะขึ้นต้นด้วย delete เช่น
delete from response_times where time < now() - 1h delete from response_times where user = 'foo'
การ merging series
select count(type) from user_events merge admin_events group by time(10m)
การ joining series
select hosta.value + hostb.value from cpu_load as hosta inner join cpu_load as hostb where hosta.host = 'hosta.influxdb.orb' and hostb.host = 'hostb.influxdb.org';
ก็จบในส่วนการติดตั้งและใช้งาน InfluxDB เบื้องต้นแล้วน่ะครับ หากอยากรู้ syntax ต่างๆ เพิ่มเติมสามารถอ่านได้ที่ website ของ InfluxDB น่ะครับ