[{"apiVersion":"influxdata.com/v2alpha1","kind":"Label","metadata":{"name":"funny-nightingale-6e6001"},"spec":{"color":"#E30B5D","name":"raspberry-pi"}},{"apiVersion":"influxdata.com/v2alpha1","kind":"Dashboard","metadata":{"name":"elegant-napier-6e6001"},"spec":{"associations":[{"kind":"Label","name":"funny-nightingale-6e6001"}],"charts":[{"colors":[{"name":"laser","type":"text","hex":"#00C9FF"}],"height":1,"kind":"Single_Stat","name":"System Uptime","queries":[{"query":"from(bucket: \"rasp-pi\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r._measurement == \"system\")\n |> filter(fn: (r) => r._field == \"uptime\")\n |> last()\n |> toFloat()\n |> map(fn: (r) => ({r with _value: r._value / 86400.0}))\n |> yield(name: \"last\")"}],"staticLegend":{},"suffix":" days","width":2},{"axes":[{"base":"10","name":"x","scale":"linear"},{"base":"10","name":"y","scale":"linear","suffix":"%"},{"base":"10","name":"y2","scale":"linear"}],"geom":"line","height":2,"kind":"Xy","name":"Disk Usage","queries":[{"query":"from(bucket: \"rasp-pi\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r._measurement == \"disk\")\n |> filter(fn: (r) => r._field == \"used_percent\")\n |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false)\n |> yield(name: \"mean\")"}],"staticLegend":{},"width":3,"yPos":1},{"axes":[{"base":"10","name":"x","scale":"linear"},{"base":"2","label":"Bytes","name":"y","scale":"linear"},{"base":"10","name":"y2","scale":"linear"}],"geom":"line","height":2,"kind":"Xy","name":"Disk IO","queries":[{"query":"from(bucket: \"rasp-pi\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r._measurement == \"diskio\")\n |> filter(fn: (r) => r._field == \"read_bytes\" or r._field == \"write_bytes\")\n |> aggregateWindow(every: v.windowPeriod, fn: last, createEmpty: false)\n |> derivative(unit: 1s, nonNegative: false)\n |> yield(name: \"derivative\")"}],"staticLegend":{},"width":3,"yPos":3},{"colors":[{"id":"base","name":"laser","type":"text","hex":"#00C9FF"}],"decimalPlaces":2,"height":1,"kind":"Single_Stat","name":"Ridership Date","queries":[{"query":"from(bucket: \"main\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r._measurement == \"ridership_data\")\n |> filter(fn: (r) => r._field == \"date\")\n |> last()\n |> yield(name: \"last\")"}],"staticLegend":{},"width":2,"yPos":5},{"height":1,"kind":"Markdown","name":"Name this Cell","note":"### Train Density","staticLegend":{},"width":12,"yPos":6},{"colors":[{"id":"base","name":"laser","type":"text","hex":"#00C9FF"}],"decimalPlaces":0,"height":2,"kind":"Single_Stat","name":"Cabin 1 Passenger","queries":[{"query":"from(bucket: \"main\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r[\"_measurement\"] == \"sensor_data\")\n |> filter(fn: (r) => r[\"_field\"] == \"c1_person\")\n |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false)\n |> yield(name: \"mean\")"}],"staticLegend":{},"width":1,"yPos":7},{"colors":[{"id":"base","name":"laser","type":"text","hex":"#00C9FF"}],"decimalPlaces":0,"height":2,"kind":"Single_Stat","name":"Cabin 2 Passenger","queries":[{"query":"from(bucket: \"main\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r[\"_measurement\"] == \"sensor_data\")\n |> filter(fn: (r) => r[\"_field\"] == \"c2_person\")\n |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false)\n |> yield(name: \"mean\")"}],"staticLegend":{},"width":1,"yPos":9},{"colors":[{"id":"0","name":"honeydew","type":"min","hex":"#7CE490","value":1},{"id":"1","name":"fire","type":"max","hex":"#DC4E58","value":300}],"decimalPlaces":2,"height":2,"kind":"Gauge","name":"Cabin 1 Passenger","queries":[{"query":"from(bucket: \"main\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r[\"_measurement\"] == \"sensor_data\")\n |> filter(fn: (r) => r[\"_field\"] == \"c1_person\")\n |> aggregateWindow(every: v.windowPeriod, fn: last, createEmpty: false)\n |> yield(name: \"last\")"}],"staticLegend":{},"width":2,"xPos":1,"yPos":7},{"colors":[{"id":"0","name":"honeydew","type":"min","hex":"#7CE490","value":1},{"id":"1","name":"fire","type":"max","hex":"#DC4E58","value":300}],"decimalPlaces":2,"height":2,"kind":"Gauge","name":"Cabin 2 Passenger","queries":[{"query":"from(bucket: \"main\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r[\"_measurement\"] == \"sensor_data\")\n |> filter(fn: (r) => r[\"_field\"] == \"c2_person\")\n |> aggregateWindow(every: v.windowPeriod, fn: last, createEmpty: false)\n |> yield(name: \"last\")"}],"staticLegend":{},"width":2,"xPos":1,"yPos":9},{"colors":[{"name":"rainforest","type":"background","hex":"#4ED8A0"},{"name":"ocean","type":"background","hex":"#4591ED","value":40},{"name":"rainforest","type":"background","hex":"#4ED8A0","value":60},{"name":"thunder","type":"background","hex":"#FFD255","value":80},{"name":"fire","type":"background","hex":"#DC4E58","value":120}],"decimalPlaces":1,"height":1,"kind":"Single_Stat","name":"CPU Temp","queries":[{"query":"from(bucket: \"rasp-pi\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r[\"_measurement\"] == \"temp\")\n |> filter(fn: (r) => r[\"_field\"] == \"temp\")\n |> last()\n |> yield(name: \"last\")"}],"staticLegend":{},"suffix":" °C","width":1,"xPos":2},{"colors":[{"id":"base","name":"laser","type":"text","hex":"#00C9FF"}],"decimalPlaces":0,"height":1,"kind":"Single_Stat","name":"LRT Ampang","queries":[{"query":"from(bucket: \"main\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r._measurement == \"ridership_data\")\n |> filter(fn: (r) => r._field == \"lrt_ampang\")\n |> last()\n |> yield(name: \"last\")"}],"staticLegend":{},"width":2,"xPos":2,"yPos":5},{"colors":[{"name":"laser","type":"background","hex":"#00C9FF"},{"name":"ocean","type":"background","hex":"#4591ED","value":40},{"name":"rainforest","type":"background","hex":"#4ED8A0","value":60},{"name":"thunder","type":"background","hex":"#FFD255","value":80},{"name":"fire","type":"background","hex":"#DC4E58","value":120}],"decimalPlaces":1,"height":1,"kind":"Single_Stat","name":"GPU Temp","queries":[{"query":"from(bucket: \"rasp-pi\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r[\"_measurement\"] == \"temperature_gpu\")\n |> filter(fn: (r) => r[\"_field\"] == \"value\")\n |> last()\n |> yield(name: \"last\")"}],"staticLegend":{},"suffix":" °C","width":1,"xPos":3},{"axes":[{"base":"10","name":"x","scale":"linear"},{"base":"10","name":"y","scale":"linear","suffix":"%"},{"base":"10","name":"y2","scale":"linear"}],"geom":"line","height":2,"kind":"Xy","name":"CPU Usage","queries":[{"query":"from(bucket: \"rasp-pi\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r._field == \"usage_user\" or r._field == \"usage_system\" or r._field == \"usage_idle\")\n |> filter(fn: (r) => r.cpu == \"cpu-total\")\n |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false)\n |> yield(name: \"mean\")"}],"staticLegend":{},"width":3,"xPos":3,"yPos":1},{"axes":[{"base":"10","name":"x","scale":"linear"},{"base":"2","label":"Bytes","name":"y","scale":"linear"},{"base":"10","name":"y2","scale":"linear"}],"geom":"line","height":2,"kind":"Xy","name":"Network","queries":[{"query":"from(bucket: \"rasp-pi\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r._measurement == \"net\")\n |> filter(fn: (r) => r._field == \"bytes_recv\" or r._field == \"bytes_sent\")\n |> aggregateWindow(every: v.windowPeriod, fn: last, createEmpty: false)\n |> derivative(unit: 1s, nonNegative: false)\n |> yield(name: \"derivative\")"}],"staticLegend":{},"width":3,"xPos":3,"yPos":3},{"axes":[{"base":"10","name":"x","scale":"linear"},{"base":"10","label":"seconds","name":"y","scale":"linear"}],"colorizeRows":true,"colors":[{"id":"base","name":"laser","type":"text","hex":"#00C9FF"}],"decimalPlaces":2,"height":2,"hoverDimension":"auto","kind":"Single_Stat_Plus_Line","legendColorizeRows":true,"legendOpacity":1,"legendOrientationThreshold":100000000,"name":"Input/One-Way Latency","opacity":1,"orientationThreshold":100000000,"position":"overlaid","queries":[{"query":"from(bucket: \"main\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r[\"_measurement\"] == \"sensor_data\")\n |> filter(fn: (r) => r[\"_field\"] == \"one_way_latency\")\n |> aggregateWindow(every: 10s, fn: last, createEmpty: false)\n |> yield(name: \"last\")"}],"staticLegend":{"colorizeRows":true,"opacity":1,"orientationThreshold":100000000,"widthRatio":1},"width":2,"widthRatio":1,"xCol":"_time","xPos":3,"yCol":"_value","yPos":7},{"axes":[{"name":"x"}],"binCount":30,"colors":[{"id":"9ePWhB93FrGaDH8mEIH2Y","name":"Nineteen Eighty Four","type":"scale","hex":"#31C0F6"},{"id":"eOVTgg8aBtC7o-oCJwIn3","name":"Nineteen Eighty Four","type":"scale","hex":"#A500A5"},{"id":"zmZKdBlnDK1MrE_XHP7FW","name":"Nineteen Eighty Four","type":"scale","hex":"#FF7E27"}],"fillColumns":["_start","_stop","_field","_measurement"],"height":2,"kind":"Histogram","legendColorizeRows":true,"legendOpacity":1,"legendOrientationThreshold":100000000,"name":"Train Occupancy","position":"stacked","queries":[{"query":"from(bucket: \"main\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r[\"_measurement\"] == \"sensor_data\")\n |> filter(fn: (r) => r[\"_field\"] == \"c1_person\" or r[\"_field\"] == \"c2_person\")\n |> aggregateWindow(every: 10s, fn: last, createEmpty: false)\n |> map(fn: (r) => ({\n r with\n _value: (float(v: r._value) / 150.0) * 100.0, // Convert to float and calculate percentage\n percentage: (float(v: r._value) / 150.0) * 100.0 // Optional: Keep a separate percentage field\n }))\n |> yield(name: \"last\")"}],"staticLegend":{},"width":9,"xCol":"_value","xPos":3,"yPos":9},{"colors":[{"name":"laser","type":"text","hex":"#00C9FF"}],"decimalPlaces":0,"height":1,"kind":"Single_Stat","name":"nCPUs","queries":[{"query":"from(bucket: \"rasp-pi\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r._measurement == \"system\")\n |> filter(fn: (r) => r._field == \"n_cpus\")\n |> last()\n |> yield(name: \"last\")"}],"staticLegend":{},"suffix":" ","width":1,"xPos":4},{"colors":[{"id":"base","name":"laser","type":"text","hex":"#00C9FF"}],"decimalPlaces":0,"height":1,"kind":"Single_Stat","name":"MRT Kajang","queries":[{"query":"from(bucket: \"main\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r._measurement == \"ridership_data\")\n |> filter(fn: (r) => r._field == \"mrt_kajang\")\n |> last()\n |> yield(name: \"last\")"}],"staticLegend":{},"width":2,"xPos":4,"yPos":5},{"colors":[{"name":"laser","type":"text","hex":"#00C9FF"}],"decimalPlaces":2,"height":1,"kind":"Single_Stat","name":"System Load","queries":[{"query":"from(bucket: \"rasp-pi\")\n |> range(start: v.timeRangeStart)\n |> filter(fn: (r) => r._measurement == \"system\")\n |> filter(fn: (r) => r._field == \"load1\")\n |> last()\n |> yield(name: \"mean\")"}],"staticLegend":{},"width":2,"xPos":5},{"axes":[{"name":"x"},{"name":"y"}],"colors":[{"hex":"#31C0F6"},{"hex":"#BC00B8"},{"hex":"#FF7E27"}],"height":2,"kind":"Scatter","legendColorizeRows":true,"legendOpacity":1,"legendOrientationThreshold":100000000,"name":"Cabin 1 Seats","queries":[{"query":"from(bucket: \"main\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r[\"_measurement\"] == \"sensor_data\")\n |> filter(fn: (r) => r[\"_field\"] == \"fsr1\" or r[\"_field\"] == \"fsr2\")\n |> aggregateWindow(every: v.windowPeriod, fn: last, createEmpty: false)\n |> map(fn: (r) => ({ r with _value: if r._value > 500 then 1 else 0 }))\n |> yield(name: \"last\")"}],"staticLegend":{},"width":2,"xCol":"_time","xPos":5,"yCol":"_value","yPos":7},{"axes":[{"base":"10","name":"x","scale":"linear"},{"base":"10","label":"Load","name":"y","scale":"linear"},{"base":"10","name":"y2","scale":"linear"}],"geom":"line","height":2,"kind":"Xy","name":"System Load","queries":[{"query":"from(bucket: \"rasp-pi\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r._measurement == \"system\")\n |> filter(fn: (r) => r._field == \"load1\" or r._field == \"load5\" or r._field == \"load15\")\n |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false)\n |> yield(name: \"mean\")"}],"staticLegend":{},"width":3,"xPos":6,"yPos":1},{"axes":[{"base":"10","name":"x","scale":"linear"},{"base":"10","name":"y","scale":"linear"},{"base":"10","name":"y2","scale":"linear"}],"geom":"line","height":2,"kind":"Xy","name":"Processes","queries":[{"query":"from(bucket: \"rasp-pi\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r._measurement == \"processes\")\n |> filter(fn: (r) => r._field == \"running\" or r._field == \"blocked\" or r._field == \"idle\" or r._field == \"unknown\")\n |> aggregateWindow(every: v.windowPeriod, fn: max)\n |> yield(name: \"max\")"}],"staticLegend":{},"width":3,"xPos":6,"yPos":3},{"colors":[{"id":"base","name":"laser","type":"text","hex":"#00C9FF"}],"decimalPlaces":0,"height":1,"kind":"Single_Stat","name":"LRT Kelana Jaya","queries":[{"query":"from(bucket: \"main\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r._measurement == \"ridership_data\")\n |> filter(fn: (r) => r._field == \"lrt_kelana_jaya\")\n |> last()\n |> yield(name: \"last\")"}],"staticLegend":{},"width":2,"xPos":6,"yPos":5},{"colors":[{"name":"laser","type":"text","hex":"#00C9FF"}],"decimalPlaces":2,"height":1,"kind":"Single_Stat","name":"Total Memory","queries":[{"query":"from(bucket: \"rasp-pi\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r._measurement == \"mem\")\n |> filter(fn: (r) => r._field == \"total\")\n |> last()\n |> map(fn: (r) => ({r with _value: float(v: r._value) / 1024.0 / 1024.0 / 1024.0}))\n |> yield(name: \"last\")"}],"staticLegend":{},"suffix":" GB","width":2,"xPos":7},{"axes":[{"name":"x"},{"name":"y"}],"colors":[{"hex":"#31C0F6"},{"hex":"#BC00B8"},{"hex":"#FF7E27"}],"height":2,"kind":"Scatter","legendColorizeRows":true,"legendOpacity":1,"legendOrientationThreshold":100000000,"name":"Cabin 2 Seats","queries":[{"query":"from(bucket: \"main\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r[\"_measurement\"] == \"sensor_data\")\n |> filter(fn: (r) => r[\"_field\"] == \"fsr3\" or r[\"_field\"] == \"fsr4\")\n |> aggregateWindow(every: v.windowPeriod, fn: last, createEmpty: false)\n |> map(fn: (r) => ({ r with _value: if r._value > 500 then 1 else 0 }))\n |> yield(name: \"last\")"}],"staticLegend":{},"width":2,"xCol":"_time","xPos":7,"yCol":"_value","yPos":7},{"colors":[{"id":"base","name":"laser","type":"text","hex":"#00C9FF"}],"decimalPlaces":0,"height":1,"kind":"Single_Stat","name":"Monorail","queries":[{"query":"from(bucket: \"main\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r._measurement == \"ridership_data\")\n |> filter(fn: (r) => r._field == \"monorail\")\n |> last()\n |> yield(name: \"last\")"}],"staticLegend":{},"width":2,"xPos":8,"yPos":5},{"axes":[{"base":"10","name":"x","scale":"linear"},{"base":"10","name":"y","scale":"linear"}],"colorizeRows":true,"colors":[{"id":"base","name":"laser","type":"text","hex":"#00C9FF"}],"decimalPlaces":2,"height":3,"hoverDimension":"auto","kind":"Single_Stat_Plus_Line","legendColorizeRows":true,"legendOpacity":1,"legendOrientationThreshold":100000000,"name":"Memory Usage","opacity":1,"orientationThreshold":100000000,"position":"overlaid","queries":[{"query":"from(bucket: \"rasp-pi\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r._measurement == \"mem\")\n |> filter(fn: (r) => r._field == \"used_percent\")\n |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false)\n |> yield(name: \"mean\")"}],"staticLegend":{"colorizeRows":true,"opacity":1,"orientationThreshold":100000000,"widthRatio":1},"width":3,"widthRatio":1,"xPos":9},{"axes":[{"base":"10","name":"x","scale":"linear"},{"base":"2","name":"y","scale":"linear"},{"base":"10","name":"y2","scale":"linear"}],"geom":"line","height":2,"kind":"Xy","name":"Swap","queries":[{"query":"from(bucket: \"rasp-pi\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r._measurement == \"swap\")\n |> filter(fn: (r) => r._field == \"total\" or r._field == \"used\")\n |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false)\n |> yield(name: \"mean\")"}],"staticLegend":{},"width":3,"xCol":"_time","xPos":9,"yCol":"_value","yPos":3},{"axes":[{"name":"x","scale":"linear"},{"label":"percent %","name":"y","scale":"linear"}],"colorizeRows":true,"colors":[{"id":"9ePWhB93FrGaDH8mEIH2Y","name":"Nineteen Eighty Four","type":"scale","hex":"#31C0F6"},{"id":"eOVTgg8aBtC7o-oCJwIn3","name":"Nineteen Eighty Four","type":"scale","hex":"#A500A5"},{"id":"zmZKdBlnDK1MrE_XHP7FW","name":"Nineteen Eighty Four","type":"scale","hex":"#FF7E27"}],"geom":"line","height":2,"hoverDimension":"auto","kind":"Band","legendColorizeRows":true,"legendOpacity":1,"legendOrientationThreshold":100000000,"mainColumn":"last","name":"Passenger Density","opacity":1,"orientationThreshold":100000000,"queries":[{"query":"from(bucket: \"main\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r[\"_measurement\"] == \"sensor_data\")\n |> filter(fn: (r) => r[\"_field\"] == \"c1_person\" or r[\"_field\"] == \"c2_person\")\n |> aggregateWindow(every: 10s, fn: last, createEmpty: false)\n |> map(fn: (r) => ({\n r with\n _value: (float(v: r._value) / 300.0) * 100.0,\n percentage: (float(v: r._value) / 300.0) * 100.0\n }))\n |> yield(name: \"last\")"}],"staticLegend":{"colorizeRows":true,"opacity":1,"orientationThreshold":100000000,"widthRatio":1},"width":3,"widthRatio":1,"xCol":"_time","xPos":9,"yCol":"_value","yPos":7},{"colors":[{"id":"base","name":"laser","type":"text","hex":"#00C9FF"}],"decimalPlaces":0,"height":1,"kind":"Single_Stat","name":"MRT Putrajaya","queries":[{"query":"from(bucket: \"main\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r._measurement == \"ridership_data\")\n |> filter(fn: (r) => r._field == \"mrt_putrajaya\")\n |> last()\n |> yield(name: \"last\")"}],"staticLegend":{},"width":2,"xPos":10,"yPos":5}],"description":"A collection of useful visualizations for monitoring your system stats","name":"Train Density Monitor Dashboard"}}]