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 น่ะครับ

Comments are closed.