TH | EN

Service Usage Calculation

การคำนวณปริมาณการใช้งาน Service ต่างๆ ของ NETPIE Platform ดูปริมาณการใช้งานในแต่ละรอบบิลได้จาก Web Portal โดยคลิกที่ชื่อผู้ใช้มุมบนขวามือ และเลือกเมนู “Billing” ดูรายละเอียดเพิ่มเติมได้ที่ billing-page จะถูกแยกการคิดได้เป็นประเภทใหญ่ๆ ดังต่อนี้

API Call

ปริมาณการใช้บริการ REST API ทั้งหมดใน NETPIE Platform มีหน่วยนับเป็น Operation โดยการกระทำที่จะถูกนับเป็นการใช้งานประเภทนี้ คือ

API Request

: จำนวนการ Request ผ่าน REST APT โดยดูจากขนาดของ Payload ที่ส่งไป แต่ละ Block มีขนาดไม่เกิน 4 kilobytes

API Response

: จำนวนการ Response ผ่าน REST APT โดยดูจากขนาดของ Payload ที่ตอบกลับ แต่ละ Block มีขนาดไม่เกิน 4 kilobytes

ตัวอย่าง

การอ่านข้อมูลจาก Time Series Database ผ่าน REST API 1 ครั้ง ข้อมูลที่ส่งไปตอน Request มีขนาด 71 bytes และข้อมูล Response กลับมามีขนาด 10 kilobytes ดังนั้น การนับในครั้งนี้จะเป็นดังนี้

Request ส่ง Payload ไป ขนาด 71 bytes = 71 / 1024*4 = 1 Operation(Request) เศษที่หาร 4KB ไม่ลงตัวต้องปัดขึ้นเป็นอีก 1 Block

Response ตอบกลับ Payload ขนาด 10KB = 10 / 4 = 3 Operations(Response) เศษที่หาร 4KB ไม่ลงตัวต้องปัดขึ้นเป็นอีก 1 Block

รวม API Call Quota ที่ถูกใช้ไป = 1 + 3 = 4 Operations


Device Online

ระยะเวลารวมทั้งหมดที่ Device เชื่อมต่ออยู่ใน NETPIE Platform มีหน่วยนับเป็นวินาที(Second)

ตัวอย่าง

มี Device ที่ลงทะเบียนใช้งาน NETPIE Platform อยู่ 2 Devices Device เพื่อส่งข้อมูลสถานะการทำงานต่างๆ ของเครื่องจักรไปเก็บที่ Platform โดย Device1 เชื่อมต่อ Platform เวลา 08:00:03 ส่งข้อมูลเสร็จและตัดการเชื่อมต่อ Platform ที่เวลา 08:00:15 ส่วน Device2 เชื่อมต่อ Platform เวลา 08:00:05 ส่งข้อมูลเสร็จและตัดการเชื่อมต่อ Platform ที่เวลา 08:00:20 ดังนั้น เวลารวมในกรณีนี้จะเป็น

Device1 Online (08:00:03 - 08:00:15) = 12 วินาที

Device2 Online (08:00:05 - 08:00:20) = 15 วินาที

รวม Connection Quota ที่ถูกใช้ไป = 12 + 15 = 27 วินาที


Real Time Message

ปริมาณการใช้บริการที่เกี่ยวกับ MQTT มีหน่วยนับเป็น Message โดยการกระทำที่จะถูกนับเป็นการใช้งานประเภทนี้ คือ

MQTT Publish

: จำนวน Message ที่ Publish โดยดูจากขนาดของ Message แต่ละ Block มีขนาดไม่เกิน 4 kilobytes

MQTT Subscribe

: จำนวนครั้งในการขอ Subscribe แต่ละครั้งนับเป็น 1 Message

MQTT Deliver

: จำนวน Message ที่ส่งให้ Device ที่ขอ Subscribe ไว้ โดยดูจากขนาดของ Message แต่ละ Block มีขนาดไม่เกิน 4 kilobytes

MQTT Connect

: จำนวนครั้งในการขอเชื่อมต่อ (Connect) มายัง NETPIE Platform แต่ละครั้งนับเป็น 1 Message

ตัวอย่าง

มี 5 Devices เชื่อมต่อมายัง NETPIE Platform โดย Device1 Publish Message ขนาด 6 kilobytes ไปที่ myDevice Topic ซึ่ง Device2, Device3, Device4 และ Device5 ได้ทำการ Subscribe ที่ myDevice Topic อยู่ ดังนั้น การนับในครั้งนี้จะเป็นดังนี้

5 Devices เชื่อมต่อ NETPIE Platform = 5 x 1 = 5 Messages(MQTT Connect)

Device1 Publish Message ขนาด 6 KB = 6 / 4 = 2 Messages(MQTT Publish) เศษที่หาร 4 ไม่ลงตัวต้องปัดขึ้นเป็นอีก 1 Block

Device2-5 (4 Devices) ขอ Subscribe Topic = 4 x 1 = 4 Messages(MQTT Subscribe)

Device2-5 (4 Devices) ได้รับ Message = 4 x 2 = 8 Messages(MQTT Deliver) จากการ Subscribe ได้ Message ที่ Device1 Publish ขนาด 6 KB

รวม Message Quota ที่ถูกใช้ไป = 5 + 2 + 4 + 8 = 19 Messages


Shadow Read/Write

ปริมาณการใช้บริการที่เกี่ยวกับ Shadow มีหน่วยนับเป็น Operation โดยการกระทำที่จะถูกนับเป็นการใช้งานประเภทนี้ คือ

Shadow Read

: จำนวนการอ่าน Shadow โดยดูจากขนาดของ Shadow ที่ถูกอ่านออกมา แต่ละ Block มีขนาดไม่เกิน 1 kilobyte

Shadow Write

: จำนวนการเขียน Shadow โดยดูจากขนาดของ Shadow ที่ส่งไปเขียน แต่ละ Block มีขนาดไม่เกิน 1 kilobyte

Shadow Expression

: จำนวนครั้งที่ Shadow มีการรัน Expression จะอยู่ในส่วนของการแปลงข้อมูล (Data Transformation)

ตัวอย่าง

Device 1 ตัว เมื่อ online ขึ้นมาจะทำการอ่าน Shadow ทั้งหมดของตนเอง (ขนาด Shadow 2 kilobytes) มาเป็นค่าเริ่มต้นสำหรับการตั้งค่าการทำงาน หลังจากนั้น Device จะส่งค่าอุณหภูมิปัจจุบันของตัวเองไปอัพเดทที่ Shadow (ขนาดข้อมูลที่ส่งไป 20 bytes) โดยค่าที่ส่งไปมีหน่วยเป็นฟาเรนไฮต์ ซึ่งมีการกำหนด Expression สำหรับแปลงหน่วยเป็นเซลเซียส คำนวนปริมาณ Shadow Operation Quota ที่ถูกใช้ไปได้ดังนี้

2 Operations(Shadow Read) + 1 Operation(Shadow Write) + 1 Operation(Shadow Expression) = 4 Operations


Time Series Data Store

ปริมาณข้อมูล (Time Series Data) และระยะเวลาที่ต้องการเก็บข้อมูล มีหน่วยนับเป็น Point-Day หมายความว่า ข้อมูลที่ส่งมาเก็บ 1 จุดข้อมูล (ขนาดข้อมูลไม่เกิน 1 kilobyte) ระยะเวลาในการเก็บ (TTL) 30 วัน ถูกนับเป็น 1 Point-Month หรือ 30 Point-Day

ตัวอย่าง

Device สำหรับวัดความชื้นและอุณหภูมิ(2 data point), วัดค่าและส่งข้อมูลไปเก็บทุก 1 ชั่วโมง(24 time/day), เก็บค่าย้อนหลัง 30 วัน(TTL), ระยะเวลาใช้บริการ 31 วัน คำนวนปริมาณ Quota ที่ถูกใช้ไปได้ดังนี้

2(data point) x 30(TTL) X 24(time/day) x 31(day) = 44,640 Point-Day หรือเท่ากับ

44,640 Point-Day / 30 = 1,488 Point-Month


Trigger & Action

ปริมาณการใช้บริการที่เกี่ยวกับ Trigger มีหน่วยนับเป็น Operation โดยการกระทำที่จะถูกนับเป็นการใช้งานประเภทนี้ คือ

Device Trigger

: Trigger ที่เกิดจาก Device เปลี่ยนสถานะการเชื่อมต่อ Platform จากเชื่อมต่อ (Online) เป็นไม่เชื่อมต่อ (Offline) หรือ จากไม่เชื่อมต่อ (Offline) เป็นเชื่อมต่อ (Online) เซ็ต Trigger Event เป็น DEVICE.STATUSCHANGED ดูรายละเอียดเพิ่มเติมจาก Device Trigger and Event Hook ถ้ามีการตั้งค่า Trigger นี้ไว้ ทุกครั้งที่มีการเปลี่ยนสถานะจะถูกนับเป็น 1 Operation / 1 Trigger Event ที่เซ็ตไว้

Shadow Trigger

: Trigger ที่เกิดจาก Shadow มีการเปลี่ยนแปลงและมีการเซ็ตเงื่อนไขสำหรับตรวจสอบการเปลี่ยนไว้ด้วย เซ็ต Trigger Event เป็น SHADOW.UPDATED ดูรายละเอียดเพิ่มเติมจาก Device Trigger and Event Hook ถ้ามีการตั้งค่า Trigger นี้ไว้ ทุกครั้งที่ Shadow มีการเปลี่ยนแปลงและเงื่อนไขเป็นจริง (Trigger Condition ได้ค่าเป็น True) จะถูกนับเป็น 1 Operation / 1 Trigger Condition

ตัวอย่าง

จากตัวอย่างการตั้งค่า Trigger ด้านล่าง จะมีทั้งทั้งหมด 3 Triggers (Device Trigger 2 และ Shadow Trigger 1) ถ้ามี 1 Device เชื่อมต่อมายัง Platform และส่งค่าอุณหภูมิ (temp) เข้ามา 3 ครั้ง แต่ละครั้งห่างกันประมาณ 1 นาที ค่าที่ส่งไปเป็น 1, 0 , -1 ตามลำดับ โดยเริ่มต้นอุณหภูมิใน Shadow เป็น 0 เมื่อส่งครบ 3 ครั้ง Device จะตัดการเชื่อมต่อจาก Platform คำนวนปริมาณ Trigger & Action ที่ถูกใช้ไปได้ดังนี้

Device Online ทำ action LINENOTIFY และ myApp = 2 Operations

ส่งอุณหภูมิ (temp) ครั้งที่ 1 ค่าเป็น 1 ทำ action checkTemp ตรวจสอบเงื่อนไขและค่าเป็น True = 1 Operations

ส่งอุณหภูมิ (temp) ครั้งที่ 2 ค่าเป็น 0 ทำ action checkTemp ตรวจสอบเงื่อนไขและค่าเป็น False = 0 Operations

ส่งอุณหภูมิ (temp) ครั้งที่ 3 ค่าเป็น -1 ทำ action checkTemp ตรวจสอบเงื่อนไขและค่าเป็น False = 0 Operations

Device Offline (DEVICE.STATECHANGED) ทำ action LINENOTIFY และ myApp = 2 Operations

รวม Trigger & Action Quota ที่ถูกใช้ไป = 2 + 1 + 0 + 0 + 2 = 5 Operations

{
        "enabled": true,
        "trigger": [{
                "action": "LINENOTIFY",
                "event": "DEVICE.STATECHANGED",
                "msg": "My Device {{$NEW.statustext}}, statuscode: {{$NEW.status}}",
                "option": {
                        "url": "https://notify-api.line.me/api/notify",
                        "linetoken": "HBfiJA309FWFouCPzK5WhGUvJT1RvN3xb6hGxnIqAAA"
                }
        },
        {
                "action": "myApp",
                "event": "DEVICE.STATECHANGED",
                "msg": "{{$NEW.statustext}}",
                "option": {
                        "deviceid": "155941ce-1f4a-4e57-1864-1759af4f872c"
                }
        },
        {
                "action": "checkTemp",
                "event": "SHADOW.UPDATED",
                "condition": "$NEW.bedroom.temp > 0",
                "msg": "My temperature was change from {{$PREV.bedroom.temp}} to {{$NEW.bedroom.temp}}",
                "option": {
                        "url": "https://mywebhook/devicetemp"
                }
        }]
}

Datasource

ปริมาณขนาดข้อมูลสะสม (หน่วยเป็น Byte) ที่เกิดจากการ Download ข้อมูลจาก Time-series data storage หรือก็คือ Data Transfer ซึ่งการดึงข้อมูลทั้งจากระบบภายนอก หรือ Dashboard ที่มีให้ใช้งานภายในจะถูกคิดโควต้าส่วนนี้ทั้งหมด

ตัวอย่าง

มีการเก็บข้อมูลอุณหภุมิและความชื้นลงใน Time-series data storage มีการพัฒนา Web Application เพื่อมาดึงข้อมูลจาก Time-series data storage ไปแสดงผลเป็นกราฟ โดยความถี่ในการดึงข้อมูลมาอัพเดทในกราฟ คือ ทุก 5 นาที (Auto Refresh), ขนาดข้อมูลที่ดึงไปแสดงผลในแต่ละครั้ง คือ 2.5 KB ดังนั้น ถ้ามีการเปิด Web Application ให้แสดงผลกราฟทิ้งไว้นาน 1 ชั่วโมง จะคำนวณปริมาณ Datasource ที่ถูกใช้ไปได้ ดังนี้

Datasource = 60(นาที) / 5(นาที) x 2.5(KB) = 30 KB

คิดเป็นหน่วย Byte = 30 * 1024 = 30,720 B