System Service¶
The System Service is a gRPC & Go based system resource tracker and system controller.
System.proto¶
CPU¶
CPU type contains CPU utilization at the current moment.
| Field | Type | Label | Description |
|---|---|---|---|
| usedCpuPercentage | [float](#float) | Percentage of used CPU e.g: 20.0 | |
| freeCpuPercentage | [float](#float) | Percentage of available CPU e.g: 80.0 | |
| coreCount | [int32](#int32) | Total available core count for CPU.e.g 2C/4T CPU value will be 4 | |
| modelInfo | [string](#string) | intel x64 etc.. | |
| idleTime | [double](#double) | Idle time of CPU eg: 3662.50 (in seconds) | |
| frequency | [double](#double) | Frequency of CPU eg: 2495.999 (in MHz) |
Device Info¶
Device Info provides hardware, firmware and network details for Industrial Edge devices.
| Field | Type | Label | Description |
|---|---|---|---|
| manufacturerName | [string](#string) | ManufacturerName identifies the device manufacturer (e.g., "Siemens AG") | |
| serialNumber | [string](#string) | SerialNumber provides the unique device serial number for identification | |
| productId | [string](#string) | ProductId contains the product identifier (MLFB for Siemens devices) | |
| firmwareVersion | [string](#string) | FirmwareVersion indicates the currently installed firmware version | |
| productName | [string](#string) | ProductName describes the product type (e.g., "SIMATIC Edge Device") | |
| biosVersion | [string](#string) | BIOS Version |
FirmwareInfo¶
FirmwareInfo contains Firmware Version.
| Field | Type | Label | Description |
|---|---|---|---|
| version | [string](#string) | Firmware version. |
Hostname¶
Represents the network name of a device. It includes the hostname string, which should adhere to specific format and length requirements as needed by your network or system configuration.
| Field | Type | Label | Description |
|---|---|---|---|
| name | [string](#string) | The hostname string. Ensure it follows the necessary format and length constraints. |
Limits¶
System Limits for the EdgeRuntime.
| Field | Type | Label | Description |
|---|---|---|---|
| maxInstalledApplications | [int32](#int32) | Maximum allowed number of installed edge applications. | |
| maxRunningApplications | [int32](#int32) | Maximum allowed number of running edge applications. | |
| maxMemoryUsageInGB | [float](#float) | Maximum allowed memory usage in Gigabytes. | |
| maxStorageUsageInGB | [float](#float) | Maximum allowed disk usage in Gigabytes. | |
| maxCpuUsagePerecentage | [float](#float) | Maximum allowed percentage of CPU usage. |
LogRequest¶
LogRequest type, determines the destination path for saving log file.
| Field | Type | Label | Description |
|---|---|---|---|
| saveFolderPath | [string](#string) | Folder path for saving gathered logs. |
LogResponse¶
LogResponse type, contains the full path for the collected log archive.
| Field | Type | Label | Description |
|---|---|---|---|
| logPath | [string](#string) | Full file path for collected log archive. |
ModelNumber¶
ModelNumber type indicates device specific model information.
| Field | Type | Label | Description |
|---|---|---|---|
| modelNumber | [string](#string) | Can be MLFB for SIEMENS devices, for 3rd party vendors it can be any model information. |
Resource¶
System Resource , memory or storage.
| Field | Type | Label | Description |
|---|---|---|---|
| totalSpaceInGB | [float](#float) | Total capacity of storage device in Gigabytes e.g: 3.5 | |
| freeSpaceInGB | [float](#float) | Free space of storage device in Gigabytes e.g: 40.4 | |
| usedSpaceInGB | [float](#float) | Used space of storage device in Gigabytes e.g: 23.2 | |
| percentageFreeSpace | [float](#float) | Percentage of available space e.g: 3.5 | |
| percentageUsedSpace | [float](#float) | Percentage of used space e.g: 96.5 | |
| diskType | [string](#string) | Type of disk eg: "HDD" or "SSD" or "EMMC" | |
| diskTotalReadSectorsInMB | [float](#float) | Total number of sectors read successfully in Megabytes e.g: 58.9 | |
| diskTotalWriteSectorsInMB | [float](#float) | Total number of sectors written successfully in Megabytes e.g: 32.7 |
Stats¶
System Utilization type. CPU, storage and memory utilization.
| Field | Type | Label | Description |
|---|---|---|---|
| cpu | [CPU](#siemens.iedge.dmapi.system.v1.Cpu) | CPU Utilization | |
| storageDevices | [Resource](#siemens.iedge.dmapi.system.v1.Resource) | repeated | StorageDevices array of Resource type. |
| memory | [Resource](#siemens.iedge.dmapi.system.v1.Resource) | RAM Utilization Information | |
| upTime | [string](#string) | Elapsed time since the device is started. |
SystemService¶
System service ,uses a UNIX Domain Socket "/var/run/devicemodel/system.sock" for GRPC communication. protoc generates both client and server instance for this Service. GRPC Status codes : https://developers.google.com/maps-booking/reference/grpc-api/status_codes .
| Method Name | Request Type | Response Type | Description |
|---|---|---|---|
| RestartDevice | [.google.protobuf.Empty](#google.protobuf.Empty) | [.google.protobuf.Empty](#google.protobuf.Empty) | Restarts the device |
| ShutdownDevice | [.google.protobuf.Empty](#google.protobuf.Empty) | [.google.protobuf.Empty](#google.protobuf.Empty) | ShutsDown the device. |
| HardReset | [.google.protobuf.Empty](#google.protobuf.Empty) | [.google.protobuf.Empty](#google.protobuf.Empty) | Performs host side actions in addition to edge-core for hard reset. e.g: cleaning hard-reset flag(mandatory) ,custom device builder steps(optional) and finally reboots the system(mandatory). |
| GetModelNumber | [.google.protobuf.Empty](#google.protobuf.Empty) | [ModelNumber](#siemens.iedge.dmapi.system.v1.ModelNumber) | Returns model number (mlfb) for siemens or any type model for 3rd party vendors. |
| GetFirmwareInfo | [.google.protobuf.Empty](#google.protobuf.Empty) | [FirmwareInfo](#siemens.iedge.dmapi.system.v1.FirmwareInfo) | Returns firmware information of currently installed firmware |
| GetResourceStats | [.google.protobuf.Empty](#google.protobuf.Empty) | [Stats](#siemens.iedge.dmapi.system.v1.Stats) | Returns current CPU, Memory, Uptime and Storage usage |
| GetLimits | [.google.protobuf.Empty](#google.protobuf.Empty) | [Limits](#siemens.iedge.dmapi.system.v1.Limits) | Returns limits for how many applications and how much cpu, ram and storage should be available for applications. |
| GetCustomSettings | [.google.protobuf.Empty](#google.protobuf.Empty) | [.google.protobuf.Any](#google.protobuf.Any) | Returns device specific custom settings. |
| ApplyCustomSettings | [.google.protobuf.Any](#google.protobuf.Any) | [.google.protobuf.Empty](#google.protobuf.Empty) | Applies device specific custom settings. |
| GetLogFile | [LogRequest](#siemens.iedge.dmapi.system.v1.LogRequest) | [LogResponse](#siemens.iedge.dmapi.system.v1.LogResponse) | Collects and compress all Journald logs (mandatory) from host ,(plus optional device specific log/report) and then returns a single file path for this new log archive. |
| UpdateHostname | [Hostname](#siemens.iedge.dmapi.system.v1.Hostname) | [.google.protobuf.Empty](#google.protobuf.Empty) | Updates the hostname of the device with the provided string. |
| GetDeviceInfo | [.google.protobuf.Empty](#google.protobuf.Empty) | [DeviceInfo](#siemens.iedge.dmapi.system.v1.DeviceInfo) | Returns DeviceInfo information of system. |
| GetHostname | [.google.protobuf.Empty](#google.protobuf.Empty) | [Hostname](#siemens.iedge.dmapi.system.v1.Hostname) | Retrieves the current hostname of the device. |
Scalar Value Types¶
NOTICE
Funding Acknowledgment: Funded by the Federal Ministry for Economic Affairs and Energy based on a decision by the German Bundestag | Your funding provider: Kicks for Edge as part of the EU funding program IPCEI-CIS (FKZ:13IPC008)