DanielMSchmidt / zipkin-javascript-opentracing

Opentracing implementation for Zipkin in Javascript
MIT License
19 stars 14 forks source link
opentracing performance performance-metrics performance-monitoring zipkin

Zipkin-Javascript-Opentracing Build Status Coverage Status

Installation

Run npm install --save zipkin-javascript-opentracing to install the library.

For usage instructions, please see the examples in the examples/ directory. There is a basic vanilly javascript example that shows how to use the tracer in the context of a single express server and there is an advanced vanilla javascript example that shows how multiple services (express API and frontend) might interact and share a tracing context.

Limitations

injecting and ejecting

We currently only support HTTP Headers. If you need your own mechanism, feel free to do a PR. Also we assume that you only inject the HTTP Headers once, otherwise we will send multiple ClientSend annotations for you.

Also you can only finish spans which were not extracted. If you like this behaviour to be different, please open an issue.

Flags

They are currently not supported, feel free to do a PR.

Follows From (zipkin)

FollowsFrom is not supported by openTracing, as far as I understand.

Additional options for starting a span

We need to know if this is a server or client to set the right annotations. Therefore we need the kind attribute to be set.

Example

All examples need to run zipkin on "localhost:9411". This is best achieved by using docker:

docker run -d -p 9411:9411 openzipkin/zipkin

Basic

To see how to use this library with only one service see examples/vanillajs/basic. You can run the example with npm run example:basic.

Advanced

In order to see how different services may pick up spans and extend them, please see the advanced example at examples/vaniallajs/advanced. You can run the example with npm run example:advanced.