Neon: สร้างรายงานค่าใช้จ่ายรายโปรเจกต์ด้วย Node.js
เจาะวิธีแก้ปัญหาแดชบอร์ด Neon ไม่มีรายงานค่าใช้จ่ายรายโปรเจกต์ ด้วยสคริปต์ Node.js ดึงข้อมูลจาก API คำนวณเป็น CSV สรุปยอดเงินชัดเจน

ภาพประกอบจากคลังภาพสต็อก ไม่ใช่ภาพจากเหตุการณ์จริง
- Neon (neon.tech) คิดค่าคอมพิวต์เป็น CU-hours แต่แดชบอร์ดไม่มีสรุปค่าใช้จ่ายแยกตามโปรเจกต์ให้
- นักพัฒนาเขียนสคริปต์ Node.js ดึงข้อมูลการใช้ทรัพยากรผ่าน API และแปลงเป็นไฟล์ CSV สรุปยอดรวม
- สูตรคำนวณคือนำ compute_unit_seconds หารด้วย 3600 แล้วคูณเรตราคาต่อ CU-hour เป็นดอลลาร์
- ต้องใช้ NEON_API_KEY และระบุเดือน เช่น oct-2026 เพื่อรันคำสั่งรายงานค่าใช้จ่าย
สำหรับนักพัฒนาที่มีโปรเจกต์จำนวนมากภายใต้องค์กรเดียวกันบนแพลตฟอร์ม Neon (neon.tech) การติดตามและตรวจสอบรายงานค่าใช้จ่ายหรือยอดการใช้งานแยกตามแต่ละโปรเจกต์ถือเป็นสิ่งสำคัญอย่างยิ่งในการวางแผนและบริหารจัดการระบบให้มีประสิทธิภาพสูงสุด
ปัญหาที่ผู้ใช้งานมักพบคือ Neon มีการคิดค่าใช้จ่ายคอมพิวต์ในรูปแบบ CU-hours แต่หน้าแดชบอร์ดหลักยังไม่มีฟีเจอร์แสดงการแจกแจงค่าใช้จ่ายรายโปรเจกต์แบบรายเดือนอย่างง่าย ด้วยเหตุนี้จึงมีนักพัฒนาได้เขียนสคริปต์ Node.js ขนาดเล็กขึ้นมา เพื่อดึงประวัติการบริโภคทรัพยากรแยกตามโปรเจกต์และรวบรวมออกมาเป็นไฟล์ CSV โดยแสดงผลในรูปแบบ 1 แถวต่อ 1 โปรเจกต์ ประกอบด้วยจำนวน CU-seconds, CU-hours, ต้นทุนเป็นดอลลาร์ รวมถึงแถวสรุปยอดรวม (TOTAL) ของทั้งองค์กร
ในทางปฏิบัติสำหรับระบบ Cloud ดาต้าเบส การมีเครื่องมือตรวจสอบต้นทุนแบบละเอียดระดับโปรเจกต์มีความสำคัญมาก เนื่องจากช่วยให้ทีมวิศวกรสามารถระบุได้ทันทีว่าโปรเจกต์ใดมีการใช้ทรัพยากรเกินความจำเป็นหรือมีต้นทุนสูงผิดปกติ การดึงข้อมูลผ่าน API และทำ Automation รายเดือนจึงช่วยลดเวลาในการตรวจสอบด้วยมือและป้องกันบิลเซอร์ไพรส์สิ้นเดือนได้เป็นอย่างดี

ภาพประกอบจากคลังภาพสต็อก ไม่ใช่ภาพจากเหตุการณ์จริง
ในส่วนของปัญหาหลักที่พบคือ API การใช้งานของ Neon จะส่งคืนเมตริกดิบแยกตามโปรเจกต์และรายวัน ซึ่งครอบคลุมทั้งหน่วย CU-seconds, ไบต์พื้นที่จัดเก็บ และการถ่ายโอนข้อมูลเครือข่าย แต่ผู้ใช้งานจะต้องเขียนโค้ดเชื่อมโยงหลายขั้นตอนเข้าด้วยกันจึงจะได้ตัวเลขต้นทุนที่ใช้งานได้จริง
สคริปต์ดังกล่าวจะรับอาร์กิวเมนต์เป็นเดือนที่ต้องการตรวจสอบ (เช่น oct-2026) จากนั้นจะทำการดึงประวัติการใช้ทรัพยากรขององค์กรผ่าน API ของ Neon และเขียนไฟล์ออกมา 3 ไฟล์ โดยไฟล์ CSV แบบ rollup คือไฟล์หลักที่จะถูกนำไปใช้งานจริงในแต่ละเดือน
สำหรับการคำนวณค่าใช้จ่าย Neon จะคิดเงินจาก CU-hours โดย 1 CU หมายถึงสเปก 1 vCPU บวกกับ 4 GB RAM ทาง API จะรายงานค่า compute_unit_seconds ที่คูณมาล่วงหน้าแล้ว (เช่น เอ็นด์พอยต์ขนาด 2-CU ที่ทำงานเป็นเวลา 1 วินาที จะแสดงผลเป็น 2 compute_unit_seconds) ทำให้นักพัฒนาสามารถคำนวณต้นทุนได้ตามสูตร:
- แปลงวินาทีเป็นชั่วโมง: const hours = compute_unit_seconds / 3600
- คำนวณต้นทุน: const cost = hours * RATE_USD_PER_CU_HOUR
ขั้นตอนการใช้งานสคริปต์สามารถรันผ่านคำสั่ง node scripts/org-neon-usage-report.mjs oct-2026 โดยจำเป็นต้องตั้งค่า NEON_API_KEY (ในตัวแปรสภาพแวดล้อมหรือไฟล์ .env.local ซึ่งสามารถสร้างคีย์ได้ที่หน้าเอกสารของ Neon) และค่า NEON_ORG_ID จะถูกตั้งค่าเริ่มต้นตามองค์กรของผู้ใช้แต่สามารถแทนที่ได้ผ่านตัวแปรสภาพแวดล้อม
ที่มา: Dev.to
พบข้อมูลผิดพลาดในบทความนี้? แจ้งปัญหาบทความนี้
ความคิดเห็น
แสดงความคิดเห็น