...
1description: "sharded-logging"
2
3schemaVersion: "1.16"
4
5runOnRequirements:
6 - topologies:
7 - sharded
8 minServerVersion: "4.4" # awaitable hello
9
10createEntities:
11 - client:
12 id: &setupClient setupClient
13 useMultipleMongoses: false
14
15tests:
16 - description: "Topology lifecycle"
17 operations:
18 - name: createEntities
19 object: testRunner
20 arguments:
21 entities:
22 - client:
23 id: &client client
24 observeLogMessages:
25 topology: debug
26 observeEvents:
27 - topologyDescriptionChangedEvent
28 useMultipleMongoses: true
29 # ensure the topology has been fully discovered before closing the client.
30 # expected events are initial cluster type change from unknown to sharded, and connect events for each of 2 servers.
31 - name: waitForEvent
32 object: testRunner
33 arguments:
34 client: *client
35 event:
36 topologyDescriptionChangedEvent: {}
37 count: 3
38 - name: close
39 object: *client
40 expectLogMessages:
41 - client: *client
42 ignoreMessages:
43 - level: debug
44 component: topology
45 data:
46 message: "Starting server monitoring"
47 - level: debug
48 component: topology
49 data:
50 message: "Server heartbeat started"
51 - level: debug
52 component: topology
53 data:
54 message: "Server heartbeat succeeded"
55 - level: debug
56 component: topology
57 data:
58 message: "Server heartbeat failed"
59 messages:
60 - level: debug
61 component: topology
62 data:
63 message: "Starting topology monitoring"
64 topologyId: { $$exists: true }
65 - level: debug
66 component: topology
67 data:
68 message: "Topology description changed"
69 topologyId: { $$exists: true }
70 previousDescription: { $$exists: true } # unknown topology
71 newDescription: { $$exists: true } # Sharded topology
72 - level: debug
73 component: topology
74 data:
75 message: "Topology description changed"
76 topologyId: { $$exists: true }
77 previousDescription: { $$exists: true }
78 newDescription: { $$exists: true } # shard router connected
79 - level: debug
80 component: topology
81 data:
82 message: "Topology description changed"
83 topologyId: { $$exists: true }
84 previousDescription: { $$exists: true }
85 newDescription: { $$exists: true } # shard router connected
86 - level: debug
87 component: topology
88 data:
89 message: "Stopped server monitoring"
90 topologyId: { $$exists: true }
91 serverHost: { $$type: string }
92 serverPort: { $$type: [int, long] }
93 - level: debug
94 component: topology
95 data:
96 message: "Stopped server monitoring"
97 topologyId: { $$exists: true }
98 serverHost: { $$type: string }
99 serverPort: { $$type: [int, long] }
100 # TODO(GODRIVER-2967): The following log message has been removed from
101 # the JSON analogue because it assumes that
102 # "TopologyDescriptionChangedEvent" should occur when a topolgoy is
103 # closed. This behavior is not clearly defined anywhere and some
104 # drivers support and some don't.
105 #
106 # Need to sync whenever GODRIVER-2967 is unblocked.
107 - level: debug
108 component: topology
109 data:
110 message: "Topology description changed"
111 topologyId: { $$exists: true }
112 previousDescription: { $$exists: true } # Sharded topology
113 newDescription: { $$exists: true } # unknown topology
114 - level: debug
115 component: topology
116 data:
117 message: "Stopped topology monitoring"
118 topologyId: { $$exists: true }
119 - description: Successful heartbeat
120 operations:
121 - name: createEntities
122 object: testRunner
123 arguments:
124 entities:
125 - client:
126 id: *client
127 observeLogMessages:
128 topology: debug
129 observeEvents:
130 - serverHeartbeatSucceededEvent
131 - name: waitForEvent
132 object: testRunner
133 arguments:
134 client: *client
135 event:
136 serverHeartbeatSucceededEvent: {}
137 count: 1
138 expectLogMessages:
139 - client: *client
140 ignoreExtraMessages: true
141 ignoreMessages:
142 - level: debug
143 component: topology
144 data:
145 message: "Server heartbeat started"
146 - level: debug
147 component: topology
148 data:
149 message: "Starting server monitoring"
150 - level: debug
151 component: topology
152 data:
153 message: "Stopped server monitoring"
154 - level: debug
155 component: topology
156 data:
157 message: "Topology description changed"
158 messages:
159 - level: debug
160 component: topology
161 data:
162 message: "Starting topology monitoring"
163 topologyId: { $$exists: true }
164 - level: debug
165 component: topology
166 data:
167 message: "Server heartbeat succeeded"
168 awaited: { $$exists: true }
169 topologyId: { $$exists: true }
170 serverHost: { $$type: string }
171 serverPort: { $$type: [int, long] }
172 driverConnectionId: { $$exists: true }
173 serverConnectionId: { $$exists: true }
174 durationMS: { $$type: [int, long] }
175 reply:
176 $$matchAsDocument:
177 "$$matchAsRoot":
178 ok: 1
179 - description: Failing heartbeat
180 operations:
181 - name: createEntities
182 object: testRunner
183 arguments:
184 entities:
185 - client:
186 id: *client
187 observeLogMessages:
188 topology: debug
189 observeEvents:
190 - serverHeartbeatStartedEvent
191 - serverHeartbeatFailedEvent
192 uriOptions:
193 appname: failingHeartbeatLoggingTest
194 - name: failPoint
195 object: testRunner
196 arguments:
197 failPoint:
198 configureFailPoint: failCommand
199 mode: "alwaysOn"
200 data:
201 failCommands:
202 - hello
203 - isMaster
204 appName: failingHeartbeatLoggingTest
205 closeConnection: true
206 client: *setupClient
207 - name: waitForEvent
208 object: testRunner
209 arguments:
210 client: *client
211 event:
212 serverHeartbeatFailedEvent: {}
213 count: 1
214 expectLogMessages:
215 - client: *client
216 ignoreExtraMessages: true
217 ignoreMessages:
218 - level: debug
219 component: topology
220 data:
221 message: "Server heartbeat started"
222 - level: debug
223 component: topology
224 data:
225 message: "Server heartbeat succeeded"
226 - level: debug
227 component: topology
228 data:
229 message: "Starting server monitoring"
230 - level: debug
231 component: topology
232 data:
233 message: "Stopped server monitoring"
234 - level: debug
235 component: topology
236 data:
237 message: "Topology description changed"
238 messages:
239 - level: debug
240 component: topology
241 data:
242 message: "Starting topology monitoring"
243 topologyId:
244 "$$exists": true
245 - level: debug
246 component: topology
247 data:
248 message: "Server heartbeat failed"
249 awaited: { $$exists: true }
250 topologyId: { $$exists: true }
251 serverHost: { $$type: string }
252 serverPort: { $$type: [int, long] }
253 driverConnectionId: { $$exists: true }
254 durationMS: { $$type: [int, long] }
255 failure: { $$exists: true }
View as plain text