ska-tango-event-monitor output

The ska-tango-event-monitor script takes snapshots of the event supplier and event consumer of every Tango device server passed as arguments to the script. The script prints summaries of these snapshots highlighting the differences from the previous snapshot.

Listing 1 shows possible output for a single snapshot while monitoring two device servers. Lines from this output will be omitted if there are no changes.

Listing 1: Synthetic output from the ska-tango-event-monitor script while monitoring the dserver/MyServer/1 and dserver/MyServer/2 device servers. The output for dserver/MyServer/2 is omitted for brevity.
 1===============================================2026-03-20T14:52:20.099941===============================================
 2---------------------------------------------------dserver/MyServer/1---------------------------------------------------
 3- New publishers
 4	  test/device/1/state.change: 9 is the last pushed server counter
 5	test/device/2/status.archive: 19 is the last pushed server counter
 6- Published events
 7	test/device/3/state.archive: 4 -> 14 (+10) last pushed server counter
 8- Removed publishers
 9	test/device/old/attr.change
10- Server performance
11                     mean     median  count  minimum  maximum   1%    10%    90%    99%  
12 Event Gaps [μs]  45.00±5.00  50.50    100     0.00    100.00  1.00  10.00  90.00  99.00 
13  Push Time [μs]  20.00±2.00  50.50     50     0.00    100.00  1.00  10.00  90.00  99.00 
14- New subscriptions
15	 other/device/1/state.idl5_change: 100 events already processed
16	                                 : 100 is the last received server counter
17	                                 : 2 callback(s) registered
18	                                 : 0 missed events detected
19	                                 : 0 events discarded
20	other/device/1/status.idl5_change: 50 events already processed
21	                                 : 50 is the last received server counter
22	                                 : 1 callback(s) registered
23	                                 : 1 missed events detected
24	                                 : 0 events discarded
25- Received events and callback changes
26	other/device/2/state.idl5_change: 10 -> 20 (+10) events processed
27	                                : 10 -> 20 (+10) last received server counter
28	                                : 1 -> 2 (+1) callbacks
29	                                : 0 -> 1 (+1) missed events detected
30	                                : 0 -> 2 (+2) events discarded
31- Removed subscriptions
32	other/devbice/old/state.idl5_change
33- Pending initial connections
34	tango://localhost:10000/other/device/pending/state.change
35	tango://localhost:10000/other/device/pending/status.change
36- Resolved initial connections
37	tango://localhost:10000/other/device/unsub/state.change
38- Client performance
39                                 mean     median  count  minimum  maximum   1%   10%    90%    99%  
40             Event Gaps [μs]  25.00±3.00  30.00    200     1.00    60.00   0.50  5.00  95.00  99.50 
41             Sleep Time [μs]  10.00±1.00  30.00    200     1.00    60.00   0.50  5.00  95.00  99.50 
42                Latency [μs]  15.00±2.50  30.00    200     1.00    60.00   0.50  5.00  95.00  99.50 
43            Callbacks called  1.00±0.10   30.00    200     1.00    60.00   0.50  5.00  95.00  99.50 
44                  Wake Count  1.00±0.20   30.00    200     1.00    60.00   0.50  5.00  95.00  99.50 
45  state Processing Time [μs]  12.00±1.00  30.00    100     1.00    60.00   0.50  5.00  95.00  99.50 
46 status Processing Time [μs]  14.00±1.20  30.00    100     1.00    60.00   0.50  5.00  95.00  99.50 
47---------------------------------------------------dserver/MyServer/2---------------------------------------------------
48...
49===============================================2026-03-20T14:52:20.099941===============================================
Output breakdown

Lines

Description

Format

1, 49

Time stamp when the snapshot was taken.

2, 47

Headers for each device server, identified by admin device name.

4 - 5

Newly published event streams with most recently pushed server counter values.

<event stream>: <server counter> is the last pushed server counter

7

Pushed events by event stream for this snapshot.

<event stream> : <old value> -> <new value> (<delta>) last pushed server counter

9

Removed publishers as they no longer have a subscriber.

<event stream>

12

Statistical summary of the time between events being pushed by the event supplier.

13

Statistical summary of the time taken to push events by the event supplier.

15

Number of events processed by this subscription.

<event topic>: <count> events already processed

16

The most recently received server counter value.

: <count> is the last received server counter

17

Number of callbacks registered for subscription.

: <count> callbacks registered

18

Number of missed events detected.

: <count> missed events detected

19

Number of duplicate events discarded.

: <count> events discarded

26

Changes to the number of events processed by this subscription.

<event topic>: <old_value> -> <new_value> (<delta>) events already processed

27

Changes to the most recently received server counter value.

: <old_value> -> <new_value> (<delta>) is the last received server counter

28

Changes to the number of callbacks registered for subscription.

: <old_value> -> <new_value> (<delta>) callbacks registered

29

Changes to the number of missed events detected.

: <old_value> -> <new_value> (<delta>) missed events deteceted

30

Changes to the number of duplicate events discarded.

: <old_value> -> <new_value> (<delta>) discarded events

32

Removed subscription topics

<event topic>

34 - 35

Event streams the event consumer is actively connecting to for the first time.

<event stream>

37

Event streams the event consumer is no longer attempting to connect to. Either client has given up, or the connection has been successful.

<event stream>

40

Statistical summary of the time between events being received by the event consumer.

41

Statistical summary of the time spent sleeping between events being received by the event consumer.

42

Statistical summary of the latency between the event being pushed by the event supplier and being received by the event consumer.

43

Statistical summary of the number of callbacks called per event.

44

Statistical summary of the number of times the event consumer was woken from sleeping while waiting for the event.

45

Statistical summary of the processing time for the events relating to the “state” attribute.

46

Statistical summary of the processing time for the events relating to the “status” attribute.