|
A Talon XVM can be configured to allow administrative applications to monitor and manage it over messaging. This document describes this feature.
The table below lists the bus channels used for administration over SMA:
Channel | Key | QOS | ID | Description |
---|---|---|---|---|
Command and Control | ||||
xvm-request | xvm-admin/${xvmName}/request | BestEffort | 30000 | Command and control requests. |
xvm-response | xvm-admin/${adminClientId}/response | BestEffort | 30001 | Command and control responses (to issuing admin client) |
Passive Monitoring | ||||
xvm-heartbeat | xvm-admin/${xvmName}/heartbeat | BestEffort | 30003 | XVM heartbeats. |
xvm-trace | xvm-admin/${xvmName}/trace | BestEffort | 30004 | Log trace records. |
xvm-event | xvm-admin/${xvmName}/event | BestEffort | 30005 | Lifecycle and alert events. |
By default, all admin channels start with xvm-admin channel prefix. This prefix can be changed by setting the environment property nv.admin.sma.channelKeyPrefix which can be useful for cases where it is desirable to more granularly partition admin traffic.
When command and control is enabled, these channels allow admin clients to issue commands to an XVM. Such commands include XVM control commands such as triggering thread dumps or reloading applications and also include invocation of application-defined commands.
Requests and Response messages for command and control can be found in the com.neeve.server.mon.cnc package. At present, support for usage of command and control is reserved for the platform's admin APIs (Robin and Lumino).
XVM heartbeats are periodically emitted over the heartbeats channel when they are enabled for the XVM.
Heartbeats are emitted using the SrvMonHeartbeatMessage type defined in the com.neeve.server.mon package. While this package contains additional lifecycle related messages types used by direct monitoring clients, only SrvMonHeartbeatMessage are emitted over the heartbeats channel.
When enabled SrvMonTraceRecords are emitted over the trace channel allowing admin clients to view trace output as it happens.
Tracer records are emitted using SrvMonTraceRecord message type that can be found in the com.neeve.server.mon.cnc package.
The events channel is used to emit events such as lifecycle or alert events which are defined in the com.neeve.server.mon.lifecycle and com.neeve.server.mon.alert.
To use Admin over SMA for an XVM, a bus named xvm-admin
must be configured to specify the bus connection details:
<buses> <bus name="xvm-admin"> <provider>solace</provider> <address>solhost</address> <port>55555</port> </bus> </buses> |
Admin channels (xvm-request, xvm-response, xvm-heartbeat, xvm-event, and xvm-trace) should not be configured for the bus, they are automatically created by the XVM when it is started.
To enable Admin over SMA for an XVM, SMA must be configured as a transport for it:
<xvms> <xvm name="order-processing-1" template="xvm-template"> <admin> <transports> <sma enabled="true"/> </transports> </admin> <heartbeats enabled="true" interval="5s"/> </xvm> </xvms> |
With the above configuration, the order-processing-1
xvm will create a connection to solace://solhost:55555 with a username of order-processing-1. It will use the following topics:
Subscribe:
Publish:
Enabling xvm heartbeats isn't strictly necessary, but in most monitoring scenarios it is desirable to allow the monitoring client to |
Tools such as Robin, Lumino or the AdminTool must similarly be configured to include sma as a transport and configure bus connection information. As admin clients won't always be configured via DDL, configuration is done via system/enviornment properties.
nv.admin.transports=sma nv.admin.sma.bus.name=xvm-admin nv.admin.sma.bus.provider=solace nv.admin.sma.bus.address=solhost nv.admin.sma.bus.port=55555 nv.admin.sma.bus.properties.topic_starts_with_channel=false |
It is also possible to configure the admin client's bus more compactly using a bus descriptor instead of specifying provider, address, port and properties:
nv.admin.passiveMonitoringOnly=true nv.admin.transports=sma nv.admin.sma.bus.name=xvm-admin nv.admin.sma.bus.descriptor=solace://solhost:55555&topic_starts_with_channel=false |
Discovery
Admin clients should not attempt to issue commands until an XVM has been discovered via the discovery provider (see Understanding Discovery). When an admin client detects that a XVM is no longer discoverable it should stop issuing commands over SMA.