Real Time Monitor Loadtest by Jmeter & Grafana


Real Time Monitor Loadtest by Jmeter & Grafana


 


    ในการทดสอบ load test การ monitor ข้อมูลเมื่อทดสอบเสร็จแล้วอาจช้าเกินไปจึงได้มีการหาวิธี monitor ในขณะที่กำลังทดสอบหรือ Real time บทความนี้เป็นการอธิบายการเชื่อมต่อข้อมูลระหว่าง Jmeter, InflexDB และ Gragana

รายละเอียดโปรแกรม

1. Jmeter version 5.1.1
        คือโปรแกรมที่ใช้ทดสอบ load test ของระบบ (จะคล้ายกับโปรแกรม loadrunner แต่โปรแกรม Jmeter เป็น opensource)
2. Grafana version 6.5.2
        เป็นเครื่องมือในการสร้าง Dashboard ฟรี สามารถแสดงผลในรูปแบบกราฟแบบ real-time โดย Grafana จะไปดึงข้อมูลมาจากแหล่งข้อมูล Datasource ต่างๆเช่น Graphite, InfluxDB , Elasticsearch …  
         สามารถเพิ่มรูปกราฟให้แสดงผลสวยงามได้อย่างง่ายๆ
3. InfluxDB 1.7.9
        ทำหน้าที่เป็นตัวกลางระหว่างข้อ 1 กับ 2 นั่นคือเป็น Datasource ที่เก็บข้อมูล สามารถอ่านข้อมูลจาก Jmeter ผ่านทาง Backend Listener และเชื่อมต่อกับ Grafana เพื่อแสดงผล

แหล่งดาวน์โหลดโปรแกรม
Program
URL
Jmeter
Grafana
InfluxDB



InfluxDB configuration
เมื่อ download เสร็จ จะมีขั้นตอนการ configuration และการสตาร์ทเซิฟเวอร์ ตาม step นี้
1. เปิด file influxdb.conf  ให้นำคอมเมนต์ใน field ต่อไปนี้ออก เพื่อ InfluxDB จะได้ติดต่อกับ Jmeter และ Grafana ได้

Header:  [http]
field
Value
enabled
true
bind-address
“:8086”
auth-enabled
false
log-enabled
true
write-tracing
false
pprof-enabled
false
https-enabled
false
https-certificate
"/etc/ssl/influxdb.pem"
max-row-limit
10000



Header:  [graphite]
field
Value
enabled
true
database
“{ชื่อ database}”
bind-address
“:2003”
protocol
“tcp”
consistency-level
"one"





2. สตาร์ท InfluxDB server โดยระบุคำสั่งให้ไปอ่านไฟล์ Configuration ที่แก้ไขในข้อแรก


3. จากนั้นทำการสร้าง database โดยใช้ชื่อตามต้องการ (ในตัวอย่างนี้ใช้ database ชื่อ jmeter โดยใช้คำสั่ง create databases {ชื่อ database}

4. ตรวจสอบว่ามี database ที่เราสร้างในระบบหรือไม่ โดยใช้คำสั่ง show databases




Jmeter configuration
ทำการเซต Jmeter เพื่อนำข้อมูลไปใส่ใน database ที่สร้างไว้ใน InfluxDB
1. เปิด Script Jmeter และคลิ้กขวาที่ชื่อ Thread group เลือกเมนู Add > Listener > Backend Listener 



2. ใส่ค่าพารามิเตอร์ในหน้า Backend Listener ตามตัวอย่างนี้



ความหมายของพารามิเตอร์

Parameter
Value
Description
graphiteHost
localhost
IP หรือ Host ของ InfluxDB
summaryOnly
false

samplersList
.*
ใส่ชื่อ Controller ที่ต้องการคั่นด้วย ; หรือถ้าต้องการทั้งหมดใส่เป็น .*

3. กดรันใน Jmeter เพื่อทดสอบเก็บข้อมูลใน InflexDB แล้วตรวจสอบว่ามีข้อมูลเข้าหรือไม่ เราสามารถตรวจสอบความหมายของ Response Time metrics ได้จากเวป https://jmeter.apache.org/usermanual/realtime-results.html



Grafana & InfluxDB interface connection

1. เพิ่ม datasource ให้กับ Grafana เลือก InfluxDB



2. ใส่ข้อมูลต่างๆดังนี้ และกดปุ่ม Save & Test

Parameters
Values
URL
Access
Server (default)
Database
{ชื่อ database} Ex. Jmeter
HTTP Method
Get
Min time interval
ช่วงเวลาในการ sampling ข้อมูล






3. สร้าง Dashboard เลือก datasource ที่เชื่อมต่อไว้



4. เลือก Table ที่ต้องการ


No comments:

Post a Comment