diff --git a/CHANGELOG.md b/CHANGELOG.md index 457fc0ad099..37b99c35624 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,92 @@ All notable changes to this project will be documented in this file. ## Unreleased +## 0.3.0 + +Released 2019-12-13 + +#### :rocket: (Enhancement) +* `opentelemetry-core`, `opentelemetry-node`, `opentelemetry-plugin-dns`, `opentelemetry-plugin-document-load`, `opentelemetry-plugin-grpc`, `opentelemetry-plugin-postgres`, `opentelemetry-plugin-redis`, `opentelemetry-tracing`, `opentelemetry-types` + * [#569](https://github.com/open-telemetry/opentelemetry-js/pull/569) chore: allow parent span to be null +* `opentelemetry-plugin-document-load` + * [#546](https://github.com/open-telemetry/opentelemetry-js/pull/546) chore: fixing issue when metric time is 0 in document-load plugin + * [#469](https://github.com/open-telemetry/opentelemetry-js/pull/469) chore: fixing problem with load event and performance for loadend +* `opentelemetry-plugin-http`, `opentelemetry-plugin-https` + * [#548](https://github.com/open-telemetry/opentelemetry-js/pull/548) fix(plugin-http): adapt to current @types/node +* Other + * [#510](https://github.com/open-telemetry/opentelemetry-js/pull/510) chore(circleci): remove duplicate compile step + * [#514](https://github.com/open-telemetry/opentelemetry-js/pull/514) ci: enumerate caching paths manually + * [#470](https://github.com/open-telemetry/opentelemetry-js/pull/470) chore: remove examples from lerna packages +* `opentelemetry-core`, `opentelemetry-metrics`, `opentelemetry-types` + * [#507](https://github.com/open-telemetry/opentelemetry-js/pull/507) feat: direct calling of metric instruments + * [#517](https://github.com/open-telemetry/opentelemetry-js/pull/517) chore: update dependencies gts and codecov + * [#497](https://github.com/open-telemetry/opentelemetry-js/pull/497) chore: bump typescript version to ^3.7.2 +* `opentelemetry-metrics` + * [#475](https://github.com/open-telemetry/opentelemetry-js/pull/475) add shutdown method on MetricExporter interface +* `opentelemetry-core`, `opentelemetry-plugin-document-load`, `opentelemetry-tracing`, `opentelemetry-web` + * [#466](https://github.com/open-telemetry/opentelemetry-js/pull/466) chore: fixing coverage for karma using istanbul + +#### :bug: (Bug Fix) +* `opentelemetry-exporter-jaeger` + * [#609](https://github.com/open-telemetry/opentelemetry-js/pull/609) Jaeger no flush interval +* `opentelemetry-plugin-dns` + * [#613](https://github.com/open-telemetry/opentelemetry-js/pull/613) fix(plugin-dns): remove from default plugin list +* `opentelemetry-plugin-http` + * [#589](https://github.com/open-telemetry/opentelemetry-js/pull/589) fix(plugin-http): correct handling of WHATWG urls + * [#580](https://github.com/open-telemetry/opentelemetry-js/pull/580) fix(plugin-http): http.url attribute +* `opentelemetry-shim-opentracing` + * [#577](https://github.com/open-telemetry/opentelemetry-js/pull/577) fix: add missing `main` in package.json +* `opentelemetry-exporter-zipkin` + * [#526](https://github.com/open-telemetry/opentelemetry-js/pull/526) fix: zipkin-exporter: don't export after shutdown +* `opentelemetry-plugin-grpc` + * [#487](https://github.com/open-telemetry/opentelemetry-js/pull/487) fix(grpc): use correct supportedVersions +* `opentelemetry-core` + * [#472](https://github.com/open-telemetry/opentelemetry-js/pull/472) fix(core): add missing semver dependency + +#### :books: (Refine Doc) +* Other + * [#574](https://github.com/open-telemetry/opentelemetry-js/pull/574) chore: add CHANGELOG.md + * [#575](https://github.com/open-telemetry/opentelemetry-js/pull/575) Add exporter guide + * [#534](https://github.com/open-telemetry/opentelemetry-js/pull/534) feat: add redis plugin example + * [#562](https://github.com/open-telemetry/opentelemetry-js/pull/562) chore(web-example): Added a README for the existing example + * [#537](https://github.com/open-telemetry/opentelemetry-js/pull/537) examples(tracing): add multi exporter example + * [#484](https://github.com/open-telemetry/opentelemetry-js/pull/484) chore: update README for new milestones +* `opentelemetry-plugin-mongodb-core` + * [#564](https://github.com/open-telemetry/opentelemetry-js/pull/564) docs: add usage for mongodb-core plugin #543) +* `opentelemetry-metrics` + * [#490](https://github.com/open-telemetry/opentelemetry-js/pull/490) chore: update metrics README +* `opentelemetry-plugin-redis` + * [#551](https://github.com/open-telemetry/opentelemetry-js/pull/551) chore: fix minor typo +* `opentelemetry-exporter-prometheus` + * [#521](https://github.com/open-telemetry/opentelemetry-js/pull/521) chore: update prometheus exporter readme with usage and links +* `opentelemetry-types` + * [#512](https://github.com/open-telemetry/opentelemetry-js/pull/512) chore: minor name change +* `opentelemetry-plugin-postgres` + * [#473](https://github.com/open-telemetry/opentelemetry-js/pull/473) chore(plugin): postgres-pool plugin skeleton + +#### :sparkles: (Feature) +* `opentelemetry-core`, `opentelemetry-exporter-collector` + * [#552](https://github.com/open-telemetry/opentelemetry-js/pull/552) Collector exporter +* `opentelemetry-node`, `opentelemetry-plugin-mysql` + * [#525](https://github.com/open-telemetry/opentelemetry-js/pull/525) feat: mysql support +* `opentelemetry-plugin-redis` + * [#503](https://github.com/open-telemetry/opentelemetry-js/pull/503) feat(plugin): implement redis plugin +* `opentelemetry-plugin-mongodb-core` + * [#205](https://github.com/open-telemetry/opentelemetry-js/pull/205) feat: add mongodb plugin +* `opentelemetry-exporter-prometheus` + * [#483](https://github.com/open-telemetry/opentelemetry-js/pull/483) feat: Add prometheus exporter +* `opentelemetry-metrics` + * [#500](https://github.com/open-telemetry/opentelemetry-js/pull/500) feat: add ConsoleMetricExporter + * [#468](https://github.com/open-telemetry/opentelemetry-js/pull/468) feat: validate metric names +* `opentelemetry-scope-zone-peer-dep`, `opentelemetry-scope-zone`, `opentelemetry-web` + * [#461](https://github.com/open-telemetry/opentelemetry-js/pull/461) feat(scope-zone): new scope manager to support async operations in web +* `opentelemetry-core`, `opentelemetry-plugin-document-load` + * [#477](https://github.com/open-telemetry/opentelemetry-js/pull/477) feat(traceparent): setting parent span from server +* `opentelemetry-core`, `opentelemetry-metrics`, `opentelemetry-types` + * [#463](https://github.com/open-telemetry/opentelemetry-js/pull/463) feat: implement labelset +* `opentelemetry-metrics`, `opentelemetry-types` + * [#437](https://github.com/open-telemetry/opentelemetry-js/pull/437) feat(metrics): add registerMetric and getMetrics + ## 0.2.0 Released 2019-11-04 diff --git a/README.md b/README.md index 4f791699564..7412d4ce549 100644 --- a/README.md +++ b/README.md @@ -35,6 +35,14 @@ includes: - Document Load for web - Metrics SDK (`Counter` and `Gauge` support) - Export work is underway. +The [v0.3 alpha +release](https://github.com/open-telemetry/opentelemetry-js/releases/tag/v0.3.0) +includes: + +- Prometheus Metric Exporter +- OpenTelemetry Collector Exporter +- mongodb, redis, mysql Instrumentations + See the [project milestones](https://github.com/open-telemetry/opentelemetry-js/milestones) for details on upcoming releases. The dates and features described here are @@ -44,10 +52,10 @@ Future release targets include: | Component | Version | Target Date | | --------------------------- | ---------- | ------------------ | -| Prometheus Metrics Exporter | Alpha v0.3 | November 15 2019 | -| mongodb Instrumentation | Alpha v0.3 | November 15 2019 | -| postgres Instrumentation | Alpha v0.3 | November 15 2019 | -| OpenCensus Bridge | Alpha v0.3 | tbd | +| Support for Tags/Baggage | Alpha v0.4 | December 31 2019 | +| Metrics Aggregation | Alpha v0.4 | December 31 2019 | +| Metrics SDK (Complete) | Alpha v0.4 | December 31 2019 | +| OpenCensus Bridge | Alpha v0.4 | December 31 2019 | ## Contributing We'd love your help!. Use tags [up-for-grabs][up-for-grabs-issues] and diff --git a/examples/basic-tracer-node/multi_exporter.js b/examples/basic-tracer-node/multi_exporter.js index e5920a7e6b4..6c12a24c57a 100644 --- a/examples/basic-tracer-node/multi_exporter.js +++ b/examples/basic-tracer-node/multi_exporter.js @@ -9,8 +9,6 @@ const tracer = new BasicTracer(); const zipkinExporter = new ZipkinExporter({serviceName: 'basic-service'}); const jaegerExporter = new JaegerExporter({ serviceName: 'basic-service', - // The default flush interval is 5 seconds. - flushInterval: 2000 }); const collectorExporter = new CollectorExporter({serviceName: 'basic-service'}); diff --git a/examples/basic-tracer-node/package.json b/examples/basic-tracer-node/package.json index 05063bd87a3..063580aa930 100644 --- a/examples/basic-tracer-node/package.json +++ b/examples/basic-tracer-node/package.json @@ -1,7 +1,7 @@ { "name": "example-basic-tracer-node", "private": true, - "version": "0.2.0", + "version": "0.3.0", "description": "Example of using @opentelemetry/tracing in Node.js", "main": "index.js", "scripts": { @@ -30,11 +30,11 @@ "url": "https://github.com/open-telemetry/opentelemetry-js/issues" }, "dependencies": { - "@opentelemetry/core": "^0.2.0", - "@opentelemetry/exporter-collector": "^0.2.0", - "@opentelemetry/exporter-jaeger": "^0.2.0", - "@opentelemetry/exporter-zipkin": "^0.2.0", - "@opentelemetry/tracing": "^0.2.0" + "@opentelemetry/core": "^0.3.0", + "@opentelemetry/exporter-collector": "^0.3.0", + "@opentelemetry/exporter-jaeger": "^0.3.0", + "@opentelemetry/exporter-zipkin": "^0.3.0", + "@opentelemetry/tracing": "^0.3.0" }, "homepage": "https://github.com/open-telemetry/opentelemetry-js#readme", "devDependencies": { diff --git a/examples/dns/package.json b/examples/dns/package.json index d418cb623da..7a1f1df0368 100644 --- a/examples/dns/package.json +++ b/examples/dns/package.json @@ -1,7 +1,7 @@ { "name": "dns-example", "private": true, - "version": "0.2.0", + "version": "0.3.0", "description": "Example of DNS integration with OpenTelemetry", "main": "index.js", "scripts": { @@ -26,12 +26,12 @@ "url": "https://github.com/open-telemetry/opentelemetry-js/issues" }, "dependencies": { - "@opentelemetry/core": "^0.2.0", - "@opentelemetry/exporter-jaeger": "^0.2.0", - "@opentelemetry/exporter-zipkin": "^0.2.0", - "@opentelemetry/node": "^0.2.0", - "@opentelemetry/plugin-dns": "^0.2.0", - "@opentelemetry/tracing": "^0.2.0" + "@opentelemetry/core": "^0.3.0", + "@opentelemetry/exporter-jaeger": "^0.3.0", + "@opentelemetry/exporter-zipkin": "^0.3.0", + "@opentelemetry/node": "^0.3.0", + "@opentelemetry/plugin-dns": "^0.3.0", + "@opentelemetry/tracing": "^0.3.0" }, "homepage": "https://github.com/open-telemetry/opentelemetry-js#readme", "devDependencies": { diff --git a/examples/dns/setup.js b/examples/dns/setup.js index 26da5712367..e7e40d199ed 100644 --- a/examples/dns/setup.js +++ b/examples/dns/setup.js @@ -27,8 +27,6 @@ function setupTracerAndExporters(service) { } else { exporter = new JaegerExporter({ serviceName: service, - // The default flush interval is 5 seconds. - flushInterval: 2000 }); } diff --git a/examples/grpc/package.json b/examples/grpc/package.json index 79269b801ad..ae4668830e9 100644 --- a/examples/grpc/package.json +++ b/examples/grpc/package.json @@ -1,7 +1,7 @@ { "name": "grpc-example", "private": true, - "version": "0.2.0", + "version": "0.3.0", "description": "Example of gRPC integration with OpenTelemetry", "main": "index.js", "scripts": { @@ -28,12 +28,12 @@ "url": "https://github.com/open-telemetry/opentelemetry-js/issues" }, "dependencies": { - "@opentelemetry/core": "^0.2.0", - "@opentelemetry/exporter-jaeger": "^0.2.0", - "@opentelemetry/exporter-zipkin": "^0.2.0", - "@opentelemetry/node": "^0.2.0", - "@opentelemetry/plugin-grpc": "^0.2.0", - "@opentelemetry/tracing": "^0.2.0", + "@opentelemetry/core": "^0.3.0", + "@opentelemetry/exporter-jaeger": "^0.3.0", + "@opentelemetry/exporter-zipkin": "^0.3.0", + "@opentelemetry/node": "^0.3.0", + "@opentelemetry/plugin-grpc": "^0.3.0", + "@opentelemetry/tracing": "^0.3.0", "google-protobuf": "^3.9.2", "grpc": "^1.23.3", "node-pre-gyp": "0.12.0" diff --git a/examples/grpc/setup.js b/examples/grpc/setup.js index 4b01ef130ac..162884ffcbb 100644 --- a/examples/grpc/setup.js +++ b/examples/grpc/setup.js @@ -26,8 +26,6 @@ function setupTracerAndExporters(service) { } else { exporter = new JaegerExporter({ serviceName: service, - // The default flush interval is 5 seconds. - flushInterval: 2000 }); } diff --git a/examples/grpc_dynamic_codegen/package.json b/examples/grpc_dynamic_codegen/package.json index 3a6680e2a08..a0d61cca956 100644 --- a/examples/grpc_dynamic_codegen/package.json +++ b/examples/grpc_dynamic_codegen/package.json @@ -1,6 +1,6 @@ { "name": "grpc-dynamic-codegen-example", - "version": "0.2.0", + "version": "0.3.0", "description": "Example of gRPC integration with OpenTelemetry", "main": "index.js", "scripts": { @@ -28,13 +28,13 @@ }, "dependencies": { "@grpc/proto-loader": "^0.4.0", - "@opentelemetry/core": "^0.2.0", - "@opentelemetry/exporter-jaeger": "^0.2.0", - "@opentelemetry/exporter-zipkin": "^0.2.0", - "@opentelemetry/node": "^0.2.0", - "@opentelemetry/plugin-grpc": "^0.2.0", - "@opentelemetry/tracing": "^0.2.0", - "@opentelemetry/types": "^0.2.0", + "@opentelemetry/core": "^0.3.0", + "@opentelemetry/exporter-jaeger": "^0.3.0", + "@opentelemetry/exporter-zipkin": "^0.3.0", + "@opentelemetry/node": "^0.3.0", + "@opentelemetry/plugin-grpc": "^0.3.0", + "@opentelemetry/tracing": "^0.3.0", + "@opentelemetry/types": "^0.3.0", "grpc": "^1.23.3", "node-pre-gyp": "0.12.0" }, diff --git a/examples/grpc_dynamic_codegen/setup.js b/examples/grpc_dynamic_codegen/setup.js index 5ac2a903e9d..f738c610fa6 100644 --- a/examples/grpc_dynamic_codegen/setup.js +++ b/examples/grpc_dynamic_codegen/setup.js @@ -26,8 +26,6 @@ function setupTracerAndExporters(service) { } else { exporter = new JaegerExporter({ serviceName: service, - // The default flush interval is 5 seconds. - flushInterval: 2000 }); } diff --git a/examples/http/package.json b/examples/http/package.json index 5c877acdf0b..c8c586e5538 100644 --- a/examples/http/package.json +++ b/examples/http/package.json @@ -1,7 +1,7 @@ { "name": "http-example", "private": true, - "version": "0.2.0", + "version": "0.3.0", "description": "Example of HTTP integration with OpenTelemetry", "main": "index.js", "scripts": { @@ -28,12 +28,12 @@ "url": "https://github.com/open-telemetry/opentelemetry-js/issues" }, "dependencies": { - "@opentelemetry/core": "^0.2.0", - "@opentelemetry/exporter-jaeger": "^0.2.0", - "@opentelemetry/exporter-zipkin": "^0.2.0", - "@opentelemetry/node": "^0.2.0", - "@opentelemetry/plugin-http": "^0.2.0", - "@opentelemetry/tracing": "^0.2.0" + "@opentelemetry/core": "^0.3.0", + "@opentelemetry/exporter-jaeger": "^0.3.0", + "@opentelemetry/exporter-zipkin": "^0.3.0", + "@opentelemetry/node": "^0.3.0", + "@opentelemetry/plugin-http": "^0.3.0", + "@opentelemetry/tracing": "^0.3.0" }, "homepage": "https://github.com/open-telemetry/opentelemetry-js#readme", "devDependencies": { diff --git a/examples/http/setup.js b/examples/http/setup.js index 3e729201cde..abe667f064d 100644 --- a/examples/http/setup.js +++ b/examples/http/setup.js @@ -18,8 +18,6 @@ function setupTracerAndExporters(service) { } else { exporter = new JaegerExporter({ serviceName: service, - // The default flush interval is 5 seconds. - flushInterval: 2000 }); } diff --git a/examples/https/package.json b/examples/https/package.json index 4f7faeac71b..167be5b05c3 100644 --- a/examples/https/package.json +++ b/examples/https/package.json @@ -1,7 +1,7 @@ { "name": "https-example", "private": true, - "version": "0.2.0", + "version": "0.3.0", "description": "Example of HTTPs integration with OpenTelemetry", "main": "build/src/index.js", "types": "build/src/index.d.ts", @@ -29,12 +29,12 @@ "url": "https://github.com/open-telemetry/opentelemetry-js/issues" }, "dependencies": { - "@opentelemetry/core": "^0.2.0", - "@opentelemetry/exporter-jaeger": "^0.2.0", - "@opentelemetry/exporter-zipkin": "^0.2.0", - "@opentelemetry/node": "^0.2.0", - "@opentelemetry/plugin-https": "^0.2.0", - "@opentelemetry/tracing": "^0.2.0" + "@opentelemetry/core": "^0.3.0", + "@opentelemetry/exporter-jaeger": "^0.3.0", + "@opentelemetry/exporter-zipkin": "^0.3.0", + "@opentelemetry/node": "^0.3.0", + "@opentelemetry/plugin-https": "^0.3.0", + "@opentelemetry/tracing": "^0.3.0" }, "homepage": "https://github.com/open-telemetry/opentelemetry-js#readme", "devDependencies": { diff --git a/examples/https/setup.js b/examples/https/setup.js index d09961eec90..d4433c20bd3 100644 --- a/examples/https/setup.js +++ b/examples/https/setup.js @@ -18,8 +18,6 @@ function setupTracerAndExporters(service) { } else { exporter = new JaegerExporter({ serviceName: service, - // The default flush interval is 5 seconds. - flushInterval: 2000 }); } diff --git a/examples/mysql/package.json b/examples/mysql/package.json index 1f35536146b..d0a228870c8 100644 --- a/examples/mysql/package.json +++ b/examples/mysql/package.json @@ -1,7 +1,7 @@ { "name": "mysql-example", "private": true, - "version": "0.2.0", + "version": "0.3.0", "description": "Example of mysql integration with OpenTelemetry", "main": "index.js", "scripts": { @@ -28,13 +28,13 @@ "url": "https://github.com/open-telemetry/opentelemetry-js/issues" }, "dependencies": { - "@opentelemetry/core": "^0.2.0", - "@opentelemetry/exporter-jaeger": "^0.2.0", - "@opentelemetry/exporter-zipkin": "^0.2.0", - "@opentelemetry/node": "^0.2.0", - "@opentelemetry/plugin-http": "^0.2.0", - "@opentelemetry/plugin-mysql": "^0.2.0", - "@opentelemetry/tracing": "^0.2.0", + "@opentelemetry/core": "^0.3.0", + "@opentelemetry/exporter-jaeger": "^0.3.0", + "@opentelemetry/exporter-zipkin": "^0.3.0", + "@opentelemetry/node": "^0.3.0", + "@opentelemetry/plugin-http": "^0.3.0", + "@opentelemetry/plugin-mysql": "^0.3.0", + "@opentelemetry/tracing": "^0.3.0", "mysql": "*" }, "homepage": "https://github.com/open-telemetry/opentelemetry-js#readme", diff --git a/examples/mysql/setup.js b/examples/mysql/setup.js index d1e0185335e..a5f5303c570 100644 --- a/examples/mysql/setup.js +++ b/examples/mysql/setup.js @@ -25,8 +25,6 @@ function setupTracerAndExporters(service) { }))); tracer.addSpanProcessor(new SimpleSpanProcessor(new JaegerExporter({ serviceName: service, - // The default flush interval is 5 seconds. - flushInterval: 2000 }))); // Initialize the OpenTelemetry APIs to use the BasicTracer bindings diff --git a/examples/prometheus/package.json b/examples/prometheus/package.json index 8a246897d64..9e9fc020b72 100644 --- a/examples/prometheus/package.json +++ b/examples/prometheus/package.json @@ -1,6 +1,6 @@ { "name": "prometheus-example", - "version": "0.2.0", + "version": "0.3.0", "description": "Example of using @opentelemetry/metrics and @opentelemetry/exporter-prometheus", "main": "index.js", "scripts": { @@ -9,7 +9,7 @@ "author": "OpenTelemetry Authors", "license": "Apache-2.0", "dependencies": { - "@opentelemetry/exporter-prometheus": "0.2.0", - "@opentelemetry/metrics": "0.2.0" + "@opentelemetry/exporter-prometheus": "^0.3.0", + "@opentelemetry/metrics": "^0.3.0" } } diff --git a/examples/redis/package.json b/examples/redis/package.json index dd4246993f0..c2198ceee76 100644 --- a/examples/redis/package.json +++ b/examples/redis/package.json @@ -1,7 +1,7 @@ { "name": "redis-example", "private": true, - "version": "0.2.0", + "version": "0.3.0", "description": "Example of HTTP integration with OpenTelemetry", "main": "index.js", "scripts": { @@ -30,14 +30,14 @@ "url": "https://github.com/open-telemetry/opentelemetry-js/issues" }, "dependencies": { - "@opentelemetry/core": "^0.2.0", - "@opentelemetry/exporter-jaeger": "^0.2.0", - "@opentelemetry/exporter-zipkin": "^0.2.0", - "@opentelemetry/node": "^0.2.0", - "@opentelemetry/plugin-http": "^0.2.0", - "@opentelemetry/plugin-redis": "^0.2.0", - "@opentelemetry/tracing": "^0.2.0", - "@opentelemetry/types": "^0.2.0", + "@opentelemetry/core": "^0.3.0", + "@opentelemetry/exporter-jaeger": "^0.3.0", + "@opentelemetry/exporter-zipkin": "^0.3.0", + "@opentelemetry/node": "^0.3.0", + "@opentelemetry/plugin-http": "^0.3.0", + "@opentelemetry/plugin-redis": "^0.3.0", + "@opentelemetry/tracing": "^0.3.0", + "@opentelemetry/types": "^0.3.0", "axios": "^0.19.0", "express": "^4.17.1", "redis": "^2.8.0" diff --git a/examples/redis/setup.js b/examples/redis/setup.js index 3e729201cde..abe667f064d 100644 --- a/examples/redis/setup.js +++ b/examples/redis/setup.js @@ -18,8 +18,6 @@ function setupTracerAndExporters(service) { } else { exporter = new JaegerExporter({ serviceName: service, - // The default flush interval is 5 seconds. - flushInterval: 2000 }); } diff --git a/examples/tracer-web/package.json b/examples/tracer-web/package.json index 13f561b1215..9c9785eb026 100644 --- a/examples/tracer-web/package.json +++ b/examples/tracer-web/package.json @@ -1,7 +1,7 @@ { "name": "web-tracer-example", "private": true, - "version": "0.2.0", + "version": "0.3.0", "description": "Example of using @opentelemetry/web in browser", "main": "index.js", "scripts": { @@ -34,11 +34,11 @@ "webpack-merge": "^4.2.2" }, "dependencies": { - "@opentelemetry/exporter-collector": "^0.2.0", - "@opentelemetry/plugin-document-load": "^0.2.0", - "@opentelemetry/scope-zone": "^0.2.0", - "@opentelemetry/tracing": "^0.2.0", - "@opentelemetry/web": "^0.2.0" + "@opentelemetry/exporter-collector": "^0.3.0", + "@opentelemetry/plugin-document-load": "^0.3.0", + "@opentelemetry/scope-zone": "^0.3.0", + "@opentelemetry/tracing": "^0.3.0", + "@opentelemetry/web": "^0.3.0" }, "homepage": "https://github.com/open-telemetry/opentelemetry-js#readme" } diff --git a/getting-started/monitored-example/package.json b/getting-started/monitored-example/package.json index 39c7b8ec682..fb8858e4f9a 100644 --- a/getting-started/monitored-example/package.json +++ b/getting-started/monitored-example/package.json @@ -9,7 +9,7 @@ "author": "OpenTelemetry Authors", "license": "Apache-2.0", "dependencies": { - "@opentelemetry/metrics": "^0.2.0", + "@opentelemetry/metrics": "^0.3.0", "axios": "^0.19.0", "express": "^4.17.1" } diff --git a/getting-started/traced-example/package.json b/getting-started/traced-example/package.json index aec129c068e..ae404bb5c5e 100644 --- a/getting-started/traced-example/package.json +++ b/getting-started/traced-example/package.json @@ -9,11 +9,11 @@ "author": "OpenTelemetry Authors", "license": "Apache-2.0", "dependencies": { - "@opentelemetry/core": "^0.2.0", - "@opentelemetry/exporter-zipkin": "^0.2.0", - "@opentelemetry/node": "^0.2.0", - "@opentelemetry/plugin-http": "^0.2.0", - "@opentelemetry/tracing": "^0.2.0", + "@opentelemetry/core": "^0.3.0", + "@opentelemetry/exporter-zipkin": "^0.3.0", + "@opentelemetry/node": "^0.3.0", + "@opentelemetry/plugin-http": "^0.3.0", + "@opentelemetry/tracing": "^0.3.0", "axios": "^0.19.0", "express": "^4.17.1" } diff --git a/lerna.json b/lerna.json index 9dbdf6b4fa7..5805d96a646 100644 --- a/lerna.json +++ b/lerna.json @@ -6,7 +6,7 @@ "packages/*", "packages/opentelemetry-plugin-postgres/*" ], - "version": "0.2.0", + "version": "0.3.0", "changelog": { "repo": "open-telemetry/opentelemetry-js", "labels": { diff --git a/packages/opentelemetry-base/package.json b/packages/opentelemetry-base/package.json index 9ec79269e94..f2d49f76c23 100644 --- a/packages/opentelemetry-base/package.json +++ b/packages/opentelemetry-base/package.json @@ -1,6 +1,6 @@ { "name": "@opentelemetry/base", - "version": "0.2.0", + "version": "0.3.0", "description": "OpenTelemetry base provides base code for the SDK packages", "main": "build/src/index.js", "types": "build/src/index.d.ts", diff --git a/packages/opentelemetry-core/package.json b/packages/opentelemetry-core/package.json index 915aa32cb1c..ad085baafb9 100644 --- a/packages/opentelemetry-core/package.json +++ b/packages/opentelemetry-core/package.json @@ -1,6 +1,6 @@ { "name": "@opentelemetry/core", - "version": "0.2.0", + "version": "0.3.0", "description": "OpenTelemetry Core provides default and no-op implementations of the OpenTelemetry types for trace and metrics", "main": "build/src/index.js", "browser": { @@ -78,7 +78,7 @@ "webpack": "^4.35.2" }, "dependencies": { - "@opentelemetry/types": "^0.2.0", + "@opentelemetry/types": "^0.3.0", "semver": "^6.3.0" } } diff --git a/packages/opentelemetry-core/src/common/version.ts b/packages/opentelemetry-core/src/common/version.ts index 5e6eb85dbe3..c30b482e486 100644 --- a/packages/opentelemetry-core/src/common/version.ts +++ b/packages/opentelemetry-core/src/common/version.ts @@ -15,4 +15,4 @@ */ // this is autogenerated file, see scripts/version-update.js -export const VERSION = '0.2.0'; +export const VERSION = '0.3.0'; diff --git a/packages/opentelemetry-exporter-collector/README.md b/packages/opentelemetry-exporter-collector/README.md index 25574ea6893..5e1c13f8e4c 100644 --- a/packages/opentelemetry-exporter-collector/README.md +++ b/packages/opentelemetry-exporter-collector/README.md @@ -73,5 +73,5 @@ Apache 2.0 - See [LICENSE][license-url] for more information. [devDependencies-image]: https://david-dm.org/open-telemetry/opentelemetry-js/dev-status.svg?path=packages/opentelemetry-exporter-collector [devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector&type=dev [npm-url]: https://www.npmjs.com/package/@opentelemetry/exporter-collector -[npm-img]: https://badge.fury.io/js/%40opentelemetry%exporter-collector.svg +[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fexporter-collector.svg [opentelemetry-collector-url]: https://github.com/open-telemetry/opentelemetry-collector diff --git a/packages/opentelemetry-exporter-collector/package.json b/packages/opentelemetry-exporter-collector/package.json index 06e4eb8a512..63cbde760ce 100644 --- a/packages/opentelemetry-exporter-collector/package.json +++ b/packages/opentelemetry-exporter-collector/package.json @@ -1,6 +1,6 @@ { "name": "@opentelemetry/exporter-collector", - "version": "0.2.0", + "version": "0.3.0", "description": "OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector", "main": "build/src/index.js", "types": "build/src/index.d.ts", @@ -79,9 +79,9 @@ "webpack-merge": "^4.2.2" }, "dependencies": { - "@opentelemetry/base": "^0.2.0", - "@opentelemetry/core": "^0.2.0", - "@opentelemetry/tracing": "^0.2.0", - "@opentelemetry/types": "^0.2.0" + "@opentelemetry/base": "^0.3.0", + "@opentelemetry/core": "^0.3.0", + "@opentelemetry/tracing": "^0.3.0", + "@opentelemetry/types": "^0.3.0" } } diff --git a/packages/opentelemetry-exporter-collector/src/version.ts b/packages/opentelemetry-exporter-collector/src/version.ts index 5e6eb85dbe3..c30b482e486 100644 --- a/packages/opentelemetry-exporter-collector/src/version.ts +++ b/packages/opentelemetry-exporter-collector/src/version.ts @@ -15,4 +15,4 @@ */ // this is autogenerated file, see scripts/version-update.js -export const VERSION = '0.2.0'; +export const VERSION = '0.3.0'; diff --git a/packages/opentelemetry-exporter-jaeger/package.json b/packages/opentelemetry-exporter-jaeger/package.json index 0fe7d1f8c6f..821dcc9978c 100644 --- a/packages/opentelemetry-exporter-jaeger/package.json +++ b/packages/opentelemetry-exporter-jaeger/package.json @@ -1,6 +1,6 @@ { "name": "@opentelemetry/exporter-jaeger", - "version": "0.2.0", + "version": "0.3.0", "description": "OpenTelemetry Exporter Jaeger allows user to send collected traces to Jaeger", "main": "build/src/index.js", "types": "build/src/index.d.ts", @@ -52,10 +52,10 @@ "typescript": "3.7.2" }, "dependencies": { - "@opentelemetry/base": "^0.2.0", - "@opentelemetry/core": "^0.2.0", - "@opentelemetry/tracing": "^0.2.0", - "@opentelemetry/types": "^0.2.0", + "@opentelemetry/base": "^0.3.0", + "@opentelemetry/core": "^0.3.0", + "@opentelemetry/tracing": "^0.3.0", + "@opentelemetry/types": "^0.3.0", "jaeger-client": "^3.15.0" } } diff --git a/packages/opentelemetry-exporter-jaeger/src/jaeger.ts b/packages/opentelemetry-exporter-jaeger/src/jaeger.ts index 8f912bd648c..1b1f50e6b37 100644 --- a/packages/opentelemetry-exporter-jaeger/src/jaeger.ts +++ b/packages/opentelemetry-exporter-jaeger/src/jaeger.ts @@ -20,7 +20,6 @@ import * as jaegerTypes from './types'; import { NoopLogger } from '@opentelemetry/core'; import * as types from '@opentelemetry/types'; import { spanToThrift } from './transform'; -import { unrefTimer } from '@opentelemetry/core'; /** * Format and sends span information to Jaeger Exporter. @@ -29,17 +28,16 @@ export class JaegerExporter implements SpanExporter { private readonly _logger: types.Logger; private readonly _process: jaegerTypes.ThriftProcess; private readonly _sender: typeof jaegerTypes.UDPSender; - private readonly _forceFlush: boolean = true; - private readonly _flushTimeout: number; - private _timer: NodeJS.Timeout; + private readonly _forceFlushOnShutdown: boolean = true; + private readonly _onShutdownFlushTimeout: number; constructor(config: jaegerTypes.ExporterConfig) { this._logger = config.logger || new NoopLogger(); const tags: jaegerTypes.Tag[] = config.tags || []; - if (config.forceFlush !== undefined) { - this._forceFlush = config.forceFlush; - } - this._flushTimeout = config.flushTimeout || 2000; + this._forceFlushOnShutdown = + typeof config.forceFlush === 'boolean' ? config.forceFlush : true; + this._onShutdownFlushTimeout = + typeof config.flushTimeout === 'number' ? config.flushTimeout : 2000; this._sender = new jaegerTypes.UDPSender(config); this._process = { @@ -47,10 +45,6 @@ export class JaegerExporter implements SpanExporter { tags: jaegerTypes.ThriftUtils.getThriftTags(tags), }; this._sender.setProcess(this._process); - - const flushInterval = config.flushInterval || 5000; - this._timer = setInterval(this._flush.bind(this), flushInterval); - unrefTimer(this._timer); } /** Exports a list of spans to Jaeger. */ @@ -58,48 +52,70 @@ export class JaegerExporter implements SpanExporter { spans: ReadableSpan[], resultCallback: (result: ExportResult) => void ): void { + if (spans.length === 0) { + return resultCallback(ExportResult.SUCCESS); + } this._logger.debug('Jaeger exporter export'); - return this._sendSpans(spans, resultCallback); + this._sendSpans(spans, resultCallback).catch(err => { + this._logger.error(`JaegerExporter failed to export: ${err}`); + }); } /** Shutdown exporter. */ shutdown(): void { - if (!this._forceFlush) return; + if (!this._forceFlushOnShutdown) return; // Make an optimistic flush. this._flush(); // Sleeping x seconds before closing the sender's connection to ensure // all spans are flushed. setTimeout(() => { this._sender.close(); - }, this._flushTimeout); + }, this._onShutdownFlushTimeout); } /** Transform spans and sends to Jaeger service. */ - private _sendSpans( + private async _sendSpans( spans: ReadableSpan[], done?: (result: ExportResult) => void ) { const thriftSpan = spans.map(span => spanToThrift(span)); for (const span of thriftSpan) { - this._sender.append(span, (numSpans: number, err?: string) => { - if (err) { - // @todo: decide whether to break out the loop on first error. - this._logger.error(`failed to append span: ${err}`); - if (done) return done(ExportResult.FAILED_NOT_RETRYABLE); - } - }); + try { + await this._append(span); + } catch (err) { + this._logger.error(`failed to append span: ${err}`); + // TODO right now we break out on first error, is that desirable? + if (done) return done(ExportResult.FAILED_NOT_RETRYABLE); + } } - // @todo: We should wait for all the callbacks of the append calls to - // complete before it calls done with success. this._logger.debug('successful append for : %s', thriftSpan.length); + + // Flush all spans on each export. No-op if span buffer is empty + await this._flush(); + if (done) return done(ExportResult.SUCCESS); } - private _flush(): void { - this._sender.flush((numSpans: number, err?: string) => { - if (err) { - this._logger.error(`failed to flush ${numSpans} spans: ${err}`); - } + private async _append(span: jaegerTypes.ThriftSpan): Promise { + return new Promise((resolve, reject) => { + this._sender.append(span, (count: number, err?: string) => { + if (err) { + return reject(new Error(err)); + } + resolve(count); + }); + }); + } + + private async _flush(): Promise { + await new Promise((resolve, reject) => { + this._sender.flush((_count: number, err?: string) => { + if (err) { + return reject(new Error(err)); + } + this._logger.debug('successful flush for %s spans', _count); + resolve(); + }); }); } } diff --git a/packages/opentelemetry-exporter-jaeger/src/types.ts b/packages/opentelemetry-exporter-jaeger/src/types.ts index fb2f58968bd..ab17951c6c1 100644 --- a/packages/opentelemetry-exporter-jaeger/src/types.ts +++ b/packages/opentelemetry-exporter-jaeger/src/types.ts @@ -26,9 +26,10 @@ export interface ExporterConfig { host?: string; // default: 'localhost' port?: number; // default: 6832 maxPacketSize?: number; // default: 65000 + /** Force a flush on shutdown */ forceFlush?: boolean; // default: true + /** Time to wait for an onShutdown flush to finish before closing the sender */ flushTimeout?: number; // default: 2000 - flushInterval?: number; // default(ms): 5000 } // Below require is needed as jaeger-client types does not expose the thrift, diff --git a/packages/opentelemetry-exporter-jaeger/test/jaeger.test.ts b/packages/opentelemetry-exporter-jaeger/test/jaeger.test.ts index ad0bcc26854..3cc994294b2 100644 --- a/packages/opentelemetry-exporter-jaeger/test/jaeger.test.ts +++ b/packages/opentelemetry-exporter-jaeger/test/jaeger.test.ts @@ -61,8 +61,8 @@ describe('JaegerExporter', () => { assert.ok(typeof exporter.export === 'function'); assert.ok(typeof exporter.shutdown === 'function'); - assert.ok(exporter['_forceFlush']); - assert.strictEqual(exporter['_flushTimeout'], 5000); + assert.ok(exporter['_forceFlushOnShutdown']); + assert.strictEqual(exporter['_onShutdownFlushTimeout'], 5000); }); it('should construct an exporter without forceFlush and flushTimeout', () => { @@ -72,8 +72,8 @@ describe('JaegerExporter', () => { assert.ok(typeof exporter.export === 'function'); assert.ok(typeof exporter.shutdown === 'function'); - assert.ok(exporter['_forceFlush']); - assert.strictEqual(exporter['_flushTimeout'], 2000); + assert.ok(exporter['_forceFlushOnShutdown']); + assert.strictEqual(exporter['_onShutdownFlushTimeout'], 2000); }); it('should construct an exporter with forceFlush = false', () => { @@ -84,7 +84,7 @@ describe('JaegerExporter', () => { assert.ok(typeof exporter.export === 'function'); assert.ok(typeof exporter.shutdown === 'function'); - assert.ok(!exporter['_forceFlush']); + assert.ok(!exporter['_forceFlushOnShutdown']); }); }); diff --git a/packages/opentelemetry-exporter-prometheus/README.md b/packages/opentelemetry-exporter-prometheus/README.md index 4ac8bc579bb..4e7353e5e45 100644 --- a/packages/opentelemetry-exporter-prometheus/README.md +++ b/packages/opentelemetry-exporter-prometheus/README.md @@ -1,5 +1,6 @@ # OpenTelemetry Prometheus Exporter [![Gitter chat][gitter-image]][gitter-url] +[![NPM Published Version][npm-img]][npm-url] [![dependencies][dependencies-image]][dependencies-url] [![devDependencies][devDependencies-image]][devDependencies-url] [![Apache License][license-image]][license-image] @@ -69,3 +70,5 @@ Apache 2.0 - See [LICENSE][license-url] for more information. [dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-prometheus [devDependencies-image]: https://david-dm.org/open-telemetry/opentelemetry-js/dev-status.svg?path=packages/opentelemetry-exporter-prometheus [devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-prometheus&type=dev +[npm-url]: https://www.npmjs.com/package/@opentelemetry/exporter-prometheus +[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fexporter-prometheus.svg diff --git a/packages/opentelemetry-exporter-prometheus/package.json b/packages/opentelemetry-exporter-prometheus/package.json index ac3c74ae1a5..9d1ba6d3e39 100644 --- a/packages/opentelemetry-exporter-prometheus/package.json +++ b/packages/opentelemetry-exporter-prometheus/package.json @@ -1,6 +1,6 @@ { "name": "@opentelemetry/exporter-prometheus", - "version": "0.2.0", + "version": "0.3.0", "description": "OpenTelemetry Exporter Prometheus provides a metrics endpoint for Prometheus", "main": "build/src/index.js", "types": "build/src/index.d.ts", @@ -52,10 +52,10 @@ "typescript": "3.7.2" }, "dependencies": { - "@opentelemetry/base": "^0.2.0", - "@opentelemetry/core": "^0.2.0", - "@opentelemetry/metrics": "^0.2.0", - "@opentelemetry/types": "^0.2.0", + "@opentelemetry/base": "^0.3.0", + "@opentelemetry/core": "^0.3.0", + "@opentelemetry/metrics": "^0.3.0", + "@opentelemetry/types": "^0.3.0", "prom-client": "^11.5.3" } } diff --git a/packages/opentelemetry-exporter-zipkin/package.json b/packages/opentelemetry-exporter-zipkin/package.json index 8a79cf9dfec..d9f2365bedd 100644 --- a/packages/opentelemetry-exporter-zipkin/package.json +++ b/packages/opentelemetry-exporter-zipkin/package.json @@ -1,6 +1,6 @@ { "name": "@opentelemetry/exporter-zipkin", - "version": "0.2.0", + "version": "0.3.0", "description": "OpenTelemetry Zipkin Exporter allows the user to send collected traces to Zipkin.", "main": "build/src/index.js", "types": "build/src/index.d.ts", @@ -54,9 +54,9 @@ "typescript": "3.7.2" }, "dependencies": { - "@opentelemetry/base": "^0.2.0", - "@opentelemetry/core": "^0.2.0", - "@opentelemetry/tracing": "^0.2.0", - "@opentelemetry/types": "^0.2.0" + "@opentelemetry/base": "^0.3.0", + "@opentelemetry/core": "^0.3.0", + "@opentelemetry/tracing": "^0.3.0", + "@opentelemetry/types": "^0.3.0" } } diff --git a/packages/opentelemetry-metrics/package.json b/packages/opentelemetry-metrics/package.json index 1ce12779a99..b069507d0b4 100644 --- a/packages/opentelemetry-metrics/package.json +++ b/packages/opentelemetry-metrics/package.json @@ -1,6 +1,6 @@ { "name": "@opentelemetry/metrics", - "version": "0.2.0", + "version": "0.3.0", "description": "OpenTelemetry metrics SDK", "main": "build/src/index.js", "types": "build/src/index.d.ts", @@ -55,8 +55,8 @@ "typescript": "3.7.2" }, "dependencies": { - "@opentelemetry/base": "^0.2.0", - "@opentelemetry/core": "^0.2.0", - "@opentelemetry/types": "^0.2.0" + "@opentelemetry/base": "^0.3.0", + "@opentelemetry/core": "^0.3.0", + "@opentelemetry/types": "^0.3.0" } } diff --git a/packages/opentelemetry-node/package.json b/packages/opentelemetry-node/package.json index 46c8d593c02..a02a2a87071 100644 --- a/packages/opentelemetry-node/package.json +++ b/packages/opentelemetry-node/package.json @@ -1,6 +1,6 @@ { "name": "@opentelemetry/node", - "version": "0.2.0", + "version": "0.3.0", "description": "OpenTelemetry Node SDK provides automatic telemetry (tracing, metrics, etc) for Node.js applications", "main": "build/src/index.js", "types": "build/src/index.d.ts", @@ -57,10 +57,10 @@ "typescript": "3.7.2" }, "dependencies": { - "@opentelemetry/core": "^0.2.0", - "@opentelemetry/scope-async-hooks": "^0.2.0", - "@opentelemetry/tracing": "^0.2.0", - "@opentelemetry/types": "^0.2.0", + "@opentelemetry/core": "^0.3.0", + "@opentelemetry/scope-async-hooks": "^0.3.0", + "@opentelemetry/tracing": "^0.3.0", + "@opentelemetry/types": "^0.3.0", "require-in-the-middle": "^5.0.0", "semver": "^6.2.0" } diff --git a/packages/opentelemetry-node/src/config.ts b/packages/opentelemetry-node/src/config.ts index 23fe0ff63e1..7fb1b7dd5b3 100644 --- a/packages/opentelemetry-node/src/config.ts +++ b/packages/opentelemetry-node/src/config.ts @@ -28,7 +28,6 @@ export interface NodeTracerConfig extends BasicTracerConfig { /** List of all default supported plugins */ export const DEFAULT_INSTRUMENTATION_PLUGINS: Plugins = { 'mongodb-core': { enabled: true, path: '@opentelemetry/plugin-mongodb-core' }, - dns: { enabled: true, path: '@opentelemetry/plugin-dns' }, grpc: { enabled: true, path: '@opentelemetry/plugin-grpc' }, http: { enabled: true, path: '@opentelemetry/plugin-http' }, https: { enabled: true, path: '@opentelemetry/plugin-https' }, diff --git a/packages/opentelemetry-plugin-dns/README.md b/packages/opentelemetry-plugin-dns/README.md index 6f0c28432c4..50bf77fd7c4 100644 --- a/packages/opentelemetry-plugin-dns/README.md +++ b/packages/opentelemetry-plugin-dns/README.md @@ -32,6 +32,23 @@ const tracer = new NodeTracer({ }); ``` +### Zipkin + +If you use Zipkin, you must use `ignoreHostnames` in order to not trace those calls. If the server is local. You can set : + +``` +const tracer = new NodeTracer({ + plugins: { + dns: { + enabled: true, + // You may use a package name or absolute path to the file. + path: '@opentelemetry/plugin-dns', + ignoreHostnames: ['localhost'] + } + } +}); +``` + ### Dns Plugin Options Dns plugin has currently one option. You can set the following: diff --git a/packages/opentelemetry-plugin-dns/package.json b/packages/opentelemetry-plugin-dns/package.json index 6eb153c3ba5..f1f2d94aac2 100644 --- a/packages/opentelemetry-plugin-dns/package.json +++ b/packages/opentelemetry-plugin-dns/package.json @@ -1,6 +1,6 @@ { "name": "@opentelemetry/plugin-dns", - "version": "0.2.0", + "version": "0.3.0", "description": "OpenTelemetry dns automatic instrumentation package.", "main": "build/src/index.js", "types": "build/src/index.d.ts", @@ -39,8 +39,8 @@ "access": "public" }, "devDependencies": { - "@opentelemetry/node": "^0.2.0", - "@opentelemetry/tracing": "^0.2.0", + "@opentelemetry/node": "^0.3.0", + "@opentelemetry/tracing": "^0.3.0", "@types/mocha": "^5.2.7", "@types/node": "^12.7.12", "@types/shimmer": "^1.0.1", @@ -58,8 +58,8 @@ "typescript": "3.7.2" }, "dependencies": { - "@opentelemetry/core": "^0.2.0", - "@opentelemetry/types": "^0.2.0", + "@opentelemetry/core": "^0.3.0", + "@opentelemetry/types": "^0.3.0", "semver": "^6.3.0", "shimmer": "^1.2.1" } diff --git a/packages/opentelemetry-plugin-document-load/package.json b/packages/opentelemetry-plugin-document-load/package.json index f002a2bb013..30df859de93 100644 --- a/packages/opentelemetry-plugin-document-load/package.json +++ b/packages/opentelemetry-plugin-document-load/package.json @@ -1,6 +1,6 @@ { "name": "@opentelemetry/plugin-document-load", - "version": "0.2.0", + "version": "0.3.0", "description": "OpenTelemetry document-load automatic instrumentation package.", "main": "build/src/index.js", "types": "build/src/index.d.ts", @@ -71,9 +71,9 @@ "webpack-merge": "^4.2.2" }, "dependencies": { - "@opentelemetry/core": "^0.2.0", - "@opentelemetry/tracing": "^0.2.0", - "@opentelemetry/types": "^0.2.0", - "@opentelemetry/web": "^0.2.0" + "@opentelemetry/core": "^0.3.0", + "@opentelemetry/tracing": "^0.3.0", + "@opentelemetry/types": "^0.3.0", + "@opentelemetry/web": "^0.3.0" } } diff --git a/packages/opentelemetry-plugin-grpc/package.json b/packages/opentelemetry-plugin-grpc/package.json index a2f63e7348d..426934dc336 100644 --- a/packages/opentelemetry-plugin-grpc/package.json +++ b/packages/opentelemetry-plugin-grpc/package.json @@ -1,6 +1,6 @@ { "name": "@opentelemetry/plugin-grpc", - "version": "0.2.0", + "version": "0.3.0", "description": "OpenTelemetry grpc automatic instrumentation package.", "main": "build/src/index.js", "types": "build/src/index.d.ts", @@ -40,8 +40,8 @@ "access": "public" }, "devDependencies": { - "@opentelemetry/node": "^0.2.0", - "@opentelemetry/tracing": "^0.2.0", + "@opentelemetry/node": "^0.3.0", + "@opentelemetry/tracing": "^0.3.0", "@types/mocha": "^5.2.7", "@types/node": "^12.6.9", "@types/semver": "^6.2.0", @@ -62,8 +62,8 @@ "typescript": "3.7.2" }, "dependencies": { - "@opentelemetry/core": "^0.2.0", - "@opentelemetry/types": "^0.2.0", + "@opentelemetry/core": "^0.3.0", + "@opentelemetry/types": "^0.3.0", "shimmer": "^1.2.1" } } diff --git a/packages/opentelemetry-plugin-http/package.json b/packages/opentelemetry-plugin-http/package.json index 8bf52924017..89629c5804c 100644 --- a/packages/opentelemetry-plugin-http/package.json +++ b/packages/opentelemetry-plugin-http/package.json @@ -1,6 +1,6 @@ { "name": "@opentelemetry/plugin-http", - "version": "0.2.0", + "version": "0.3.0", "description": "OpenTelemetry http automatic instrumentation package.", "main": "build/src/index.js", "types": "build/src/index.d.ts", @@ -40,9 +40,9 @@ "access": "public" }, "devDependencies": { - "@opentelemetry/node": "^0.2.0", - "@opentelemetry/scope-base": "^0.2.0", - "@opentelemetry/tracing": "^0.2.0", + "@opentelemetry/node": "^0.3.0", + "@opentelemetry/scope-base": "^0.3.0", + "@opentelemetry/tracing": "^0.3.0", "@types/got": "^9.6.7", "@types/mocha": "^5.2.7", "@types/nock": "^11.1.0", @@ -71,8 +71,8 @@ "typescript": "3.7.2" }, "dependencies": { - "@opentelemetry/core": "^0.2.0", - "@opentelemetry/types": "^0.2.0", + "@opentelemetry/core": "^0.3.0", + "@opentelemetry/types": "^0.3.0", "semver": "^6.3.0", "shimmer": "^1.2.1" } diff --git a/packages/opentelemetry-plugin-http2/package.json b/packages/opentelemetry-plugin-http2/package.json index 063de1bcac5..b695d0cae76 100644 --- a/packages/opentelemetry-plugin-http2/package.json +++ b/packages/opentelemetry-plugin-http2/package.json @@ -1,6 +1,6 @@ { "name": "@opentelemetry/plugin-http2", - "version": "0.2.0", + "version": "0.3.0", "description": "OpenTelemetry http2 automatic instrumentation package.", "private": true, "main": "build/src/index.js", @@ -54,8 +54,8 @@ "typescript": "3.7.2" }, "dependencies": { - "@opentelemetry/core": "^0.2.0", - "@opentelemetry/node": "^0.2.0", - "@opentelemetry/types": "^0.2.0" + "@opentelemetry/core": "^0.3.0", + "@opentelemetry/node": "^0.3.0", + "@opentelemetry/types": "^0.3.0" } } diff --git a/packages/opentelemetry-plugin-https/package.json b/packages/opentelemetry-plugin-https/package.json index 6480dd2f350..5fb4a30a53f 100644 --- a/packages/opentelemetry-plugin-https/package.json +++ b/packages/opentelemetry-plugin-https/package.json @@ -1,6 +1,6 @@ { "name": "@opentelemetry/plugin-https", - "version": "0.2.0", + "version": "0.3.0", "description": "OpenTelemetry https automatic instrumentation package.", "main": "build/src/index.js", "types": "build/src/index.d.ts", @@ -40,9 +40,9 @@ "access": "public" }, "devDependencies": { - "@opentelemetry/node": "^0.2.0", - "@opentelemetry/scope-base": "^0.2.0", - "@opentelemetry/tracing": "^0.2.0", + "@opentelemetry/node": "^0.3.0", + "@opentelemetry/scope-base": "^0.3.0", + "@opentelemetry/tracing": "^0.3.0", "@types/got": "^9.6.7", "@types/mocha": "^5.2.7", "@types/nock": "^11.1.0", @@ -71,9 +71,9 @@ "typescript": "3.7.2" }, "dependencies": { - "@opentelemetry/core": "^0.2.0", - "@opentelemetry/plugin-http": "^0.2.0", - "@opentelemetry/types": "^0.2.0", + "@opentelemetry/core": "^0.3.0", + "@opentelemetry/plugin-http": "^0.3.0", + "@opentelemetry/types": "^0.3.0", "semver": "^6.3.0", "shimmer": "^1.2.1" } diff --git a/packages/opentelemetry-plugin-mongodb-core/package.json b/packages/opentelemetry-plugin-mongodb-core/package.json index 6744a3c9948..3c78090f251 100644 --- a/packages/opentelemetry-plugin-mongodb-core/package.json +++ b/packages/opentelemetry-plugin-mongodb-core/package.json @@ -1,8 +1,7 @@ { "name": "@opentelemetry/plugin-mongodb-core", - "version": "0.2.0", + "version": "0.3.0", "description": "OpenTelemetry mongodb-core automatic instrumentation package.", - "private": true, "main": "build/src/index.js", "types": "build/src/index.d.ts", "repository": "open-telemetry/opentelemetry-js", @@ -41,8 +40,8 @@ "access": "public" }, "devDependencies": { - "@opentelemetry/node": "^0.2.0", - "@opentelemetry/tracing": "^0.2.0", + "@opentelemetry/node": "^0.3.0", + "@opentelemetry/tracing": "^0.3.0", "@types/mocha": "^5.2.7", "@types/mongodb": "^3.2.3", "@types/node": "^12.7.2", @@ -60,8 +59,8 @@ "typescript": "3.7.2" }, "dependencies": { - "@opentelemetry/core": "^0.2.0", - "@opentelemetry/types": "^0.2.0", + "@opentelemetry/core": "^0.3.0", + "@opentelemetry/types": "^0.3.0", "shimmer": "^1.2.1" } } diff --git a/packages/opentelemetry-plugin-mysql/package.json b/packages/opentelemetry-plugin-mysql/package.json index 642b949b5a0..f722351ec78 100644 --- a/packages/opentelemetry-plugin-mysql/package.json +++ b/packages/opentelemetry-plugin-mysql/package.json @@ -1,6 +1,6 @@ { "name": "@opentelemetry/plugin-mysql", - "version": "0.2.0", + "version": "0.3.0", "description": "OpenTelemetry mysql automatic instrumentation package.", "main": "build/src/index.js", "types": "build/src/index.d.ts", @@ -40,8 +40,8 @@ "access": "public" }, "devDependencies": { - "@opentelemetry/node": "^0.2.0", - "@opentelemetry/tracing": "^0.2.0", + "@opentelemetry/node": "^0.3.0", + "@opentelemetry/tracing": "^0.3.0", "@types/mocha": "^5.2.7", "@types/mysql": "^2.15.4", "@types/node": "^12.6.9", @@ -59,8 +59,8 @@ "typescript": "3.7.2" }, "dependencies": { - "@opentelemetry/core": "^0.2.0", - "@opentelemetry/types": "^0.2.0", + "@opentelemetry/core": "^0.3.0", + "@opentelemetry/types": "^0.3.0", "shimmer": "^1.2.1" } } diff --git a/packages/opentelemetry-plugin-postgres/opentelemetry-plugin-pg-pool/package.json b/packages/opentelemetry-plugin-postgres/opentelemetry-plugin-pg-pool/package.json index fc7aa348920..d771602fc46 100644 --- a/packages/opentelemetry-plugin-postgres/opentelemetry-plugin-pg-pool/package.json +++ b/packages/opentelemetry-plugin-postgres/opentelemetry-plugin-pg-pool/package.json @@ -1,6 +1,6 @@ { "name": "@opentelemetry/plugin-pg-pool", - "version": "0.2.0", + "version": "0.3.0", "description": "OpenTelemetry postgres pool automatic instrumentation package.", "private": true, "main": "build/src/index.js", @@ -46,30 +46,30 @@ "access": "public" }, "devDependencies": { - "@opentelemetry/plugin-pg": "^0.2.0", + "@opentelemetry/plugin-pg": "^0.3.0", "@types/mocha": "^5.2.7", "@types/node": "^12.6.9", "@types/pg": "^7.11.2", - "@types/shimmer": "^1.0.1", "@types/pg-pool": "^2.0.1", + "@types/shimmer": "^1.0.1", "codecov": "^3.6.1", "gts": "^1.1.0", "mocha": "^6.2.0", "nyc": "^14.1.1", - "rimraf": "^3.0.0", "pg": "^7.12.1", "pg-pool": "^2.0.7", - "tslint-microsoft-contrib": "^6.2.0", - "tslint-consistent-codestyle": "^1.15.1", + "rimraf": "^3.0.0", "ts-mocha": "^6.0.0", "ts-node": "^8.3.0", + "tslint-consistent-codestyle": "^1.15.1", + "tslint-microsoft-contrib": "^6.2.0", "typescript": "3.7.2" }, "dependencies": { - "@opentelemetry/core": "^0.2.0", - "@opentelemetry/node": "^0.2.0", - "@opentelemetry/tracing": "^0.2.0", - "@opentelemetry/types": "^0.2.0", + "@opentelemetry/core": "^0.3.0", + "@opentelemetry/node": "^0.3.0", + "@opentelemetry/tracing": "^0.3.0", + "@opentelemetry/types": "^0.3.0", "shimmer": "^1.2.1" } } diff --git a/packages/opentelemetry-plugin-postgres/opentelemetry-plugin-pg/package.json b/packages/opentelemetry-plugin-postgres/opentelemetry-plugin-pg/package.json index 09aefd38185..7d2846ebe61 100644 --- a/packages/opentelemetry-plugin-postgres/opentelemetry-plugin-pg/package.json +++ b/packages/opentelemetry-plugin-postgres/opentelemetry-plugin-pg/package.json @@ -1,8 +1,7 @@ { "name": "@opentelemetry/plugin-pg", - "version": "0.2.0", + "version": "0.3.0", "description": "OpenTelemetry postgres automatic instrumentation package.", - "private": true, "main": "build/src/index.js", "types": "build/src/index.d.ts", "repository": "open-telemetry/opentelemetry-js", @@ -62,10 +61,10 @@ "typescript": "3.7.2" }, "dependencies": { - "@opentelemetry/core": "^0.2.0", - "@opentelemetry/node": "^0.2.0", - "@opentelemetry/tracing": "^0.2.0", - "@opentelemetry/types": "^0.2.0", + "@opentelemetry/core": "^0.3.0", + "@opentelemetry/node": "^0.3.0", + "@opentelemetry/tracing": "^0.3.0", + "@opentelemetry/types": "^0.3.0", "shimmer": "^1.2.1" } } diff --git a/packages/opentelemetry-plugin-redis/package.json b/packages/opentelemetry-plugin-redis/package.json index 07ea3b3e482..a4bda584f12 100644 --- a/packages/opentelemetry-plugin-redis/package.json +++ b/packages/opentelemetry-plugin-redis/package.json @@ -1,6 +1,6 @@ { "name": "@opentelemetry/plugin-redis", - "version": "0.2.0", + "version": "0.3.0", "description": "OpenTelemetry redis automatic instrumentation package.", "main": "build/src/index.js", "types": "build/src/index.d.ts", @@ -42,12 +42,12 @@ "access": "public" }, "devDependencies": { + "@opentelemetry/node": "^0.3.0", + "@opentelemetry/tracing": "^0.3.0", "@types/mocha": "^5.2.7", "@types/node": "^12.6.9", "@types/redis": "^2.8.14", "@types/shimmer": "^1.0.1", - "@opentelemetry/node": "^0.2.0", - "@opentelemetry/tracing": "^0.2.0", "codecov": "^3.6.1", "cross-env": "^6.0.3", "gts": "^1.1.0", @@ -62,8 +62,8 @@ "typescript": "3.7.2" }, "dependencies": { - "@opentelemetry/core": "^0.2.0", - "@opentelemetry/types": "^0.2.0", + "@opentelemetry/core": "^0.3.0", + "@opentelemetry/types": "^0.3.0", "shimmer": "^1.2.1" } } diff --git a/packages/opentelemetry-scope-async-hooks/package.json b/packages/opentelemetry-scope-async-hooks/package.json index 452ffb10f9c..cd0592f5fb9 100644 --- a/packages/opentelemetry-scope-async-hooks/package.json +++ b/packages/opentelemetry-scope-async-hooks/package.json @@ -1,6 +1,6 @@ { "name": "@opentelemetry/scope-async-hooks", - "version": "0.2.0", + "version": "0.3.0", "description": "OpenTelemetry AsyncHooks-based Scope Manager", "main": "build/src/index.js", "types": "build/src/index.d.ts", @@ -55,6 +55,6 @@ "typescript": "3.7.2" }, "dependencies": { - "@opentelemetry/scope-base": "^0.2.0" + "@opentelemetry/scope-base": "^0.3.0" } } diff --git a/packages/opentelemetry-scope-base/package.json b/packages/opentelemetry-scope-base/package.json index ef2733fffa3..d74eeeb6a2b 100644 --- a/packages/opentelemetry-scope-base/package.json +++ b/packages/opentelemetry-scope-base/package.json @@ -1,6 +1,6 @@ { "name": "@opentelemetry/scope-base", - "version": "0.2.0", + "version": "0.3.0", "description": "OpenTelemetry Base Scope Manager", "main": "build/src/index.js", "types": "build/src/index.d.ts", diff --git a/packages/opentelemetry-scope-zone-peer-dep/package.json b/packages/opentelemetry-scope-zone-peer-dep/package.json index 81a3fbb9514..e5a9beacf79 100644 --- a/packages/opentelemetry-scope-zone-peer-dep/package.json +++ b/packages/opentelemetry-scope-zone-peer-dep/package.json @@ -1,6 +1,6 @@ { "name": "@opentelemetry/scope-zone-peer-dep", - "version": "0.2.0", + "version": "0.3.0", "description": "OpenTelemetry Scope Zone with peer dependency for zone.js", "main": "build/src/index.js", "types": "build/src/index.d.ts", @@ -60,18 +60,18 @@ "nyc": "^14.1.1", "rimraf": "^3.0.0", "sinon": "^7.5.0", - "tslint-consistent-codestyle": "^1.16.0", - "tslint-microsoft-contrib": "^6.2.0", "ts-loader": "^6.0.4", "ts-mocha": "^6.0.0", "ts-node": "^8.0.0", + "tslint-consistent-codestyle": "^1.16.0", + "tslint-microsoft-contrib": "^6.2.0", "typescript": "^3.6.3", "webpack": "^4.35.2", "webpack-cli": "^3.3.9", "zone.js": "^0.10.2" }, "dependencies": { - "@opentelemetry/scope-base": "^0.2.0" + "@opentelemetry/scope-base": "^0.3.0" }, "peerDependencies": { "zone.js": "^0.10.2" diff --git a/packages/opentelemetry-scope-zone/package.json b/packages/opentelemetry-scope-zone/package.json index c9d2976506e..d7bf73e1127 100644 --- a/packages/opentelemetry-scope-zone/package.json +++ b/packages/opentelemetry-scope-zone/package.json @@ -1,6 +1,6 @@ { "name": "@opentelemetry/scope-zone", - "version": "0.2.0", + "version": "0.3.0", "description": "OpenTelemetry Scope Zone", "main": "build/src/index.js", "types": "build/src/index.d.ts", @@ -37,11 +37,11 @@ "access": "public" }, "devDependencies": { + "@babel/core": "^7.6.0", "@types/mocha": "^5.2.5", "@types/node": "^12.6.8", - "@types/webpack-env": "1.13.9", "@types/sinon": "^7.0.13", - "@babel/core": "^7.6.0", + "@types/webpack-env": "1.13.9", "babel-loader": "^8.0.6", "codecov": "^3.6.1", "gts": "^1.1.0", @@ -54,20 +54,19 @@ "nyc": "^14.1.1", "rimraf": "^3.0.0", "sinon": "^7.5.0", - "tslint-consistent-codestyle": "^1.16.0", - "tslint-microsoft-contrib": "^6.2.0", "ts-loader": "^6.0.4", "ts-mocha": "^6.0.0", "ts-node": "^8.0.0", + "tslint-consistent-codestyle": "^1.16.0", + "tslint-microsoft-contrib": "^6.2.0", "typescript": "^3.6.3", "webpack": "^4.35.2", "webpack-cli": "^3.3.9", "webpack-merge": "^4.2.2" }, "dependencies": { - "@opentelemetry/scope-zone-peer-dep": "^0.2.0", + "@opentelemetry/scope-zone-peer-dep": "^0.3.0", "zone.js": "^0.10.2" }, - "sideEffects": true } diff --git a/packages/opentelemetry-shim-opentracing/package.json b/packages/opentelemetry-shim-opentracing/package.json index 10fcc1930fa..3580aa1a229 100644 --- a/packages/opentelemetry-shim-opentracing/package.json +++ b/packages/opentelemetry-shim-opentracing/package.json @@ -1,6 +1,6 @@ { "name": "@opentelemetry/shim-opentracing", - "version": "0.2.0", + "version": "0.3.0", "description": "OpenTracing to OpenTelemetry shim", "main": "build/src/index.js", "types": "build/src/index.d.ts", @@ -38,7 +38,7 @@ "access": "public" }, "devDependencies": { - "@opentelemetry/tracing": "^0.2.0", + "@opentelemetry/tracing": "^0.3.0", "@types/mocha": "^5.2.7", "@types/node": "^12.6.9", "codecov": "^3.6.1", @@ -53,8 +53,8 @@ "typescript": "3.7.2" }, "dependencies": { - "@opentelemetry/core": "^0.2.0", - "@opentelemetry/types": "^0.2.0", + "@opentelemetry/core": "^0.3.0", + "@opentelemetry/types": "^0.3.0", "opentracing": "^0.14.4" } } diff --git a/packages/opentelemetry-tracing/package.json b/packages/opentelemetry-tracing/package.json index 6b0a1f3d540..8cd07f056d8 100644 --- a/packages/opentelemetry-tracing/package.json +++ b/packages/opentelemetry-tracing/package.json @@ -1,6 +1,6 @@ { "name": "@opentelemetry/tracing", - "version": "0.2.0", + "version": "0.3.0", "description": "OpenTelemetry Tracing", "main": "build/src/index.js", "browser": { @@ -72,9 +72,9 @@ "webpack": "^4.35.2" }, "dependencies": { - "@opentelemetry/base": "^0.2.0", - "@opentelemetry/core": "^0.2.0", - "@opentelemetry/scope-base": "^0.2.0", - "@opentelemetry/types": "^0.2.0" + "@opentelemetry/base": "^0.3.0", + "@opentelemetry/core": "^0.3.0", + "@opentelemetry/scope-base": "^0.3.0", + "@opentelemetry/types": "^0.3.0" } } diff --git a/packages/opentelemetry-tracing/src/export/BatchSpanProcessor.ts b/packages/opentelemetry-tracing/src/export/BatchSpanProcessor.ts index 457319c7cfd..c4ff93fc2aa 100644 --- a/packages/opentelemetry-tracing/src/export/BatchSpanProcessor.ts +++ b/packages/opentelemetry-tracing/src/export/BatchSpanProcessor.ts @@ -45,7 +45,7 @@ export class BatchSpanProcessor implements SpanProcessor { : DEFAULT_BUFFER_TIMEOUT_MS; this._timer = setInterval(() => { - if (Date.now() - this._lastSpanFlush >= this._bufferTimeout) { + if (this._shouldFlush()) { this._flush(); } }, this._bufferTimeout); @@ -73,6 +73,13 @@ export class BatchSpanProcessor implements SpanProcessor { } } + private _shouldFlush(): boolean { + return ( + this._finishedSpans.length >= 0 && + Date.now() - this._lastSpanFlush >= this._bufferTimeout + ); + } + /** Send the span data list to exporter */ private _flush() { this._exporter.export(this._finishedSpans, () => {}); diff --git a/packages/opentelemetry-types/package.json b/packages/opentelemetry-types/package.json index 4c5345abb54..715e4f7d0a0 100644 --- a/packages/opentelemetry-types/package.json +++ b/packages/opentelemetry-types/package.json @@ -1,6 +1,6 @@ { "name": "@opentelemetry/types", - "version": "0.2.0", + "version": "0.3.0", "description": "TypeScript types for OpenTelemetry", "main": "build/src/index.js", "types": "build/src/index.d.ts", diff --git a/packages/opentelemetry-web/package.json b/packages/opentelemetry-web/package.json index 08e9b3c99e9..3d7dbe85436 100644 --- a/packages/opentelemetry-web/package.json +++ b/packages/opentelemetry-web/package.json @@ -1,6 +1,6 @@ { "name": "@opentelemetry/web", - "version": "0.2.0", + "version": "0.3.0", "description": "OpenTelemetry Web Tracer", "main": "build/src/index.js", "types": "build/src/index.d.ts", @@ -42,6 +42,7 @@ }, "devDependencies": { "@babel/core": "^7.6.0", + "@opentelemetry/scope-zone": "^0.3.0", "@types/mocha": "^5.2.5", "@types/node": "^12.6.8", "@types/sinon": "^7.0.13", @@ -68,13 +69,12 @@ "typescript": "3.7.2", "webpack": "^4.35.2", "webpack-cli": "^3.3.9", - "webpack-merge": "^4.2.2", - "@opentelemetry/scope-zone": "^0.2.0" + "webpack-merge": "^4.2.2" }, "dependencies": { - "@opentelemetry/core": "^0.2.0", - "@opentelemetry/scope-base": "^0.2.0", - "@opentelemetry/tracing": "^0.2.0", - "@opentelemetry/types": "^0.2.0" + "@opentelemetry/core": "^0.3.0", + "@opentelemetry/scope-base": "^0.3.0", + "@opentelemetry/tracing": "^0.3.0", + "@opentelemetry/types": "^0.3.0" } }