This section provides general information related to writing applications for the SmartServer IoT.
Any application running on the SmartServer that can only run as a single instance must enforce the singleton pattern by detecting any violation and restarting the system.
Services in the SmartServer use the folder indicated with the APOLLO_LOCKDIR environment variable for lockfiles. Any service that fails to obtain its lock, or detects a violation of the singleton requirement through different means, considers this a fatal error and must reboot the system.
The process of accumulating can be customized by tuning the
com.echelon.cms.global.cfg file. There are two properties related to this process namely
app.global.cache.batch.size. The former defines how often datapoints will be persisted to the database from cache, while the latter defines how many datapoints will be processed in one go. The persistence rate defaults to 17 seconds for the SmartServer.
IAP supports localized diagnostics: error or warning messages in the operator’s language. By default, all IAP components supply diagnostics in English (US English). Methods are defined which allow adding “language packs” to edge servers, and to select one of several available languages.
IAP does not support localization of data. Datapoint values are transmitted as structured JSON data and are not localized within IAP. Front-end tools may render data presentations fit for the locale.
Default Language Selection
Edge servers report the set of available languages with their About object as a list of ISO 639-2 language codes, with added country codes as necessary. For example, "en" for English, "en-gb" for Great Britain, "fr" for French, and "fr-ca" for Canada.
The CMS can select one of the available languages through the segment configuration object. The language selection affects diagnostics transmitted through the logging and event reporting tools (see Events). Every diagnostic reported these tools carries the ISO 639-2 language identifier and country code.
When a language other than English is selected, some diagnostics may still use English, allowing for incomplete translations. The CMS considers the language selection a recommendation, but cannot rely on it.
SmartServer Alarm Conditions
The alarm service creates alarms for resource monitoring when the system starts. All resource monitoring alarms can be updated and deleted using standard IAP methods available for alarms (see Alarm).
The following table lists the default alarm conditions for system resource monitoring.
|CPU Temperature||gt(\"glp/0/./=alarm/system/cpu/temperature\", 120)|
If the temperature of the CPU exceeds this threshold, the alarm is triggered.
The default threshold is 120 degrees celsius.
|Current CPU Load||gt(\"glp/0/./=alarm/system/cpu/load_current\", 0.95)|
If the current CPU load of the system exceeds this threshold, the alarm is triggered.
The default threshold is 0.95
|Average CPU Load||gt(\"glp/0/./=alarm/system/cpu/load_average\", 0.95)|
If the average CPU load of the system exceeds this threshold, the alarm is triggered. The range of the average cpu load is 0-1.
The default threshold is 0.95
|Available Memory on SmartServer IoT||lt(\"glp/0/./=alarm/system/memory/available\", 100000)|
If the available memory is less than the defined threshold, the alarm is triggered. This is the minimum memory that must be available in the system, not including buffers or cache memory.
The default threshold is 100,000 bytes.
|File System Usage |
If the file system exceeds this threshold, the alarm is triggered. The file system usage is calculated for the file system mounted at "/var".
The default threshold is 0.9
|File System Available |
If the available space in the file system is less than the threshold, the alarm is triggered. The available space is calculated for the file system mounted at "/var".
The default threshold is 10,000 bytes.