From 8ed58faae77db3773ded06ccb8e8529cfb9031d6 Mon Sep 17 00:00:00 2001 From: Ivan Topolnjak Date: Mon, 24 Mar 2014 12:42:18 -0300 Subject: complete automatic trace token propagation for spray-client, closes #14 --- kamon-spray/src/main/resources/reference.conf | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) (limited to 'kamon-spray/src/main/resources/reference.conf') diff --git a/kamon-spray/src/main/resources/reference.conf b/kamon-spray/src/main/resources/reference.conf index 88bd8fb8..67d191c7 100644 --- a/kamon-spray/src/main/resources/reference.conf +++ b/kamon-spray/src/main/resources/reference.conf @@ -1,6 +1,31 @@ kamon { spray { - include-trace-token-header = true + # Header name used when propagating the `TraceContext.token` value across applications. trace-token-header-name = "X-Trace-Token" + + # When set to true, Kamon will automatically set and propogate the `TraceContext.token` value under the following + # conditions: + # - When a server side request is received containing the trace token header, the new `TraceContext` will have that + # some token, and once the response to that request is ready, the trace token header is also included in the + # response. + # - When a spray-client request is issued and a `TraceContext` is available, the trace token header will be included + # in the `HttpRequest` headers. + automatic-trace-token-propagation = true + + + client { + # Strategy used for automatic trace segment generation when issue requests with spray-client. The possible values + # are: + # - pipelining: measures the time during which the user application code is waiting for a spray-client request to + # complete, by attaching a callback to the Future[HttpResponse] returned by `spray.client.pipelining.sendReceive`. + # If `spray.client.pipelining.sendReceive` is not used, the segment measurement wont be performed. + # - internal: measures the internal time taken by spray-client to finish a request. Sometimes the user application + # code has a finite future timeout (like when using `spray.client.pipelining.sendReceive`) that doesn't match + # the actual amount of time spray might take internally to resolve a request, counting retries, redirects, + # connection timeouts and so on. If using the internal strategy, the measured time will include the entire time + # since the request has been received by the corresponding `HttpHostConnector` until a response is sent back + # to the requester. + segment-collection-strategy = pipelining + } } } \ No newline at end of file -- cgit v1.2.3