Metrics Data¶
Basic fields¶
Basic fields mean they would exist in all metrics data
| Field | Description |
|---|---|
| date | data time, float value , |
| ipAddr | IED ip address , e.g. "192.168.72.140" |
| deviceId | IED device Id , e.g. "22c08a744ed24a6795505bd462286928" |
| deviceName | IED device name, e.g. "EDGE160" |
| originalTag | full tag name , e.g. "22c08a744ed24a6795505bd462286928.System.cpu" |
System datasource¶
cpu¶
Tag¶
Full tag : <deviceId>.System.cpu
Example : 9e68a1c87977476a8ddcce6522e1f2ca.System.cpu
Fields¶
| Field | Description |
|---|---|
| irq | Total: interrupt request in percentage |
| free | Total: free cpu percentage ( used + free == 100 ) |
| idle | cpu idle time percentage |
| nice | Nice value — Nice values are user-space values that we can use to control the priority of a process. The nice value range is -20 to +19 where -20 is highest, 0 default and +19 is lowest. |
| used | total used cpu in percentage |
| user | user space cpu usage, in percentage |
| count | cpu cores |
| guest | The process (a hypervisor) is running a virtual CPU. (These numbers are already included in User and Nice). |
| steal | Steal time is the percentage of time a virtual CPU waits for a real CPU while the hypervisor is servicing another virtual processor. |
| iowait | I/O wait (iowait) is the percentage of time that the CPU (or CPUs) were idle during which the system had pending disk I/O requests. |
| system | system space usage |
| softirq | soft Interrupt request |
| cpu[coreX].irq | cpu core X interrupt request in percentage |
| cpu[coreX].free | cpu core X : free cpu percentage |
| cpu[coreX].idle | cpu core X cpu idle time percentage |
| cpu[coreX].nice | save with nice, but only in this cpu core |
| cpu[coreX].used | cpu core X, used cpu in percentage |
| cpu[coreX].user | cpu core X, user space cpu usage, in percentage |
| cpu[coreX].guest | cpu core X, The process (a hypervisor) is running a virtual CPU. (These numbers are already included in User and Nice). |
| cpu[coreX].steal | cpu core X, Steal time is the percentage of time a virtual CPU waits for a real CPU while the hypervisor is servicing another virtual processor. |
| cpu[coreX].iowait | cpu core X, I/O wait (iowait) is the percentage of time that the CPU (or CPUs) were idle during which the system had pending disk I/O requests. |
| cpu[coreX].system | cpu core X, system space usage |
| cpu[coreX].softirq | cpu core X, soft Interrupt request |
Example¶
{
"irq": 0,
"date": 1684471422.533875,
"free": 96.296295,
"idle": 96.296295,
"nice": 0,
"used": 3.7037036,
"user": 2.4691358,
"count": 4,
"guest": 0,
"steal": 0,
"iowait": 0,
"ipAddr": "192.168.72.140",
"system": 1.2345679,
"softirq": 0,
"cpu0.irq": 0,
"cpu1.irq": 0,
"cpu2.irq": 0,
"cpu3.irq": 0,
"deviceId": "9e68a1c87977476a8ddcce6522e1f2ca",
"cpu0.free": 95,
"cpu0.idle": 95,
"cpu0.nice": 5,
"cpu0.used": 5,
"cpu0.user": 0,
"cpu1.free": 47.61905,
"cpu1.idle": 47.61905,
"cpu1.nice": 52.38095,
"cpu1.used": 52.38095,
"cpu1.user": 0,
"cpu2.free": 85.71429,
"cpu2.idle": 85.71429,
"cpu2.nice": 4.7619047,
"cpu2.used": 14.285714,
"cpu2.user": 0,
"cpu3.free": 88.888885,
"cpu3.idle": 88.888885,
"cpu3.nice": 11.111111,
"cpu3.used": 11.111111,
"cpu3.user": 0,
"guestNice": 0,
"cpu0.guest": 0,
"cpu0.steal": 0,
"cpu1.guest": 0,
"cpu1.steal": 0,
"cpu2.guest": 0,
"cpu2.steal": 0,
"cpu3.guest": 0,
"cpu3.steal": 0,
"deviceName": "LK140V16X3",
"cpu0.iowait": 0,
"cpu0.system": 0,
"cpu1.iowait": 0,
"cpu1.system": 0,
"cpu2.iowait": 0,
"cpu2.system": 9.523809,
"cpu3.iowait": 0,
"cpu3.system": 0,
"originalTag": "9e68a1c87977476a8ddcce6522e1f2ca.System.cpu",
"cpu0.softirq": 0,
"cpu1.softirq": 0,
"cpu2.softirq": 0,
"cpu3.softirq": 0,
"cpu0.guestNice": 0,
"cpu1.guestNice": 0,
"cpu2.guestNice": 0,
"cpu3.guestNice": 0
}
Disk¶
System disk io sampling data in average 1s. This data is coming from
/proc/diskstats, Please access https://www.kernel.org/doc/Documentation/ABI/testing/procfs-diskstats for more information.
Tag¶
Full tag : <deviceId>.System.disk
Example : 9e68a1c87977476a8ddcce6522e1f2ca.System.disk
Fields¶
| Field | Description |
|---|---|
| dev | Linux device name, e.g. "sda" |
| readBytes | read bytes |
| readTime | time spent reading (ms) |
| readCount | reads completed successfully count |
| writeTime | time spent writing (ms) |
| writeBytes | write bytes |
| writeCount | writes completed |
| ioTime | time spent doing I/Os (ms) |
| weightedIO | weighted time spent doing I/Os (ms) |
| iopsInProgress | I/Os currently in progress |
| mergedReadCount | reads merged |
| mergedWriteCount | writes merged |
Example¶
{
"dev": "sda",
"date": 1684471422.129406,
"ioTime": 116164,
"ipAddr": "192.168.72.140",
"deviceId": "9e68a1c87977476a8ddcce6522e1f2ca",
"readTime": 29692,
"readBytes": 1346714112,
"readCount": 58252,
"writeTime": 233589,
"deviceName": "LK140V16X3",
"weightedIO": 184932,
"writeBytes": 12955247104,
"writeCount": 316664,
"originalTag": "9e68a1c87977476a8ddcce6522e1f2ca.System.disk",
"iopsInProgress": 0,
"mergedReadCount": 1808,
"mergedWriteCount": 2837773
}
mem¶
System memory stat
Tag¶
Full tag : <deviceId>.System.mem
Example : 9e68a1c87977476a8ddcce6522e1f2ca.System.mem
Fields¶
| Field | Description |
|---|---|
| total | total memory size in MB , e.g. 8532.91 means 8532MB |
| free | Unused memory size in MB , |
| used | used memory size in MB , (used = total – free – buff/cache) |
| usedPercent | used memory usage , percentage . ( used = total – free – buff/cache) |
| freePercent | (free + buff/cache ) memory usage or 100% - usedPercent , percentage , 55.49368827036863, means 55.5% |
| swapTotal | swap total memory size |
| swapFree | swap free memory size |
| swapUsed | swap used memory size |
| swapFreePercent | swap free memory usage, percentage |
| swapUsedPercent | used memory usage , percentage |
Example¶
{
"date": 1684471422.109089,
"free": 4735.2265625,
"used": 1442.06640625,
"total": 8532.91015625,
"ipAddr": "192.168.72.140",
"deviceId": "9e68a1c87977476a8ddcce6522e1f2ca",
"swapFree": 0,
"swapUsed": 0,
"swapTotal": 0,
"deviceName": "LK140V16X3",
"freePercent": 55.49368827036863,
"originalTag": "9e68a1c87977476a8ddcce6522e1f2ca.System.mem",
"usedPercent": 55.49368827036863,
"swapFreePercent": 0,
"swapUsedPercent": 0
}
NOTICE
The memory data collection algorithm uses same data source (specs) as Edge Device Statistics.
The used = total – free – buff/cache, is same with command top or free on linux, e.g. :
$ top
top - 07:49:55 up 35 min, 1 user, load average: 1.72, 1.96, 1.96
Tasks: 304 total, 1 running, 302 sleeping, 0 stopped, 1 zombie
%Cpu(s): 0.0 us, 1.5 sy, 0.0 ni, 98.5 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
MiB Mem : 8532.9 total, 4735.1 free, 1442.7 used, 2355.1 buff/cache
MiB Swap: 0.0 total, 0.0 free, 0.0 used. 6946.8 avail Mem
diskcap¶
System disk capacity of host root folder /
Tag¶
Full tag : <deviceId>.System.diskcap
Example : 9e68a1c87977476a8ddcce6522e1f2ca.System.diskcap
Fields¶
| Field | Description |
|---|---|
| total | total disk size in MB , e.g. "14047.0078125" means 14047MB |
| free | free disk size in MB |
| used | used disk size in MB |
| freePercent | free disk usage, percentage |
| usedPercent | used disk usage , percentage , 30.22908020019531 means 30.2% |
Example¶
{
"date": 1684471243.812315,
"free": 9170.33984375,
"used": 4246.28125,
"total": 14047.0078125,
"ipAddr": "192.168.72.140",
"deviceId": "9e68a1c87977476a8ddcce6522e1f2ca",
"deviceName": "LK140V16X3",
"freePercent": 65.2832260131836,
"originalTag": "9e68a1c87977476a8ddcce6522e1f2ca.System.diskcap",
"usedPercent": 30.22908020019531
}
NOTICE
Similar to memory case , the disk capacity free + used is small than total. It's used same data source as df command on Linux, e.g. :
$ df -h /
Filesystem Size Used Avail Use% Mounted on
overlayroot 14G 4.2G 9.0G 32% /
You can find more info at Edge Device Statistics subsection.
operationinfo¶
Edge operationinfo message
Tag¶
Full tag : <deviceId>.edge.operationinfo
Example : 9e68a1c87977476a8ddcce6522e1f2ca.edge.operationinfo
Fields¶
| Field | Description |
|---|---|
| runningApplicationCapicity | the max running apps limit |
| runningApplicationAvailable | current running apps |
| installedApplicationCapacity | Max capacity allows to install apps on IED |
| installedApplicationAvailable | current install available on IED |
Example¶
{
"date": 1684471302.142485,
"ipAddr": "192.168.72.140",
"deviceId": "9e68a1c87977476a8ddcce6522e1f2ca",
"deviceName": "LK140V16X3",
"originalTag": "9e68a1c87977476a8ddcce6522e1f2ca.edge.operationinfo",
"runningApplicationCapicity": 10,
"runningApplicationAvailable": 9,
"installedApplicationCapacity": 20,
"installedApplicationAvailable": 18
}
docker containers¶
Docker containers info
Tag¶
Full tag : <deviceId>.System.docker
Example : 9e68a1c87977476a8ddcce6522e1f2ca.System.docker
Fields¶
| Field | Description |
|---|---|
| name | container name |
| state | container running state, 1 : running , 0 stopped |
| memMax | Max memory allows in MB |
| memUsed | memory used, in MB |
| memPercent | memory usage percentage, 26.9140625 means "26.9%" |
| cpuPercent | cpu usage, in percentage |
| sizeRw | is the size of the files which have been created or changed, if you compare the container to its base image. Just after creation, this should be zero; as you modify (or create) files, this will increase. in MB |
| sizeRootFs | the total size of all the files in the container, in MB . If you were to export the filesystem of the container as a tarball, it would be about that size. |
| composeService | value from container label "com.docker.compose.service" |
| composeProject | container label "com.docker.compose.project" |
| composeProject2 | value from container label name indicated by label "com.docker.stack.namespace" |
Example¶
{
"date": 1684471431.178944,
"name": "ieflowcreator_sim-edge-event-publisher_1",
"state": 1,
"ipAddr": "192.168.72.140",
"memMax": 30,
"memUsed": 8.07421875,
"deviceId": "9e68a1c87977476a8ddcce6522e1f2ca",
"cpuPercent": 0.1895136363636364,
"deviceName": "LK140V16X3",
"memPercent": 26.9140625,
"sizeRootFs": 12.09580326080322,
"originalTag": "9e68a1c87977476a8ddcce6522e1f2ca.System.docker",
"composeProject": "ieflowcreator",
"composeService": "sim-edge-event-publisher"
}
NOTICE
Metrics data SizeRw and SizeRootFs for Docker containers will be removed from IEDK version 1.21.x.
edgediskcap¶
Folder usage capacity inside edge-iot-core
Tag¶
Full tag : <deviceId>.edge.edgediskcap
Example : 9e68a1c87977476a8ddcce6522e1f2ca.edge.edgediskcap
Fields¶
| Field | Description |
|---|---|
| path | folder name |
| total | total disk size in MB , e.g. "39107.71875" means 39107MB |
| free | free disk size in MB |
| used | used disk size in MB |
| freePercent | free disk usage, percentage |
| usedPercent | used disk usage , percentage , 30.22908020019531 means 30.2% |
Example¶
{
"date": 1684471302.110987,
"free": 27634.5859375,
"path": "/",
"used": 9671.99609375,
"total": 39107.71875,
"ipAddr": "192.168.72.140",
"deviceId": "9e68a1c87977476a8ddcce6522e1f2ca",
"deviceName": "LK140V16X3",
"freePercent": 74.074290467971,
"originalTag": "9e68a1c87977476a8ddcce6522e1f2ca.edge.edgediskcap",
"usedPercent": 25.925709532029
}
system log¶
System log
Tag¶
Full tag : <deviceId>.System.log
Example : 9e68a1c87977476a8ddcce6522e1f2ca.System.log
Fields¶
| Field | Description |
|---|---|
| log | message |
| time | datetime , e.g. "2023-05-26T15:47:55Z" |
Example¶
{
"log": "May 26 15:47:55 localhost.localdomain [edgejobservice][4811]: 1:47PM ERROR Unable to publish event : {\"errors\":[{\"code\":\"auth.tokenExpired\",\"message\":\"Token expired\",\"errorCode\":401,\"field\":\"Jwt-Bearer\",\"logref\":\"4118050c-0cca-4dfa-94da-a836c7b2a912\",\"innerError\":\"\"}]} | source=processPublish.go:125",
"date": 1685116075,
"time": "2023-05-26T15:47:55Z",
"ipAddr": "192.168.72.140",
"deviceId": "9e68a1c87977476a8ddcce6522e1f2ca",
"deviceName": "LK140V16X3",
"originalTag": "9e68a1c87977476a8ddcce6522e1f2ca.System.log"
}
Edge Apps¶
Metrics data¶
Edge app value : imagesCount appSize dataSize totalSize cpuUsage memory(MB) status
Tag¶
Full tag : <deviceId>.edge.apps.<repoName>.<field>
Example : 9e68a1c87977476a8ddcce6522e1f2ca.edge.apps.mynginx1.status
App Basic fields¶
Basic fields mean they would exist in all app metrics data
| Field | Description |
|---|---|
| name | app name |
| appId | app Id |
| repoName | edge app repoName |
| field | field name : imagesCount appSize dataSize totalSize cpuUsage memory(MB) status |
App Metrics Field¶
| Field | Description |
|---|---|
| imageCount | how may images in edge apps |
| appSize | app size |
| dataSize | app data Size |
| totalSize | total Size ( app+data size) |
| cpuUsage | CPU usage percentage |
| memory | App memory usage stat |
| status | App status: "0" for not running, "1" for running , present or not decided by field |
Example for dataSize¶
{
"date": 1685116659.697587,
"name": "MyNginxv1",
"appId": "sWBh8SLcQVKkLGBCpOxxM9JJGv9EO8z1",
"field": "dataSize",
"ipAddr": "192.168.72.140",
"dataSize": 13531,
"deviceId": "9e68a1c87977476a8ddcce6522e1f2ca",
"repoName": "mynginx1",
"deviceName": "LK140V16X3",
"originalTag": "9e68a1c87977476a8ddcce6522e1f2ca.edge.apps.mynginx1.dataSize"
}
Example for status¶
{
"date": 1685116659.697587,
"name": "MyNginxv1",
"appId": "sWBh8SLcQVKkLGBCpOxxM9JJGv9EO8z1",
"field": "status",
"ipAddr": "192.168.72.140",
"status": 0,
"deviceId": "9e68a1c87977476a8ddcce6522e1f2ca",
"repoName": "mynginx1",
"deviceName": "LK140V16X3",
"originalTag": "9e68a1c87977476a8ddcce6522e1f2ca.edge.apps.mynginx1.status"
}
NOTICE
Each record contains only one Metric Field, as shown in the examples above.
App log¶
Fields¶
| Field | Description |
|---|---|
| log | message |
| time | "2023-05-22T08:59:29.351796801Z" |
| stream | stderr or stdout |
| service | service name |
| project | app project name |
Example¶
{
"log": "INFO: 2023/05/22 08:59:29 EdgeEventPublisher.go:182: Publishing...\n",
"date": 1685116168.562784,
"time": "2023-05-22T08:59:29.351796801Z",
"ipAddr": "192.168.72.140",
"stream": "stderr",
"project": "ieflowcreator",
"service": "sim-edge-event-publisher",
"deviceId": "9e68a1c87977476a8ddcce6522e1f2ca",
"deviceName": "LK140V16X3",
"originalTag": "9e68a1c87977476a8ddcce6522e1f2ca.edge.apps.ieflowcreator.log"
}