{"bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"c64c2773e8bcc03c4966f0019a94ce791bd52838","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector/-/exporter-collector-0.10.3-alpha.28.tgz","fileCount":83,"integrity":"sha512-/qMpOA4e83KuBUyuhM+/6EPZenh6f5rVkPf7MBN9GjO0dzGsnSBEfj0B78dmkKi7z5uZ2GEfY8OL24gGAaNsHQ==","signatures":[{"sig":"MEUCIGt/QnM1hO53cvA1tp7xA/yjQXGYNpy/OBs9wp9ueH0oAiEAk3Gl0wuPG16UIu6ji/42wKGdY83noa9xJr6rYxFJ8oM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":185328,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfPT9kCRA9TVsSAnZWagAAhP4P+wU6UBbvdsFenFgSXbyV\nQHqTVsNpZCRyPOhp/uSJH/hLw1DNWlHUt6LB7O19Jty6QxO8sg+qieeQuofX\nyCa00y6wFFW6+lni+kd/oxm/FNVTwFgii+yhTvR7UfUSCRNbCM7WSPIUBYzT\nD6z34EM72yl+l0uXp7jVIG6Ih4ppMwxT8NFFXnarzAOzFdmiE1qdaIqF1ri8\nPegOgQWcdfOdB4Ns5FYdP/1o8LGheF2B88JBdGrDNU1W9IjzRJDlezgPZHnc\nQAojymYvW2Gyj4AsZpRvvbKz1jDd/vro31SIRkVLLdK/XuRblBtCcOfhNYc6\naNICAg72BymdhT0fal/xTQX/IFvPP425q8+arbzC0V1F7z4sYPhs7ynk6F3A\nPwcVXxguWLdoMibusf/ISo0gtapNwsfIwSCbLp5NOOKxokMYq/59Sr0A/UQ+\nYMu4O+0SzTW0ITqV0V/2pnWxFl5diX7/9WAE3TO2Kv3hC3cOF/ONnO25Ua+t\noqYRARbZup0CRQKUpSa0nvnrG+V4Ek3wZeDb6DF87dqeFR798PkNu6xtvltM\nbkPc4j6drw0Z65tFq3p16pdA2+YV1b6pxFId/bZI/FiinecYbJvAuRp9O71K\nLE4IHsRqGqKGZ9Rl4m2a2EFYICdvKXAbpe6fQU+m518SvKZD62Wvki3l8TIh\nuPTr\r\n=z/e3\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","name":"@opentelemetry/exporter-collector","types":"build/src/index.d.ts","author":{"name":"OpenTelemetry Authors"},"readme":"# OpenTelemetry Collector Exporter for web and node\n\n[![Gitter chat][gitter-image]][gitter-url]\n[![NPM Published Version][npm-img]][npm-url]\n[![dependencies][dependencies-image]][dependencies-url]\n[![devDependencies][devDependencies-image]][devDependencies-url]\n[![Apache License][license-image]][license-image]\n\nThis module provides exporter for web and node to be used with [opentelemetry-collector][opentelemetry-collector-url] - last tested with version **0.6.0**.\n\n## Installation\n\n```bash\nnpm install --save @opentelemetry/exporter-collector\n```\n\n## Traces in Web\n\nThe CollectorTraceExporter in Web expects the endpoint to end in `/v1/trace`.\n\n```js\nimport { SimpleSpanProcessor } from '@opentelemetry/tracing';\nimport { WebTracerProvider } from '@opentelemetry/web';\nimport { CollectorTraceExporter } from '@opentelemetry/exporter-collector';\n\nconst collectorOptions = {\n  url: '<opentelemetry-collector-url>', // url is optional and can be omitted - default is http://localhost:55681/v1/trace\n  headers: {}, //an optional object containing custom headers to be sent with each request\n};\n\nconst provider = new WebTracerProvider();\nconst exporter = new CollectorTraceExporter(collectorOptions);\nprovider.addSpanProcessor(new SimpleSpanProcessor(exporter));\n\nprovider.register();\n\n```\n\n## Metrics in Web\n\nThe CollectorMetricExporter in Web expects the endpoint to end in `/v1/metrics`.\n\n```js\nimport { MetricProvider } from '@opentelemetry/metrics';\nimport { CollectorMetricExporter } from '@opentelemetry/exporter-collector';\nconst collectorOptions = {\n  url: '<opentelemetry-collector-url>', // url is optional and can be omitted - default is http://localhost:55681/v1/metrics\n  headers: {}, //an optional object containing custom headers to be sent with each request\n};\nconst exporter = new CollectorMetricExporter(collectorOptions);\n\n// Register the exporter\nconst meter = new MeterProvider({\n  exporter,\n  interval: 60000,\n}).getMeter('example-meter');\n\n// Now, start recording data\nconst counter = meter.createCounter('metric_name');\ncounter.add(10, { 'key': 'value' });\n\n```\n\n## Traces in Node - GRPC\n\nThe CollectorTraceExporter in Node expects the URL to only be the hostname. It will not work with `/v1/trace`.\n\n```js\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/tracing');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  url: '<opentelemetry-collector-url>' // url is optional and can be omitted - default is localhost:55680\n};\n\nconst provider = new BasicTracerProvider();\nconst exporter = new CollectorTraceExporter(collectorOptions);\nprovider.addSpanProcessor(new SimpleSpanProcessor(exporter));\n\nprovider.register();\n\n```\n\nBy default, plaintext connection is used. In order to use TLS in Node.js, provide `credentials` option like so:\n\n```js\nconst fs = require('fs');\nconst grpc = require('grpc');\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/tracing');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  url: '<opentelemetry-collector-url>', // url is optional and can be omitted - default is localhost:55680\n  credentials: grpc.credentials.createSsl(\n    fs.readFileSync('./ca.crt'),\n    fs.readFileSync('./client.key'),\n    fs.readFileSync('./client.crt')\n  )\n};\n\nconst provider = new BasicTracerProvider();\nconst exporter = new CollectorTraceExporter(collectorOptions);\nprovider.addSpanProcessor(new SimpleSpanProcessor(exporter));\n\nprovider.register();\n```\n\nTo see how to generate credentials, you can refer to the script used to generate certificates for tests [here](./test/certs/regenerate.sh)\n\nThe exporter can be configured to send custom metadata with each request as in the example below:\n\n```js\nconst grpc = require('grpc');\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/tracing');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector');\n\nconst metadata = new grpc.Metadata();\nmetadata.set('k', 'v');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  url: '<opentelemetry-collector-url>', // url is optional and can be omitted - default is localhost:55680\n  metadata, // // an optional grpc.Metadata object to be sent with each request\n};\n\nconst provider = new BasicTracerProvider();\nconst exporter = new CollectorTraceExporter(collectorOptions);\nprovider.addSpanProcessor(new SimpleSpanProcessor(exporter));\n\nprovider.register();\n```\n\nNote, that this will only work if TLS is also configured on the server.\n\n## Traces in Node - JSON over http\n\n```js\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/tracing');\nconst { CollectorExporter, CollectorTransportNode } =  require('@opentelemetry/exporter-collector');\n\nconst collectorOptions = {\n  protocolNode: CollectorTransportNode.HTTP_JSON,\n  serviceName: 'basic-service',\n  url: '<opentelemetry-collector-url>', // url is optional and can be omitted - default is http://localhost:55681/v1/trace\n  headers: {\n    foo: 'bar'\n  }, //an optional object containing custom headers to be sent with each request will only work with http\n};\n\nconst provider = new BasicTracerProvider();\nconst exporter = new CollectorExporter(collectorOptions);\nprovider.addSpanProcessor(new SimpleSpanProcessor(exporter));\n\nprovider.register();\n\n```\n\n## Traces in Node - PROTO over http\n\n```js\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/tracing');\nconst { CollectorExporter, CollectorTransportNode } =  require('@opentelemetry/exporter-collector');\n\nconst collectorOptions = {\n  protocolNode: CollectorTransportNode.HTTP_PROTO,\n  serviceName: 'basic-service',\n  url: '<opentelemetry-collector-url>', // url is optional and can be omitted - default is http://localhost:55681/v1/trace\n  headers: {\n    foo: 'bar'\n  }, //an optional object containing custom headers to be sent with each request will only work with http\n};\n\nconst provider = new BasicTracerProvider();\nconst exporter = new CollectorExporter(collectorOptions);\nprovider.addSpanProcessor(new SimpleSpanProcessor(exporter));\n\nprovider.register();\n\n```\n\n## Metrics in Node\n\nThe CollectorTraceExporter in Node expects the URL to only be the hostname. It will not work with `/v1/metrics`. All options that work with trace also work with metrics.\n\n```js\nconst { MeterProvider } = require('@opentelemetry/metrics');\nconst { CollectorMetricExporter } =  require('@opentelemetry/exporter-collector');\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  url: '<opentelemetry-collector-url>', // url is optional and can be omitted - default is localhost:55681\n};\nconst exporter = new CollectorMetricExporter(collectorOptions);\n\n// Register the exporter\nconst meter = new MeterProvider({\n  exporter,\n  interval: 60000,\n}).getMeter('example-meter');\n\n// Now, start recording data\nconst counter = meter.createCounter('metric_name');\ncounter.add(10, { 'key': 'value' });\n\n```\n\n## Running opentelemetry-collector locally to see the traces\n\n1. Go to examples/collector-exporter-node\n2. run `npm run docker:start`\n3. Open page at `http://localhost:9411/zipkin/` to observe the traces\n\n## Useful links\n\n- For more information on OpenTelemetry, visit: <https://opentelemetry.io/>\n- For more about OpenTelemetry JavaScript: <https://github.com/open-telemetry/opentelemetry-js>\n- For help or feedback on this project, join us on [gitter][gitter-url]\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\n[gitter-image]: https://badges.gitter.im/open-telemetry/opentelemetry-js.svg\n[gitter-url]: https://gitter.im/open-telemetry/opentelemetry-node?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge\n[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/master/LICENSE\n[license-image]: https://img.shields.io/badge/license-Apache_2.0-green.svg?style=flat\n[dependencies-image]: https://david-dm.org/open-telemetry/opentelemetry-js/status.svg?path=packages/opentelemetry-exporter-collector\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector\n[devDependencies-image]: https://david-dm.org/open-telemetry/opentelemetry-js/dev-status.svg?path=packages/opentelemetry-exporter-collector\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/exporter-collector\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fexporter-collector.svg\n[opentelemetry-collector-url]: https://github.com/open-telemetry/opentelemetry-collector\n","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"engines":{"node":">=8.0.0"},"gitHead":"d68ff0fb7594f6a367cb7a5057cfb2875e8c082f","license":"Apache-2.0","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts' --exclude 'test/browser/**/*.ts'","clean":"rimraf build/*","watch":"npm run protos:copy && tsc -w","compile":"npm run version:update && tsc -p .","prepare":"npm run compile","lint:fix":"eslint . --ext .ts --fix","submodule":"git submodule sync --recursive && git submodule update --init --recursive","precompile":"tsc --version","postcompile":"npm run submodule && npm run protos:copy","protos:copy":"cpx src/platform/node/protos/opentelemetry/**/*.* build/src/platform/node/protos/opentelemetry","tdd:browser":"karma start","test:browser":"nyc karma start --single-run","version:update":"node ../../scripts/version-update.js","codecov:browser":"nyc report --reporter=json && codecov -f coverage/*.json -p ../../"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-http and @opentelemetry/exporter-metrics-otlp-http","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.7.0+x64 (linux)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"maintainers":[{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"_nodeVersion":"14.7.0","dependencies":{"grpc":"^1.24.2","protobufjs":"^6.9.0","@grpc/proto-loader":"^0.5.4","@opentelemetry/api":"^0.10.2","@opentelemetry/core":"^0.10.2","@opentelemetry/metrics":"^0.10.3-alpha.28+d68ff0f","@opentelemetry/tracing":"^0.10.3-alpha.28+d68ff0f","@opentelemetry/resources":"^0.10.3-alpha.28+d68ff0f"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cpx":"1.5.0","gts":"2.0.2","nyc":"15.1.0","karma":"5.1.1","mocha":"7.2.0","sinon":"9.0.3","rimraf":"3.0.2","codecov":"3.7.2","ts-node":"8.10.2","webpack":"4.44.1","ts-mocha":"7.0.0","ts-loader":"8.0.2","typescript":"3.9.7","@babel/core":"7.11.1","@types/node":"14.0.27","karma-mocha":"2.0.1","webpack-cli":"3.3.12","@types/mocha":"8.0.2","@types/sinon":"9.0.4","babel-loader":"8.1.0","karma-webpack":"4.0.2","webpack-merge":"5.1.1","@types/webpack-env":"1.15.2","karma-spec-reporter":"0.0.32","karma-chrome-launcher":"3.1.0","istanbul-instrumenter-loader":"3.0.1","karma-coverage-istanbul-reporter":"3.0.3"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector_0.10.3-alpha.28_1597849444452_0.2436492633804732","host":"s3://npm-registry-packages"},"_id":"@opentelemetry/exporter-collector@0.10.3-alpha.28","version":"0.10.3-alpha.28"}