...
1description: serverMonitoringMode
2
3schemaVersion: "1.17"
4# These tests cannot run on replica sets because the order of the expected
5# SDAM events are non-deterministic when monitoring multiple servers.
6# They also cannot run on Serverless or load balanced clusters where SDAM is disabled.
7runOnRequirements:
8 - topologies: [single, sharded, sharded-replicaset]
9 serverless: forbid
10tests:
11 - description: "connect with serverMonitoringMode=auto >=4.4"
12 runOnRequirements:
13 - minServerVersion: "4.4.0"
14 operations:
15 - name: createEntities
16 object: testRunner
17 arguments:
18 entities:
19 - client:
20 id: client
21 uriOptions:
22 serverMonitoringMode: "auto"
23 useMultipleMongoses: false
24 observeEvents:
25 - serverHeartbeatStartedEvent
26 - serverHeartbeatSucceededEvent
27 - serverHeartbeatFailedEvent
28 - database:
29 id: db
30 client: client
31 databaseName: sdam-tests
32 - &ping
33 name: runCommand
34 object: db
35 arguments:
36 commandName: ping
37 command: { ping: 1 }
38 expectResult: { ok: 1 }
39 # Wait for the second serverHeartbeatStartedEvent to ensure we start streaming.
40 - &waitForSecondHeartbeatStarted
41 name: waitForEvent
42 object: testRunner
43 arguments:
44 client: client
45 event:
46 serverHeartbeatStartedEvent: {}
47 count: 2
48 expectEvents: &streamingStartedEvents
49 - client: client
50 eventType: sdam
51 ignoreExtraEvents: true
52 events:
53 - serverHeartbeatStartedEvent:
54 awaited: False
55 - serverHeartbeatSucceededEvent:
56 awaited: False
57 - serverHeartbeatStartedEvent:
58 awaited: True
59
60 - description: "connect with serverMonitoringMode=auto <4.4"
61 runOnRequirements:
62 - maxServerVersion: "4.2.99"
63 operations:
64 - name: createEntities
65 object: testRunner
66 arguments:
67 entities:
68 - client:
69 id: client
70 uriOptions:
71 serverMonitoringMode: "auto"
72 heartbeatFrequencyMS: 500
73 useMultipleMongoses: false
74 observeEvents:
75 - serverHeartbeatStartedEvent
76 - serverHeartbeatSucceededEvent
77 - serverHeartbeatFailedEvent
78 - database:
79 id: db
80 client: client
81 databaseName: sdam-tests
82 - *ping
83 # Wait for the second serverHeartbeatStartedEvent to ensure we do not stream.
84 - *waitForSecondHeartbeatStarted
85 expectEvents: &pollingStartedEvents
86 - client: client
87 eventType: sdam
88 ignoreExtraEvents: true
89 events:
90 - serverHeartbeatStartedEvent:
91 awaited: False
92 - serverHeartbeatSucceededEvent:
93 awaited: False
94 - serverHeartbeatStartedEvent:
95 awaited: False
96
97 - description: "connect with serverMonitoringMode=stream >=4.4"
98 runOnRequirements:
99 - minServerVersion: "4.4.0"
100 operations:
101 - name: createEntities
102 object: testRunner
103 arguments:
104 entities:
105 - client:
106 id: client
107 uriOptions:
108 serverMonitoringMode: "stream"
109 useMultipleMongoses: false
110 observeEvents:
111 - serverHeartbeatStartedEvent
112 - serverHeartbeatSucceededEvent
113 - serverHeartbeatFailedEvent
114 - database:
115 id: db
116 client: client
117 databaseName: sdam-tests
118 - *ping
119 # Wait for the second serverHeartbeatStartedEvent to ensure we start streaming.
120 - *waitForSecondHeartbeatStarted
121 expectEvents: *streamingStartedEvents
122
123 - description: "connect with serverMonitoringMode=stream <4.4"
124 runOnRequirements:
125 - maxServerVersion: "4.2.99"
126 operations:
127 - name: createEntities
128 object: testRunner
129 arguments:
130 entities:
131 - client:
132 id: client
133 uriOptions:
134 serverMonitoringMode: "stream"
135 heartbeatFrequencyMS: 500
136 useMultipleMongoses: false
137 observeEvents:
138 - serverHeartbeatStartedEvent
139 - serverHeartbeatSucceededEvent
140 - serverHeartbeatFailedEvent
141 - database:
142 id: db
143 client: client
144 databaseName: sdam-tests
145 - *ping
146 # Wait for the second serverHeartbeatStartedEvent to ensure we do not stream.
147 - *waitForSecondHeartbeatStarted
148 expectEvents: *pollingStartedEvents
149
150 - description: "connect with serverMonitoringMode=poll"
151 operations:
152 - name: createEntities
153 object: testRunner
154 arguments:
155 entities:
156 - client:
157 id: client
158 uriOptions:
159 serverMonitoringMode: "poll"
160 heartbeatFrequencyMS: 500
161 useMultipleMongoses: false
162 observeEvents:
163 - serverHeartbeatStartedEvent
164 - serverHeartbeatSucceededEvent
165 - serverHeartbeatFailedEvent
166 - database:
167 id: db
168 client: client
169 databaseName: sdam-tests
170 - *ping
171 # Wait for the second serverHeartbeatStartedEvent to ensure we do not stream.
172 - *waitForSecondHeartbeatStarted
173 expectEvents: *pollingStartedEvents
View as plain text