@routr/dispatcher 2.0.5-alpha.11 → 2.0.5-alpha.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -51,7 +51,7 @@ function runMiddlewares(params) {
51
51
  const req = Object.assign({}, request);
52
52
  return new Promise((resolve, rejects) => __awaiter(this, void 0, void 0, function* () {
53
53
  for (const midd of middlewares) {
54
- logger_1.default.verbose("forwarding request to middleware with ref => " + midd.ref);
54
+ logger_1.default.verbose("forwarding request to middleware", { ref: midd.ref, addr: midd.addr });
55
55
  // Get the next middleware
56
56
  const conn = connections.get(midd.ref);
57
57
  // Send message and re-insert response for next middleware
@@ -1,4 +1,23 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
11
+ }) : function(o, v) {
12
+ o["default"] = v;
13
+ });
14
+ var __importStar = (this && this.__importStar) || function (mod) {
15
+ if (mod && mod.__esModule) return mod;
16
+ var result = {};
17
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
+ __setModuleDefault(result, mod);
19
+ return result;
20
+ };
2
21
  var __importDefault = (this && this.__importDefault) || function (mod) {
3
22
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
23
  };
@@ -24,9 +43,22 @@ exports.runProcessor = void 0;
24
43
  */
25
44
  const errors_1 = require("./errors");
26
45
  const find_processor_1 = require("./find_processor");
27
- const grpc = require("@grpc/grpc-js");
28
46
  const logger_1 = __importDefault(require("@fonoster/logger"));
47
+ const grpc = require("@grpc/grpc-js");
48
+ const api = require('@opentelemetry/api');
49
+ // import { Tracer as T } from '@routr/common'
50
+ // const tracer = T.init('example-grpc-js-server');
51
+ const Tracer = __importStar(require("./tracer"));
52
+ const tracer = Tracer.init('dispatcher');
29
53
  function runProcessor(params) {
54
+ const currentSpan = api.trace.getSpan(api.context.active());
55
+ // display traceid in the terminal
56
+ logger_1.default.verbose(`traceid: ${currentSpan.spanContext().traceId}`);
57
+ const span = tracer.startSpan('server.js:sayHello()', {
58
+ kind: 1,
59
+ attributes: { key: 'value' },
60
+ });
61
+ span.addEvent(`invoking sayHello() to...`);
30
62
  const { callback, connections, processors, request } = params;
31
63
  const matchResult = find_processor_1.findProcessor(processors)(request);
32
64
  if ('code' in matchResult) {
@@ -0,0 +1 @@
1
+ export declare const init: (serviceName: string) => any;
package/dist/tracer.js ADDED
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.init = void 0;
4
+ const opentelemetry = require('@opentelemetry/api');
5
+ const { registerInstrumentations } = require('@opentelemetry/instrumentation');
6
+ const { NodeTracerProvider } = require('@opentelemetry/sdk-trace-node');
7
+ const { Resource } = require('@opentelemetry/resources');
8
+ const { SemanticResourceAttributes } = require('@opentelemetry/semantic-conventions');
9
+ const { SimpleSpanProcessor } = require('@opentelemetry/sdk-trace-base');
10
+ const { JaegerExporter } = require('@opentelemetry/exporter-jaeger');
11
+ const { ZipkinExporter } = require('@opentelemetry/exporter-zipkin');
12
+ const { GrpcInstrumentation } = require('@opentelemetry/instrumentation-grpc');
13
+ const EXPORTER = process.env.EXPORTER || '';
14
+ const init = (serviceName) => {
15
+ const provider = new NodeTracerProvider({
16
+ resource: new Resource({
17
+ [SemanticResourceAttributes.SERVICE_NAME]: serviceName,
18
+ }),
19
+ });
20
+ let exporter;
21
+ if (EXPORTER.toLowerCase().startsWith('z')) {
22
+ exporter = new ZipkinExporter();
23
+ }
24
+ else {
25
+ exporter = new JaegerExporter({
26
+ endpoint: "http://jaeger:14268/api/traces",
27
+ });
28
+ }
29
+ console.log("XXXXXXXXX STARTING PROVIDER");
30
+ provider.addSpanProcessor(new SimpleSpanProcessor(exporter));
31
+ // Initialize the OpenTelemetry APIs to use the NodeTracerProvider bindings
32
+ provider.register();
33
+ registerInstrumentations({
34
+ instrumentations: [
35
+ new GrpcInstrumentation(),
36
+ ],
37
+ });
38
+ console.log("XXXXXXXXX COMPLETE PROVIDER");
39
+ return opentelemetry.trace.getTracer('grpc-js-example');
40
+ };
41
+ exports.init = init;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@routr/dispatcher",
3
- "version": "2.0.5-alpha.11",
3
+ "version": "2.0.5-alpha.14",
4
4
  "description": "Receives SIP messages and forwards them to the corresponding Message Processor",
5
5
  "author": "Pedro Sanders <psanders@fonoster.com>",
6
6
  "homepage": "https://github.com/fonoster/routr#readme",
@@ -26,7 +26,8 @@
26
26
  },
27
27
  "dependencies": {
28
28
  "@grpc/grpc-js": "^1.5.9",
29
- "@routr/common": "^2.0.5-alpha.11",
29
+ "@opentelemetry/api": "^1.1.0",
30
+ "@routr/common": "^2.0.5-alpha.14",
30
31
  "ajv": "^6.12.6",
31
32
  "fp-ts": "^2.11.8"
32
33
  },
@@ -37,5 +38,5 @@
37
38
  "bugs": {
38
39
  "url": "https://github.com/fonoster/routr/issues"
39
40
  },
40
- "gitHead": "3cf2f2f9df4488ca13c820bd8746faa814fabf4a"
41
+ "gitHead": "6dd8fe8ce94c72a1d669c98466bead23400875ce"
41
42
  }