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