Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
// Used by e2e tests, only needs to build and push image when there is changes,
// by running:
// make docker.build-bookstore
// make docker.push-bookstore
'use strict';
const opentelemetry = require('@opentelemetry/api');
const { NodeTracerProvider } = require('@opentelemetry/node');
const { BatchSpanProcessor } = require('@opentelemetry/tracing');
const { TraceExporter } = require('@google-cloud/opentelemetry-cloud-trace-exporter');
const { AlwaysOnSampler, AlwaysOffSampler, ParentOrElseSampler } = require("@opentelemetry/core");
const { HttpTraceContext } = require("@opentelemetry/core");
// Initialize the OpenTelemetry APIs to use the NodeTracerProvider bindings
const provider = new NodeTracerProvider({
// TODO(nareddyt): Only sample when the incoming request creates a new span.
// Otherwise don't make new spans, but propagate the context.
// sampler: new ParentOrElseSampler(new AlwaysOffSampler()),
sampler: new AlwaysOnSampler(),
plugins: {
express: {
enabled: true,
path: '@opentelemetry/plugin-express',
ignoreLayersType: [
"middleware",
"request_handler",
],
},
http: {
enabled: true,
path: '@opentelemetry/plugin-http',
}
});
require('@google-cloud/debug-agent').start({
serviceContext: {
service: 'currencyservice',
version: 'VERSION'
}
});
const opentelemetry = require('@opentelemetry/api');
const {NodeTracerProvider} = require('@opentelemetry/node');
const {BatchSpanProcessor} = require('@opentelemetry/tracing');
const {TraceExporter} = require('@google-cloud/opentelemetry-cloud-trace-exporter');
// OpenTelemetry tracing with exporter to Google Cloud Trace
const provider = new NodeTracerProvider({
// Use grpc plugin to receive trace contexts from client
plugins: {
grpc: {
enabled: true,
path: '@opentelemetry/plugin-grpc',
}
}
});
// Cloud Trace Exporter handles credentials.
const exporter = new TraceExporter();
provider.addSpanProcessor(new BatchSpanProcessor(exporter));
provider.register();
const tracer = opentelemetry.trace.getTracer('currency');
const path = require('path');
const grpc = require('grpc');
module.exports = () => {
const provider = new NodeTracerProvider({
// Use grpc plugin to receive trace contexts from client (checkout)
plugins: {
grpc: {
enabled: true,
path: '@opentelemetry/plugin-grpc',
}
}
});
provider.addSpanProcessor(new BatchSpanProcessor(new TraceExporter()));
// Initialize the OpenTelemetry APIs to use the NodeTracerProvider bindings
provider.register();
return opentelemetry.trace.getTracer('payment');
}