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',
function setupTracerAndExporters(service) {
const tracer = new NodeTracer();
let exporter;
if (EXPORTER.toLowerCase().startsWith('z')) {
exporter = new ZipkinExporter({
serviceName: service,
});
} else {
exporter = new JaegerExporter({
serviceName: service,
});
}
tracer.addSpanProcessor(new SimpleSpanProcessor(exporter));
// Initialize the OpenTelemetry APIs to use the BasicTracer bindings
opentelemetry.initGlobalTracer(tracer);
function setupTracerAndExporters(service) {
const tracer = new NodeTracer({
plugins: {
grpc: {
enabled: true,
// if it can't find the module, put the absolute path since the packages are not published yet
path: '@opentelemetry/plugin-grpc'
}
}
});
let exporter;
if (EXPORTER.toLowerCase().startsWith('z')) {
exporter = new ZipkinExporter({
serviceName: service,
});
} else {
exporter = new JaegerExporter({
function setupTracerAndExporters(service) {
const tracer = new NodeTracer({
plugins: {
dns: {
enabled: true,
path: '@opentelemetry/plugin-dns',
// Avoid dns lookup loop with http zipkin calls
ignoreHostnames: ['localhost']
}
}
});
let exporter;
if (EXPORTER.toLowerCase().startsWith('z')) {
exporter = new ZipkinExporter({
serviceName: service,
});
} else {
function setupTracerAndExporters(service) {
let exporter;
const tracer = new NodeTracer();
if (EXPORTER.toLowerCase().startsWith('z')) {
exporter = new ZipkinExporter({
serviceName: service
});
} else {
exporter = new JaegerExporter({
serviceName: service,
});
}
tracer.addSpanProcessor(new SimpleSpanProcessor(exporter));
// Initialize the OpenTelemetry APIs to use the BasicTracer bindings
opentelemetry.initGlobalTracer(tracer);
}
}
});
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');
}
function setupTracerAndExporters(service) {
const tracer = new NodeTracer({
plugins: {
mysql: {
enabled: true,
path: "@opentelemetry/plugin-mysql"
},
http: {
enabled: true,
path: "@opentelemetry/plugin-http"
}
}
});
tracer.addSpanProcessor(new SimpleSpanProcessor(new ZipkinExporter({
serviceName: service,
})));
tracer.addSpanProcessor(new SimpleSpanProcessor(new JaegerExporter({