Hi Robert,

For myself, I didn’t use the zipkin myself too much, although our testers and 
infrastructure teams used the traces heavily while doing system and integration 
testing.  These traces helped find some performance issues between web front 
ends and various services tracing the amount of time  each level of a request 
required. The extra level of span traces were particularly useful to one of the 
teams tracking down a slow-down with one of the backend services

Request tracing would be a boon to anyone trying to find issues with a system.  
Linking the full trace with an ID would make issue and performance tracking 
much easier.

Regarding the number of headers in zipkin, I didn’t work on that aspect so I 
can’t speak confidently on the number and type.  I only had to change my Spring 
configuration to pull in the definitions defined by one of the other teams.

Chris Snider
Senior Software Engineer
Intelligent Software Solutions, Inc.
[Description: Description: Description: cid:image001.png@01CA1F1F.CBC93990]

From: Robert Coup [mailto:robert.c...@koordinates.com]
Sent: Friday, March 18, 2016 9:33 AM
To: Chris Snider <chris.sni...@issinc.com>
Cc: Andrea Aime <andrea.a...@geo-solutions.it>; 
geoserver-devel@lists.sourceforge.net
Subject: Re: [Geoserver-devel] Request IDs

Hi Chris,

On 18 March 2016 at 14:35, Chris Snider 
<chris.sni...@issinc.com<mailto:chris.sni...@issinc.com>> wrote:

For our application stack, we use Zipkin with a backing Cassandra store in a 
Docker environment.  This also uses a custom httpclient that is integrated into 
the various levels of the app stack and service implementations.  Zipkin adds a 
custom header that is tracked through the calls.

Looks like Zipkin is a more advanced approach along the same lines. From what I 
can tell from a quick read it uses 3-5 headers?

X-B3-TraceId: overall trace id
X-B3-SpanId: id for current step/component in a graph of services
X-B3-ParentSpanId: SpanId from any parent component/step
X-B3-Flags & X-B3-Sampled: track "debug" requests and whether additional 
performance sampling is requested

Each ID is 64bits hex-encoded (ie. half the length of a UUID)
Does that sound about right?

I'm not overly keen to add such a complex implementation -- would what's 
currently be proposed be useful for you? Do your team find the ability to trace 
requests helpful?

https://brandur.org/request-ids discusses a similar pattern as I've proposed, 
though each step (eg. frontend, GeoServer, WPS task, cascaded WFS, database) 
would all generate their own UUIDs then append them together.

Cheers,

Rob :)
------------------------------------------------------------------------------
Transform Data into Opportunity.
Accelerate data analysis in your applications with
Intel Data Analytics Acceleration Library.
Click to learn more.
http://pubads.g.doubleclick.net/gampad/clk?id=278785231&iu=/4140
_______________________________________________
Geoserver-devel mailing list
Geoserver-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-devel

Reply via email to