Skip to content

System Service

The System Service is a gRPC & Go based system resource tracker and system controller.

Table of Contents

Top

System.proto

Cpu

Cpu type contains Cpu utilization at the current moment.

Field Type Label Description
usedCpuPercentage float Percentage of used CPU e.g: 20.0
freeCpuPercentage float Percentage of available CPU e.g: 80.0
coreCount int32 Total available core count for CPU.e.g 2C/4T CPU value will be 4
modelInfo string intel x64 etc..
idleTime double Idle time of CPU eg: 3662.50 (in seconds)
frequency double Frequency of CPU eg: 2495.999 (in MHz)

FirmwareInfo

FirmwareInfo contains Firmware Version.

Field Type Label Description
version string Firmware version.

Hostname

The hostname is the network name of a device. It contains the hostname string, which should follow specific format and length requirements as required by your network or system configuration.

Field Type Label Description
name string The hostname string. Ensure it follows the necessary format and length constraints.

Limits

System Limits for the Edge Runtime.

Field Type Label Description
maxInstalledApplications int32 Maximum allowed number of installed Edge applications.
maxRunningApplications int32 Maximum allowed number of running Edge applications.
maxMemoryUsageInGB float Maximum allowed memory usage in Gigabytes.
maxStorageUsageInGB float Maximum allowed disk usage in Gigabytes.
maxCpuUsagePerecentage float Maximum allowed percentage of CPU usage.

LogRequest

LogRequest type, determines the destination path for saving log file.

Field Type Label Description
saveFolderPath 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 Full file path for collected log archive.

ModelNumber

ModelNumber type indicates device specific model information.

Field Type Label Description
modelNumber 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 Total capacity of storage device in Gigabytes e.g: 3.5
freeSpaceInGB float Free space of storage device in Gigabytes e.g: 40.4
usedSpaceInGB float Used space of storage device in Gigabytes e.g: 23.2
percentageFreeSpace float Percentage of available space e.g: 3.5
percentageUsedSpace float Percentage of used space e.g: 96.5
diskType string Type of disk eg: "HDD" or "SSD"
diskTotalReadSectorsInMB float Total number of sectors read successfully in Megabytes e.g: 58.9
diskTotalWriteSectorsInMB 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 Cpu Utilization
storageDevices Resource repeated StorageDevices array of Resource type.
memory Resource RAM Utilization Information
upTime 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 Restarts the device
ShutdownDevice .google.protobuf.Empty .google.protobuf.Empty ShutsDown the device.
HardReset .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 ModelNumber Returns model number (mlfb) for siemens or any type model for 3rd party vendors.
GetFirmwareInfo .google.protobuf.Empty FirmwareInfo Returns firmware information of currently installed firmware
GetResourceStats .google.protobuf.Empty Stats Returns current Cpu, Memory, Uptime and Storage usage
GetLimits .google.protobuf.Empty 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.Any Returns device specific custom settings.
ApplyCustomSettings .google.protobuf.Any .google.protobuf.Empty Applies device specific custom settings.
GetLogFile LogRequest 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 .google.protobuf.Empty Updates the hostname of the device with the provided string.
GetHostname .google.protobuf.Empty Hostname Retrieves the current hostname of the device.

Scalar Value Types

.proto Type Notes C++ Java Python Go C# PHP Ruby
double double double float float64 double float Float
float float float float float32 float float Float
int32 Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint32 instead. int32 int int int32 int integer Bignum or Fixnum (as required)
int64 Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead. int64 long int/long int64 long integer/string Bignum
uint32 Uses variable-length encoding. uint32 int int/long uint32 uint integer Bignum or Fixnum (as required)
uint64 Uses variable-length encoding. uint64 long int/long uint64 ulong integer/string Bignum or Fixnum (as required)
sint32 Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s. int32 int int int32 int integer Bignum or Fixnum (as required)
sint64 Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s. int64 long int/long int64 long integer/string Bignum
fixed32 Always four bytes. More efficient than uint32 if values are often greater than 2^28. uint32 int int uint32 uint integer Bignum or Fixnum (as required)
fixed64 Always eight bytes. More efficient than uint64 if values are often greater than 2^56. uint64 long int/long uint64 ulong integer/string Bignum
sfixed32 Always four bytes. int32 int int int32 int integer Bignum or Fixnum (as required)
sfixed64 Always eight bytes. int64 long int/long int64 long integer/string Bignum
bool bool boolean boolean bool bool boolean TrueClass/FalseClass
string A string must always contain UTF-8 encoded or 7-bit ASCII text. string String str/unicode string string string String (UTF-8)
bytes May contain any arbitrary sequence of bytes. string ByteString str []byte ByteString string String (ASCII-8BIT)