splunk-tracer v0.1.0
splunk-tracer
Splunk distributed tracing library for Node.js and the browser.
Installation
npm install --save splunk-tracer opentracingAll modern browsers and Node versions >= 0.12 are supported.
Getting started
To use splunk as the OpenTracing binding, initialize the global Tracer with the splunk implementation:
var opentracing = require('opentracing');
var splunktracing = require('splunk-tracer');
opentracing.initGlobalTracer(new splunktracing.Tracer({
access_token : '{your_access_token}',
component_name : '{your_service_or_app_name}',
}));The Splunk 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 splunktracing = require('splunk-tracer/browser');Splunk-specific API
The OpenTracing standard JavaScript API is documented here. The following describes splunk-specific options and methods.
Splunk
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.fetch_instrumentationbool- if false, disables automatic instrumentation ofwindow.fetch. This must be set at initialization; changes after initialization will have no effect. Defaults to false.fetch_url_inclusion_patternsRegExp[]- an array of regular expressions used to whitelist URLs forwindow.fetchauto-instrumentation. The default value is wildcard matching all strings. For a given URL to be instrumented, it must match at least one regular expression infetch_url_inclusion_patternsand not match any regular expressions infetch_url_exclusion_patterns.fetch_url_exclusion_patternsRegExp[]- an array of regular expressions used to exclude URLs fromwindow.fetchauto-instrumentation. The default value is an empty array. For a given URL to be instrumented, it must match at least one regular expression infetch_url_inclusion_patternsand not match any regular expressions infetch_url_exclusion_patterns.include_cookiesbool- if true, includes cookies in the span logs for bothwindow.fetchandXMLHttpRequest. Defaults to true.
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 splunk 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.transportstringoptional, default=proto - whentransportis set tothrift, the Tracer will use Thrift as its transport instead of Proto over HTTP.loggerfunction(level: string, message: string, payload: any): voidoptional - specify a custom logger function. Possiblelevelvalues aredebug,info,warnanderror. By default messages will be logged to the console.disable_meta_event_reportingbooloptional, default=false - whendisable_meta_event_reportingis set totrue, the tracer will disable meta event reporting even if requested by the Satellite.
This library is the Splunk binding for OpenTracing. See the OpenTracing Javascript API for additional detail.
License
The Splunk Tracer for Javascript is licensed under the MIT License. Details can be found in the LICENSE file.
Third-party libraries
This is a fork of the Javascript tracer from Lightstep, which is also licensed under the MIT License. Links to the original repository and license are below:
6 years ago