Skip to content

Commit 5e56f8c

Browse files
committed
CDRIVER-3535 add awaited to heartbeat events (#621)
Currently always false, but after streamable ismaster, it will be true for awaitable isMaster commands.
1 parent 083fedd commit 5e56f8c

11 files changed

+166
-22
lines changed
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
:man_page: mongoc_apm_server_heartbeat_failed_get_awaited
2+
3+
mongoc_apm_server_heartbeat_failed_get_awaited()
4+
================================================
5+
6+
Synopsis
7+
--------
8+
9+
.. code-block:: c
10+
11+
bool
12+
mongoc_apm_server_heartbeat_failed_get_awaited (
13+
const mongoc_apm_server_heartbeat_failed_t *event);
14+
15+
Returns whether this event came from an awaitable isMaster.
16+
17+
Parameters
18+
----------
19+
20+
* ``event``: A :symbol:`mongoc_apm_server_heartbeat_failed_t`.
21+
22+
Returns
23+
-------
24+
25+
A bool indicating whether the heartbeat event came from an awaitable isMaster.
26+
27+
See Also
28+
--------
29+
30+
:doc:`Introduction to Application Performance Monitoring <application-performance-monitoring>`
31+

src/libmongoc/doc/mongoc_apm_server_heartbeat_failed_t.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ See Also
2424
:titlesonly:
2525
:maxdepth: 1
2626

27+
mongoc_apm_server_heartbeat_failed_get_awaited
2728
mongoc_apm_server_heartbeat_failed_get_context
2829
mongoc_apm_server_heartbeat_failed_get_duration
2930
mongoc_apm_server_heartbeat_failed_get_error
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
:man_page: mongoc_apm_server_heartbeat_started_get_awaited
2+
3+
mongoc_apm_server_heartbeat_started_get_awaited()
4+
=================================================
5+
6+
Synopsis
7+
--------
8+
9+
.. code-block:: c
10+
11+
bool
12+
mongoc_apm_server_heartbeat_started_get_awaited (
13+
const mongoc_apm_server_heartbeat_started_t *event);
14+
15+
Returns whether this event came from an awaitable isMaster.
16+
17+
Parameters
18+
----------
19+
20+
* ``event``: A :symbol:`mongoc_apm_server_heartbeat_started_t`.
21+
22+
Returns
23+
-------
24+
25+
A bool indicating whether the heartbeat event came from an awaitable isMaster.
26+
27+
See Also
28+
--------
29+
30+
:doc:`Introduction to Application Performance Monitoring <application-performance-monitoring>`
31+

src/libmongoc/doc/mongoc_apm_server_heartbeat_started_t.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ See Also
2424
:titlesonly:
2525
:maxdepth: 1
2626

27+
mongoc_apm_server_heartbeat_started_get_awaited
2728
mongoc_apm_server_heartbeat_started_get_context
2829
mongoc_apm_server_heartbeat_started_get_host
2930

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
:man_page: mongoc_apm_server_heartbeat_succeeded_get_awaited
2+
3+
mongoc_apm_server_heartbeat_succeeded_get_awaited()
4+
===================================================
5+
6+
Synopsis
7+
--------
8+
9+
.. code-block:: c
10+
11+
bool
12+
mongoc_apm_server_heartbeat_succeeded_get_awaited (
13+
const mongoc_apm_server_heartbeat_succeeded_t *event);
14+
15+
Returns whether this event came from an awaitable isMaster.
16+
17+
Parameters
18+
----------
19+
20+
* ``event``: A :symbol:`mongoc_apm_server_heartbeat_succeeded_t`.
21+
22+
Returns
23+
-------
24+
25+
A bool indicating whether the heartbeat event came from an awaitable isMaster.
26+
27+
See Also
28+
--------
29+
30+
:doc:`Introduction to Application Performance Monitoring <application-performance-monitoring>`
31+

src/libmongoc/doc/mongoc_apm_server_heartbeat_succeeded_t.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ See Also
2424
:titlesonly:
2525
:maxdepth: 1
2626

27+
mongoc_apm_server_heartbeat_succeeded_get_awaited
2728
mongoc_apm_server_heartbeat_succeeded_get_context
2829
mongoc_apm_server_heartbeat_succeeded_get_duration
2930
mongoc_apm_server_heartbeat_succeeded_get_host

src/libmongoc/src/mongoc/mongoc-apm-private.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -125,20 +125,23 @@ struct _mongoc_apm_topology_closed_t {
125125
struct _mongoc_apm_server_heartbeat_started_t {
126126
const mongoc_host_list_t *host;
127127
void *context;
128+
bool awaited;
128129
};
129130

130131
struct _mongoc_apm_server_heartbeat_succeeded_t {
131132
int64_t duration_usec;
132133
const bson_t *reply;
133134
const mongoc_host_list_t *host;
134135
void *context;
136+
bool awaited;
135137
};
136138

137139
struct _mongoc_apm_server_heartbeat_failed_t {
138140
int64_t duration_usec;
139141
const bson_error_t *error;
140142
const mongoc_host_list_t *host;
141143
void *context;
144+
bool awaited;
142145
};
143146

144147
void

src/libmongoc/src/mongoc/mongoc-apm.c

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -570,6 +570,13 @@ mongoc_apm_server_heartbeat_started_get_context (
570570
return event->context;
571571
}
572572

573+
bool
574+
mongoc_apm_server_heartbeat_started_get_awaited (
575+
const mongoc_apm_server_heartbeat_started_t *event)
576+
{
577+
return event->awaited;
578+
}
579+
573580

574581
/* heartbeat-succeeded event fields */
575582

@@ -604,6 +611,13 @@ mongoc_apm_server_heartbeat_succeeded_get_context (
604611
return event->context;
605612
}
606613

614+
bool
615+
mongoc_apm_server_heartbeat_succeeded_get_awaited (
616+
const mongoc_apm_server_heartbeat_succeeded_t *event)
617+
{
618+
return event->awaited;
619+
}
620+
607621

608622
/* heartbeat-failed event fields */
609623

@@ -638,6 +652,12 @@ mongoc_apm_server_heartbeat_failed_get_context (
638652
return event->context;
639653
}
640654

655+
bool
656+
mongoc_apm_server_heartbeat_failed_get_awaited (
657+
const mongoc_apm_server_heartbeat_failed_t *event)
658+
{
659+
return event->awaited;
660+
}
641661

642662
/*
643663
* registering callbacks

src/libmongoc/src/mongoc/mongoc-apm.h

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -238,6 +238,9 @@ mongoc_apm_server_heartbeat_started_get_host (
238238
MONGOC_EXPORT (void *)
239239
mongoc_apm_server_heartbeat_started_get_context (
240240
const mongoc_apm_server_heartbeat_started_t *event);
241+
MONGOC_EXPORT (bool)
242+
mongoc_apm_server_heartbeat_started_get_awaited (
243+
const mongoc_apm_server_heartbeat_started_t *event);
241244

242245
/* heartbeat-succeeded event fields */
243246

@@ -253,6 +256,9 @@ mongoc_apm_server_heartbeat_succeeded_get_host (
253256
MONGOC_EXPORT (void *)
254257
mongoc_apm_server_heartbeat_succeeded_get_context (
255258
const mongoc_apm_server_heartbeat_succeeded_t *event);
259+
MONGOC_EXPORT (bool)
260+
mongoc_apm_server_heartbeat_succeeded_get_awaited (
261+
const mongoc_apm_server_heartbeat_succeeded_t *event);
256262

257263
/* heartbeat-failed event fields */
258264

@@ -268,6 +274,9 @@ mongoc_apm_server_heartbeat_failed_get_host (
268274
MONGOC_EXPORT (void *)
269275
mongoc_apm_server_heartbeat_failed_get_context (
270276
const mongoc_apm_server_heartbeat_failed_t *event);
277+
MONGOC_EXPORT (bool)
278+
mongoc_apm_server_heartbeat_failed_get_awaited (
279+
const mongoc_apm_server_heartbeat_failed_t *event);
271280

272281

273282
/*

src/libmongoc/src/mongoc/mongoc-topology-scanner.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1205,6 +1205,7 @@ _mongoc_topology_scanner_monitor_heartbeat_started (
12051205
mongoc_apm_server_heartbeat_started_t event;
12061206
event.host = host;
12071207
event.context = ts->apm_context;
1208+
event.awaited = false;
12081209
ts->apm_callbacks.server_heartbeat_started (&event);
12091210
}
12101211
}
@@ -1229,6 +1230,7 @@ _mongoc_topology_scanner_monitor_heartbeat_succeeded (
12291230
event.context = ts->apm_context;
12301231
event.reply = reply;
12311232
event.duration_usec = duration_usec;
1233+
event.awaited = false;
12321234
ts->apm_callbacks.server_heartbeat_succeeded (&event);
12331235

12341236
bson_destroy (&ismaster_redacted);
@@ -1249,6 +1251,7 @@ _mongoc_topology_scanner_monitor_heartbeat_failed (
12491251
event.context = ts->apm_context;
12501252
event.error = error;
12511253
event.duration_usec = duration_usec;
1254+
event.awaited = false;
12521255
ts->apm_callbacks.server_heartbeat_failed (&event);
12531256
}
12541257
}

0 commit comments

Comments
 (0)