update examples and getting started for provider and api package (#750)

* chore: rename provider in examples and getting started

* chore: update examples, bench, and getting started for api

* chore: update examples for latest changes

* chore: lint examples
This commit is contained in:
Daniel Dyla 2020-02-05 13:44:05 -05:00 committed by GitHub
parent 470fc6279b
commit c5bc4382ec
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
40 changed files with 181 additions and 179 deletions

View File

@ -1,15 +1,16 @@
'use strict';
const benchmark = require('./benchmark');
const opentelemetry = require('../packages/opentelemetry-core');
const opentelemetry = require('../packages/opentelemetry-api');
const { NoopLogger } = require('../packages/opentelemetry-core');
const { BasicTracerProvider, BatchSpanProcessor, InMemorySpanExporter, SimpleSpanProcessor } = require('../packages/opentelemetry-tracing');
const logger = new opentelemetry.NoopLogger();
const logger = new NoopLogger();
const setups = [
{
name: 'NoopTracerProvider',
provider: opentelemetry.getTracerProvider()
provider: new opentelemetry.NoopTracerProvider()
},
{
name: 'BasicTracerProvider',

View File

@ -1,7 +1,7 @@
'use strict';
const opentelemetry = require('@opentelemetry/core');
const { BasicTracerRegistry, SimpleSpanProcessor } = require('@opentelemetry/tracing');
const opentelemetry = require('@opentelemetry/api');
const { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/tracing');
const { JaegerExporter } = require('@opentelemetry/exporter-jaeger');
const { ZipkinExporter } = require('@opentelemetry/exporter-zipkin');
const { CollectorExporter } = require('@opentelemetry/exporter-collector');
@ -22,14 +22,14 @@ if (EXPORTER.toLowerCase().startsWith('z')) {
exporter = new CollectorExporter(options);
}
const registry = new BasicTracerRegistry();
const provider = new BasicTracerProvider();
// Configure span processor to send spans to the provided exporter
registry.addSpanProcessor(new SimpleSpanProcessor(exporter));
provider.addSpanProcessor(new SimpleSpanProcessor(exporter));
// Initialize the OpenTelemetry APIs to use the BasicTracerRegistry bindings
opentelemetry.initGlobalTracerRegistry(registry);
const tracer = opentelemetry.getTracer('example-basic-tracer-node');
// Initialize the OpenTelemetry APIs to use the BasicTracerProvider bindings
opentelemetry.trace.initGlobalTracerProvider(provider);
const tracer = opentelemetry.trace.getTracer('example-basic-tracer-node');
// Create a span. A span must be closed.
const parentSpan = tracer.startSpan('main');

View File

@ -1,12 +1,12 @@
'use strict';
const opentelemetry = require('@opentelemetry/core');
const { BasicTracerRegistry, BatchSpanProcessor, SimpleSpanProcessor } = require('@opentelemetry/tracing');
const opentelemetry = require('@opentelemetry/api');
const { BasicTracerProvider, BatchSpanProcessor, SimpleSpanProcessor } = require('@opentelemetry/tracing');
const { JaegerExporter } = require('@opentelemetry/exporter-jaeger');
const { ZipkinExporter } = require('@opentelemetry/exporter-zipkin');
const { CollectorExporter } = require('@opentelemetry/exporter-collector');
const registry = new BasicTracerRegistry();
const provider = new BasicTracerProvider();
const zipkinExporter = new ZipkinExporter({ serviceName: 'basic-service' });
const jaegerExporter = new JaegerExporter({
@ -16,21 +16,21 @@ const collectorExporter = new CollectorExporter({ serviceName: 'basic-service' }
// It is recommended to use this BatchSpanProcessor for better performance
// and optimization, especially in production.
registry.addSpanProcessor(new BatchSpanProcessor(zipkinExporter, {
provider.addSpanProcessor(new BatchSpanProcessor(zipkinExporter, {
// This is added for example, default size is 100.
bufferSize: 10,
}));
const tracer = opentelemetry.getTracer('default');
const tracer = opentelemetry.trace.getTracer('default');
tracer.addSpanProcessor(new BatchSpanProcessor(jaegerExporter), {
bufferSize: 10,
});
registry.addSpanProcessor(new SimpleSpanProcessor(collectorExporter));
provider.addSpanProcessor(new SimpleSpanProcessor(collectorExporter));
// Initialize the OpenTelemetry APIs to use the BasicTracerRegistry bindings
opentelemetry.initGlobalTracerRegistry(registry);
// Initialize the OpenTelemetry APIs to use the BasicTracerProvider bindings
opentelemetry.trace.initGlobalTracerProvider(provider);
// Create a span. A span must be closed.
const parentSpan = tracer.startSpan('main');

View File

@ -30,7 +30,7 @@
"url": "https://github.com/open-telemetry/opentelemetry-js/issues"
},
"dependencies": {
"@opentelemetry/core": "^0.3.3",
"@opentelemetry/api": "^0.3.3",
"@opentelemetry/exporter-collector": "^0.3.3",
"@opentelemetry/exporter-jaeger": "^0.3.3",
"@opentelemetry/exporter-zipkin": "^0.3.3",

View File

@ -26,7 +26,7 @@
"url": "https://github.com/open-telemetry/opentelemetry-js/issues"
},
"dependencies": {
"@opentelemetry/core": "^0.3.3",
"@opentelemetry/api": "^0.3.3",
"@opentelemetry/exporter-jaeger": "^0.3.3",
"@opentelemetry/exporter-zipkin": "^0.3.3",
"@opentelemetry/node": "^0.3.3",

View File

@ -1,7 +1,7 @@
'use strict';
const opentelemetry = require('@opentelemetry/core');
const { NodeTracerRegistry } = require('@opentelemetry/node');
const opentelemetry = require('@opentelemetry/api');
const { NodeTracerProvider } = require('@opentelemetry/node');
const { SimpleSpanProcessor } = require('@opentelemetry/tracing');
const { JaegerExporter } = require('@opentelemetry/exporter-jaeger');
const { ZipkinExporter } = require('@opentelemetry/exporter-zipkin');
@ -9,7 +9,7 @@ const { ZipkinExporter } = require('@opentelemetry/exporter-zipkin');
const EXPORTER = process.env.EXPORTER || '';
module.exports = (serviceName) => {
const registry = new NodeTracerRegistry({
const provider = new NodeTracerProvider({
plugins: {
dns: {
enabled: true,
@ -31,10 +31,10 @@ module.exports = (serviceName) => {
});
}
registry.addSpanProcessor(new SimpleSpanProcessor(exporter));
provider.addSpanProcessor(new SimpleSpanProcessor(exporter));
// Initialize the OpenTelemetry APIs to use the BasicTracerRegistry bindings
opentelemetry.initGlobalTracerRegistry(registry);
// Initialize the OpenTelemetry APIs to use the BasicTracerProvider bindings
opentelemetry.trace.initGlobalTracerProvider(provider);
return opentelemetry.getTracer();
return opentelemetry.trace.getTracer('dns-example');
};

View File

@ -28,7 +28,7 @@
"url": "https://github.com/open-telemetry/opentelemetry-js/issues"
},
"dependencies": {
"@opentelemetry/core": "^0.3.3",
"@opentelemetry/api": "^0.3.3",
"@opentelemetry/exporter-jaeger": "^0.3.3",
"@opentelemetry/exporter-zipkin": "^0.3.3",
"@opentelemetry/node": "^0.3.3",

View File

@ -1,7 +1,7 @@
'use strict';
const opentelemetry = require('@opentelemetry/core');
const { NodeTracerRegistry } = require('@opentelemetry/node');
const opentelemetry = require('@opentelemetry/api');
const { NodeTracerProvider } = require('@opentelemetry/node');
const { SimpleSpanProcessor } = require('@opentelemetry/tracing');
const { JaegerExporter } = require('@opentelemetry/exporter-jaeger');
const { ZipkinExporter } = require('@opentelemetry/exporter-zipkin');
@ -9,7 +9,7 @@ const { ZipkinExporter } = require('@opentelemetry/exporter-zipkin');
const EXPORTER = process.env.EXPORTER || '';
module.exports = (serviceName) => {
const registry = new NodeTracerRegistry({
const provider = new NodeTracerProvider({
plugins: {
grpc: {
enabled: true,
@ -29,10 +29,10 @@ module.exports = (serviceName) => {
});
}
registry.addSpanProcessor(new SimpleSpanProcessor(exporter));
provider.addSpanProcessor(new SimpleSpanProcessor(exporter));
// Initialize the OpenTelemetry APIs to use the BasicTracerRegistry bindings
opentelemetry.initGlobalTracerRegistry(registry);
// Initialize the OpenTelemetry APIs to use the BasicTracerProvider bindings
opentelemetry.trace.initGlobalTracerProvider(provider);
return opentelemetry.getTracer();
return opentelemetry.trace.getTracer('grpc-example');
};

View File

@ -2,7 +2,7 @@
// eslint-disable-next-line import/order
const tracer = require('./tracer')('example-grpc-capitalize-server');
const { SpanKind } = require('@opentelemetry/types');
const { SpanKind } = require('@opentelemetry/api');
const path = require('path');
const grpc = require('grpc');
const protoLoader = require('@grpc/proto-loader');

View File

@ -28,13 +28,13 @@
},
"dependencies": {
"@grpc/proto-loader": "^0.4.0",
"@opentelemetry/core": "^0.3.3",
"@opentelemetry/api": "^0.3.3",
"@opentelemetry/exporter-jaeger": "^0.3.3",
"@opentelemetry/exporter-zipkin": "^0.3.3",
"@opentelemetry/node": "^0.3.3",
"@opentelemetry/plugin-grpc": "^0.3.3",
"@opentelemetry/tracing": "^0.3.3",
"@opentelemetry/types": "^0.3.3",
"@opentelemetry/api": "^0.3.3",
"grpc": "^1.23.3",
"node-pre-gyp": "0.12.0"
},

View File

@ -1,7 +1,7 @@
'use strict';
const opentelemetry = require('@opentelemetry/core');
const { NodeTracerRegistry } = require('@opentelemetry/node');
const opentelemetry = require('@opentelemetry/api');
const { NodeTracerProvider } = require('@opentelemetry/node');
const { SimpleSpanProcessor } = require('@opentelemetry/tracing');
const { JaegerExporter } = require('@opentelemetry/exporter-jaeger');
const { ZipkinExporter } = require('@opentelemetry/exporter-zipkin');
@ -9,7 +9,7 @@ const { ZipkinExporter } = require('@opentelemetry/exporter-zipkin');
const EXPORTER = process.env.EXPORTER || '';
module.exports = (serviceName) => {
const registry = new NodeTracerRegistry({
const provider = new NodeTracerProvider({
plugins: {
grpc: {
enabled: true,
@ -32,10 +32,10 @@ module.exports = (serviceName) => {
// It is recommended to use this `BatchSpanProcessor` for better performance
// and optimization, especially in production.
registry.addSpanProcessor(new SimpleSpanProcessor(exporter));
provider.addSpanProcessor(new SimpleSpanProcessor(exporter));
// Initialize the OpenTelemetry APIs to use the BasicTracerRegistry bindings
opentelemetry.initGlobalTracerRegistry(registry);
// Initialize the OpenTelemetry APIs to use the BasicTracerProvider bindings
opentelemetry.trace.initGlobalTracerProvider(provider);
return opentelemetry.getTracer();
return opentelemetry.trace.getTracer('grpc-dynamic-codegen-example');
};

View File

@ -28,7 +28,7 @@
"url": "https://github.com/open-telemetry/opentelemetry-js/issues"
},
"dependencies": {
"@opentelemetry/core": "^0.3.3",
"@opentelemetry/api": "^0.3.3",
"@opentelemetry/exporter-jaeger": "^0.3.3",
"@opentelemetry/exporter-zipkin": "^0.3.3",
"@opentelemetry/node": "^0.3.3",

View File

@ -1,7 +1,7 @@
'use strict';
const opentelemetry = require('@opentelemetry/core');
const { NodeTracerRegistry } = require('@opentelemetry/node');
const opentelemetry = require('@opentelemetry/api');
const { NodeTracerProvider } = require('@opentelemetry/node');
const { SimpleSpanProcessor } = require('@opentelemetry/tracing');
const { JaegerExporter } = require('@opentelemetry/exporter-jaeger');
const { ZipkinExporter } = require('@opentelemetry/exporter-zipkin');
@ -9,7 +9,7 @@ const { ZipkinExporter } = require('@opentelemetry/exporter-zipkin');
const EXPORTER = process.env.EXPORTER || '';
module.exports = (serviceName) => {
const registry = new NodeTracerRegistry();
const provider = new NodeTracerProvider();
let exporter;
if (EXPORTER.toLowerCase().startsWith('z')) {
@ -22,10 +22,10 @@ module.exports = (serviceName) => {
});
}
registry.addSpanProcessor(new SimpleSpanProcessor(exporter));
provider.addSpanProcessor(new SimpleSpanProcessor(exporter));
// Initialize the OpenTelemetry APIs to use the BasicTracerRegistry bindings
opentelemetry.initGlobalTracerRegistry(registry);
// Initialize the OpenTelemetry APIs to use the BasicTracerProvider bindings
opentelemetry.trace.initGlobalTracerProvider(provider);
return opentelemetry.getTracer();
return opentelemetry.trace.getTracer('http-example');
};

View File

@ -29,7 +29,7 @@
"url": "https://github.com/open-telemetry/opentelemetry-js/issues"
},
"dependencies": {
"@opentelemetry/core": "^0.3.3",
"@opentelemetry/api": "^0.3.3",
"@opentelemetry/exporter-jaeger": "^0.3.3",
"@opentelemetry/exporter-zipkin": "^0.3.3",
"@opentelemetry/node": "^0.3.3",

View File

@ -1,7 +1,7 @@
'use strict';
const opentelemetry = require('@opentelemetry/core');
const { NodeTracerRegistry } = require('@opentelemetry/node');
const opentelemetry = require('@opentelemetry/api');
const { NodeTracerProvider } = require('@opentelemetry/node');
const { SimpleSpanProcessor } = require('@opentelemetry/tracing');
const { JaegerExporter } = require('@opentelemetry/exporter-jaeger');
const { ZipkinExporter } = require('@opentelemetry/exporter-zipkin');
@ -11,7 +11,7 @@ process.env.NODE_TLS_REJECT_UNAUTHORIZED = '0';
module.exports = (serviceName) => {
let exporter;
const registry = new NodeTracerRegistry();
const provider = new NodeTracerProvider();
if (EXPORTER.toLowerCase().startsWith('z')) {
exporter = new ZipkinExporter({
@ -23,10 +23,10 @@ module.exports = (serviceName) => {
});
}
registry.addSpanProcessor(new SimpleSpanProcessor(exporter));
provider.addSpanProcessor(new SimpleSpanProcessor(exporter));
// Initialize the OpenTelemetry APIs to use the BasicTracerRegistry bindings
opentelemetry.initGlobalTracerRegistry(registry);
// Initialize the OpenTelemetry APIs to use the BasicTracerProvider bindings
opentelemetry.trace.initGlobalTracerProvider(provider);
return opentelemetry.getTracer();
return opentelemetry.trace.getTracer('https-example');
};

View File

@ -28,7 +28,7 @@
"url": "https://github.com/open-telemetry/opentelemetry-js/issues"
},
"dependencies": {
"@opentelemetry/core": "^0.3.3",
"@opentelemetry/api": "^0.3.3",
"@opentelemetry/exporter-jaeger": "^0.3.3",
"@opentelemetry/node": "^0.3.3",
"@opentelemetry/plugin-ioredis": "^0.3.3",

View File

@ -1,17 +1,17 @@
'use strict';
const opentelemetry = require('@opentelemetry/core');
const { NodeTracerRegistry } = require('@opentelemetry/node');
const opentelemetry = require('@opentelemetry/api');
const { NodeTracerProvider } = require('@opentelemetry/node');
const { SimpleSpanProcessor } = require('@opentelemetry/tracing');
const { JaegerExporter } = require('@opentelemetry/exporter-jaeger');
const tracerRegistry = new NodeTracerRegistry();
const provider = new NodeTracerProvider();
const exporter = new JaegerExporter({ serviceName: 'ioredis-example' });
tracerRegistry.addSpanProcessor(new SimpleSpanProcessor(exporter));
provider.addSpanProcessor(new SimpleSpanProcessor(exporter));
// Initialize the OpenTelemetry APIs to use the BasicTracer bindings
opentelemetry.initGlobalTracerRegistry(tracerRegistry);
opentelemetry.trace.initGlobalTracerProvider(provider);
module.exports = opentelemetry.getTracer();
module.exports = opentelemetry.trace.getTracer('ioredis-example');

View File

@ -28,7 +28,7 @@
"url": "https://github.com/open-telemetry/opentelemetry-js/issues"
},
"dependencies": {
"@opentelemetry/core": "^0.3.3",
"@opentelemetry/api": "^0.3.3",
"@opentelemetry/exporter-jaeger": "^0.3.3",
"@opentelemetry/exporter-zipkin": "^0.3.3",
"@opentelemetry/node": "^0.3.3",

View File

@ -1,13 +1,13 @@
'use strict';
const opentelemetry = require('@opentelemetry/core');
const { NodeTracerRegistry } = require('@opentelemetry/node');
const opentelemetry = require('@opentelemetry/api');
const { NodeTracerProvider } = require('@opentelemetry/node');
const { SimpleSpanProcessor } = require('@opentelemetry/tracing');
const { JaegerExporter } = require('@opentelemetry/exporter-jaeger');
const { ZipkinExporter } = require('@opentelemetry/exporter-zipkin');
module.exports = (serviceName) => {
const registry = new NodeTracerRegistry({
const provider = new NodeTracerProvider({
plugins: {
mysql: {
enabled: true,
@ -20,15 +20,15 @@ module.exports = (serviceName) => {
},
});
registry.addSpanProcessor(new SimpleSpanProcessor(new ZipkinExporter({
provider.addSpanProcessor(new SimpleSpanProcessor(new ZipkinExporter({
serviceName,
})));
registry.addSpanProcessor(new SimpleSpanProcessor(new JaegerExporter({
provider.addSpanProcessor(new SimpleSpanProcessor(new JaegerExporter({
serviceName,
})));
// Initialize the OpenTelemetry APIs to use the BasicTracerRegistry bindings
opentelemetry.initGlobalTracerRegistry(registry);
// Initialize the OpenTelemetry APIs to use the BasicTracerProvider bindings
opentelemetry.trace.initGlobalTracerProvider(provider);
return opentelemetry.getTracer();
return opentelemetry.trace.getTracer('mysql-example');
};

View File

@ -1,17 +1,17 @@
'use strict';
const { NodeTracerRegistry } = require('@opentelemetry/node');
const { NodeTracerProvider } = require('@opentelemetry/node');
const { SimpleSpanProcessor } = require('@opentelemetry/tracing');
const { JaegerExporter } = require('@opentelemetry/exporter-jaeger');
const { ZipkinExporter } = require('@opentelemetry/exporter-zipkin');
const { TracerShim } = require('@opentelemetry/shim-opentracing');
function shim(serviceName) {
const registry = new NodeTracerRegistry();
const provider = new NodeTracerProvider();
registry.addSpanProcessor(new SimpleSpanProcessor(getExporter(serviceName)));
provider.addSpanProcessor(new SimpleSpanProcessor(getExporter(serviceName)));
return new TracerShim(registry.getTracer('opentracing-shim'));
return new TracerShim(provider.getTracer('opentracing-shim'));
}
function getExporter(serviceName) {

View File

@ -30,7 +30,7 @@
"url": "https://github.com/open-telemetry/opentelemetry-js/issues"
},
"dependencies": {
"@opentelemetry/core": "^0.3.3",
"@opentelemetry/api": "^0.3.3",
"@opentelemetry/exporter-jaeger": "^0.3.3",
"@opentelemetry/exporter-zipkin": "^0.3.3",
"@opentelemetry/node": "^0.3.3",
@ -38,7 +38,7 @@
"@opentelemetry/plugin-pg": "^0.3.3",
"@opentelemetry/plugin-pg-pool": "^0.3.3",
"@opentelemetry/tracing": "^0.3.3",
"@opentelemetry/types": "^0.3.3",
"@opentelemetry/api": "^0.3.3",
"express": "^4.17.1",
"pg": "^7.12.1"
},

View File

@ -2,7 +2,7 @@
// eslint-disable-next-line import/order
const tracer = require('./tracer')('postgres-server-service');
const { SpanKind, CanonicalCode } = require('@opentelemetry/types');
const { SpanKind, CanonicalCode } = require('@opentelemetry/api');
const express = require('express');
const setupPg = require('./setupPsql');

View File

@ -1,7 +1,7 @@
'use strict';
const opentelemetry = require('@opentelemetry/core');
const { NodeTracer } = require('@opentelemetry/node');
const opentelemetry = require('@opentelemetry/api');
const { NodeTracerProvider } = require('@opentelemetry/node');
const { SimpleSpanProcessor } = require('@opentelemetry/tracing');
const { JaegerExporter } = require('@opentelemetry/exporter-jaeger');
const { ZipkinExporter } = require('@opentelemetry/exporter-zipkin');
@ -9,7 +9,7 @@ const { ZipkinExporter } = require('@opentelemetry/exporter-zipkin');
const EXPORTER = process.env.EXPORTER || '';
module.exports = (serviceName) => {
const tracer = new NodeTracer({
const provider = new NodeTracerProvider({
plugins: {
pg: {
enabled: true,
@ -43,10 +43,10 @@ module.exports = (serviceName) => {
});
}
tracer.addSpanProcessor(new SimpleSpanProcessor(exporter));
provider.addSpanProcessor(new SimpleSpanProcessor(exporter));
// Initialize the OpenTelemetry APIs to use the BasicTracer bindings
opentelemetry.initGlobalTracer(tracer);
opentelemetry.trace.initGlobalTracerProvider(provider);
return opentelemetry.getTracer();
return opentelemetry.trace.getTracer('example-postgres');
};

View File

@ -1,9 +1,9 @@
'use strict';
const { MeterRegistry } = require('@opentelemetry/metrics');
const { MeterProvider } = require('@opentelemetry/metrics');
const { PrometheusExporter } = require('@opentelemetry/exporter-prometheus');
const meter = new MeterRegistry().getMeter('example-prometheus');
const meter = new MeterProvider().getMeter('example-prometheus');
const exporter = new PrometheusExporter(
{

View File

@ -2,22 +2,22 @@
// eslint-disable-next-line import/order
const tracer = require('./tracer')('example-redis-client');
const types = require('@opentelemetry/types');
const api = require('@opentelemetry/api');
const axios = require('axios').default;
function makeRequest() {
const span = tracer.startSpan('client.makeRequest()', {
parent: tracer.getCurrentSpan(),
kind: types.SpanKind.CLIENT,
kind: api.SpanKind.CLIENT,
});
tracer.withSpan(span, async () => {
try {
const res = await axios.get('http://localhost:8080/run_test');
span.setStatus({ code: types.CanonicalCode.OK });
span.setStatus({ code: api.CanonicalCode.OK });
console.log(res.statusText);
} catch (e) {
span.setStatus({ code: types.CanonicalCode.UNKNOWN, message: e.message });
span.setStatus({ code: api.CanonicalCode.UNKNOWN, message: e.message });
}
span.end();
console.log('Sleeping 5 seconds before shutdown to ensure all records are flushed.');

View File

@ -1,12 +1,12 @@
'use strict';
const types = require('@opentelemetry/types');
const api = require('@opentelemetry/api');
function getMiddlewareTracer(tracer) {
return (req, res, next) => {
const span = tracer.startSpan(`express.middleware.tracer(${req.method} ${req.path})`, {
parent: tracer.getCurrentSpan(),
kind: types.SpanKind.SERVER,
kind: api.SpanKind.SERVER,
});
// End this span before sending out the response
@ -25,7 +25,7 @@ function getErrorTracer(tracer) {
console.error('Caught error', err.message);
const span = tracer.getCurrentSpan();
if (span) {
span.setStatus({ code: types.CanonicalCode.INTERNAL, message: err.message });
span.setStatus({ code: api.CanonicalCode.INTERNAL, message: err.message });
}
res.status(500).send(err.message);
};

View File

@ -30,14 +30,14 @@
"url": "https://github.com/open-telemetry/opentelemetry-js/issues"
},
"dependencies": {
"@opentelemetry/core": "^0.3.3",
"@opentelemetry/api": "^0.3.3",
"@opentelemetry/exporter-jaeger": "^0.3.3",
"@opentelemetry/exporter-zipkin": "^0.3.3",
"@opentelemetry/node": "^0.3.3",
"@opentelemetry/plugin-http": "^0.3.3",
"@opentelemetry/plugin-redis": "^0.3.3",
"@opentelemetry/tracing": "^0.3.3",
"@opentelemetry/types": "^0.3.3",
"@opentelemetry/api": "^0.3.3",
"axios": "^0.19.0",
"express": "^4.17.1",
"redis": "^2.8.0"

View File

@ -1,7 +1,7 @@
'use strict';
const opentelemetry = require('@opentelemetry/core');
const { NodeTracerRegistry } = require('@opentelemetry/node');
const opentelemetry = require('@opentelemetry/api');
const { NodeTracerProvider } = require('@opentelemetry/node');
const { SimpleSpanProcessor } = require('@opentelemetry/tracing');
const { JaegerExporter } = require('@opentelemetry/exporter-jaeger');
const { ZipkinExporter } = require('@opentelemetry/exporter-zipkin');
@ -10,7 +10,7 @@ const EXPORTER = process.env.EXPORTER || '';
module.exports = (serviceName) => {
const registry = new NodeTracerRegistry();
const provider = new NodeTracerProvider();
let exporter;
if (EXPORTER.toLowerCase().startsWith('z')) {
@ -23,10 +23,10 @@ module.exports = (serviceName) => {
});
}
registry.addSpanProcessor(new SimpleSpanProcessor(exporter));
provider.addSpanProcessor(new SimpleSpanProcessor(exporter));
// Initialize the OpenTelemetry APIs to use the BasicTracerRegistry bindings
opentelemetry.initGlobalTracerRegistry(registry);
// Initialize the OpenTelemetry APIs to use the BasicTracerProvider bindings
opentelemetry.trace.initGlobalTracerProvider(provider);
return opentelemetry.getTracer();
return opentelemetry.trace.getTracer('redis-example');
};

View File

@ -1,8 +1,8 @@
'use strict';
const opentelemetry = require('@opentelemetry/core');
const { BasicTracerRegistry, SimpleSpanProcessor } = require('@opentelemetry/tracing');
const { CanonicalCode } = require('@opentelemetry/types');
const opentelemetry = require('@opentelemetry/api');
const { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/tracing');
const { CanonicalCode } = require('@opentelemetry/api');
const { StackdriverTraceExporter } = require('@opentelemetry/exporter-stackdriver-trace');
// Initialize an exporter
@ -10,14 +10,14 @@ const exporter = new StackdriverTraceExporter({
projectId: '<PROJECT_ID>',
});
const registry = new BasicTracerRegistry();
const provider = new BasicTracerProvider();
// Configure span processor to send spans to the provided exporter
registry.addSpanProcessor(new SimpleSpanProcessor(exporter));
provider.addSpanProcessor(new SimpleSpanProcessor(exporter));
// Initialize the OpenTelemetry APIs to use the BasicTracerRegistry bindings
opentelemetry.initGlobalTracerRegistry(registry);
const tracer = opentelemetry.getTracer('stackdriver-basic');
// Initialize the OpenTelemetry APIs to use the BasicTracerProvider bindings
opentelemetry.trace.initGlobalTracerProvider(provider);
const tracer = opentelemetry.trace.getTracer('stackdriver-basic');
// Create a span. A span must be closed.
const root = tracer.startSpan('main');

View File

@ -25,10 +25,10 @@
"url": "https://github.com/open-telemetry/opentelemetry-js/issues"
},
"dependencies": {
"@opentelemetry/core": "^0.3.3",
"@opentelemetry/api": "^0.3.3",
"@opentelemetry/exporter-stackdriver-trace": "^0.3.3",
"@opentelemetry/tracing": "^0.3.3",
"@opentelemetry/types": "^0.3.3"
"@opentelemetry/api": "^0.3.3"
},
"homepage": "https://github.com/open-telemetry/opentelemetry-js#readme",
"devDependencies": {

View File

@ -1,26 +1,26 @@
import { ConsoleSpanExporter, SimpleSpanProcessor } from '@opentelemetry/tracing';
import { WebTracerRegistry } from '@opentelemetry/web';
import { WebTracerProvider } from '@opentelemetry/web';
import { DocumentLoad } from '@opentelemetry/plugin-document-load';
import { ZoneScopeManager } from '@opentelemetry/scope-zone';
import { CollectorExporter } from '@opentelemetry/exporter-collector';
const registry = new WebTracerRegistry({
const provider = new WebTracerProvider({
plugins: [
new DocumentLoad(),
],
});
registry.addSpanProcessor(new SimpleSpanProcessor(new ConsoleSpanExporter()));
provider.addSpanProcessor(new SimpleSpanProcessor(new ConsoleSpanExporter()));
const registryWithZone = new WebTracerRegistry({
const providerWithZone = new WebTracerProvider({
scopeManager: new ZoneScopeManager(),
plugins: [
new DocumentLoad(),
],
});
registryWithZone.addSpanProcessor(new SimpleSpanProcessor(new ConsoleSpanExporter()));
registryWithZone.addSpanProcessor(new SimpleSpanProcessor(new CollectorExporter()));
providerWithZone.addSpanProcessor(new SimpleSpanProcessor(new ConsoleSpanExporter()));
providerWithZone.addSpanProcessor(new SimpleSpanProcessor(new CollectorExporter()));
const tracerWithZone = registryWithZone.getTracer('example-tracer-web');
const tracerWithZone = providerWithZone.getTracer('example-tracer-web');
let window;
console.log('Current span is window', tracerWithZone.getCurrentSpan() === window);

View File

@ -34,6 +34,7 @@
"webpack-merge": "^4.2.2"
},
"dependencies": {
"@opentelemetry/core": "^0.3.3",
"@opentelemetry/exporter-collector": "^0.3.3",
"@opentelemetry/plugin-document-load": "^0.3.3",
"@opentelemetry/plugin-xml-http-request": "^0.3.3",

View File

@ -73,14 +73,14 @@ Create a file named `tracing.js` and add the following code:
```javascript
'use strict';
const opentelemetry = require("@opentelemetry/core");
const { NodeTracerRegistry } = require("@opentelemetry/node");
const opentelemetry = require("@opentelemetry/api");
const { NodeTracerProvider } = require("@opentelemetry/node");
const tracerRegistry = new NodeTracerRegistry({
const provider = new NodeTracerProvider({
logLevel: opentelemetry.LogLevel.ERROR
});
opentelemetry.initGlobalTracerRegistry(tracerRegistry);
opentelemetry.trace.initGlobalTracerProvider(provider);
```
If you run your application now with `node -r ./tracing.js app.js`, your application will create and propagate traces over HTTP. If an already instrumented service that supports [Trace Context](https://www.w3.org/TR/trace-context/) headers calls your application using HTTP, and you call another application using HTTP, the Trace Context headers will be correctly propagated.
@ -109,19 +109,19 @@ After these dependencies are installed, we will need to initialize and register
```javascript
'use strict';
const opentelemetry = require("@opentelemetry/core");
const { NodeTracerRegistry } = require("@opentelemetry/node");
const opentelemetry = require("@opentelemetry/api");
const { LogLevel } = require("@opentelemetry/core");
const { NodeTracerProvider } = require("@opentelemetry/node");
const { SimpleSpanProcessor } = require("@opentelemetry/tracing");
const { ZipkinExporter } = require("@opentelemetry/exporter-zipkin");
const tracerRegistry = new NodeTracerRegistry({
logLevel: opentelemetry.LogLevel.ERROR
const provider = new NodeTracerProvider({
logLevel: LogLevel.ERROR
});
opentelemetry.initGlobalTracerRegistry(tracerRegistry);
opentelemetry.trace.initGlobalTracerProvider(provider);
tracerRegistry.addSpanProcessor(
provider.addSpanProcessor(
new SimpleSpanProcessor(
new ZipkinExporter({
serviceName: "getting-started",
@ -238,9 +238,9 @@ Create a file named `monitoring.js` and add the following code:
```javascript
'use strict';
const { MeterRegistry } = require('@opentelemetry/metrics');
const { MeterProvider } = require('@opentelemetry/metrics');
const meter = new MeterRegistry().getMeter('your-meter-name');
const meter = new MeterProvider().getMeter('your-meter-name');
```
Now, you can require this file from your application code and use the `Meter` to create and manage metrics. The simplest of these metrics is a counter. Let's create and export from our `monitoring.js` file a middleware function that express can use to count all requests by route. Modify the `monitoring.js` file so that it looks like this:
@ -248,9 +248,9 @@ Now, you can require this file from your application code and use the `Meter` to
```javascript
'use strict';
const { MeterRegistry } = require('@opentelemetry/metrics');
const { MeterProvider } = require('@opentelemetry/metrics');
const meter = new MeterRegistry().getMeter('your-meter-name');
const meter = new MeterProvider().getMeter('your-meter-name');
const requestCount = meter.createCounter("requests", {
monotonic: true,
@ -301,10 +301,10 @@ Next, modify your `monitoring.js` file to look like this:
```javascript
"use strict";
const { MeterRegistry } = require('@opentelemetry/metrics');
const { MeterProvider } = require('@opentelemetry/metrics');
const { PrometheusExporter } = require('@opentelemetry/exporter-prometheus');
const meter = new MeterRegistry().getMeter('your-meter-name');
const meter = new MeterProvider().getMeter('your-meter-name');
meter.addExporter(
new PrometheusExporter(

View File

@ -1,9 +1,9 @@
"use strict";
const { MeterRegistry } = require('@opentelemetry/metrics');
const { MeterProvider } = require('@opentelemetry/metrics');
const { PrometheusExporter } = require('@opentelemetry/exporter-prometheus');
const meter = new MeterRegistry().getMeter('example-monitored');
const meter = new MeterProvider().getMeter('example-monitored');
meter.addExporter(
new PrometheusExporter(

View File

@ -1,15 +1,14 @@
"use strict";
const opentelemetry = require("@opentelemetry/core");
const { NodeTracerRegistry } = require("@opentelemetry/node");
const opentelemetry = require("@opentelemetry/api");
const { NodeTracerProvider } = require("@opentelemetry/node");
const { SimpleSpanProcessor } = require("@opentelemetry/tracing");
const { ZipkinExporter } = require("@opentelemetry/exporter-zipkin");
const tracerRegistry = new NodeTracerRegistry({ logLevel: opentelemetry.LogLevel.ERROR });
opentelemetry.initGlobalTracerRegistry(tracerRegistry);
const provider = new NodeTracerProvider({ logLevel: opentelemetry.LogLevel.ERROR });
opentelemetry.trace.initGlobalTracerProvider(provider);
tracer.addSpanProcessor(
provider.addSpanProcessor(
new SimpleSpanProcessor(
new ZipkinExporter({
serviceName: "getting-started"

View File

@ -60,7 +60,7 @@ $ npm install \
@opentelemetry/core \
@opentelemetry/node \
@opentelemetry/plugin-http \
@opentelemetry/types
@opentelemetry/api
```
#### Initialize a global tracer
@ -72,14 +72,15 @@ All tracing initialization should happen before your applications code runs.
Create a file named `tracing.ts` and add the following code:
```typescript
import * as opentelemetry from '@opentelemetry/core';
import { NodeTracer } from '@opentelemetry/node';
import * as opentelemetry from '@opentelemetry/api';
import { LogLevel } from '@opentelemetry/core';
import { NodeTracerProvider } from '@opentelemetry/node';
const tracer: NodeTracer = new NodeTracer({
logLevel: opentelemetry.LogLevel.ERROR
const provider: NodeTracerProvider = new NodeTracerProvider({
logLevel: LogLevel.ERROR
});
opentelemetry.initGlobalTracer(tracer);
opentelemetry.trace.initGlobalTracerProvider(provider);
```
If you run your application now with `ts-node -r ./tracing.ts app.ts`, your application will create and propagate traces over HTTP. If an already instrumented service that supports [Trace Context](https://www.w3.org/TR/trace-context/) headers calls your application using HTTP, and you call another application using HTTP, the Trace Context headers will be correctly propagated.
@ -106,21 +107,21 @@ $ # npm install @opentelemetry/exporter-jaeger
After these dependencies are installed, we will need to initialize and register them. Modify `tracing.ts` so that it matches the following code snippet, replacing the service name `"getting-started"` with your own service name if you wish.
```typescript
import * as opentelemetry from '@opentelemetry/core';
import { NodeTracer } from '@opentelemetry/node';
import * as opentelemetry from '@opentelemetry/api';
import { NodeTracerProvider } from '@opentelemetry/node';
import { SimpleSpanProcessor } from '@opentelemetry/tracing';
import { ZipkinExporter } from '@opentelemetry/exporter-zipkin';
// For Jaeger, use the following line instead:
// import { JaegerExporter } from '@opentelemetry/exporter-jaeger';
const tracer: NodeTracer = new NodeTracer({
const provider: NodeTracerProvider = new NodeTracerProvider({
logLevel: opentelemetry.LogLevel.ERROR
});
opentelemetry.initGlobalTracer(tracer);
opentelemetry.trace.initGlobalTracerProvider(provider);
tracer.addSpanProcessor(
provider.addSpanProcessor(
new SimpleSpanProcessor(
new ZipkinExporter({
// For Jaeger, use the following line instead:
@ -236,18 +237,18 @@ In order to create and monitor metrics, we will need a `Meter`. In OpenTelemetry
Create a file named `monitoring.ts` and add the following code:
```typescript
import { MeterRegistry } from '@opentelemetry/metrics';
import { MeterProvider } from '@opentelemetry/metrics';
const meter = new MeterRegistry().getMeter('your-meter-name');
const meter = new MeterProvider().getMeter('your-meter-name');
```
Now, you can require this file from your application code and use the `Meter` to create and manage metrics. The simplest of these metrics is a counter. Let's create and export from our `monitoring.ts` file a middleware function that express can use to count all requests by route. Modify the `monitoring.ts` file so that it looks like this:
```typescript
import { MeterRegistry } from '@opentelemetry/metrics';
import { Metric, BoundCounter } from '@opentelemetry/types';
import { MeterProvider } from '@opentelemetry/metrics';
import { Metric, BoundCounter } from '@opentelemetry/api';
const meter = new MeterRegistry().getMeter('your-meter-name');
const meter = new MeterProvider().getMeter('your-meter-name');
const requestCount: Metric<BoundCounter> = meter.createCounter("requests", {
monotonic: true,
@ -296,11 +297,11 @@ $ npm install @opentelemetry/exporter-prometheus
Next, modify your `monitoring.ts` file to look like this:
```typescript
import { MeterRegistry } from '@opentelemetry/metrics';
import { Metric, BoundCounter } from '@opentelemetry/types';
import { MeterProvider } from '@opentelemetry/metrics';
import { Metric, BoundCounter } from '@opentelemetry/api';
import { PrometheusExporter } from '@opentelemetry/exporter-prometheus';
const meter = new MeterRegistry().getMeter('your-meter-name');
const meter = new MeterProvider().getMeter('your-meter-name');
meter.addExporter(
new PrometheusExporter({ startServer: true }, () => {

View File

@ -1,8 +1,8 @@
import { MeterRegistry } from '@opentelemetry/metrics';
import { Metric, BoundCounter } from '@opentelemetry/types';
import { MeterProvider } from '@opentelemetry/metrics';
import { Metric, BoundCounter } from '@opentelemetry/api';
import { PrometheusExporter } from '@opentelemetry/exporter-prometheus';
const meter = new MeterRegistry().getMeter('example-ts');
const meter = new MeterProvider().getMeter('example-ts');
meter.addExporter(
new PrometheusExporter({ startServer: true }, () => {

View File

@ -13,6 +13,7 @@
"ts-node": "^8.6.2"
},
"dependencies": {
"@opentelemetry/api": "^0.3.3",
"@opentelemetry/core": "^0.3.3",
"@opentelemetry/exporter-prometheus": "^0.3.3",
"@opentelemetry/exporter-zipkin": "^0.3.3",
@ -20,7 +21,6 @@
"@opentelemetry/node": "^0.3.3",
"@opentelemetry/plugin-http": "^0.3.3",
"@opentelemetry/tracing": "^0.3.3",
"@opentelemetry/types": "^0.3.3",
"axios": "^0.19.1",
"express": "^4.17.1"
}

View File

@ -1,15 +1,15 @@
import * as opentelemetry from "@opentelemetry/core";
import { NodeTracerRegistry } from "@opentelemetry/node";
import * as opentelemetry from "@opentelemetry/api";
import { NodeTracerProvider } from "@opentelemetry/node";
import { SimpleSpanProcessor } from "@opentelemetry/tracing";
import { ZipkinExporter } from "@opentelemetry/exporter-zipkin";
const tracerRegistry: NodeTracerRegistry = new NodeTracerRegistry({
const provider: NodeTracerProvider = new NodeTracerProvider({
logLevel: opentelemetry.LogLevel.ERROR
});
opentelemetry.initGlobalTracerRegistry(tracerRegistry);
opentelemetry.trace.initGlobalTracerProvider(provider);
tracerRegistry.addSpanProcessor(
provider.addSpanProcessor(
new SimpleSpanProcessor(
new ZipkinExporter({
serviceName: "getting-started"

View File

@ -69,7 +69,7 @@ const provider = new NodeTracerProvider({
});
// Initialize the provider
opentelemetry.initGlobalTracerProvider(provider);
opentelemetry.trace.initGlobalTracerProvider(provider);
// Your application code - http will automatically be instrumented if
// @opentelemetry/plugin-http is present