Hacker News new | comments | ask | show | jobs | submit login
Canopy: An End-to-End Performance Tracing And Analysis System [pdf] (brown.edu)
83 points by fanf2 10 months ago | hide | past | web | favorite | 9 comments

Can anyone who has used this attest to its utility?

If you have used Canopy, have you also used Jaeger (by Uber)? How would you compare the two?

> https://eng.uber.com/distributed-tracing/

If anyone wants to know what this might look like, there's a former parse engineer called charity majors who's making honeycomb.io for this kind of observability. She talks a lot on twitter about having had access to tools while she was at fb and wanting to make tools like that for others to use. I've seen the tool. And once I understood it, it blew my mind. Check it out.

I've not used Canopy but from the screenshots I can see that they have aggregated reporting which Jaeger does not (yet) have. This makes Jaeger good for looking at individual traces, but actually getting overall performance data out is hard. They do have a data pipeline on the roadmap though.

Google has Dapper which has been around for a while. I'd be interested in seeing a comparison of these different tracing systems.


I'm a Jaeger developer at Uber, so this could be a bit biased. Jaeger is the only major open source distributed tracer I know of that conforms to the OpenTracing standard. OpenCensus and presumably Canopy require tracer-specific code to be embedded in your program. This makes you locked in to a given provider. You won't find many people who have tested them side by side. Jaeger follows the OpenTracing standard so you can embed generic tracer code and change your tracer on the fly. Once you do this, comparison testing is easy.

OpenCensus is not a vendor specific project. The data OpenCensus collects can be exportable to any tracing backend. We already have a Jaeger exporter for Go: https://godoc.org/go.opencensus.io/exporter/jaeger.

Code instrumented with OpenCensus can export to any backend by changing the registered backend.

Another Jaeger maintainer here. I would agree, Isaac's statement is not accurate. It's also not very relevant for comparison. Canopy is an internal, close source tracing system, so comparing its instrumentation API with OpenTracing is besides the point. Feature-wise, it's a much more mature project than Jaeger (older too). Just a few features off the top of my head that Canopy has over Jaeger: reverse context propagation for deferred sampling, user-controlled DSL that can be pushed through configuration to the edge to do selective sampling, advanced and user-customizable feature extraction data pipeline, UI that combines different visualizations for frontend and backend performance.

FYI, OpenCensus doesn't lock you in to a specific provider, rather it includes its own tracing implementation and exports traces back to your provider of choice

Adrian Colyer wrote a nice review/summary of the paper https://blog.acolyer.org/2017/11/22/canopy-an-end-to-end-per... .

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact