@sourcegraph/lightstep-tracer-webworker v0.20.14-fork.3
lightstep-tracer
LightStep distributed tracing library for Node.js and the browser.
Installation
npm install --save lightstep-tracer opentracingAll modern browsers and Node versions >= 0.12 are supported.
Getting started
To use LightStep as the OpenTracing binding, initialize the global Tracer with the LightStep implementation:
var opentracing = require('opentracing');
var lightstep = require('lightstep-tracer');
opentracing.initGlobalTracer(new lightstep.Tracer({
access_token : '{your_access_token}',
component_name : '{your_service_or_app_name}',
}));The LightStep JavaScript Tracing Cookbook is a good next stop for information on how to quickly instrument your system. If you want to try something out quickly in your browser code, see the browser quick start example.
- For more information about using the OpenTracing API, see http://opentracing.io/
- See examples/browser for a complete JavaScript browser example
- See examples/node for a complete Node.js server-side example
The browser version of the code can be explicitly included using the following, which can be helpful in some browserify (or similar) setups:
var lightstep = require('lightstep-tracer/browser');LightStep-specific API
The OpenTracing standard JavaScript API is documented here. The following describes LightStep-specific options and methods.
LightStep
new Tracer(options)
Required options
access_tokenstringrequired - the project access tokencomponent_namestringrequired - the string identifier for the application, service, or process
Standard options
verbositynumberoptional, default=1 - controls the level of logging to the console0- the client library will never log to the console1- error reporting will be throttled to the first error per minute2- all errors are logged to the console3- all errors, warnings, and info statements are logged to the console4- all log statements, including debugging details
collector_hoststringoptional - custom collector hostnamecollector_portnumberoptional - custom collector portcollector_pathstringoptional - custom collector base path (if served behind a reverse proxy)collector_encryptionstringoptional, default='tls'tls- use HTTPS encrypted connectionsnone- use HTTP plain-text connections
Browser-specific initialization options
instrument_page_loadbool- creates a long-lived single span for the entire page view and is recommended for short-page visits in a multi-page website. For a single-page web app, this behavior may be undesirable. Defaults to false. This must be set at initialization, changes after initialization will have no effect.xhr_instrumentationbool- if false, disables automatic instrumentation of XMLHttpRequests (XHRs). This must be set at initialization; changes after initialization will have no effect. Defaults to false.xhr_url_inclusion_patternsRegExp[]- an array of regular expressions used to whitelist URLs forXMLHttpRequestauto-instrumentation. The default value is wildcard matching all strings. For a given URL to be instrumented, it must match at least one regular expression inxhr_url_inclusion_patternsand not match any regular expressions inxhr_url_exclusion_patterns.xhr_url_exclusion_patternsRegExp[]- an array of regular expressions used to exclude URLs fromXMLHttpRequestauto-instrumentation. The default value is an empty array. For a given URL to be instrumented, it must match at least one regular expression inxhr_url_inclusion_patternsand not match any regular expressions inxhr_url_exclusion_patterns.
Non-standard options
NOTE: Future API compatibility on non-standard options is not guaranteed.
disable_reporting_loopbooloptional, default=false - if true, the timer that automatically sends reports to the collector will be disabled. This option is independent ofdisable_report_on_exit.disable_report_on_exitbooloptional, default=false - if true, the final report that is automatically sent at process exit in Node or page unload in the browser will not be sent.report_timeout_millisnumberoptional, default=30000 - the default timeout value, in milliseconds, for reports to the LightStep collectorgzip_json_requestsbooloptional, default=true - if true, the reports will be gzipped before sent to the collector.default_span_tagsstringoptional - an associative array of tags to add to every span started by the tracer (e.g., the active user id in a browser client)delay_initial_report_millisintoptional, default=1000 - maximum additional delay of the initial report in addition to the normal reporting interval. A value between zero and this maximum will be selected as the actual delay. This can be useful when concurrently launching a large number of new processes and there is a desire to distribute the initial reports over a window of time.error_throttle_millisintoptional, default=60000 - whenverbosityis set to1, this the minimum time between logged errors.ALWAYS THRIFT. GOOGLE PROTOBUFFERS USEtransportstringoptional, default=thrift - whentransportis set toproto, the Tracer will use Proto over HTTP as a transport rather than Thrift.eval()SO CANNOT RUN IN BROWSER EXTENSIONS: https://github.com/lightstep/lightstep-tracer-javascript/issues/141
SpanImp
generateTraceURL()
Returns an absolute URL to the LightStep application for the trace containing this span. It is safe to call this method after finish().
...
span.finish();
var url = span.generateTraceURL())
console.log('View the trace for this span at:', url);License
Copyright (c) 2016, LightStep