เพิ่งแบ่งปันความรู้เรื่อง 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

$xk6 build --with github.com/grafana/xk6-output-prometheus-remote@latest 

ขั้นที่ 2 ทำการ run และส่งผลไปยัง Prometheus

$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

ผลที่ได้

เพียงเท่านี้ก็ได้ dashboard สวย ๆ
และมีประโยชน์ต่อการทดสอบอีกด้วย