Skip to content

Instantly share code, notes, and snippets.

@jsjolund
Last active February 21, 2023 15:12
Show Gist options
  • Save jsjolund/170be54af81aac2386221df3319ba42a to your computer and use it in GitHub Desktop.
Save jsjolund/170be54af81aac2386221df3319ba42a to your computer and use it in GitHub Desktop.

a00r00wst01

hostname Zabbix name Zabbix key
a00r00wst01 Absolute Humidity - Actual -humidity-type.absolute-function.actual-location.outdoor
a00r00wst01 Absolute Pressure - Actual -pressure-type.absolute-function.actual-location.outdoor
a00r00wst01 Air Density -density-location.outdoor
a00r00wst01 Compass direction -direction-source.compass-location.outdoor
a00r00wst01 Dew Point - Actual -dewpoint-function.actual-location.outdoor
a00r00wst01 Global Radiation - Actual -radiation-type.global-function.actual-location.outdoor
a00r00wst01 Heating Temperature R2S -temperature-type.heating-location.outdoor-source.r2s
a00r00wst01 Heating Temperature Wind -temperature-type.heating-location.outdoor-source.wind
a00r00wst01 Mixing Ratio - Actual -mixingratio-function.actual-location.outdoor
a00r00wst01 Modbus Bulk Read Registers 10 - 50 modbus_read[enc://{$IPADDR},{$SLAVEID},10,4,16s+i+21s+3*i]
a00r00wst01 Modbus Bulk Read Registers 71-111 modbus_read[enc://{$IPADDR},{$SLAVEID},71,4,38s+3i]
a00r00wst01 Precipitation Quantity - Absolute -precipitation-type.quantiy_absolute-location.outdoor
a00r00wst01 Precipitation Quantity - Differential -precipitation-type.quantiy_differential-location.outdoor
a00r00wst01 Precipitation Rate -precipitation-type.rate-location.outdoor
a00r00wst01 Precipitation Type -precipitation-type.type-location.outdoor
a00r00wst01 Relative Humidity - Actual -humidity-type.relative-function.actual-location.outdoor
a00r00wst01 Relative Pressure - Actual -pressure-type.relative-function.actual-location.outdoor
a00r00wst01 Specific Enthalpy -enthalpy-type.specific-location.outdoor
a00r00wst01 Temperature - Actual -temperature-function.actual-location.outdoor
a00r00wst01 Wet Bulb Temperature -temperature-type.wetbulb-location.outdoor
a00r00wst01 Wind Chill Temperature -temperature-type.windchill-location.outdoor
a00r00wst01 Wind Direction - Actual -direction-source.wind-function.actual-location.outdoor
a00r00wst01 Wind Direction - Corrected -direction-source.wind-function.corrected-location.outdoor
a00r00wst01 Wind Direction Divided direction-source.wind-function.divided
a00r00wst01 Wind Direction - Mapped direction-source.wind-function.mapped
a00r00wst01 Wind Direction - Max -direction-source.wind-function.max-location.outdoor
a00r00wst01 Wind Direction - Min -direction-source.wind-function.min-location.outdoor
a00r00wst01 Wind Direction - Standard Deviation -direction-source.wind-function.standard_dev-location.outdoor
a00r00wst01 Wind Direction - Vectorial Avg -direction-source.wind-function.vectorial_avg-location.outdoor
a00r00wst01 Wind Measurement Quality -quality-source.wind-location.outdoor
a00r00wst01 Wind Speed - Actual -speed-source.wind-function.actual-location.outdoor
a00r00wst01 Wind Speed - Average -speed-source.wind-function.avg-location.outdoor
a00r00wst01 Wind Speed - Max -speed-source.wind-function.max-location.outdoor
a00r00wst01 Wind Speed - Min -speed-source.wind-function.min-location.outdoor
a00r00wst01 Wind Speed - Standard Deviation -speed-source.wind-function.standard_dev-location.outdoor
a00r00wst01 Wind Speed - Vectorial Average -speed-source.wind-function.vectorial_avg-location.outdoor

a16r00col01

hostname Zabbix name Zabbix key
a16r00col01 Power - SmartPOD Facility -power-source.smartpod
a16r00col01 Pump 1 RPM -speed-source.pump-id.1
a16r00col01 Pump 2 RPM -speed-source.pump-id.2
a16r00col01 Real Time Info - 10s Average realtimeinfo
a16r00col01 Setpoint - Coolant Tank Temperature -setpoint-type.temperature-source.coolant-location.tank
a16r00col01 submer coolant flow rate -flow-source.coolant
a16r00col01 submer water flow rate -flow-source.water
a16r00col01 Temperature - Coolant inlet -temperature-source.coolant-location.inlet
a16r00col01 Temperature - Coolant outlet -temperature-source.coolant-location.outlet
a16r00col01 Temperature - Coolant Tank -temperature-source.coolant-location.tank
a16r00col01 Temperature - Water inlet -temperature-source.water-location.inlet
a16r00col01 Temperature - Water outlet -temperature-source.water-location.outlet

a16r00met01

hostname Zabbix name Zabbix key
a16r00met01 Apparent Power Phase 1 -power-type.apparent-source.phase-id.1
a16r00met01 Apparent Power Phase 2 -power-type.apparent-source.phase-id.2
a16r00met01 Apparent Power Phase 3 -power-type.apparent-source.phase-id.3
a16r00met01 Apparent Power Phase Sum -power-type.apparent-source.phase-function.sum
a16r00met01 Current Phase 1 -current-source.phase-id.1
a16r00met01 Current Phase 2 -current-source.phase-id.2
a16r00met01 Current Phase 3 -current-source.phase-id.3
a16r00met01 Current Phase Vector Sum -current-source.phase-function.vector_sum
a16r00met01 Frequency -frequency
a16r00met01 Modbus Bulk Read Registers 0 - 62 modbus_read[{$IPADDR},{$SLAVEID},19000,4,32*f,1]
a16r00met01 Modbus Bulk Read Registers 110 - 120 modbus_read[{$IPADDR},{$SLAVEID},19110,4,f,1]
a16r00met01 Modbus Bulk Read Registers 116 modbus_read[{$IPADDR},{$SLAVEID},19116,4,f,1]
a16r00met01 Power Factor Phase 1 -powerfactor-source.phase-id.1
a16r00met01 Power Factor Phase 2 -powerfactor-source.phase-id.2
a16r00met01 Power Factor Phase 3 -powerfactor-source.phase-id.3
a16r00met01 Reactive Power Phase 1 -power-type.reactive-source.phase-id.1
a16r00met01 Reactive Power Phase 2 -power-type.reactive-source.phase-id.2
a16r00met01 Reactive Power Phase 3 -power-type.reactive-source.phase-id.3
a16r00met01 Reactive Power Phase Sum -power-type.reactive-source.phase-function.sum
a16r00met01 Real Energy Phase 1 -energy-type.real-source.phase-id.1
a16r00met01 Real Energy Phase 2 -energy-type.real-source.phase-id.2
a16r00met01 Real Energy Phase 3 -energy-type.real-source.phase-id.3
a16r00met01 Real Energy Phase Sum -energy-type.real-source.phase-function.sum
a16r00met01 Real Power Phase 1 -power-type.real-source.phase-id.1
a16r00met01 Real Power Phase 2 -power-type.real-source.phase-id.2
a16r00met01 Real Power Phase 3 -power-type.real-source.phase-id.3
a16r00met01 Real Power Phase Sum -power-type.real-source.phase-function.sum
a16r00met01 THD Current Phase 1 -thd-type.current-source.phase-id.1
a16r00met01 THD Current Phase 2 -thd-type.current-source.phase-id.2
a16r00met01 THD Current Phase 3 -thd-type.current-source.phase-id.3
a16r00met01 THD Voltage Phase 1 -thd-type.voltage-source.phase-id.1
a16r00met01 THD Voltage Phase 2 -thd-type.voltage-source.phase-id.2
a16r00met01 THD Voltage Phase 3 -thd-type.voltage-source.phase-id.3
a16r00met01 Voltage Phase 1-2 -voltage-source.phase-id.12
a16r00met01 Voltage Phase 1 -voltage-source.phase-id.1
a16r00met01 Voltage Phase 2-3 -voltage-source.phase-id.23
a16r00met01 Voltage Phase 2 -voltage-source.phase-id.2
a16r00met01 Voltage Phase 3-1 -voltage-source.phase-id.31
a16r00met01 Voltage Phase 3 -voltage-source.phase-id.3

a16r00met02

hostname Zabbix name Zabbix key
a16r00met02 Apparent Power Phase 1 -power-type.apparent-source.phase-id.1
a16r00met02 Apparent Power Phase 2 -power-type.apparent-source.phase-id.2
a16r00met02 Apparent Power Phase 3 -power-type.apparent-source.phase-id.3
a16r00met02 Apparent Power Phase Sum -power-type.apparent-source.phase-function.sum
a16r00met02 Current Phase 1 -current-source.phase-id.1
a16r00met02 Current Phase 2 -current-source.phase-id.2
a16r00met02 Current Phase 3 -current-source.phase-id.3
a16r00met02 Current Phase Vector Sum -current-source.phase-function.vector_sum
a16r00met02 Frequency -frequency
a16r00met02 Modbus Bulk Read Registers 0 - 62 modbus_read[{$IPADDR},{$SLAVEID},19000,4,32*f,1]
a16r00met02 Modbus Bulk Read Registers 110 - 120 modbus_read[{$IPADDR},{$SLAVEID},19110,4,f,1]
a16r00met02 Modbus Bulk Read Registers 116 modbus_read[{$IPADDR},{$SLAVEID},19116,4,f,1]
a16r00met02 Power Factor Phase 1 -powerfactor-source.phase-id.1
a16r00met02 Power Factor Phase 2 -powerfactor-source.phase-id.2
a16r00met02 Power Factor Phase 3 -powerfactor-source.phase-id.3
a16r00met02 Reactive Power Phase 1 -power-type.reactive-source.phase-id.1
a16r00met02 Reactive Power Phase 2 -power-type.reactive-source.phase-id.2
a16r00met02 Reactive Power Phase 3 -power-type.reactive-source.phase-id.3
a16r00met02 Reactive Power Phase Sum -power-type.reactive-source.phase-function.sum
a16r00met02 Real Energy Phase 1 -energy-type.real-source.phase-id.1
a16r00met02 Real Energy Phase 2 -energy-type.real-source.phase-id.2
a16r00met02 Real Energy Phase 3 -energy-type.real-source.phase-id.3
a16r00met02 Real Energy Phase Sum -energy-type.real-source.phase-function.sum
a16r00met02 Real Power Phase 1 -power-type.real-source.phase-id.1
a16r00met02 Real Power Phase 2 -power-type.real-source.phase-id.2
a16r00met02 Real Power Phase 3 -power-type.real-source.phase-id.3
a16r00met02 Real Power Phase Sum -power-type.real-source.phase-function.sum
a16r00met02 THD Current Phase 1 -thd-type.current-source.phase-id.1
a16r00met02 THD Current Phase 2 -thd-type.current-source.phase-id.2
a16r00met02 THD Current Phase 3 -thd-type.current-source.phase-id.3
a16r00met02 THD Voltage Phase 1 -thd-type.voltage-source.phase-id.1
a16r00met02 THD Voltage Phase 2 -thd-type.voltage-source.phase-id.2
a16r00met02 THD Voltage Phase 3 -thd-type.voltage-source.phase-id.3
a16r00met02 Voltage Phase 1-2 -voltage-source.phase-id.12
a16r00met02 Voltage Phase 1 -voltage-source.phase-id.1
a16r00met02 Voltage Phase 2-3 -voltage-source.phase-id.23
a16r00met02 Voltage Phase 2 -voltage-source.phase-id.2
a16r00met02 Voltage Phase 3-1 -voltage-source.phase-id.31
a16r00met02 Voltage Phase 3 -voltage-source.phase-id.3

a16r00met03

hostname Zabbix name Zabbix key
a16r00met03 Apparent Power Phase 1 -power-type.apparent-source.phase-id.1
a16r00met03 Apparent Power Phase 2 -power-type.apparent-source.phase-id.2
a16r00met03 Apparent Power Phase 3 -power-type.apparent-source.phase-id.3
a16r00met03 Apparent Power Phase Sum -power-type.apparent-source.phase-function.sum
a16r00met03 Current Phase 1 -current-source.phase-id.1
a16r00met03 Current Phase 2 -current-source.phase-id.2
a16r00met03 Current Phase 3 -current-source.phase-id.3
a16r00met03 Current Phase Vector Sum -current-source.phase-function.vector_sum
a16r00met03 Frequency -frequency
a16r00met03 Modbus Bulk Read Registers 0 - 62 modbus_read[{$IPADDR},{$SLAVEID},19000,4,32*f,1]
a16r00met03 Modbus Bulk Read Registers 110 - 120 modbus_read[{$IPADDR},{$SLAVEID},19110,4,f,1]
a16r00met03 Modbus Bulk Read Registers 116 modbus_read[{$IPADDR},{$SLAVEID},19116,4,f,1]
a16r00met03 Power Factor Phase 1 -powerfactor-source.phase-id.1
a16r00met03 Power Factor Phase 2 -powerfactor-source.phase-id.2
a16r00met03 Power Factor Phase 3 -powerfactor-source.phase-id.3
a16r00met03 Reactive Power Phase 1 -power-type.reactive-source.phase-id.1
a16r00met03 Reactive Power Phase 2 -power-type.reactive-source.phase-id.2
a16r00met03 Reactive Power Phase 3 -power-type.reactive-source.phase-id.3
a16r00met03 Reactive Power Phase Sum -power-type.reactive-source.phase-function.sum
a16r00met03 Real Energy Phase 1 -energy-type.real-source.phase-id.1
a16r00met03 Real Energy Phase 2 -energy-type.real-source.phase-id.2
a16r00met03 Real Energy Phase 3 -energy-type.real-source.phase-id.3
a16r00met03 Real Energy Phase Sum -energy-type.real-source.phase-function.sum
a16r00met03 Real Power Phase 1 -power-type.real-source.phase-id.1
a16r00met03 Real Power Phase 2 -power-type.real-source.phase-id.2
a16r00met03 Real Power Phase 3 -power-type.real-source.phase-id.3
a16r00met03 Real Power Phase Sum -power-type.real-source.phase-function.sum
a16r00met03 THD Current Phase 1 -thd-type.current-source.phase-id.1
a16r00met03 THD Current Phase 2 -thd-type.current-source.phase-id.2
a16r00met03 THD Current Phase 3 -thd-type.current-source.phase-id.3
a16r00met03 THD Voltage Phase 1 -thd-type.voltage-source.phase-id.1
a16r00met03 THD Voltage Phase 2 -thd-type.voltage-source.phase-id.2
a16r00met03 THD Voltage Phase 3 -thd-type.voltage-source.phase-id.3
a16r00met03 Voltage Phase 1-2 -voltage-source.phase-id.12
a16r00met03 Voltage Phase 1 -voltage-source.phase-id.1
a16r00met03 Voltage Phase 2-3 -voltage-source.phase-id.23
a16r00met03 Voltage Phase 2 -voltage-source.phase-id.2
a16r00met03 Voltage Phase 3-1 -voltage-source.phase-id.31
a16r00met03 Voltage Phase 3 -voltage-source.phase-id.3

a16r00met04

hostname Zabbix name Zabbix key
a16r00met04 Apparent Power Phase 1 -power-type.apparent-source.phase-id.1
a16r00met04 Apparent Power Phase 2 -power-type.apparent-source.phase-id.2
a16r00met04 Apparent Power Phase 3 -power-type.apparent-source.phase-id.3
a16r00met04 Apparent Power Phase Sum -power-type.apparent-source.phase-function.sum
a16r00met04 Current Phase 1 -current-source.phase-id.1
a16r00met04 Current Phase 2 -current-source.phase-id.2
a16r00met04 Current Phase 3 -current-source.phase-id.3
a16r00met04 Current Phase Vector Sum -current-source.phase-function.vector_sum
a16r00met04 Frequency -frequency
a16r00met04 Modbus Bulk Read Registers 0 - 62 modbus_read[{$IPADDR},{$SLAVEID},19000,4,32*f,1]
a16r00met04 Modbus Bulk Read Registers 110 - 120 modbus_read[{$IPADDR},{$SLAVEID},19110,4,f,1]
a16r00met04 Modbus Bulk Read Registers 116 modbus_read[{$IPADDR},{$SLAVEID},19116,4,f,1]
a16r00met04 Power Factor Phase 1 -powerfactor-source.phase-id.1
a16r00met04 Power Factor Phase 2 -powerfactor-source.phase-id.2
a16r00met04 Power Factor Phase 3 -powerfactor-source.phase-id.3
a16r00met04 Reactive Power Phase 1 -power-type.reactive-source.phase-id.1
a16r00met04 Reactive Power Phase 2 -power-type.reactive-source.phase-id.2
a16r00met04 Reactive Power Phase 3 -power-type.reactive-source.phase-id.3
a16r00met04 Reactive Power Phase Sum -power-type.reactive-source.phase-function.sum
a16r00met04 Real Energy Phase 1 -energy-type.real-source.phase-id.1
a16r00met04 Real Energy Phase 2 -energy-type.real-source.phase-id.2
a16r00met04 Real Energy Phase 3 -energy-type.real-source.phase-id.3
a16r00met04 Real Energy Phase Sum -energy-type.real-source.phase-function.sum
a16r00met04 Real Power Phase 1 -power-type.real-source.phase-id.1
a16r00met04 Real Power Phase 2 -power-type.real-source.phase-id.2
a16r00met04 Real Power Phase 3 -power-type.real-source.phase-id.3
a16r00met04 Real Power Phase Sum -power-type.real-source.phase-function.sum
a16r00met04 THD Current Phase 1 -thd-type.current-source.phase-id.1
a16r00met04 THD Current Phase 2 -thd-type.current-source.phase-id.2
a16r00met04 THD Current Phase 3 -thd-type.current-source.phase-id.3
a16r00met04 THD Voltage Phase 1 -thd-type.voltage-source.phase-id.1
a16r00met04 THD Voltage Phase 2 -thd-type.voltage-source.phase-id.2
a16r00met04 THD Voltage Phase 3 -thd-type.voltage-source.phase-id.3
a16r00met04 Voltage Phase 1-2 -voltage-source.phase-id.12
a16r00met04 Voltage Phase 1 -voltage-source.phase-id.1
a16r00met04 Voltage Phase 2-3 -voltage-source.phase-id.23
a16r00met04 Voltage Phase 2 -voltage-source.phase-id.2
a16r00met04 Voltage Phase 3-1 -voltage-source.phase-id.31
a16r00met04 Voltage Phase 3 -voltage-source.phase-id.3

a16r00met05

hostname Zabbix name Zabbix key
a16r00met05 Apparent Power Phase 1 -power-type.apparent-source.phase-id.1
a16r00met05 Apparent Power Phase 2 -power-type.apparent-source.phase-id.2
a16r00met05 Apparent Power Phase 3 -power-type.apparent-source.phase-id.3
a16r00met05 Apparent Power Phase Sum -power-type.apparent-source.phase-function.sum
a16r00met05 Current Phase 1 -current-source.phase-id.1
a16r00met05 Current Phase 2 -current-source.phase-id.2
a16r00met05 Current Phase 3 -current-source.phase-id.3
a16r00met05 Current Phase Vector Sum -current-source.phase-function.vector_sum
a16r00met05 Frequency -frequency
a16r00met05 Modbus Bulk Read Registers 0 - 62 modbus_read[{$IPADDR},{$SLAVEID},19000,4,32*f,1]
a16r00met05 Modbus Bulk Read Registers 110 - 120 modbus_read[{$IPADDR},{$SLAVEID},19110,4,f,1]
a16r00met05 Modbus Bulk Read Registers 116 modbus_read[{$IPADDR},{$SLAVEID},19116,4,f,1]
a16r00met05 Power Factor Phase 1 -powerfactor-source.phase-id.1
a16r00met05 Power Factor Phase 2 -powerfactor-source.phase-id.2
a16r00met05 Power Factor Phase 3 -powerfactor-source.phase-id.3
a16r00met05 Reactive Power Phase 1 -power-type.reactive-source.phase-id.1
a16r00met05 Reactive Power Phase 2 -power-type.reactive-source.phase-id.2
a16r00met05 Reactive Power Phase 3 -power-type.reactive-source.phase-id.3
a16r00met05 Reactive Power Phase Sum -power-type.reactive-source.phase-function.sum
a16r00met05 Real Energy Phase 1 -energy-type.real-source.phase-id.1
a16r00met05 Real Energy Phase 2 -energy-type.real-source.phase-id.2
a16r00met05 Real Energy Phase 3 -energy-type.real-source.phase-id.3
a16r00met05 Real Energy Phase Sum -energy-type.real-source.phase-function.sum
a16r00met05 Real Power Phase 1 -power-type.real-source.phase-id.1
a16r00met05 Real Power Phase 2 -power-type.real-source.phase-id.2
a16r00met05 Real Power Phase 3 -power-type.real-source.phase-id.3
a16r00met05 Real Power Phase Sum -power-type.real-source.phase-function.sum
a16r00met05 THD Current Phase 1 -thd-type.current-source.phase-id.1
a16r00met05 THD Current Phase 2 -thd-type.current-source.phase-id.2
a16r00met05 THD Current Phase 3 -thd-type.current-source.phase-id.3
a16r00met05 THD Voltage Phase 1 -thd-type.voltage-source.phase-id.1
a16r00met05 THD Voltage Phase 2 -thd-type.voltage-source.phase-id.2
a16r00met05 THD Voltage Phase 3 -thd-type.voltage-source.phase-id.3
a16r00met05 Voltage Phase 1-2 -voltage-source.phase-id.12
a16r00met05 Voltage Phase 1 -voltage-source.phase-id.1
a16r00met05 Voltage Phase 2-3 -voltage-source.phase-id.23
a16r00met05 Voltage Phase 2 -voltage-source.phase-id.2
a16r00met05 Voltage Phase 3-1 -voltage-source.phase-id.31
a16r00met05 Voltage Phase 3 -voltage-source.phase-id.3

a16r00mox01

hostname Zabbix name Zabbix key
a16r00mox01 CH4 Pressure after first reduction -pressure-id.0-location.PressureReductionCabinet
a16r00mox01 CH4 Pressure in storage -pressure-id.1-location.PressureReductionCabinet
a16r00mox01 Modbus Bulk Read Registers 8-24 modbus_read[{$IPADDR},1,8,4,8*f,0]
a16r00mox01 Voltage - 2 -voltage-id.2
a16r00mox01 Voltage - 3 -voltage-id.3
a16r00mox01 Voltage - 4 -voltage-id.4

a16r00mox02

hostname Zabbix name Zabbix key
a16r00mox02 Modbus Bulk Read Registers 1548 -1558 modbus_read[{$IPADDR},1,1548,4,6*f,0]
a16r00mox02 Temperature - 0 -temperature-source.pt100-id.0
a16r00mox02 Temperature - 1 -temperature-source.pt100-id.1
a16r00mox02 Temperature - 2 -temperature-source.pt100-id.2
a16r00mox02 Temperature - 3 -temperature-source.pt100-id.3
a16r00mox02 Temperature - 4 -temperature-source.pt100-id.4
a16r00mox02 Temperature - 5 -temperature-source.pt100-id.5

a16r00sen01

hostname Zabbix name Zabbix key
a16r00sen01 Air differential pressure -pressure-location.fccontainer-source.airdiff
a16r00sen01 CH4 Low Pressure Sensor -pressure-location.fccontainer-source.ch4
a16r00sen01 container_read_unipi_jsonData container_read_unipi_jsonData
a16r00sen01 DC to FC container flow -flow-location.dccontainer-unit.lpm-source.toFCflowmeter
a16r00sen01 Dry cooler flow -flow-location.dccontainer-unit.lpm-source.drycoolerflowmeter
a16r00sen01 Dry cooler state -state-location.dccontainer-source.drycoolerctrl
a16r00sen01 FC container fan setpoint -setpoint-location.fccontainer-source.airsupplyfan
a16r00sen01 Gas detection leak sensor fc container -mixingratio-location.fccontainer-source.FCGasDetector
a16r00sen01 Pump Flow -flow-location.dccontainer-unit.m3h
a16r00sen01 Pump flow speed -speed-location.dccontainer-unit.rpm
a16r00sen01 Pump head -pressure-location.dccontainer-unit.m
a16r00sen01 ShuntValveDCContainer -flow-location.dccontainer-source.unipi
a16r00sen01 Submer out temperature -temperature-location.dccontainer-unit.degC-source.extSensor
a16r00sen01 Temperature DC Container -temperature-location.dccontainer-id.0-source.DS18B20
a16r00sen01 Temperature FC container -temperature-location.fccontainer-id.2-source.PT1000

a16r00sen02

hostname Zabbix name Zabbix key
a16r00sen02 dhsubstation_read_unipi_jsonData dhsubstation_read_unipi_jsonData
a16r00sen02 FCCoolingFlow -flow-location.DHsubstation
a16r00sen02 FC Heat recovery (Thermal power) -power-function.calculated
a16r00sen02 Heat recovery flow -flow-location.dhsubstation-source.EnergyWatchE6
a16r00sen02 Heat recovery flow lpm -flow-location.dhsubstation-source.EnergyWatchE6-unit.lpm
a16r00sen02 Temperature Fuel Cell System return Thin -temperature-location.dhsubstation-id.3-source.DS18B20
a16r00sen02 Temperature Fuel Cell System supply Thout -temperature-location.dhsubstation-id.2-source.DS18B20
a16r00sen02 Temperature Heating System return Tcin -temperature-location.dhsubstation-id.1-source.DS18B20
a16r00sen02 Temperature Heating System supply Tcout -temperature-location.dhsubstation-id.0-source.DS18B20
a16r00sen02 Thermal energy recovery -energy-location.dhsubstation-source.EnergyWatchE6
a16r00sen02 Thermal energy recovery kW -energy-location.dhsubstation-source.EnergyWatchE6-unit.kW

nuc-wedistrict

hostname Zabbix name Zabbix key
fuelcellproxy.rice.nu Agent ping agent.ping
fuelcellproxy.rice.nu Available memory vm.memory.size[available]
fuelcellproxy.rice.nu Checksum of /etc/passwd vfs.file.cksum[/etc/passwd]
fuelcellproxy.rice.nu Context switches per second system.cpu.switches
fuelcellproxy.rice.nu CPU idle time system.cpu.util[,idle]
fuelcellproxy.rice.nu CPU interrupt time system.cpu.util[,interrupt]
fuelcellproxy.rice.nu CPU iowait time system.cpu.util[,iowait]
fuelcellproxy.rice.nu CPU nice time system.cpu.util[,nice]
fuelcellproxy.rice.nu CPU softirq time system.cpu.util[,softirq]
fuelcellproxy.rice.nu CPU steal time system.cpu.util[,steal]
fuelcellproxy.rice.nu CPU system time system.cpu.util[,system]
fuelcellproxy.rice.nu CPU user time system.cpu.util[,user]
fuelcellproxy.rice.nu Free disk space on /boot (percentage) vfs.fs.size[/boot,pfree]
fuelcellproxy.rice.nu Free disk space on /boot vfs.fs.size[/boot,free]
fuelcellproxy.rice.nu Free disk space on {#FSNAME} (percentage) vfs.fs.size[{#FSNAME},pfree]
fuelcellproxy.rice.nu Free disk space on {#FSNAME} vfs.fs.size[{#FSNAME},free]
fuelcellproxy.rice.nu Free disk space on / (percentage) vfs.fs.size[/,pfree]
fuelcellproxy.rice.nu Free disk space on / vfs.fs.size[/,free]
fuelcellproxy.rice.nu Free inodes on /boot (percentage) vfs.fs.inode[/boot,pfree]
fuelcellproxy.rice.nu Free inodes on {#FSNAME} (percentage) vfs.fs.inode[{#FSNAME},pfree]
fuelcellproxy.rice.nu Free inodes on / (percentage) vfs.fs.inode[/,pfree]
fuelcellproxy.rice.nu Free swap space in % system.swap.size[,pfree]
fuelcellproxy.rice.nu Free swap space system.swap.size[,free]
fuelcellproxy.rice.nu Host boot time system.boottime
fuelcellproxy.rice.nu Host local time system.localtime
fuelcellproxy.rice.nu Host name of zabbix_agentd running agent.hostname
fuelcellproxy.rice.nu Host name system.hostname
fuelcellproxy.rice.nu Incoming network traffic on br-a070e5fff548 net.if.in[br-a070e5fff548]
fuelcellproxy.rice.nu Incoming network traffic on docker0 net.if.in[docker0]
fuelcellproxy.rice.nu Incoming network traffic on enp88s0 net.if.in[enp88s0]
fuelcellproxy.rice.nu Incoming network traffic on enp89s0 net.if.in[enp89s0]
fuelcellproxy.rice.nu Incoming network traffic on {#IFNAME} net.if.in[{#IFNAME}]
fuelcellproxy.rice.nu Incoming network traffic on wlo1 net.if.in[wlo1]
fuelcellproxy.rice.nu Interrupts per second system.cpu.intr
fuelcellproxy.rice.nu Maximum number of opened files kernel.maxfiles
fuelcellproxy.rice.nu Maximum number of processes kernel.maxproc
fuelcellproxy.rice.nu Mounted filesystem discovery vfs.fs.discovery
fuelcellproxy.rice.nu Network interface discovery net.if.discovery
fuelcellproxy.rice.nu Number of logged in users system.users.num
fuelcellproxy.rice.nu Number of processes proc.num[]
fuelcellproxy.rice.nu Number of running processes proc.num[,,run]
fuelcellproxy.rice.nu Outgoing network traffic on br-a070e5fff548 net.if.out[br-a070e5fff548]
fuelcellproxy.rice.nu Outgoing network traffic on docker0 net.if.out[docker0]
fuelcellproxy.rice.nu Outgoing network traffic on enp88s0 net.if.out[enp88s0]
fuelcellproxy.rice.nu Outgoing network traffic on enp89s0 net.if.out[enp89s0]
fuelcellproxy.rice.nu Outgoing network traffic on {#IFNAME} net.if.out[{#IFNAME}]
fuelcellproxy.rice.nu Outgoing network traffic on wlo1 net.if.out[wlo1]
fuelcellproxy.rice.nu Processor load (15 min average per core) system.cpu.load[percpu,avg15]
fuelcellproxy.rice.nu Processor load (1 min average per core) system.cpu.load[percpu,avg1]
fuelcellproxy.rice.nu Processor load (5 min average per core) system.cpu.load[percpu,avg5]
fuelcellproxy.rice.nu System information system.uname
fuelcellproxy.rice.nu System uptime system.uptime
fuelcellproxy.rice.nu Total disk space on /boot vfs.fs.size[/boot,total]
fuelcellproxy.rice.nu Total disk space on {#FSNAME} vfs.fs.size[{#FSNAME},total]
fuelcellproxy.rice.nu Total disk space on / vfs.fs.size[/,total]
fuelcellproxy.rice.nu Total memory vm.memory.size[total]
fuelcellproxy.rice.nu Total swap space system.swap.size[,total]
fuelcellproxy.rice.nu Used disk space on /boot vfs.fs.size[/boot,used]
fuelcellproxy.rice.nu Used disk space on {#FSNAME} vfs.fs.size[{#FSNAME},used]
fuelcellproxy.rice.nu Used disk space on / vfs.fs.size[/,used]
fuelcellproxy.rice.nu Version of zabbix_agent(d) running agent.version

Solid Power FC1

hostname Zabbix name Zabbix key
a16r00oth01 Electrical efficiency -utilization-unit.percent
a16r00oth01 EMS power max set point -setpoint-unit.watt
a16r00oth01 Gas energy in -power-unit.watt-source.fuelcell-source.gas
a16r00oth01 modbus read address 0 - 5 32bit float modbus_read[{$IPADDR},{$SLAVEID},0,3,5*f,3,0]
a16r00oth01 Power output AC -power-source.fuelcell-id.1
a16r00oth01 Power set point AC -power-source.setpoint-id.1

Solid Power FC2

hostname Zabbix name Zabbix key
a16r00oth02 Electrical efficiency -utilization-unit.percent
a16r00oth02 EMS power max set point -setpoint-unit.watt
a16r00oth02 Gas energy in -power-unit.watt-source.fuelcell-source.gas
a16r00oth02 modbus read address 0 - 5 32bit float modbus_read[{$IPADDR},{$SLAVEID},0,3,5*f,3,0]
a16r00oth02 Power output AC -power-source.fuelcell-id.1
a16r00oth02 Power set point AC -power-source.setpoint-id.1

Solid Power FC3

hostname Zabbix name Zabbix key
a16r00oth03 Electrical efficiency -utilization-unit.percent
a16r00oth03 EMS power max set point -setpoint-unit.watt
a16r00oth03 Gas energy in -power-unit.watt-source.fuelcell-source.gas
a16r00oth03 modbus read address 0 - 5 32bit float modbus_read[{$IPADDR},{$SLAVEID},0,3,5*f,3,0]
a16r00oth03 Power output AC -power-source.fuelcell-id.1
a16r00oth03 Power set point AC -power-source.setpoint-id.1

Solid Power FC4

hostname Zabbix name Zabbix key
a16r00oth04 Electrical efficiency -utilization-unit.percent
a16r00oth04 EMS power max set point -setpoint-unit.watt
a16r00oth04 Gas energy in -power-unit.watt-source.fuelcell-source.gas
a16r00oth04 modbus read address 0 - 5 32bit float modbus_read[{$IPADDR},{$SLAVEID},0,3,5*f,3,0]
a16r00oth04 Power output AC -power-source.fuelcell-id.1
a16r00oth04 Power set point AC -power-source.setpoint-id.1

Solid Power FC5

hostname Zabbix name Zabbix key
a16r00oth05 Electrical efficiency -utilization-unit.percent
a16r00oth05 EMS power max set point -setpoint-unit.watt
a16r00oth05 Gas energy in -power-unit.watt-source.fuelcell-source.gas
a16r00oth05 modbus read address 0 - 5 32bit float modbus_read[{$IPADDR},{$SLAVEID},0,3,5*f,3,0]
a16r00oth05 Power output AC -power-source.fuelcell-id.1
a16r00oth05 Power set point AC -power-source.setpoint-id.1

Solid Power FC6

hostname Zabbix name Zabbix key
a16r00oth06 Electrical efficiency -utilization-unit.percent
a16r00oth06 EMS power max set point -setpoint-unit.watt
a16r00oth06 Gas energy in -power-unit.watt-source.fuelcell-source.gas
a16r00oth06 modbus read address 0 - 5 32bit float modbus_read[{$IPADDR},{$SLAVEID},0,3,5*f,3,0]
a16r00oth06 Power output AC -power-source.fuelcell-id.1
a16r00oth06 Power set point AC -power-source.setpoint-id.1

Solid Power FC7

hostname Zabbix name Zabbix key
a16r00oth07 Electrical efficiency -utilization-unit.percent
a16r00oth07 EMS power max set point -setpoint-unit.watt
a16r00oth07 Gas energy in -power-unit.watt-source.fuelcell-source.gas
a16r00oth07 modbus read address 0 - 5 32bit float modbus_read[{$IPADDR},{$SLAVEID},0,3,5*f,3,0]
a16r00oth07 Power output AC -power-source.fuelcell-id.1
a16r00oth07 Power set point AC -power-source.setpoint-id.1

Solid Power FC8

hostname Zabbix name Zabbix key
a16r00oth08 Electrical efficiency -utilization-unit.percent
a16r00oth08 EMS power max set point -setpoint-unit.watt
a16r00oth08 Gas energy in -power-unit.watt-source.fuelcell-source.gas
a16r00oth08 modbus read address 0 - 5 32bit float modbus_read[{$IPADDR},{$SLAVEID},0,3,5*f,3,0]
a16r00oth08 Power output AC -power-source.fuelcell-id.1
a16r00oth08 Power set point AC -power-source.setpoint-id.1

Solid Power FC9

hostname Zabbix name Zabbix key
a16r00oth09 Electrical efficiency -utilization-unit.percent
a16r00oth09 EMS power max set point -setpoint-unit.watt
a16r00oth09 Gas energy in -power-unit.watt-source.fuelcell-source.gas
a16r00oth09 modbus read address 0 - 5 32bit float modbus_read[{$IPADDR},{$SLAVEID},0,3,5*f,3,0]
a16r00oth09 Power output AC -power-source.fuelcell-id.1
a16r00oth09 Power set point AC -power-source.setpoint-id.1

Metrics data structure

Goal

Store datacenter metrics in a standardized way to make it easier to extract and analyze it. The storage should be able to grow as the data grows.

Time Series Database storage schema

The format of the metrics in time series databases are in most cases:

<metric name> <time stamp> <value> <tag> <tag>...
  • Metric name is one word.
  • Time stamps can be in seconds or milliseconds since jan 1, 1970 (unix epoch).
  • Value is long or double.
  • Tag is of form key=value.

Types of metrics

All metrics that we handle is time stamped. It can be either metric values (float, int) or strings (logs, text information). To store the metric values a Time Series Database can be used and for the strings Elastic-Search. Elastic-Search can be deployed on a cluster and many TSDB also support clustering.

Metric vs Tags

The metric should be a specific thing, like Ethernet packets but not be broken out into a particular instance of a thing. Generally you do not want to collect a metric like net.bytes.eth0, net.bytes.eth1, etc. Collect net.bytes and tag eth0 datapoints with iface=eth0, etc. Do not create separate in and out metrics, either. Add the tag opt=in or opt=out. This way you can easily see the total network activity for a given box without having to plot a bunch of metrics. This still gives you the flexibility to drill down and just show activity for a particular interface, or just a particular direction.

Allowed metrics

attemperation frequency precipitation thd
brightness gain pressure time
capacity humidity pue twilight
charge irradiance radiation usage
count limit rate utilization
current loss setpoint uvindex
direction mass severitylevel velocity
efficiency mixingratio signal voltage
energy mode speed volume
enthalpy power state wue
fault powerfactor temperature
flow ppue temporary

Tags/Labels

Tags/labels applicable to our installation:

  • datacenter: Defines what specific data center as the datasets can be collected from multiple monitored data centers. (required, automatically parsed)
  • pod: Data centers are broken down into modules (PODs) numbered, 1, 2, 3 etc. (automatically parsed)
  • area: If not in pod you can specify an area
  • experiment: If not in pod or area you can specify experiment
  • rack: The rack number in the pod, set to 0 for equipment not mounted in racks (required, automatically parsed)
  • chassis: For IT systems where there are several servers hosted in one chassis (optional, automatically parsed)
  • deviceType: What type of device is being monitored in a 3-letter code. E.g. srv = server. See table below for codes. (required, automatically parsed)
  • deviceNumber: If there are several devices with the same tags they are separated using device number. Eg, A server chassis includes 2 servers which are labeled with deviceNumber 1 and 2. (required, automatically parsed)
  • source: Object within host which provides the source of the measurement. E.g. fan, cpu, etc. (optional)
  • location: Where the measurement is taken. E.g. top, inlet, output, hot aisle, outdoor, extract. (optional)
  • direction: Direction of metric. E.g. in, out, up, down, forward, backward. For the metric flow this can be e.g. positive or negative (optional)
  • id: If one host has multiple sources of the same type id is used to distinguish between them, e.g. there can be multiple CPUs on the same host. (optional)
  • unit: Unit of the metric (C,W,m/s, etc.) (optional, automatically parsed)
  • type: Provides information about metric type. E.g. if metric is pressure, type could be absolute or differential. If metric was power, type could be real, reactive or apparent. (optional)
  • hostname: Name of host providing metrics. Includes pod, rack, chassis (optional), deviceType and deviceNumber information. E.g. p01r04c07srv02 (pod=1,rack=4,chassis=7,deviceType=srv, deviceNumber=2) (required, automatically parsed)
  • function: Used to specify if metric is obtained with a function such as min, max, average, etc. (optional)
  • opt: Optional information, very rarely used (optional)

Allowed device types

deviceType Device
hum humidifier
ecm environmental corrosion monitoring
cal calculator (for aggregating data)
mox moxa (measurement or control)
pum pump
hex heat exchanger
ups uninterruptible power source
sen sensor gateway (eg. raspberry pi)
srv server
swi switch
met energy meter
str sensor strip
pdu power distribution unit
fan fan
esp esp8266 wifi gateway
fcb fan control board
wst weather station
liq liquid measurement device (eg. kamstrup)
col cooler
oth other
inv inverter

Zabbix Mapping

Each Zabbix item is mapped to a metric name and identification tags. A Zabbix item has multiple fields that can be used: name, key and description. There are different kinds of keys for Zabbix items. In many items the key is just a unique identifier that is defined by the creator of the item, but in simple checks and agent items the key is a parameter for the agent or module. E.g. for modbus the keys can look like modbus_read_registers[e192.168.20.76,1,31,4,s]. This information is not much of a help when extracting the data and putting it into a database outside of Zabbix. The name field is neither much of a help by its own as this is a human readable name for the item, e.g. "Air Temperature". The description field is usually empty.

Automatically extracted tags

Following tags: pod, rack, host are extracted from the hostname associated with the given item. This is possible because of the SICS ICE naming format: P<Pod id>R<Rack id><name>. For example p01r02srv10 will give us the tags pod=1, rack=02, host=p01r02srv10. The tag unit is taken directly from the units-field (if set) and tag datacenter is set depending on Zabbix installation, e.g. datacenter=lulea. Instead of pod, area or experiment can be used, e.g. a01r02srv10 becomes area=1, rack=02 etc. while e01r02srv10 becomes experiment=1, rack=02.

Metric and additional tag information

The metric and additional tags are entered into either the key- or description-field of the Zabbix item. The reason to support the additional description-field is because sometimes the preferred key-field is already populated. We came up with one format for each field where the format for the description-field support additional text:

Key-field:

The key should be inserted into the Key-field of the item if possible. Zabbix supports the following characters in the key field "0-9a-zA-Z_-.".

Format: -<metricname>(-<tag>.<value>)*

  • <metricname> is the name to be used for the metric when storing it in the database.

  • <tag> is any of | dc | pod | rack | host | source| id |. Each tag should only be present at most once in every key.

  • <value> is the value for the specified <tag>. The number of distinct tag values should be kept at a minimum. So for example for tag "rack" only "1" should be used as the value, not "one", "rack1" or something else.

Example: -temperature-source.cpu-id.1

Description-field:

If the key field is of non use for the translation information it can be inserted into the description field instead with the format:

Format: |key:<metricname>(-<tag>.<value>)*|

Example: |key:temperature-source.cpu-id.1|

If no metric is specified in either the key- or description-field for a Zabbix item it is not forwarded to Kafka.

Metric names, tag names and values are case sensitive and can only contain the following characters: alphanumeric characters, period ".", slash "/", dash "-", and underscore "_". In our installation "." cannot be used because it is used as the separator between tag-key and tag-value in the item key.

There is one more place where information can be of interest and that is in the items name. This is the case when we have equipment that span multiple racks. The Raritan gateways have different temperature sensors that are located on different racks other than the location of the gateway. To make it clear from the Zabbix user interface the name of each temperature sensor contains the rack it is located in, e.g. R01 - Temperature Front-Top, which would translate to tag rack=01. This also makes it necessary to have priority rules from where the information is taken if it exists in multiple locations.

The priority is as follows from highest to lowest:

  1. Item description
  2. Item key
  3. Item name
  4. Hosts name

Extending Key

Sometime one needs to have multiple keys that are identical in Zabbix but in the TSDB can be combined with tags that make the series unique. This is the case when a host can span multiple racks. There can be two temperature.source_top connected to one host, one measuring top temperature in rack 1 and one in rack 2. Macros are not supported in keys so the rack number is encoded in the name of the item. The keys however will be the same and make a collision.

By enabling key extensions with information that is dropped in the mapping from Zabbix to the TSDB the keys can be made unique. Key extension is made in the end of the key by the following format: <item key>--<extension> <extension> is any arbitrary text that conforms with the key schema used by Zabbix. The --<extension> part will be dropped when creating the TSDB metric and tags.

Hostname

Host names should be written without any non allowed tag value characters if possible because they are not allowed in the time series database. If non allowed characters are used in the host name these will be replaced with "_" before insertion into the database.

Macros

Discovery macros can be used to populate the different tags. But care has to be taken because all the different kinds of macros aren't supported in every field. Low level discovery macros can be used in the item key field but must be enclosed with brackets "[]". This is not an issue and can be stripped away before insertion is made into the database. This is how it can look like: voltage-source.input-id.[{#SNMPINDEX}]. Low level macros can be used in the description with no hassle.

Example data structure

{
  "metric": "temperature",
  "labels": {
    "datacenter": "dclulea",
    "pod": "1",
    "rack": "1",
    "deviceType": "srv",
    "deviceNumber": "1",
    "location": "inlet",
    "unit": "C",
    "type": "default",
    "hostname": "p01r01srv01"
  },
  "@timestamp": "2022-04-14T14:31:24.756Z",
  "timestamp": 1649939484756,
  "host": "zabbix",
  "value": 24
}
{
  "metric": "speed",
  "labels": {
    "datacenter": "dclulea",
    "pod": "1",
    "rack": "1",
    "deviceType": "srv",
    "deviceNumber": "1",
    "source": "psu",
    "id": "2",
    "unit": "GHz",
    "type": "default",
    "hostname": "p01r01srv01"
  },
  "@timestamp": "2022-04-14T14:31:24.756Z",
  "timestamp": 1649939484756,
  "host": "zabbix",
  "value": 2.4
}
{
  "metric": "power",
  "labels": {
    "datacenter": "dclulea",
    "pod": "1",
    "rack": "1",
    "deviceType": "srv",
    "deviceNumber": "1",
    "source": "psu",
    "unit": "W",
    "type": "default",
    "hostname": "p01r01srv01"
  },
  "@timestamp": "2022-04-14T14:31:24.756Z",
  "timestamp": 1649939484756,
  "host": "zabbix",
  "value": 224
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment