Configuration
To enable the plugin, add a <DuoStreamMonitor> to your configuration. The plugin reads the available instances from the Duo Manager, so no individual instance configuration is required to get started.
DuoStreamMonitor
<SystemMonitor>
<DuoStreamMonitor serviceName="DuoService" refresh="5s"
onDemand="sleepless"
onIdle=""
onInstanceDemand="start"
onInstanceIdle="stop"
onInstanceLogin=""
onInstanceStart=""
onInstanceStop=""
onInstanceLogout="">
<Instance name="Neo" ... />
<Instance name="Thomas Anderson" ... />
</DuoStreamMonitor>
</SystemMonitor>
Attention
None of the events has a default value, so you have to be explicit here.
serviceName
- default:
DuoService
The name of the Duo service as it appears in the Windows Service Control Manager (SCM). This must match exactly for Desomnia to track the service lifecycle.
refresh
- ⏱️ duration:
- default:
5s
The interval at which the state of the Duo instances is polled from the Duo Manager web interface. Instance start and stop events are currently detected by polling; a future version will use Windows Event Log notifications instead.
onDemand
- ⚡️ event:
Triggered when any Duo instance receives a connection request and at least one instance transitions from idle to active — that is, when the monitor as a whole goes from fully idle to having at least one running session. You can use this to stop any background activity, the physical system should perform while no streaming client is connected, for example with exec.
onIdle
- ⚡️ event:
Triggered during the timeout phase when no Duo instance has an active client connection — that is, when all instances have become idle. This is the counterpart to onDemand and can be used to startup performance intense background tasks.
onInstanceDemand
- ⚡️ event:
- inherited:
This event is triggered when a remote client tries to connect to a Duo instance, that is not started.
onInstanceIdle
- ⚡️ event:
- inherited:
This event is triggered when, during the timeout phase, the instance is running but there is no remote client connected.
onInstanceLogin
- ⚡️ event:
- inherited:
This event is triggered when the Windows session associated with the Duo instance logs in. This occurs before the Duo instance has fully started up.
onInstanceStart
- ⚡️ event:
- inherited:
This event is triggered once the Duo instance has fully started.
onInstanceStop
- ⚡️ event:
- inherited:
This event is triggered when the Duo instance begins to stop.
onInstanceLogout
- ⚡️ event:
- inherited:
This event is triggered when the Windows session associated with the Duo instance logs out. This occurs after the Duo instance has stopped.
Instance
If you need to configure individual instances differently from the monitor-level defaults, add an <Instance> child element identified by its name in the Duo Manager. Attributes on an <Instance> override the inherited defaults for that instance only; all other instances are unaffected.
<Instance name="Thomas Anderson"
onDemand="start"
onIdle="stop"
onLogin=""
onStart=""
onStop=""
onLogout=""
/>
name
The logical name of the instance as configured in the Duo Manager.
Important
This is the internal instance name, not the display name shown in the Duo Manager UI.
onDemand
- ⚡️ event:
This event is triggered when a remote client tries to connect to a Duo instance, that is not started.
onIdle
- ⚡️ event:
This event is triggered when, during the timeout phase, the instance is running but there is no remote client connected.
onLogin
- ⚡️ event:
This event is triggered when the Windows session associated with the Duo instance logs in. This occurs before the Duo instance has fully started up.
onStart
- ⚡️ event:
This event is triggered once the Duo instance has fully started.
onStop
- ⚡️ event:
This event is triggered when the Duo instance begins to stop.
onLogout
- ⚡️ event:
This event is triggered when the Windows session associated with the Duo instance logs out. This occurs after the Duo instance has stopped.