tracer.js 5.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. const core = require("@opencensus/core");
  4. const default_config_1 = require("./config/default-config");
  5. const constants_1 = require("./constants");
  6. const plugin_loader_1 = require("./instrumentation/plugin-loader");
  7. class Tracing {
  8. constructor() {
  9. this.configLocal = {};
  10. this.tracer = new core.CoreTracer();
  11. this.defaultPlugins = plugin_loader_1.PluginLoader.defaultPluginsFromArray(constants_1.Constants.DEFAULT_INSTRUMENTATION_MODULES);
  12. }
  13. static get instance() {
  14. return this.singletonInstance || (this.singletonInstance = new this());
  15. }
  16. get active() {
  17. return this.activeLocal;
  18. }
  19. get config() {
  20. return this.configLocal;
  21. }
  22. start(userConfig) {
  23. this.configLocal = Object.assign(default_config_1.defaultConfig, { plugins: this.defaultPlugins }, userConfig);
  24. this.logger =
  25. this.configLocal.logger || core.logger.logger(this.configLocal.logLevel);
  26. this.configLocal.logger = this.logger;
  27. this.logger.debug('config: %o', this.configLocal);
  28. this.pluginLoader = new plugin_loader_1.PluginLoader(this.logger, this.tracer);
  29. this.pluginLoader.loadPlugins(this.configLocal.plugins);
  30. if (!this.configLocal.exporter) {
  31. const exporter = new core.ConsoleExporter(this.configLocal);
  32. this.registerExporter(exporter);
  33. }
  34. else {
  35. this.registerExporter(this.configLocal.exporter);
  36. }
  37. this.activeLocal = true;
  38. this.tracer.start(this.configLocal);
  39. return this;
  40. }
  41. stop() {
  42. this.activeLocal = false;
  43. this.tracer.stop();
  44. this.pluginLoader.unloadPlugins();
  45. this.configLocal = {};
  46. }
  47. get exporter() {
  48. return this.configLocal.exporter;
  49. }
  50. registerExporter(exporter) {
  51. if (this.configLocal.exporter) {
  52. this.unregisterExporter(this.configLocal.exporter);
  53. }
  54. if (exporter) {
  55. this.configLocal.exporter = exporter;
  56. this.tracer.registerSpanEventListener(exporter);
  57. }
  58. return this;
  59. }
  60. unregisterExporter(exporter) {
  61. this.tracer.unregisterSpanEventListener(exporter);
  62. this.configLocal.exporter = undefined;
  63. return this;
  64. }
  65. }
  66. exports.Tracing = Tracing;
  67. //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhY2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NlbnN1cy90cmFjZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFlQSx5Q0FBd0M7QUFFeEMsNERBQXVEO0FBQ3ZELDJDQUF1QztBQUN2QyxtRUFBOEQ7QUFHOUQsTUFBYSxPQUFPO0lBaUJsQjtRQVRRLGdCQUFXLEdBQWdCLEVBQUUsQ0FBQTtRQVVuQyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFBO1FBQ25DLElBQUksQ0FBQyxjQUFjLEdBQUcsNEJBQVksQ0FBQyx1QkFBdUIsQ0FDdEQscUJBQVMsQ0FBQywrQkFBK0IsQ0FBQyxDQUFBO0lBQ2hELENBQUM7SUFHRCxNQUFNLEtBQUssUUFBUTtRQUNqQixPQUFPLElBQUksQ0FBQyxpQkFBaUIsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDLENBQUE7SUFDeEUsQ0FBQztJQUdELElBQUksTUFBTTtRQUNSLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQTtJQUN6QixDQUFDO0lBR0QsSUFBSSxNQUFNO1FBQ1IsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFBO0lBQ3pCLENBQUM7SUFPRCxLQUFLLENBQUUsVUFBd0I7UUFDN0IsSUFBSSxDQUFDLFdBQVcsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLDhCQUFhLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLGNBQWMsRUFBRSxFQUFFLFVBQVUsQ0FBQyxDQUFBO1FBRTdGLElBQUksQ0FBQyxNQUFNO1lBQ1AsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQTtRQUM1RSxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFBO1FBQ3JDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUE7UUFDakQsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLDRCQUFZLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUE7UUFDOUQsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUEyQixDQUFDLENBQUE7UUFFM0UsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFO1lBQzlCLE1BQU0sUUFBUSxHQUFHLElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUE7WUFDM0QsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxDQUFBO1NBQ2hDO2FBQU07WUFDTCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQTtTQUNqRDtRQUNELElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFBO1FBQ3ZCLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQTtRQUNuQyxPQUFPLElBQUksQ0FBQTtJQUNiLENBQUM7SUFHRCxJQUFJO1FBQ0YsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUE7UUFDeEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQTtRQUNsQixJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsRUFBRSxDQUFBO1FBQ2pDLElBQUksQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFBO0lBQ3ZCLENBQUM7SUFHRCxJQUFJLFFBQVE7UUFFVixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFBO0lBQ2xDLENBQUM7SUFNRCxnQkFBZ0IsQ0FBRSxRQUF1QjtRQUN2QyxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFO1lBQzdCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFBO1NBQ25EO1FBQ0QsSUFBSSxRQUFRLEVBQUU7WUFDWixJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUE7WUFDcEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyx5QkFBeUIsQ0FBQyxRQUFRLENBQUMsQ0FBQTtTQUNoRDtRQUNELE9BQU8sSUFBSSxDQUFBO0lBQ2IsQ0FBQztJQU1ELGtCQUFrQixDQUFFLFFBQXVCO1FBQ3pDLElBQUksQ0FBQyxNQUFNLENBQUMsMkJBQTJCLENBQUMsUUFBUSxDQUFDLENBQUE7UUFDakQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLEdBQUcsU0FBUyxDQUFBO1FBQ3JDLE9BQU8sSUFBSSxDQUFBO0lBQ2IsQ0FBQztDQUNGO0FBdEdELDBCQXNHQyJ9