DEV Community

Cover image for เฝ้าดูความเร็วอินเตอร์เน็ตที่บ้าน
Damrongsak Reetanon
Damrongsak Reetanon

Posted on

เฝ้าดูความเร็วอินเตอร์เน็ตที่บ้าน

บ่ายวันอาทิตย์ นั่งเตรียมเนื้อหาบรรยายอยู่ ก็เหลือบไปเห็น Supadej Suthiphongkanasai โพสต์ว่า "ไปเจอ Git อันนึง น่าสนใจดี เป็น Docker Project ที่จะทำ Speedtest ทุกๆ 1 ชม แล้วเก็บ stat ลงกราฟไว้ ..."
น่าสนใจดี กำลังนั่งง่วง ๆ อยู่เลย ก็เลยทิ้งงาน ลองแวะไปดู Repo ใน Github ดูหน่อยสิว่าจะยังไงดี ... นั่งดูสัก 10 นาที ก็เลยตัดสินใจ ก็ลองเล่นดูเลยก็ได้

  • ว่ากันจริง ๆ แล้วใน Github ของ Henry Withaker ที่ public ไว้ก็มีอยู่ 30 repos แต่สิ่งที่เราจะลองดูกันก็คือ repo ที่ชื่อว่า Speed-Tracker ซึ่งมี source code และคำอธิบายอย่างละเอียดในการใช้งาน โดยรวม ๆ ก็บอกว่า เค้าใช้ Laravel เขียน back-end, ใช้ React เขียน front-end ส่วนของการทดสอบความเร็วก็ใช้ CLI ของค่าย speedtest.net และสุดท้ายใช้ Chart.js เป็นคนวาดกราฟออกมา
    ** โดย default จะวัดความเร็วทุก 1 ชั่วโมง (แต่ว่าเราตั้งความถี่เองได้)
    ** กำหนดได้ว่าจะดูข้อมูลย้อนหลังได้กี่วันตอนแสดงผล
    ** สามารถ backup & restore ข้อมูลที่เคยเก็บไว้ได้ในรูปแบบของ JSON หรือ CSV
    ** สามารถส่งข้อความไปยัง Slack, Discord และ Telegram ได้ ถ้าผลที่ speedtest วัดได้ มีค่าต่ำกว่าหรือสูงกว่า ค่าที่คำหนดไว้
    ** ทำงานร่วมกับ healthcheck.io, Organizr และ InfluxDB ได้

  • ลงมือกันเลย โดยที่เครื่องที่จะใช้ได้ทำงานติดตั้ง Docker และ docker-compose ไว้เรียบร้องแล้ว จากนั้นก็สร้าง directory data เอาไว้เก็บข้อมูล และให้เข้าถึง speedtest-tracker ที่ TCP/8765

# mkdir data
# cat > docker-compose.yaml <<EOF
version: '3.3'
services:
     speedtest:
         container_name: speedtest
         image: henrywhitaker3/speedtest-tracker
         ports:
             - 8765:80
         volumes:
             - ./data:/config
         environment:
             - OOKLA_EULA_GDPR=true
         logging:
             driver: "json-file"
             options:
                 max-file: "100"
                 max-size: "2048k"
         restart: unless-stopped
EOF
# docker-compose up -d
Creating network "speedtest_default" with the default driver
Pulling speedtest (henrywhitaker3/speedtest-tracker:)...
latest: Pulling from henrywhitaker3/speedtest-tracker
c91af5d1b23e: Pull complete
740fcfa9e15a: Pull complete
ce5b3694a6d6: Pull complete
a83d676a55d9: Pull complete
38ac933c5d8d: Pull complete
dc32e0469fc9: Pull complete
2692dc6e8a90: Pull complete
36a44203a304: Pull complete
df68ab8ba510: Pull complete
712e86a465e0: Pull complete
b87cc77a8de9: Pull complete
Digest: sha256:47159a9402291275bd9f8a8ed4f5c1ce8502de216465ed29da8a3c995b807df1
Status: Downloaded newer image for henrywhitaker3/speedtest-tracker:latest
Creating speedtest ... done
Enter fullscreen mode Exit fullscreen mode
  • รอสัก 1 นาที แล้วก็ใช้ browser เปิดไปที่ http://hostname:8765 และถ้าต้องการทดสอบการวัดความเร็ว ก็กดปุ่ม "Test again" ได้เลย

Image description

  • สามารถปรับแต่งความถี่ในการวัดความเร็วได้ โดยเลือกเมนู Settings ที่ tab General จากเดิมที่กำหนดไว้ทุก ๆ 1 ชั่วโมง 0 * * * * ผมแก้ไขให้การวัดความเร็วทุก ๆ 30 นาทีเพื่อให้เห็นผลการทำงาน ในช่วงทดสอบได้ชัดเจนขึ้น โดยกำหนดที่ Schedule ให้เป็น */30 * * * *

Image description

ขอให้สนุกกับ technology ครับ

Mady by มูลค่าความสุข

Top comments (0)