Skip to main content
Version: Next

Configuring and Monitoring Service Apps

Configuration Parameters

Service Apps typically read there configuration from their oConfig.json file. The default setup provides such a sample file in res/oConfigNode.json. When building the service app, the file is copied into the dist folder, and renamed to oConfig.json.

tip

Parameters can be set either in the oConfig.json file, or on the command line parameter using the -- syntax. The two examples below are therefore equivalent:

  • oConfig.json syntax: "myparameter": "somevalue"
  • command line parameter: npm run serve:node -- myparameter=somevalue
ParameterSample valueDocumentation
sc.app01888abcd8e4e5fa301cThe tag of the Service App to be launched.
sc.productiontrue Set to true to enable some optimizations relevant in production. In particular, when true apps no longer subscribe to changes to the application graph (which is not supposed to happen in production).
sc.remoteactiontimeout20000The number of milliseconds after which a remote action will timeout. Increase this value if the Remote Actions have some slow processing.
defaultHostmyinstance.olympe.ioThe instance to connect to, with good default values for the server, bus and data parameters (see below for more details). For front-ends, the default value of defaultHost is the hostname of the URL, for backends, it is localhost.
bus.vhostmyinstanceThe bus vhost to connect to.
auth.autoLogintrueWhether to use auth.autoUser and auth.autoPassword for authentication.
auth.autoUserusernameThe username to use to connect to the Olympe Orchestrator.
auth.autoPassword passwordThe password to use to connect to the Olympe Orchestrator.
host.processProbetrueWhether to enable the /readiness probe for automatic restart (see below). Set to true by default.

Custom Network Configurations

The following parameters are available for advanced configurations, and override the defaultHost defaults.

ParameterSample valueDocumentation
server.hostmyinstance.olympe.ioThe hostname or IP address where to reach the Olympe Orchestrator.
server.port443The port to be used.
server.ssltrueWhether to enable HTTPS / WSS or not.
bus.host, bus.port, bus.ssl, bus.pathEnable configuring the connection to the message broker used for UI App - Service App and Service App - Service App communications.
data.httpHost, data.httpPort, data.httpSSL, data.httpPath  For advanced datasource configuration.

Ensuring that Service Apps are running

Olympe service apps have a default endpoint that Kubernetes or other infrastructure managers can use to monitor their well being. This healthcheck endpoint is accessible on /readiness on port 3141. Upon success, the endpoint returns a code 200, with details in the response body. If something goes wrong, the endpoint returns a 500 code, with details in the response body. Infrastructure managers can use that /readiness probe to automatically restart failing processes.

Default Checks

The default health checks validate the following elements:

  • The connection to the Olympe Orchestrator is active
  • The service app is authenticated (i.e. not running as guest)
  • The service app is connected to the bus
  • (If applicable) Data sources are accessible

Additional checks can be implemented within applications, e.g. to verify connectivity to external services, databases, storage, etc.

Implementing Custom Health Checks in DRAW

DRAW provides a Register Health Check brick, to be used within a Service running in the Service App to be monitored. The brick shall output either a Control Flow if all is well, or an Error Flow otherwise. See the brick documentation for more details.

Implementing Custom Health Checks in CODE

Use the Process.onHealthCheck() hook to implement custom health checks. An example can be found in the RegisterHealthCheck brick implementation.