Skip to content

Commit 5fdac9b

Browse files
committed
PCBC-523: add tracing support for queries and the rest of KV commands
Change-Id: Ia3057bab321f9a6b657bc21dcb86ade39284daf4 Reviewed-on: http://review.couchbase.org/92698 Tested-by: Build Bot <[email protected]> Reviewed-by: Sergey Avseyev <[email protected]>
1 parent 7238723 commit 5fdac9b

File tree

10 files changed

+206
-17
lines changed

10 files changed

+206
-17
lines changed

src/couchbase/bucket/cbft.c

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -145,13 +145,31 @@ void pcbc_bucket_cbft_request(pcbc_bucket_t *bucket, lcb_CMDFTS *cmd, int json_r
145145
{
146146
opcookie *cookie;
147147
lcb_error_t err;
148+
#ifdef LCB_TRACING
149+
lcbtrace_TRACER *tracer = NULL;
150+
lcb_FTSHANDLE handle = NULL;
151+
#endif
148152

149153
cmd->callback = ftsrow_callback;
150154
cookie = opcookie_init();
151155
cookie->json_response = json_response;
152156
cookie->json_options = json_options;
157+
#ifdef LCB_TRACING
158+
tracer = lcb_get_tracer(bucket->conn->lcb);
159+
if (tracer) {
160+
cookie->span = lcbtrace_span_start(tracer, "php/search", 0, NULL);
161+
lcbtrace_span_add_tag_str(cookie->span, LCBTRACE_TAG_COMPONENT, pcbc_client_string);
162+
lcbtrace_span_add_tag_str(cookie->span, LCBTRACE_TAG_SERVICE, LCBTRACE_TAG_SERVICE_SEARCH);
163+
cmd->handle = &handle;
164+
}
165+
#endif
153166
err = lcb_fts_query(bucket->conn->lcb, cookie, cmd);
154167
if (err == LCB_SUCCESS) {
168+
#ifdef LCB_TRACING
169+
if (cookie->span) {
170+
lcb_fts_set_parent_span(bucket->conn->lcb, handle, cookie->span);
171+
}
172+
#endif
155173
lcb_wait(bucket->conn->lcb);
156174
err = proc_ftsrow_results(bucket, return_value, cookie TSRMLS_CC);
157175
}
@@ -162,5 +180,10 @@ void pcbc_bucket_cbft_request(pcbc_bucket_t *bucket, lcb_CMDFTS *cmd, int json_r
162180
zend_throw_exception_object(PCBC_P(cookie->exc) TSRMLS_CC);
163181
}
164182
}
183+
#ifdef LCB_TRACING
184+
if (cookie->span) {
185+
lcbtrace_span_finish(cookie->span, LCBTRACE_NOW);
186+
}
187+
#endif
165188
opcookie_destroy(cookie);
166189
}

src/couchbase/bucket/counter.c

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,9 @@ PHP_METHOD(Bucket, counter)
9595
zval *zdelta, *zinitial, *zexpiry, *zgroupid;
9696
opcookie *cookie;
9797
lcb_error_t err = LCB_SUCCESS;
98+
#ifdef LCB_TRACING
99+
lcbtrace_TRACER *tracer = NULL;
100+
#endif
98101

99102
// Note that groupid is experimental here and should not be used.
100103
if (pcbc_pp_begin(ZEND_NUM_ARGS() TSRMLS_CC, &pp_state, "id|delta|initial,expiry,groupid", &id, &zdelta, &zinitial,
@@ -105,6 +108,14 @@ PHP_METHOD(Bucket, counter)
105108

106109
ncmds = pcbc_pp_keycount(&pp_state);
107110
cookie = opcookie_init();
111+
#ifdef LCB_TRACING
112+
tracer = lcb_get_tracer(obj->conn->lcb);
113+
if (tracer) {
114+
cookie->span = lcbtrace_span_start(tracer, "php/" LCBTRACE_OP_COUNTER, 0, NULL);
115+
lcbtrace_span_add_tag_str(cookie->span, LCBTRACE_TAG_COMPONENT, pcbc_client_string);
116+
lcbtrace_span_add_tag_str(cookie->span, LCBTRACE_TAG_SERVICE, LCBTRACE_TAG_SERVICE_KV);
117+
}
118+
#endif
108119

109120
nscheduled = 0;
110121
for (ii = 0; pcbc_pp_next(&pp_state); ++ii) {
@@ -130,6 +141,11 @@ PHP_METHOD(Bucket, counter)
130141
if (zgroupid) {
131142
LCB_KREQ_SIMPLE(&cmd._hashkey, Z_STRVAL_P(zgroupid), Z_STRLEN_P(zgroupid));
132143
}
144+
#ifdef LCB_TRACING
145+
if (cookie->span) {
146+
LCB_CMD_SET_TRACESPAN(&cmd, cookie->span);
147+
}
148+
#endif
133149

134150
err = lcb_counter3(obj->conn->lcb, cookie, &cmd);
135151
if (err != LCB_SUCCESS) {
@@ -145,6 +161,11 @@ PHP_METHOD(Bucket, counter)
145161
err = proc_arithmetic_results(obj, return_value, cookie, pcbc_pp_ismapped(&pp_state) TSRMLS_CC);
146162
}
147163

164+
#ifdef LCB_TRACING
165+
if (cookie->span) {
166+
lcbtrace_span_finish(cookie->span, LCBTRACE_NOW);
167+
}
168+
#endif
148169
opcookie_destroy(cookie);
149170

150171
if (err != LCB_SUCCESS) {

src/couchbase/bucket/get.c

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -78,8 +78,9 @@ static lcb_error_t proc_get_results(pcbc_bucket_t *bucket, zval *return_value, o
7878
lcbtrace_REF ref;
7979
ref.type = LCBTRACE_REF_CHILD_OF;
8080
ref.span = parent;
81-
span = lcbtrace_span_start(tracer, LCBTRACE_OP_RESPONSE_DECODING, LCBTRACE_NOW, &ref);
81+
span = lcbtrace_span_start(tracer, "php/" LCBTRACE_OP_RESPONSE_DECODING, LCBTRACE_NOW, &ref);
8282
lcbtrace_span_add_tag_str(span, LCBTRACE_TAG_COMPONENT, pcbc_client_string);
83+
lcbtrace_span_add_tag_str(span, LCBTRACE_TAG_SERVICE, LCBTRACE_TAG_SERVICE_KV);
8384
}
8485
#endif
8586
pcbc_document_init_decode(doc, bucket, res->bytes, res->bytes_len, res->flags, res->datatype, res->cas,
@@ -125,8 +126,9 @@ void pcbc_bucket_get(pcbc_bucket_t *obj, pcbc_pp_state *pp_state, pcbc_pp_id *id
125126
#ifdef LCB_TRACING
126127
tracer = lcb_get_tracer(obj->conn->lcb);
127128
if (tracer) {
128-
cookie->span = lcbtrace_span_start(tracer, "get", 0, NULL);
129+
cookie->span = lcbtrace_span_start(tracer, "php/" LCBTRACE_OP_GET, 0, NULL);
129130
lcbtrace_span_add_tag_str(cookie->span, LCBTRACE_TAG_COMPONENT, pcbc_client_string);
131+
lcbtrace_span_add_tag_str(cookie->span, LCBTRACE_TAG_SERVICE, LCBTRACE_TAG_SERVICE_KV);
130132
}
131133
#endif
132134

@@ -263,8 +265,9 @@ PHP_METHOD(Bucket, getFromReplica)
263265
#ifdef LCB_TRACING
264266
tracer = lcb_get_tracer(obj->conn->lcb);
265267
if (tracer) {
266-
cookie->span = lcbtrace_span_start(tracer, "get_from_replica", 0, NULL);
268+
cookie->span = lcbtrace_span_start(tracer, "php/" LCBTRACE_OP_GET_FROM_REPLICA, 0, NULL);
267269
lcbtrace_span_add_tag_str(cookie->span, LCBTRACE_TAG_COMPONENT, pcbc_client_string);
270+
lcbtrace_span_add_tag_str(cookie->span, LCBTRACE_TAG_SERVICE, LCBTRACE_TAG_SERVICE_KV);
268271
}
269272
#endif
270273

src/couchbase/bucket/n1ql.c

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -147,15 +147,34 @@ void pcbc_bucket_n1ql_request(pcbc_bucket_t *bucket, lcb_CMDN1QL *cmd, int json_
147147
{
148148
opcookie *cookie;
149149
lcb_error_t err;
150+
#ifdef LCB_TRACING
151+
lcbtrace_TRACER *tracer = NULL;
152+
lcb_N1QLHANDLE handle = NULL;
153+
#endif
150154

151155
cmd->callback = n1qlrow_callback;
152156
cmd->content_type = PCBC_CONTENT_TYPE_JSON;
153157
cookie = opcookie_init();
154158
cookie->json_response = json_response;
155159
cookie->json_options = json_options;
156160
cookie->is_cbas = is_cbas;
161+
#ifdef LCB_TRACING
162+
tracer = lcb_get_tracer(bucket->conn->lcb);
163+
if (tracer) {
164+
cookie->span = lcbtrace_span_start(tracer, is_cbas ? "php/analytics" : "php/n1ql", 0, NULL);
165+
lcbtrace_span_add_tag_str(cookie->span, LCBTRACE_TAG_COMPONENT, pcbc_client_string);
166+
lcbtrace_span_add_tag_str(cookie->span, LCBTRACE_TAG_SERVICE,
167+
is_cbas ? LCBTRACE_TAG_SERVICE_ANALYTICS : LCBTRACE_TAG_SERVICE_N1QL);
168+
cmd->handle = &handle;
169+
}
170+
#endif
157171
err = lcb_n1ql_query(bucket->conn->lcb, cookie, cmd);
158172
if (err == LCB_SUCCESS) {
173+
#ifdef LCB_TRACING
174+
if (cookie->span) {
175+
lcb_n1ql_set_parent_span(bucket->conn->lcb, handle, cookie->span);
176+
}
177+
#endif
159178
lcb_wait(bucket->conn->lcb);
160179
err = proc_n1qlrow_results(return_value, cookie TSRMLS_CC);
161180
}
@@ -166,5 +185,10 @@ void pcbc_bucket_n1ql_request(pcbc_bucket_t *bucket, lcb_CMDN1QL *cmd, int json_
166185
zend_throw_exception_object(PCBC_P(cookie->exc) TSRMLS_CC);
167186
}
168187
}
188+
#ifdef LCB_TRACING
189+
if (cookie->span) {
190+
lcbtrace_span_finish(cookie->span, LCBTRACE_NOW);
191+
}
192+
#endif
169193
opcookie_destroy(cookie);
170194
}

src/couchbase/bucket/remove.c

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,9 @@ PHP_METHOD(Bucket, remove)
4848
opcookie *cookie;
4949
zval *zcas, *zgroupid;
5050
lcb_error_t err;
51+
#ifdef LCB_TRACING
52+
lcbtrace_TRACER *tracer = NULL;
53+
#endif
5154

5255
// Note that groupid is experimental here and should not be used.
5356
if (pcbc_pp_begin(ZEND_NUM_ARGS() TSRMLS_CC, &pp_state, "id||cas,groupid", &id, &zcas, &zgroupid) != SUCCESS) {
@@ -57,6 +60,14 @@ PHP_METHOD(Bucket, remove)
5760

5861
ncmds = pcbc_pp_keycount(&pp_state);
5962
cookie = opcookie_init();
63+
#ifdef LCB_TRACING
64+
tracer = lcb_get_tracer(obj->conn->lcb);
65+
if (tracer) {
66+
cookie->span = lcbtrace_span_start(tracer, "php/" LCBTRACE_OP_REMOVE, 0, NULL);
67+
lcbtrace_span_add_tag_str(cookie->span, LCBTRACE_TAG_COMPONENT, pcbc_client_string);
68+
lcbtrace_span_add_tag_str(cookie->span, LCBTRACE_TAG_SERVICE, LCBTRACE_TAG_SERVICE_KV);
69+
}
70+
#endif
6071

6172
nscheduled = 0;
6273
for (ii = 0; pcbc_pp_next(&pp_state); ++ii) {
@@ -73,6 +84,11 @@ PHP_METHOD(Bucket, remove)
7384
LCB_KREQ_SIMPLE(&cmd._hashkey, Z_STRVAL_P(zgroupid), Z_STRLEN_P(zgroupid));
7485
}
7586

87+
#ifdef LCB_TRACING
88+
if (cookie->span) {
89+
LCB_CMD_SET_TRACESPAN(&cmd, cookie->span);
90+
}
91+
#endif
7692
err = lcb_remove3(obj->conn->lcb, cookie, &cmd);
7793
if (err != LCB_SUCCESS) {
7894
break;
@@ -87,6 +103,11 @@ PHP_METHOD(Bucket, remove)
87103
err = proc_remove_results(obj, return_value, cookie, pcbc_pp_ismapped(&pp_state) TSRMLS_CC);
88104
}
89105

106+
#ifdef LCB_TRACING
107+
if (cookie->span) {
108+
lcbtrace_span_finish(cookie->span, LCBTRACE_NOW);
109+
}
110+
#endif
90111
opcookie_destroy(cookie);
91112

92113
if (err != LCB_SUCCESS) {

src/couchbase/bucket/store.c

Lines changed: 20 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -106,8 +106,9 @@ PHP_METHOD(Bucket, insert)
106106
#ifdef LCB_TRACING
107107
tracer = lcb_get_tracer(obj->conn->lcb);
108108
if (tracer) {
109-
cookie->span = lcbtrace_span_start(tracer, "insert", 0, NULL);
109+
cookie->span = lcbtrace_span_start(tracer, "php/" LCBTRACE_OP_INSERT, 0, NULL);
110110
lcbtrace_span_add_tag_str(cookie->span, LCBTRACE_TAG_COMPONENT, pcbc_client_string);
111+
lcbtrace_span_add_tag_str(cookie->span, LCBTRACE_TAG_SERVICE, LCBTRACE_TAG_SERVICE_KV);
111112
}
112113
#endif
113114

@@ -133,8 +134,9 @@ PHP_METHOD(Bucket, insert)
133134
lcbtrace_REF ref;
134135
ref.type = LCBTRACE_REF_CHILD_OF;
135136
ref.span = cookie->span;
136-
span = lcbtrace_span_start(tracer, LCBTRACE_OP_REQUEST_ENCODING, LCBTRACE_NOW, &ref);
137+
span = lcbtrace_span_start(tracer, "php/" LCBTRACE_OP_REQUEST_ENCODING, LCBTRACE_NOW, &ref);
137138
lcbtrace_span_add_tag_str(span, LCBTRACE_TAG_COMPONENT, pcbc_client_string);
139+
lcbtrace_span_add_tag_str(span, LCBTRACE_TAG_SERVICE, LCBTRACE_TAG_SERVICE_KV);
138140
}
139141
#endif
140142
rc = pcbc_encode_value(obj, zvalue, &bytes, &nbytes, &cmd.flags, &cmd.datatype TSRMLS_CC);
@@ -228,8 +230,9 @@ PHP_METHOD(Bucket, upsert)
228230
#ifdef LCB_TRACING
229231
tracer = lcb_get_tracer(obj->conn->lcb);
230232
if (tracer) {
231-
cookie->span = lcbtrace_span_start(tracer, "upsert", 0, NULL);
233+
cookie->span = lcbtrace_span_start(tracer, "php/" LCBTRACE_OP_UPSERT, 0, NULL);
232234
lcbtrace_span_add_tag_str(cookie->span, LCBTRACE_TAG_COMPONENT, pcbc_client_string);
235+
lcbtrace_span_add_tag_str(cookie->span, LCBTRACE_TAG_SERVICE, LCBTRACE_TAG_SERVICE_KV);
233236
}
234237
#endif
235238

@@ -257,8 +260,9 @@ PHP_METHOD(Bucket, upsert)
257260
lcbtrace_REF ref;
258261
ref.type = LCBTRACE_REF_CHILD_OF;
259262
ref.span = cookie->span;
260-
span = lcbtrace_span_start(tracer, LCBTRACE_OP_REQUEST_ENCODING, LCBTRACE_NOW, &ref);
263+
span = lcbtrace_span_start(tracer, "php/" LCBTRACE_OP_REQUEST_ENCODING, LCBTRACE_NOW, &ref);
261264
lcbtrace_span_add_tag_str(span, LCBTRACE_TAG_COMPONENT, pcbc_client_string);
265+
lcbtrace_span_add_tag_str(span, LCBTRACE_TAG_SERVICE, LCBTRACE_TAG_SERVICE_KV);
262266
}
263267
#endif
264268
rc = pcbc_encode_value(obj, zvalue, &bytes, &nbytes, &cmd.flags, &cmd.datatype TSRMLS_CC);
@@ -352,8 +356,9 @@ PHP_METHOD(Bucket, replace)
352356
#ifdef LCB_TRACING
353357
tracer = lcb_get_tracer(obj->conn->lcb);
354358
if (tracer) {
355-
cookie->span = lcbtrace_span_start(tracer, "replace", 0, NULL);
359+
cookie->span = lcbtrace_span_start(tracer, "php/" LCBTRACE_OP_REPLACE, 0, NULL);
356360
lcbtrace_span_add_tag_str(cookie->span, LCBTRACE_TAG_COMPONENT, pcbc_client_string);
361+
lcbtrace_span_add_tag_str(cookie->span, LCBTRACE_TAG_SERVICE, LCBTRACE_TAG_SERVICE_KV);
357362
}
358363
#endif
359364

@@ -382,8 +387,9 @@ PHP_METHOD(Bucket, replace)
382387
lcbtrace_REF ref;
383388
ref.type = LCBTRACE_REF_CHILD_OF;
384389
ref.span = cookie->span;
385-
span = lcbtrace_span_start(tracer, LCBTRACE_OP_REQUEST_ENCODING, LCBTRACE_NOW, &ref);
390+
span = lcbtrace_span_start(tracer, "php/" LCBTRACE_OP_REQUEST_ENCODING, LCBTRACE_NOW, &ref);
386391
lcbtrace_span_add_tag_str(span, LCBTRACE_TAG_COMPONENT, pcbc_client_string);
392+
lcbtrace_span_add_tag_str(span, LCBTRACE_TAG_SERVICE, LCBTRACE_TAG_SERVICE_KV);
387393
}
388394
#endif
389395
rc = pcbc_encode_value(obj, zvalue, &bytes, &nbytes, &cmd.flags, &cmd.datatype TSRMLS_CC);
@@ -480,8 +486,9 @@ PHP_METHOD(Bucket, append)
480486
#ifdef LCB_TRACING
481487
tracer = lcb_get_tracer(obj->conn->lcb);
482488
if (tracer) {
483-
cookie->span = lcbtrace_span_start(tracer, "append", 0, NULL);
489+
cookie->span = lcbtrace_span_start(tracer, "php/" LCBTRACE_OP_APPEND, 0, NULL);
484490
lcbtrace_span_add_tag_str(cookie->span, LCBTRACE_TAG_COMPONENT, pcbc_client_string);
491+
lcbtrace_span_add_tag_str(cookie->span, LCBTRACE_TAG_SERVICE, LCBTRACE_TAG_SERVICE_KV);
485492
}
486493
#endif
487494

@@ -508,8 +515,9 @@ PHP_METHOD(Bucket, append)
508515
lcbtrace_REF ref;
509516
ref.type = LCBTRACE_REF_CHILD_OF;
510517
ref.span = cookie->span;
511-
span = lcbtrace_span_start(tracer, LCBTRACE_OP_REQUEST_ENCODING, LCBTRACE_NOW, &ref);
518+
span = lcbtrace_span_start(tracer, "php/" LCBTRACE_OP_REQUEST_ENCODING, LCBTRACE_NOW, &ref);
512519
lcbtrace_span_add_tag_str(span, LCBTRACE_TAG_COMPONENT, pcbc_client_string);
520+
lcbtrace_span_add_tag_str(span, LCBTRACE_TAG_SERVICE, LCBTRACE_TAG_SERVICE_KV);
513521
}
514522
#endif
515523
rc = pcbc_encode_value(obj, zvalue, &bytes, &nbytes, &cmd.flags, &cmd.datatype TSRMLS_CC);
@@ -603,8 +611,9 @@ PHP_METHOD(Bucket, prepend)
603611
#ifdef LCB_TRACING
604612
tracer = lcb_get_tracer(obj->conn->lcb);
605613
if (tracer) {
606-
cookie->span = lcbtrace_span_start(tracer, "prepend", 0, NULL);
614+
cookie->span = lcbtrace_span_start(tracer, "php/" LCBTRACE_OP_PREPEND, 0, NULL);
607615
lcbtrace_span_add_tag_str(cookie->span, LCBTRACE_TAG_COMPONENT, pcbc_client_string);
616+
lcbtrace_span_add_tag_str(cookie->span, LCBTRACE_TAG_SERVICE, LCBTRACE_TAG_SERVICE_KV);
608617
}
609618
#endif
610619

@@ -631,8 +640,9 @@ PHP_METHOD(Bucket, prepend)
631640
lcbtrace_REF ref;
632641
ref.type = LCBTRACE_REF_CHILD_OF;
633642
ref.span = cookie->span;
634-
span = lcbtrace_span_start(tracer, LCBTRACE_OP_REQUEST_ENCODING, LCBTRACE_NOW, &ref);
643+
span = lcbtrace_span_start(tracer, "php/" LCBTRACE_OP_REQUEST_ENCODING, LCBTRACE_NOW, &ref);
635644
lcbtrace_span_add_tag_str(span, LCBTRACE_TAG_COMPONENT, pcbc_client_string);
645+
lcbtrace_span_add_tag_str(span, LCBTRACE_TAG_SERVICE, LCBTRACE_TAG_SERVICE_KV);
636646
}
637647
#endif
638648
rc = pcbc_encode_value(obj, zvalue, &bytes, &nbytes, &cmd.flags, &cmd.datatype TSRMLS_CC);

src/couchbase/bucket/subdoc.c

Lines changed: 26 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -91,9 +91,9 @@ static lcb_error_t proc_subdoc_results(zval *return_value, opcookie *cookie TSRM
9191
pcbc_document_fragment_init(return_value, PCBC_P(res->value), PCBC_P(res->cas),
9292
PCBC_P(res->token) TSRMLS_CC);
9393
} else {
94-
pcbc_document_fragment_init_error(return_value, &res->header, res->header.err == LCB_SUBDOC_MULTI_FAILURE
95-
? PCBC_P(res->value)
96-
: NULL TSRMLS_CC);
94+
pcbc_document_fragment_init_error(return_value, &res->header,
95+
res->header.err == LCB_SUBDOC_MULTI_FAILURE ? PCBC_P(res->value)
96+
: NULL TSRMLS_CC);
9797
}
9898
}
9999

@@ -125,6 +125,9 @@ void pcbc_bucket_subdoc_request(pcbc_bucket_t *obj, void *builder, int is_lookup
125125
pcbc_sd_spec_t *spec;
126126
lcb_error_t err;
127127
int i;
128+
#ifdef LCB_TRACING
129+
lcbtrace_TRACER *tracer = NULL;
130+
#endif
128131

129132
#define COPY_SPEC(b) \
130133
do { \
@@ -143,6 +146,16 @@ void pcbc_bucket_subdoc_request(pcbc_bucket_t *obj, void *builder, int is_lookup
143146
} \
144147
} while (0);
145148

149+
cookie = opcookie_init();
150+
#ifdef LCB_TRACING
151+
tracer = lcb_get_tracer(obj->conn->lcb);
152+
if (tracer) {
153+
cookie->span = lcbtrace_span_start(tracer, "php/subdoc", 0, NULL);
154+
lcbtrace_span_add_tag_str(cookie->span, LCBTRACE_TAG_COMPONENT, pcbc_client_string);
155+
lcbtrace_span_add_tag_str(cookie->span, LCBTRACE_TAG_SERVICE, LCBTRACE_TAG_SERVICE_KV);
156+
}
157+
#endif
158+
146159
if (is_lookup) {
147160
COPY_SPEC((pcbc_lookup_in_builder_t *)builder);
148161
} else {
@@ -165,7 +178,11 @@ void pcbc_bucket_subdoc_request(pcbc_bucket_t *obj, void *builder, int is_lookup
165178
}
166179
#undef COPY_SPEC
167180

168-
cookie = opcookie_init();
181+
#ifdef LCB_TRACING
182+
if (cookie->span) {
183+
LCB_CMD_SET_TRACESPAN(&cmd, cookie->span);
184+
}
185+
#endif
169186
err = lcb_subdoc3(obj->conn->lcb, cookie, &cmd);
170187

171188
if (err == LCB_SUCCESS) {
@@ -174,6 +191,11 @@ void pcbc_bucket_subdoc_request(pcbc_bucket_t *obj, void *builder, int is_lookup
174191
err = proc_subdoc_results(return_value, cookie TSRMLS_CC);
175192
}
176193

194+
#ifdef LCB_TRACING
195+
if (cookie->span) {
196+
lcbtrace_span_finish(cookie->span, LCBTRACE_NOW);
197+
}
198+
#endif
177199
opcookie_destroy(cookie);
178200
efree((void *)cmd.specs);
179201

0 commit comments

Comments
 (0)