เพิ่งแบ่งปันความรู้เรื่อง performance testing ไป
ซึ่งหนึ่งในเครื่องมือที่นำมาใช้งานและแนะนำคือ K6
พบว่ามีการเปลี่ยนแปลงเยอะเลย
เช่น Result output หรือผลของการทดสอบ
สามารถเก็บได้หลาย ๆ รูปแบบ ยกตัวอย่างเช่น
- ออก command line
- ออกเป็นไฟล์ เช่น CSV และ JSON
- เก็บข้อมูลแบบ realtime ไปยัง database ประเภทต่าง ๆ เช่น influxdb, prometheus, elasticsearch และ apache kafka เป็นต้น
โครงสร้างการทำงาน
และข้อมูลที่เก็บไว้ใน database ต่าง ๆ
สามารถนำมาแสดงผลในรูปแบบของ dashboard สวย ๆ ผ่าน Grafana ได้อีกด้วย
ซึ่งสนับสนุน datasource ที่เก็บใน database จากข้างต้นไว้
จากที่ลองใช้งานหลาย ๆ ตัวพบว่า
การใช้งานร่วมกับ Prometheus remote write จะง่าย และ update ที่สุด
เพราะว่าพวก dashboard มีการสร้าง และ update ให้ตลอด
แถมเป็นแบบ official ด้วย
แต่ยังอยู่ในขั้นตอนของ experiment นะครับ
ส่วนการใช้งานกับ influxdb นั้นจะมีทั้ง version 1 และ 2
พบว่า dashboard ต่าง ๆ ยังไม่สนับสนุน หรือ update ตาม
การใช้งาน K6 + Prometheus remote write ก็ไม่ยาก
ทำดังนี้
ขั้นที่ 1 ทำการ build k6 กับ xk6-output-prometheus-remote
[code] $xk6 build --with github.com/grafana/xk6-output-prometheus-remote@latest [/code]ขั้นที่ 2 ทำการ run และส่งผลไปยัง Prometheus
[code] $K6_PROMETHEUS_RW_SERVER_URL=http://prometheus:9090/api/v1/write $K6_PROMETHEUS_RW_TREND_AS_NATIVE_HISTOGRAM=true $K6_OUT=xk6-prometheus-rw $k6 run -o xk6-prometheus-rw demo.js [/code]ผลที่ได้
เพียงเท่านี้ก็ได้ dashboard สวย ๆ
และมีประโยชน์ต่อการทดสอบอีกด้วย