{"_id":"@opentelemetry/exporter-collector-grpc","_rev":"168-adc6e23f433565a077a740266b52f189","name":"@opentelemetry/exporter-collector-grpc","dist-tags":{"next":"0.25.0","latest":"0.25.0","canary":"0.25.1-alpha.23"},"versions":{"0.10.3-alpha.34":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.10.3-alpha.34","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.10.3-alpha.34","maintainers":[{"name":"obecny","email":"bobecny@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"mayurkale22","email":"mayurkale22@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"ae705f77fb216702d79d83b47f66a6e8f1f65bc6","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.10.3-alpha.34.tgz","fileCount":24,"integrity":"sha512-MPGXlqBq99dlFNDWnPIi2sFcJH1syVhLcf1UytQqSJjeVSNSIm9gJYOhgXZeK/eDuRbdxQKm5e2fDkIhDZWM4A==","signatures":[{"sig":"MEYCIQDj4ppwW54ZqQSwUlpnS37U1hI1iFbAVy9oGm8IzNMNoQIhAI3K1BgqVxq25CQSBkbG8pQ6QtVeB+h8wWhk8msIY048","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":42320,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfQ+6KCRA9TVsSAnZWagAAL3IP/2BemJShnx6qbfPJwi/D\nFYbS7tXPJmO5yA0Sg60z7+QC+Wvoe5N/JrBTT9ZH1ZSuyirTAPa0UpMoNsGX\nLievxO2Y6ADLW/Q45yfejBx9dEamk9vRD4Mb4AgY4ETiZtaGaAjbxCEvXmmX\nAs0fdUVFNSbhWwEcbeVTMlTfi6sBfRXKNXvp3x8sHz/PfHDDueS9mTmBQ77m\nwAd8DfVuig8Lkz/22ZYjbv17HFwt4M4clFuKt5z3kbZWLcAQ4c1+VZcAGWRM\nrPFXEXT8Sv3f85HErSsii4lGkK+edZCIQCQoRw3ws2CbJcHyFl51tsN2tbY4\nUdF3v85QMVn/x+QOAO756GtYLMDi+xD0oCwa3sXN7dNQqv4BWSQkQKKkpFsc\n8HQQi/YuDmr/lvBtO8oXu2/53vy4IlOu+x0w/STRVF1bJw28zMEg8PYOPZuI\nA9N2vd4HrwgpUPToV6SEU9CNr2rbfQtPpdySVcYVC0DqD6gR1oyl4LmSgNYy\nqLoQQm19fenAMxFLR+BBQ3h8HOPaeMwnNbXQoBqmvLmLBe0HY9lrxCIDDxqi\n2DgDPrNYiGWggETcdNUUC+Pj/RneCtV/wZzxlUOwraYLWnV6sSdHP2vSXvHU\n2m76a5JQx+2SaEg7o+eoUqr6QynaCJ80mZtgqBh0zjM9GgEgYEYZwUvOWrfZ\nABUn\r\n=6dew\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","engines":{"node":">=8.0.0"},"gitHead":"fb06b5bb1142286acf5b326925f3af3353aa9d90","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.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 protos/opentelemetry/**/*.* build/protos/opentelemetry","version:update":"node ../../scripts/version-update.js"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.8.0+x64 (linux)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.8.0","dependencies":{"grpc":"^1.24.2","@grpc/proto-loader":"^0.5.4","@opentelemetry/api":"^0.10.3-alpha.34+fb06b5b","@opentelemetry/core":"^0.10.3-alpha.34+fb06b5b","@opentelemetry/metrics":"^0.10.3-alpha.34+fb06b5b","@opentelemetry/tracing":"^0.10.3-alpha.34+fb06b5b","@opentelemetry/resources":"^0.10.3-alpha.34+fb06b5b","@opentelemetry/exporter-collector":"^0.10.3-alpha.34+fb06b5b"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"cpx":"1.5.0","gts":"2.0.2","nyc":"15.1.0","mocha":"7.2.0","sinon":"9.0.3","rimraf":"3.0.2","codecov":"3.7.2","ts-node":"8.10.2","ts-mocha":"7.0.0","ts-loader":"8.0.2","typescript":"3.9.7","@babel/core":"7.11.1","@types/node":"14.0.27","@types/mocha":"8.0.2","@types/sinon":"9.0.4"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.10.3-alpha.34_1598287498164_0.6600128900851054","host":"s3://npm-registry-packages"}},"0.10.3-alpha.35":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.10.3-alpha.35","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.10.3-alpha.35","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"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"5af1d790247e22091d5c3b8c2e7526696f8cefad","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.10.3-alpha.35.tgz","fileCount":24,"integrity":"sha512-EfUCA1aUVfQgSNPdyXDT7ssqujZpvGOJOcxWUd9IHSu7m3j8IH9BXgm2CjnsctV4+heBA1v0tYJ0Nsy0gCatwA==","signatures":[{"sig":"MEUCIBhpPufu6uXLUpDx9HOe7ewCXnUjzhh8z9x6qpmKO1BjAiEAu73ElAk3arhG4oAMIZtGnhFoZRsg10sOzuzat1Ge+Gs=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":42320,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfREMdCRA9TVsSAnZWagAA6coP/1+R+CYaVy50/s9/ggbw\nPrIsM5Wff4aRvS+hqoru442OUDT255eXHOeWp/k5ij2P9FLotQB74OO/5/Jd\neRJl+WP3ccg/AG05bpHLW8ywcKfrAP6ZnbJVrEAAHryntjdKc62XfhKBsnuz\np6U4TJsecZhskaoXs/XQREoG1yLgOkKQWlk0FtT8DysS8RtUyo7uJ9Lx4HvZ\nSOwpFErxlU/4+/NagLhg3rF+QaH5sbavr3XqDbqf+h1PIiTLSqEzABOrxtds\n3GO0o+qKk14OfDJ1Gwq3lSfMcb8TgMTjiPZPb/AP7aP8aV0Z+YSofqpiCGLf\nhgZiwx4q4Dk+vPQrSEa3R8uqwuY9JGqgY7KpyHwLRX1pWnTtSRvS8SXWfTJn\nuyxw/FnOeYbMZQym7itCwRLLyciVADv+BVm8dHUlkRLOJPL5m/z8gWDO/OyT\n9OuW3seBTGh++Op3fQ3XEWxHmC5Yk1YNCnr82GXn8k0ePDCpalyeCXtL5b4K\nifBAyoZeKZg3LABddHBb9AbEsqv1XGKkebVnaWldj/scX+7AErf7Ob8YY5C7\noJhJil/J08/pgvUVS4yAu4egvjRcZjwZCn/aJbAsTkegRGslWeTCe/vnb0T9\njNOpcSbmXVijoXXgsnOBUAcBxb4fqEv4AT7kIYTLzPtUUUZXMlxtJDq9/hMO\nd5pz\r\n=W6Bg\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry Collector Exporter for node with grpc\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-grpc\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-grpc');\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-grpc');\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-grpc');\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## Metrics in Node - GRPC\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-grpc');\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-grpc\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc\n[devDependencies-image]: https://david-dm.org/open-telemetry/opentelemetry-js/dev-status.svg?path=packages/opentelemetry-exporter-collector-grpc\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/exporter-collector-grpc\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fexporter-collector-grpc.svg\n[opentelemetry-collector-url]: https://github.com/open-telemetry/opentelemetry-collector\n","engines":{"node":">=8.0.0"},"gitHead":"2ee9f1aaf7b61c4b4ae6b748f0a07f8fc708f07e","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.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 protos/opentelemetry/**/*.* build/protos/opentelemetry","version:update":"node ../../scripts/version-update.js"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.8.0+x64 (linux)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.8.0","dependencies":{"grpc":"^1.24.2","@grpc/proto-loader":"^0.5.4","@opentelemetry/api":"^0.10.3-alpha.35+2ee9f1a","@opentelemetry/core":"^0.10.3-alpha.35+2ee9f1a","@opentelemetry/metrics":"^0.10.3-alpha.35+2ee9f1a","@opentelemetry/tracing":"^0.10.3-alpha.35+2ee9f1a","@opentelemetry/resources":"^0.10.3-alpha.35+2ee9f1a","@opentelemetry/exporter-collector":"^0.10.3-alpha.35+2ee9f1a"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cpx":"1.5.0","gts":"2.0.2","nyc":"15.1.0","mocha":"7.2.0","sinon":"9.0.3","rimraf":"3.0.2","codecov":"3.7.2","ts-node":"8.10.2","ts-mocha":"7.0.0","ts-loader":"8.0.2","typescript":"3.9.7","@babel/core":"7.11.1","@types/node":"14.0.27","@types/mocha":"8.0.2","@types/sinon":"9.0.4"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.10.3-alpha.35_1598309148690_0.46715131624612893","host":"s3://npm-registry-packages"}},"0.10.3-alpha.40":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.10.3-alpha.40","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.10.3-alpha.40","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"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"4bc74193660e0d8769db3aa2c51ddd17466fe1e8","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.10.3-alpha.40.tgz","fileCount":24,"integrity":"sha512-95dVsjDhGABMoI+jCVMWjv+XgvKw9SlKql27Vc/kQviXN0xybyGKCU0YwsCcCZMryQo10mq4Nwvw7Tl5SE6baw==","signatures":[{"sig":"MEYCIQCQ6tIKJRZUzVFjxilb4wGomhA27gX1h8+9d+s896S1lgIhAKbmBytqYzl0o5AqgaMgyyR1ok1T/hIJmESGKi3QsAaa","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":42303,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfR8H9CRA9TVsSAnZWagAAKT4QAICUVecE0Xg/3GJ1J9P0\nekapSDDVkkkUaKC1OU4ZUwe8r76ZgOaFLE76F+zfRiz0x4zu39W04SbMfJ6M\nbPgBmF2YU+LT6GgaE3Ytwhf3RRX4/xjAtnXXvAr3b9rucIsbqspeZNjhri8L\nohtWwF9/NIl2OWmP6Rc1ozoLVGmeQb3xYCt1aMd4SWIvq7CnXzl19F0v8zpx\nfDP0a52JAXuJCk+Brg7wScUUeoSkoNV05W2yU1nbFhqnMVHUM1Iih7c4tGD1\n82yNl110kc4FCdnTNpzvN2Yxa+1JetOE37tOvlvaSq2ATH4rIVt+KS6F5yGz\nwd94c0jUsDtDDm/Aa8f1AtoWRa5YMpkLb97+CfcxVbceOzJNF3sx8orhciDO\nzU2Cjii3Mah81+HzsRSeHqQ//1St+HCHlPt1NJf47T+2IQL8mYzovIERNcQU\n7ejngkwcavpSGKUxzOsOR5Yb9NaBW9cdYR6vJocfwGW1NQ9HduM13vfzZl+W\nyIUcwGLiBJe5jj0lRWcsqvcRix2lEzKkRNhW7lPbRVggTTGLDkro3AX7RnYA\niMUYEmEeI0kIL0SEvpZlYoWTAjOyb4o2SA3I1tdfabLlWayvMVUyXFQtiOcq\nzeHCpaRi+BsLAsIC4CL4jRQAQqfd69QG7ZcI4vHEFbDOtKdWISmpWcGkQFio\nlv8p\r\n=c4Pl\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry Collector Exporter for node with grpc\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-grpc\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-grpc');\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-grpc');\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-grpc');\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## Metrics in Node - GRPC\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-grpc');\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-grpc\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc\n[devDependencies-image]: https://david-dm.org/open-telemetry/opentelemetry-js/dev-status.svg?path=packages/opentelemetry-exporter-collector-grpc\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/exporter-collector-grpc\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fexporter-collector-grpc.svg\n[opentelemetry-collector-url]: https://github.com/open-telemetry/opentelemetry-collector\n","engines":{"node":">=8.0.0"},"gitHead":"2052a245bce0d7a6ddc273cb3657bed5d3d21dc4","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.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 protos/opentelemetry/**/*.* build/protos/opentelemetry","version:update":"node ../../scripts/version-update.js"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.8.0+x64 (linux)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.8.0","dependencies":{"grpc":"^1.24.2","@grpc/proto-loader":"^0.5.4","@opentelemetry/api":"^0.10.2","@opentelemetry/core":"^0.10.3-alpha.40+2052a24","@opentelemetry/metrics":"^0.10.3-alpha.40+2052a24","@opentelemetry/tracing":"^0.10.3-alpha.40+2052a24","@opentelemetry/resources":"^0.10.3-alpha.40+2052a24","@opentelemetry/exporter-collector":"^0.10.3-alpha.40+2052a24"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cpx":"1.5.0","gts":"2.0.2","nyc":"15.1.0","mocha":"7.2.0","sinon":"9.0.3","rimraf":"3.0.2","codecov":"3.7.2","ts-node":"8.10.2","ts-mocha":"7.0.0","ts-loader":"8.0.2","typescript":"3.9.7","@babel/core":"7.11.1","@types/node":"14.0.27","@types/mocha":"8.0.2","@types/sinon":"9.0.4"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.10.3-alpha.40_1598538237373_0.6391722345425739","host":"s3://npm-registry-packages"}},"0.10.3-alpha.41":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.10.3-alpha.41","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.10.3-alpha.41","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"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"cb160ac18ddd0b5fbf6f84f18dfdb1369e6b4daa","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.10.3-alpha.41.tgz","fileCount":24,"integrity":"sha512-K1l6cPhOoGyZxBPArJ/522N1QzzQDUe4tKFX548XWKelIfRDYb1SryRXPJe2uwKBxPRlK6GieD5FWo4qEkUfUg==","signatures":[{"sig":"MEUCIGgc0O33cVThLcXpQ6/IUEt8LlcOjLc2bWzS35UCt7CNAiEA3rFeWcEbevN9EtI+F0a6wpjPb37tDbtpj6iaZNo57J8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":42320,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfR9qqCRA9TVsSAnZWagAAQr4P/0ppWXxPDWa5hZaoyTYq\n8CBwOZU7T/WlOzf+ld1rFmzdKxF3jO+WzTlpyAIafnbQxk8XoMQJOifrAAUb\nlc4YaPkKOAGGr2DbGwdtfUQbAsPmCVXU9Zxmb9Ogli8a0n+5VN08Zh5x9NWU\ngAnKVdvUx7fSfmv04YR9X/AEfv9lzCmyGoRxx5xjaScj8EMIelKIE+8yEk7J\nKiNSWZEQXMmci8Os+s8HVeQdCSImHVrRbsvB8WsaKxpGrOx/LWWeB6p5W0J0\nRp6e+ZtdzNuRlYDre6hveFyj6FytmwE54NK7Sf5wK3g5N3K6nQv7CahoDWiP\n/77zJsEQ+r4pdAR86vhIg3N/aciVPhwUW3eEAM//mwbaubVL5vEd5iCzPPGf\nnUnWfe7yc8aMAe6F2qRNyQiW/yW8hhgR+/BAXrdACsgiZoMWuotX9vQyqtkQ\ndcxrgUaTjV1MnICGp3KQ21cqp0H2WdDAeu7TWHN8pUoOtVz1tlEcXO1fvvQA\nRb2yc15m8fiVEZ8Ms+ek5oPITrWieagj5qbiww1oab6Ki3Mag2RFG2KISuy0\nssBmNrmy6vNTmIJ8aJaK/6jN7sJaBcRBwMl6axGT43CpjA9cBQMYI98QbrPP\nUWfXm8lnnRG8p91fNzgefC44OQF+R7oZRRHnBXJAHHCRwVVrph3qNOYz79GZ\nE6dV\r\n=93Io\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry Collector Exporter for node with grpc\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-grpc\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-grpc');\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-grpc');\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-grpc');\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## Metrics in Node - GRPC\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-grpc');\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-grpc\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc\n[devDependencies-image]: https://david-dm.org/open-telemetry/opentelemetry-js/dev-status.svg?path=packages/opentelemetry-exporter-collector-grpc\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/exporter-collector-grpc\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fexporter-collector-grpc.svg\n[opentelemetry-collector-url]: https://github.com/open-telemetry/opentelemetry-collector\n","engines":{"node":">=8.0.0"},"gitHead":"5c7753fe6534a34f0f4eaf653d53f8c002ee299d","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.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 protos/opentelemetry/**/*.* build/protos/opentelemetry","version:update":"node ../../scripts/version-update.js"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.8.0+x64 (linux)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.8.0","dependencies":{"grpc":"^1.24.2","@grpc/proto-loader":"^0.5.4","@opentelemetry/api":"^0.10.3-alpha.41+5c7753f","@opentelemetry/core":"^0.10.3-alpha.41+5c7753f","@opentelemetry/metrics":"^0.10.3-alpha.41+5c7753f","@opentelemetry/tracing":"^0.10.3-alpha.41+5c7753f","@opentelemetry/resources":"^0.10.3-alpha.41+5c7753f","@opentelemetry/exporter-collector":"^0.10.3-alpha.41+5c7753f"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cpx":"1.5.0","gts":"2.0.2","nyc":"15.1.0","mocha":"7.2.0","sinon":"9.0.3","rimraf":"3.0.2","codecov":"3.7.2","ts-node":"8.10.2","ts-mocha":"7.0.0","ts-loader":"8.0.2","typescript":"3.9.7","@babel/core":"7.11.1","@types/node":"14.0.27","@types/mocha":"8.0.2","@types/sinon":"9.0.4"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.10.3-alpha.41_1598544554056_0.430878419075289","host":"s3://npm-registry-packages"}},"0.11.1-alpha.48":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.11.1-alpha.48","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.11.1-alpha.48","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"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"65d9d60149d89559eb83f8fb8b59bfe84ac77250","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.11.1-alpha.48.tgz","fileCount":24,"integrity":"sha512-zoFxOQljFKC40Ubozj6/rIGdLkFIdk9PS+BhB2CTWYUARE+U3V3rpGNe4XSi6J8GaStAfQ4+AoQF2mrLJ9x4MQ==","signatures":[{"sig":"MEYCIQDoWGOWQuq9ESNOjsmum7WwRZ7CuoQIgTiGWYTgnS4XeQIhAIYYIVpvFdtTr1jUiN8m7PCoFIs5GmGoEYs0UXFtP9n8","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":42320,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfTqABCRA9TVsSAnZWagAAfH8QAJLmuQ5gd+gPgmTTbmgn\ne6VffFzGPH4h4JLuJpNLGjjFrLpEowgyphcd1qTjaS88xxlpHrkBkQ0L71iY\n+HxHI6WPvfVn9BwED4gYoVEMsor+YB1pv15g/PQd3XUp9DVMSEKhebBpeufO\nsNVD31DJf1LRcEsaGMF7L7FKXoluTK9N4NQs89tHEjHJUw+M9ZPCDPuhvdqr\n0YHpmyXSVt401zes13RAQ4p4a8fCkh/7rh6PGSzva9jJ8WhLRdR+qZ873qYM\nd9fFM7ADpXhN+WxgYc/aQ3RbtIElsmrQb3wR1luzHx8+PEbwLZaaJj1lSoX5\nFgs+VJ0YijUX1pILFu0u919n6BDKzJPzyEjcYVxinveeBVJ5wBTEYpQlc+/q\nCTANr+2+a/w+jzsCrwXaqHJJeSoOUAuwxqdgEIXZAUMrcjknT9y82HcWX0Nv\nrwmGnnCeku6vbLEvMS0wDok+OLkkHWt9/m4+NIPkaLPrZpXyLF4qm2w8D0a0\nmUlfmh7KeLM/6I7jcXF+oL+nPWSI4QquIh8h+roG4Z466DuobwpHF5VId4Sy\nQcyPwq/PP4Atu3cbt0XXrg8e0/dpxk4uqCQ2E/iuuAF3BOvRkEFKuNxk9pMW\n0m7bkWhvRk+CqMe/cvJXoaZA0TP0anel8muhcG/FS0Easw1TmLUPD1AwhDnu\niMTV\r\n=hqGY\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry Collector Exporter for node with grpc\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-grpc\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-grpc');\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-grpc');\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-grpc');\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## Metrics in Node - GRPC\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-grpc');\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-grpc\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc\n[devDependencies-image]: https://david-dm.org/open-telemetry/opentelemetry-js/dev-status.svg?path=packages/opentelemetry-exporter-collector-grpc\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/exporter-collector-grpc\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fexporter-collector-grpc.svg\n[opentelemetry-collector-url]: https://github.com/open-telemetry/opentelemetry-collector\n","engines":{"node":">=8.0.0"},"gitHead":"15174c6647ab9863dfc1424412fa60f2fddb3351","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.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 protos/opentelemetry/**/*.* build/protos/opentelemetry","version:update":"node ../../scripts/version-update.js"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.8.0+x64 (linux)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.8.0","dependencies":{"grpc":"^1.24.2","@grpc/proto-loader":"^0.5.4","@opentelemetry/api":"^0.11.1-alpha.48+15174c6","@opentelemetry/core":"^0.11.1-alpha.48+15174c6","@opentelemetry/metrics":"^0.11.1-alpha.48+15174c6","@opentelemetry/tracing":"^0.11.1-alpha.48+15174c6","@opentelemetry/resources":"^0.11.1-alpha.48+15174c6","@opentelemetry/exporter-collector":"^0.11.1-alpha.48+15174c6"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cpx":"1.5.0","gts":"2.0.2","nyc":"15.1.0","mocha":"7.2.0","sinon":"9.0.3","rimraf":"3.0.2","codecov":"3.7.2","ts-node":"8.10.2","ts-mocha":"7.0.0","ts-loader":"8.0.2","typescript":"3.9.7","@babel/core":"7.11.1","@types/node":"14.0.27","@types/mocha":"8.0.2","@types/sinon":"9.0.4"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.11.1-alpha.48_1598988288719_0.7731598782498412","host":"s3://npm-registry-packages"}},"0.11.0":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.11.0","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.11.0","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"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"2a8ecff09dfeee38df243ce290f38fbca0d62a0e","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.11.0.tgz","fileCount":24,"integrity":"sha512-BCJZveZi461Hv/Lc0+jzc/K9raybm7i1XtHaHEHmNY4Rzcv+6+wQ+BWJhk4T5MbpBTOP5bVjY1E+LWh7QeGs4A==","signatures":[{"sig":"MEQCIHVWJncJoNz0bD0DIT5rJVDCZWeITv7bCXgflcLcpUcuAiAqMNDwBdglQos+ZDQoNFqszqw20pIaPBfK56b8l1cBKw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":42165,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfTqHdCRA9TVsSAnZWagAAfvsP/2c9Q5ts7Nhec3SIMaqm\nRHZ3Y8lzqJLumEp6BTQSPr8yE2MOTUfMbqbcVM6KcXv7AsRHV8MRi1Rmujgh\nNPwRQ1xeSbkp+S2DXGE9l0lEc7lMKW06kUKvjfOjGe7R9C+HJau1TuNETLPu\nrYGf5pW98iRT1In7oroLrsavfSePkbihvlZRt4PKqs6dRwhc5S4Km9w19rkT\nq/YA/d5PvKv+6oeuz+LxrIE9U/ZSvW3o33EvnvfqZw3EUOvJBxuq10TvLYpD\ndlOjYS3NkXgxcIb84AaedzFgcLSmbyyAWmftJfL+NlypSgv1pp6vLsroyAPr\nUzVRibuWCCvprGMGxjvP/IY8XUYG4zIiUfy6tNQhbG9BQgaekUmOM4K6L0UC\nFPsF9OAVFvkZFh0OosULVXZFwBENgHQxa8kmz8FAcuGeumqzTsJNlsZqeUCw\naBHMN4F6bQnigU4jC2eFgJkXbyd4vT7z3OxBMamvhD1DfZJeL3kVToaD3KUo\nWTPoFaQGtYonKu8odAerxl7Lzep6rHRiXcx7r6pGqFqx2QpdEqBzq7jXSowQ\nwqVSqim6z6mnYl2lpoJPV7HnxFUyHp5E/Jw8wdWrJcYxe85G6Sp1wC6+8zDA\nMFhA8z8l7ruFttdkkaA119lOpHLw5ESSlKgDGwFgv+2TGgA3OCT/VAhBYyZ4\nErgh\r\n=D7PD\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","engines":{"node":">=8.0.0"},"gitHead":"15174c6647ab9863dfc1424412fa60f2fddb3351","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.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 protos/opentelemetry/**/*.* build/protos/opentelemetry","version:update":"node ../../scripts/version-update.js"},"_npmUser":{"name":"obecny","email":"bobecny@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.4.0+x64 (darwin)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.4.0","dependencies":{"grpc":"^1.24.2","@grpc/proto-loader":"^0.5.4","@opentelemetry/api":"^0.11.0","@opentelemetry/core":"^0.11.0","@opentelemetry/metrics":"^0.11.0","@opentelemetry/tracing":"^0.11.0","@opentelemetry/resources":"^0.11.0","@opentelemetry/exporter-collector":"^0.11.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"cpx":"1.5.0","gts":"2.0.2","nyc":"15.1.0","mocha":"7.2.0","sinon":"9.0.3","rimraf":"3.0.2","codecov":"3.7.2","ts-node":"8.10.2","ts-mocha":"7.0.0","ts-loader":"8.0.2","typescript":"3.9.7","@babel/core":"7.11.1","@types/node":"14.0.27","@types/mocha":"8.0.2","@types/sinon":"9.0.4"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.11.0_1598988764870_0.4455810257048063","host":"s3://npm-registry-packages"}},"0.11.1-alpha.13":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.11.1-alpha.13","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.11.1-alpha.13","maintainers":[{"name":"obecny","email":"bobecny@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"mayurkale22","email":"mayurkale22@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"4b44fb77969322cbb13bb3dec7d159c0c3f65e20","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.11.1-alpha.13.tgz","fileCount":32,"integrity":"sha512-sipC4RDd4Sinn3I0XctZfUExX2cW48SSELCOaffU4Am1hh5UmH57OdIUYhqfDNhUYQ1qNlMMe+14rE2EhehJGw==","signatures":[{"sig":"MEUCIQCdd0HFEvCguD/mGeo0ORZ70c0p54pv9F42iAZmjjoe7QIgeQTir0FlGo1H6TXNveLTAwl1Dmx7waPW6552JQTSZPg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":84794,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfaB1BCRA9TVsSAnZWagAAPRgP/jWHIgcHZ8ezFt0HsZT2\n9ZkBA71VGnNCdoiqMaHYQSu80aeEzCwYyAlaVK6gZAI74bB0Vrw8I2nm3hOY\nQjjtm5r8+W++RsZdTziag+pWHBWxVpF4crcoKOlHDk8E5H9O5C5bAVr+yst+\nDt9PWCdRV85upkEa2JBFPP/l4RzPuouR1ahBRWvJQsSoIN79zeu1vvNiA9F1\nty/MES+yaK4eqf3i30RIKIYQlSuDqdxPGzG81m0deYyeyuFA90Du/e52vePE\nWJylZ8+CHsgMDiLkvymno4uhahTkqP0zQxkFd/KJXpJBrQjlyPusk+1i8yTC\n3fDv8usLY7kkLdtAK9mmcBB2hAhtAasudduobPdP6S5jBgJXZNNmO69S7SAD\nb0BZ4cE0y3ZGzmg/dPUbfkgI3B0S+PIvK5OJrEIQhU/7P7FfG+Tni6Hr5CNY\nNdt3I3/gEH9QdR/8cFyVVvIWt4q5C7RI2/9NfNC1aR965XPZ7dB3z0F1QEX1\nW1cN552RbUtDIRt2Pq7yG2zLNI/dPd2P1/PItlS0Cv91E4fK7LYbuiPDWdUh\nbomUJd2bBV0OPaGKNgM+7uS8EdGH6EH93Jp1nCmayqCgvIS12jnL/Bwic0MA\n/ecmPa4r0NsVCvqwcmvfbBFUV9zLgrIfcoR10TQuUy/61QbOGv6sz3gR3pl/\n2Cy3\r\n=G2pI\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry Collector Exporter for node with grpc\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-grpc\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-grpc');\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-grpc');\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-grpc');\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## Metrics in Node - GRPC\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-grpc');\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-grpc\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc\n[devDependencies-image]: https://david-dm.org/open-telemetry/opentelemetry-js/dev-status.svg?path=packages/opentelemetry-exporter-collector-grpc\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/exporter-collector-grpc\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fexporter-collector-grpc.svg\n[opentelemetry-collector-url]: https://github.com/open-telemetry/opentelemetry-collector\n","engines":{"node":">=8.0.0"},"gitHead":"56e3098d8eef217f5cd747ad67b9ada9f5f4179d","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.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 protos/opentelemetry/**/*.* build/protos/opentelemetry","version:update":"node ../../scripts/version-update.js"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.10.1+x64 (linux)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.10.1","dependencies":{"grpc":"^1.24.2","@grpc/proto-loader":"^0.5.4","@opentelemetry/api":"^0.11.0","@opentelemetry/core":"^0.11.0","@opentelemetry/metrics":"^0.11.0","@opentelemetry/tracing":"^0.11.0","@opentelemetry/resources":"^0.11.0","@opentelemetry/exporter-collector":"^0.11.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cpx":"1.5.0","gts":"2.0.2","nyc":"15.1.0","mocha":"7.2.0","sinon":"9.0.3","rimraf":"3.0.2","codecov":"3.7.2","ts-node":"8.10.2","ts-mocha":"7.0.0","ts-loader":"8.0.2","typescript":"3.9.7","@babel/core":"7.11.1","@types/node":"14.0.27","@types/mocha":"8.0.2","@types/sinon":"9.0.4"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.11.1-alpha.13_1600658752524_0.05116214135276098","host":"s3://npm-registry-packages"}},"0.11.1-alpha.15":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.11.1-alpha.15","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.11.1-alpha.15","maintainers":[{"name":"obecny","email":"bobecny@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"mayurkale22","email":"mayurkale22@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"e977400a970658ac03a6e8d5e77c0f81669a3f08","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.11.1-alpha.15.tgz","fileCount":32,"integrity":"sha512-AJaVVVaHI1vktQjzI7rg9BHr+07b11nKRCIDejylE40Kz98XZNU3Nt2zJ0yaDeRgYAJxuqHpyTjEq4QzKaupCA==","signatures":[{"sig":"MEQCICUgX7t//4XPSrq+GCmXCUM36e4L9gZlCqOI9NOY0MkSAiAr/AbHfNLhCE8QdsOWcMSNJgk3OJwRQdR3iiMfHPfnnA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":84896,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfaB5dCRA9TVsSAnZWagAAJVcP/jU890MyWYpDLYDmBrza\neLsosbHFscl3aWdEy7TgU1bdQ5M81WukKwzjZsXbAM/0G07mWGejsKsNciC9\nsqODFpjTvPwnASxYFvT6RJE7Z2xcYy5bJqmMsUdvIszUG82iZsl77wDAc/wQ\n7kD3ab/I/H+OFBsVfYUa+2CYTCsyC7HB/HnrUAZBue5h9MXsYqQCx/+ThHkG\nfTzYeQiDZC0vrpvdibyGUizhi6jsNUTvlOxT/git8TbSqYV/gUILeGp+UpVA\n9nj6YSagyBjQFhS+c/cMe9XLs6qgH9JBrpPB30azDwnJPWBKuQxU/Mt+ro2t\n08njBMO+YTLWtbhw3t+tXdMZzkVectSMDjZBb5f0UwtPZ9tr/JyUkpezWXH5\n8gO1hcxbp2d2v0rby5aUCAgAAshD5LIEqIZB2bnIrLNlSeP0COv3XePCETzP\nByKVXa+Q82+A0QBn38He/bk1S0HVg5LyxJMcY7pATSPVU4Z/cDYhIdGeumDP\nY0qknH9jvWnOjHb7OeWtKYb7qnaOSgQddKRtdRAbh6Rou74fQKABetoKc72+\nEPbJevsEDm4ZW3Qf8Q10CZLr1FEp8D0LwpnU/PKnhDycZNQ4NZ+qeFxJPnjs\n+eJGczHXUVxjSWT8nMWfRaVki6UN9N9nk/d2x3gGed0CDRn8D1opWE5QYjGx\nUmwO\r\n=Fo/f\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry Collector Exporter for node with grpc\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-grpc\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-grpc');\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-grpc');\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-grpc');\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## Metrics in Node - GRPC\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-grpc');\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-grpc\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc\n[devDependencies-image]: https://david-dm.org/open-telemetry/opentelemetry-js/dev-status.svg?path=packages/opentelemetry-exporter-collector-grpc\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/exporter-collector-grpc\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fexporter-collector-grpc.svg\n[opentelemetry-collector-url]: https://github.com/open-telemetry/opentelemetry-collector\n","engines":{"node":">=8.0.0"},"gitHead":"e170039015e8a1a7419bb835a00659b2a734b8a6","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.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 protos/opentelemetry/**/*.* build/protos/opentelemetry","version:update":"node ../../scripts/version-update.js"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.10.1+x64 (linux)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.10.1","dependencies":{"grpc":"^1.24.2","@grpc/proto-loader":"^0.5.4","@opentelemetry/api":"^0.11.1-alpha.15+e170039","@opentelemetry/core":"^0.11.1-alpha.15+e170039","@opentelemetry/metrics":"^0.11.1-alpha.15+e170039","@opentelemetry/tracing":"^0.11.1-alpha.15+e170039","@opentelemetry/resources":"^0.11.1-alpha.15+e170039","@opentelemetry/exporter-collector":"^0.11.1-alpha.15+e170039"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cpx":"1.5.0","gts":"2.0.2","nyc":"15.1.0","mocha":"7.2.0","sinon":"9.0.3","rimraf":"3.0.2","codecov":"3.7.2","ts-node":"8.10.2","ts-mocha":"7.0.0","ts-loader":"8.0.2","typescript":"3.9.7","@babel/core":"7.11.1","@types/node":"14.0.27","@types/mocha":"8.0.2","@types/sinon":"9.0.4"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.11.1-alpha.15_1600659036788_0.9074540892243048","host":"s3://npm-registry-packages"}},"0.11.1-alpha.35":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.11.1-alpha.35","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.11.1-alpha.35","maintainers":[{"name":"obecny","email":"bobecny@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"mayurkale22","email":"mayurkale22@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"c156a0afab9180aa6d0bbc88ef317c18bf7ff022","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.11.1-alpha.35.tgz","fileCount":32,"integrity":"sha512-1Ct2XFDn5UN86BH78AH6fVePlta4vrPC5vM27u4+X8hhbzBvQaD8mfHB4q9bXKZHbmp2CYtMddn6LytLrMKD5w==","signatures":[{"sig":"MEQCIH/57yodkU3cfHsG6umBqJKpevJCQXgSamZzm08ANAuEAiBj3hGAPTsGJEvqQaVGZESTa1AodWhtdS1TZ/AOMj92jA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":84905,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfdHiTCRA9TVsSAnZWagAAN3sP/3X+RVs3WLE3xGqOR+aj\n4dit+gJjSG3M1HaMfS5YJ7HJOdf1RFxgzgvwiZxieEmEIZUwKhW8Df+pFPy1\nNHHsxENOVsfiTeChkr2knnEG/eG9tZPCISm2Bxjnb1/8oX3EdRs78G57VDad\nwESx2oB3QooONlWQorcxupl01/5+mrTWzb9fUI6LqWGL4gPIcpQFdL2VOPqf\nTAKzNdjWjmu3qNVndH1QS4Xpx5VPRETOWwFU1/DCR9QJdZuy3MrdwOVdBBGn\nNaowQDo8std0STqXrQ4K1uVubmyPtCKD3E0MJ2p5JJkihOik3AzsOmbd800h\n/iqi2IkvyWK3WyDf6lqgrVAkaZ4oapbZ85aBRFCd4Rn7Uraw+SDIQPc2Sa03\ntgTHRu4/wDYSlrRmXzTx1NE95Vy7+PR5t91Kzn43IuzyhwUY8MLIHKkkmdkJ\ndhlQv/oV0hTQwA5LLUIbxlJbdPzrqsChHTAAXhYqY2beGE9ap102AIdSM85X\nqDIAj5LQoFAKz9glT18Q6Ly8XfQid5mQFf6LxUOHHwhYh7yPEHn05wgtSnTT\nQe2Li5LGjszfs6OHnrd+UsIF6Zk1dl/Lh2GERcemBFLguqq0/BdeGWB12CGV\noWXcrVBNWN5F135uQFRMblxUng+vJ5pNZylOjVS+RSVqxXyMnKrcAEpOiSKb\nQwhy\r\n=L+dg\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry Collector Exporter for node with grpc\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-grpc\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-grpc');\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-grpc');\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-grpc');\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## Metrics in Node - GRPC\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-grpc');\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-grpc\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc\n[devDependencies-image]: https://david-dm.org/open-telemetry/opentelemetry-js/dev-status.svg?path=packages/opentelemetry-exporter-collector-grpc\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/exporter-collector-grpc\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fexporter-collector-grpc.svg\n[opentelemetry-collector-url]: https://github.com/open-telemetry/opentelemetry-collector\n","engines":{"node":">=8.0.0"},"gitHead":"c6c993bb16c58ba907337a5667da01b3c248e350","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.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 protos/opentelemetry/**/*.* build/protos/opentelemetry","version:update":"node ../../scripts/version-update.js"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.11.0+x64 (linux)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.11.0","dependencies":{"grpc":"^1.24.2","@grpc/proto-loader":"^0.5.4","@opentelemetry/api":"^0.11.1-alpha.35+c6c993bb","@opentelemetry/core":"^0.11.1-alpha.35+c6c993bb","@opentelemetry/metrics":"^0.11.1-alpha.35+c6c993bb","@opentelemetry/tracing":"^0.11.1-alpha.35+c6c993bb","@opentelemetry/resources":"^0.11.1-alpha.35+c6c993bb","@opentelemetry/exporter-collector":"^0.11.1-alpha.35+c6c993bb"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cpx":"1.5.0","gts":"2.0.2","nyc":"15.1.0","mocha":"7.2.0","sinon":"9.0.3","rimraf":"3.0.2","codecov":"3.7.2","ts-node":"8.10.2","ts-mocha":"7.0.0","ts-loader":"8.0.2","typescript":"3.9.7","@babel/core":"7.11.1","@types/node":"14.0.27","@types/mocha":"8.0.2","@types/sinon":"9.0.4"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.11.1-alpha.35_1601468562478_0.5790714021101764","host":"s3://npm-registry-packages"}},"0.11.1-alpha.36":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.11.1-alpha.36","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.11.1-alpha.36","maintainers":[{"name":"obecny","email":"bobecny@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"mayurkale22","email":"mayurkale22@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"8abe074ee9ae04a3a92ae60660736000673b93ca","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.11.1-alpha.36.tgz","fileCount":32,"integrity":"sha512-e0NS+TqGTRtabJLlG2PFmWgHHoR91+dVvo6hBHOqZQc71mub2GQPWWtRGc8ayo+GRzwouoKsLcaR9ephKRkjFA==","signatures":[{"sig":"MEUCIE3ej6Qcll3Uhk55XnKWQjEBTh0njhr3MWJwLV0KWSJJAiEA3Dm+gn28Wgdh8mC9GyhXKKoResVHQ8SnfQya6bFAxeY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":84904,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfdHx9CRA9TVsSAnZWagAANggP/ijlhJ1tZq0jjtvhiD/M\nmPTp6QoUiNWCj9btUg1k+8zh/C3HDbVbaF897zri9T2ErqurlDOJgKiD3Kdm\nI18Rv2/Y9w1gAeRaQRH6bN6htgfdC1pyjnHmMO2eQ/Dg6RzWR2kZ8kVMeM1W\nCUn44FaL95GfRLFvBchUHlVW2mwV06Qz5nH7NgXM+cYj9cpaSW+pmQQBjR9t\n2I5pqZz26itSHXBTd3WewJCeyWarcB/f+kvghqNvUp2zcb9fHIgF+2Xs7EbU\nMmpiq2u0nDPouOKmKVbzbVKfvl+gS7xLBPiGWyy4ILf2TCm5Wd/v8i5cTHBS\nMUbJE3zFmYdp4bsj/1UsBLrD3FkBb9p0TBOHuZdQiBXDqHgWDJEKCZ4KGqn1\nBEMvIqD3YB8hcMU8LkrVnnnUhoqwK8R7d9AY6XZ8dAFHcUF4Tsow3I4ibs29\nwLUBws6RkkRBeGUKCSwqc4AWu4JMNs9KIMWY2JTQp2bRbucMlfiVr/C8kgpB\n1mLJaeTQ1sNwmhC0AdYm92/Eq3D250xUhpuNyGBpKJCvPBrW3HeUS7Rz5SaW\nQQCzefR4CV/rUgmDHXebI/klcwpARkL2+fnHb6iOFcVvC9XrUAvP0JTGIMbp\nkjU8yXv1DIvN1UCzswV3j6jzjwosOMqLOtO8gmK+LyHd6C2jBdZfoDs/N6/W\nWzhV\r\n=2n6i\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry Collector Exporter for node with grpc\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-grpc\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-grpc');\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-grpc');\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-grpc');\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## Metrics in Node - GRPC\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-grpc');\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-grpc\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc\n[devDependencies-image]: https://david-dm.org/open-telemetry/opentelemetry-js/dev-status.svg?path=packages/opentelemetry-exporter-collector-grpc\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/exporter-collector-grpc\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fexporter-collector-grpc.svg\n[opentelemetry-collector-url]: https://github.com/open-telemetry/opentelemetry-collector\n","engines":{"node":">=8.0.0"},"gitHead":"6eb157c66925fe84b4960f247a86678441f3cb60","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.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 protos/opentelemetry/**/*.* build/protos/opentelemetry","version:update":"node ../../scripts/version-update.js"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.11.0+x64 (linux)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.11.0","dependencies":{"grpc":"^1.24.2","@grpc/proto-loader":"^0.5.4","@opentelemetry/api":"^0.11.1-alpha.36+6eb157c6","@opentelemetry/core":"^0.11.1-alpha.36+6eb157c6","@opentelemetry/metrics":"^0.11.1-alpha.36+6eb157c6","@opentelemetry/tracing":"^0.11.1-alpha.36+6eb157c6","@opentelemetry/resources":"^0.11.1-alpha.36+6eb157c6","@opentelemetry/exporter-collector":"^0.11.1-alpha.36+6eb157c6"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cpx":"1.5.0","gts":"2.0.2","nyc":"15.1.0","mocha":"7.2.0","sinon":"9.0.3","rimraf":"3.0.2","codecov":"3.7.2","ts-node":"9.0.0","ts-mocha":"7.0.0","ts-loader":"8.0.2","typescript":"3.9.7","@babel/core":"7.11.1","@types/node":"14.0.27","@types/mocha":"8.0.2","@types/sinon":"9.0.4"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.11.1-alpha.36_1601469565440_0.3991789400711472","host":"s3://npm-registry-packages"}},"0.11.1-alpha.44":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.11.1-alpha.44","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.11.1-alpha.44","maintainers":[{"name":"obecny","email":"bobecny@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"mayurkale22","email":"mayurkale22@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"9fafc58c1c20549f94cfbb18f71d53e7adc529df","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.11.1-alpha.44.tgz","fileCount":32,"integrity":"sha512-6CUj+9Sk2c5W61jh2rtjudV1I6IhMp7oUXZLwG7mku0kZGNeL9icPGM5GmNjOB3Y0IOifMoinO78DoShMXXv+g==","signatures":[{"sig":"MEUCIQCrtD1ZKUjtmzuhTDG94EEdtrVpWM15zc38LHoM+JNvaQIgUEdZ97XHgoQwGlyIJeWIHBijtOby/ugQ/LymSMhTjg4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":84904,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJffh01CRA9TVsSAnZWagAAV0cQAJZ1dFiz1BLSLkrzJ/By\ngcw4SqffoDWXDTKKxwFkHkKNULcLP7VCxP7UAS9mF7fVxZFZfvst9Nnup83E\nryTdekV84oD/CaVKh5VAXjtnmMhuUCv4HvVAReypTSwXFRwvYi5FhshZfRh7\nRqKLgdG1xVuBu8csr8nK6xoG5RJ+/fH/Qe5d558fxC4/2OCZmEca+oDnEORO\nQJxfQQ6PGWb44E+aHbqxZnlVqiAOxTKdIPDnhzqkv3CW5JvkT+l5Yz57gsAU\nU/hhHUy3DvVi6G6nMxh7nJpRQBlMrIWgEU6FbADxJZ0KRjY9daOsb2V++Nx/\ny/YanVdp6BBJX1okyEj786zkwsHUxm9yMTTLCzPo0CTW5eiUsGPFXr9qUSUC\nkChFH3Olj4eL3g+IyUrWKUBiOWebGUO5f/YkUlps07g98J4RSr0LzK+meR9s\nKb/lQEuhkQoFlHj2U+VzGxRW5gqcacEx8BJyG7p0BSunTtGLyAXN8gv3TTNi\nKu45TJf3hdx78NmoHoEOZMZCicysHIELUO8YpPO2H0ig0PwbILlOLd1TRMUu\nH7XsC1HVxkdq4On+DtdjBKhHGV/8v7S8O6jOLx6v4r4B0uZIrt+O3l6yR3WB\nJ5aJJJ2tPxlD9AwUbVNKwWjC+dwIW+dYfXO8yXWuAD8h4sApkixB8+me6yeJ\nPWCW\r\n=n34r\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry Collector Exporter for node with grpc\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-grpc\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-grpc');\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-grpc');\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-grpc');\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## Metrics in Node - GRPC\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-grpc');\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-grpc\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc\n[devDependencies-image]: https://david-dm.org/open-telemetry/opentelemetry-js/dev-status.svg?path=packages/opentelemetry-exporter-collector-grpc\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/exporter-collector-grpc\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fexporter-collector-grpc.svg\n[opentelemetry-collector-url]: https://github.com/open-telemetry/opentelemetry-collector\n","engines":{"node":">=8.0.0"},"gitHead":"240f852cc41707c751f28811b7ce3d243382e3dd","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.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 protos/opentelemetry/**/*.* build/protos/opentelemetry","version:update":"node ../../scripts/version-update.js"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.11.0+x64 (linux)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.11.0","dependencies":{"grpc":"^1.24.2","@grpc/proto-loader":"^0.5.4","@opentelemetry/api":"^0.11.1-alpha.44+240f852c","@opentelemetry/core":"^0.11.1-alpha.44+240f852c","@opentelemetry/metrics":"^0.11.1-alpha.44+240f852c","@opentelemetry/tracing":"^0.11.1-alpha.44+240f852c","@opentelemetry/resources":"^0.11.1-alpha.44+240f852c","@opentelemetry/exporter-collector":"^0.11.1-alpha.44+240f852c"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cpx":"1.5.0","gts":"2.0.2","nyc":"15.1.0","mocha":"7.2.0","sinon":"9.0.3","rimraf":"3.0.2","codecov":"3.7.2","ts-node":"9.0.0","ts-mocha":"7.0.0","ts-loader":"8.0.2","typescript":"3.9.7","@babel/core":"7.11.1","@types/node":"14.0.27","@types/mocha":"8.0.2","@types/sinon":"9.0.4"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.11.1-alpha.44_1602100532859_0.4595022600491685","host":"s3://npm-registry-packages"}},"0.11.1-alpha.53":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.11.1-alpha.53","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.11.1-alpha.53","maintainers":[{"name":"obecny","email":"bobecny@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"mayurkale22","email":"mayurkale22@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"3204b26fa83b5739a069ead6a73140c75716b2d7","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.11.1-alpha.53.tgz","fileCount":35,"integrity":"sha512-UEsbzGfkEEaKxBlKVr29h23/OXLd2NxjDJGHkqYooulW7LUqrahf0k2qlWZNPJSgvw4q/xY/mU/+gL1GxeYfBw==","signatures":[{"sig":"MEUCIBYUsPEVAC8skFZxrJ+3Lv42zS1Sz51anomUEmbgvBXkAiEA1rKoQNBCMEFkSqr0On6oaF9ACJQba+AUo7Qmdfk5XiI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":102501,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfjX0xCRA9TVsSAnZWagAAjRwP/14Vhp0T9hmdrgcZoWV4\nBZdGVzSvSaNtwf62lIcYtv1CKo7My/ZXkJZUvtuuSmNuHtujy9be8QVZfGCd\nnpfqqPCWxIDDhXcRNax21kr2BAaESlQ1oVRgtUKKo6jPDqhDq9ca63/Ggpvj\n1g69fztJ2Ic1Zh1yWNKjVEdOeOnTcDSplBoxYOSSFMUqhtc0aygTR119cRsT\nKXiOoDjs9Mchb+aPY8ajuJp98QBOcfJ03Q8F8T1CMHG3CUzgO56Ai0UK494b\nCsfkcx/EGMex9FzNxVQhO6+UliNiojpiw6Bl3QaiJxvN9y9HOn9sBSS9kF7e\ng0JMaz1fCuGgojMcgsOQe6s25MgUdV2/sOShN1zX5fx8GimJ9u0ovjCSEQhP\nwSnYah9yEfOnAgPm3669QzTCrB+LmT1HJWb+ai1zIkhJRN/s7h3xN8G0Zp1d\nqXXcweqm3PJ0hyTHC6O4qwuqPzMCgGMR+XsFmw9at/UeNZZ/8tkyWZaVd2t1\n/ThG7P6ZcfCObMNN3EzqlkDM5Wc5HP+0Xy6HqLQ4hgp0hIOZ3Een9WRZQGbo\nkwC8jb2/oMs6HYMeUcKxI3zkaACdH2JyqFyK8v3ADN4iOTOrPb/aMPh2r7Hh\ndptWe51Pkh9CakoDgl+65E4IUVVQs0CNPHwoh4U2Uk2Ou+mqUMEvL773Bvn4\nIOeq\r\n=35Cq\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry Collector Exporter for node with grpc\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-grpc\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-grpc');\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-grpc');\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-grpc');\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## Metrics in Node - GRPC\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-grpc');\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-grpc\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc\n[devDependencies-image]: https://david-dm.org/open-telemetry/opentelemetry-js/dev-status.svg?path=packages/opentelemetry-exporter-collector-grpc\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/exporter-collector-grpc\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fexporter-collector-grpc.svg\n[opentelemetry-collector-url]: https://github.com/open-telemetry/opentelemetry-collector\n","engines":{"node":">=8.0.0"},"gitHead":"00a8ce7f982ea24bcd4bc398477112894078ab29","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.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 protos/opentelemetry/**/*.* build/protos/opentelemetry","version:update":"node ../../scripts/version-update.js"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.13.1+x64 (linux)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.13.1","dependencies":{"grpc":"^1.24.2","@grpc/proto-loader":"^0.5.4","@opentelemetry/api":"^0.11.1-alpha.53+00a8ce7f","@opentelemetry/core":"^0.11.1-alpha.53+00a8ce7f","@opentelemetry/metrics":"^0.11.1-alpha.53+00a8ce7f","@opentelemetry/tracing":"^0.11.1-alpha.53+00a8ce7f","@opentelemetry/resources":"^0.11.1-alpha.53+00a8ce7f","@opentelemetry/exporter-collector":"^0.11.1-alpha.53+00a8ce7f"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cpx":"1.5.0","gts":"2.0.2","nyc":"15.1.0","mocha":"7.2.0","sinon":"9.0.3","rimraf":"3.0.2","codecov":"3.7.2","ts-node":"9.0.0","ts-mocha":"7.0.0","ts-loader":"8.0.2","typescript":"3.9.7","@babel/core":"7.11.1","@types/node":"14.0.27","@types/mocha":"8.0.2","@types/sinon":"9.0.4"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.11.1-alpha.53_1603108145378_0.961191239227988","host":"s3://npm-registry-packages"}},"0.12.1-alpha.54":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.12.1-alpha.54","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.12.1-alpha.54","maintainers":[{"name":"obecny","email":"bobecny@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"mayurkale22","email":"mayurkale22@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"c0e4e22552e410589055a4c4041e4865408df4e1","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.12.1-alpha.54.tgz","fileCount":35,"integrity":"sha512-ZkYQputELLLmXbH4AOHn694gnj3NLAaELqAw2LBOK3HGSeEbwpiTxgmnCFGA4otXiDt2whSHh3Seg4JPK5l8WA==","signatures":[{"sig":"MEQCIHFYV3UKFUexLrPu2h92BfUgzq0GEALn5VRZLoPVHoL/AiBVJQ1D5+CGXRlL1etWyJy/eZTP8tHmWur7Iu056RD1Gw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":102501,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfjYuZCRA9TVsSAnZWagAA6kAQAI1FQW9aPNSVId+GDq4g\nwnxU33RehPVnyEtEff+8oJSXqmG6qTgQRuXbbY5pErXfnDXqYe6Fz8wWt1b4\nzxzUlTj/Z+RlBzcVZ4DuBmR7JQwFXE/4Ncm90VHF/hFmnIGgEue3j89WgbUo\nTpRiOkEM79x3i/5uQ6y3/o+WfFDiFaMdN3TC+5iHzqrg7kaCn/EVui5WWoPG\nH5+jEn4a9MNEeSZLEY1o1xnUGlTyMO2F0EKagGkv/ieFTubg6aZluEjSYnol\nM0l5CX8Xkl+txhfKocQzR7E4KxWtdUGp+Jj3OKTZ2tkAEc59QwKASZmfpCL7\njQ8wSwsByCROBW0xMIoc6C3Gijh/Exy44bKoVleYhno9L3osohmZKUSFKo9E\nQPgdLReeDdsj0GygXVnVIjYYzaU6fyFZ0k75ccvkv2iFnFDkS/lW3bP9uhJ7\nUuajg9wG+j1MI2tULqWnsKOhzIHbV1y172IdyzvM/2e/GgUH5s3/tGlrrmjH\nMGaB3lqcFwnmp4slCVLJwNQ/7aqd23i+gq3cMDuJxEiQUMX+7DEzCST116UN\ndrIfRfBYZkR7QiucCx5rWbcqgpM+iBRDUnH2PiEliNCuldLrlpoLI5Ez45Xy\nLTVXFdkltVNjYEP4Hz9wHx7Br5T/xBnj3abq/StpVIIEeqcswsgiTNpRrIqx\nVlH1\r\n=6BuZ\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry Collector Exporter for node with grpc\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-grpc\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-grpc');\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-grpc');\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-grpc');\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## Metrics in Node - GRPC\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-grpc');\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-grpc\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc\n[devDependencies-image]: https://david-dm.org/open-telemetry/opentelemetry-js/dev-status.svg?path=packages/opentelemetry-exporter-collector-grpc\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/exporter-collector-grpc\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fexporter-collector-grpc.svg\n[opentelemetry-collector-url]: https://github.com/open-telemetry/opentelemetry-collector\n","engines":{"node":">=8.0.0"},"gitHead":"3f72613a36b6f97555a0fa7481755cf8b6cce1a7","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.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 protos/opentelemetry/**/*.* build/protos/opentelemetry","version:update":"node ../../scripts/version-update.js"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.13.1+x64 (linux)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.13.1","dependencies":{"grpc":"^1.24.2","@grpc/proto-loader":"^0.5.4","@opentelemetry/api":"^0.12.1-alpha.54+3f72613a","@opentelemetry/core":"^0.12.1-alpha.54+3f72613a","@opentelemetry/metrics":"^0.12.1-alpha.54+3f72613a","@opentelemetry/tracing":"^0.12.1-alpha.54+3f72613a","@opentelemetry/resources":"^0.12.1-alpha.54+3f72613a","@opentelemetry/exporter-collector":"^0.12.1-alpha.54+3f72613a"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cpx":"1.5.0","gts":"2.0.2","nyc":"15.1.0","mocha":"7.2.0","sinon":"9.0.3","rimraf":"3.0.2","codecov":"3.7.2","ts-node":"9.0.0","ts-mocha":"7.0.0","ts-loader":"8.0.2","typescript":"3.9.7","@babel/core":"7.11.1","@types/node":"14.0.27","@types/mocha":"8.0.2","@types/sinon":"9.0.4"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.12.1-alpha.54_1603111832911_0.3706303022069566","host":"s3://npm-registry-packages"}},"0.12.0":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.12.0","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.12.0","maintainers":[{"name":"obecny","email":"bobecny@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"mayurkale22","email":"mayurkale22@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"3c495fb2d1aca0fef7471cb08ecb828e200f5c17","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.12.0.tgz","fileCount":35,"integrity":"sha512-21xsi/vN94Lo9cfqg1H2Da3XfHrwRwEGnUkNOOX38BlUg+Jlfc/J1TDcBYOb6gtnTq2QJYHFktQjSLGAWVImfw==","signatures":[{"sig":"MEUCIEWFn6KUQ8vP+q1hL7ZmCs9anMzoKFzBBdVDsdmpRSHrAiEA2HLqAsv3GjihW/xw6knaWUHkjGtUZGyrsIdDN7u4a2Q=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":102337,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfjYxzCRA9TVsSAnZWagAAYtoQAI7BHNCmC4YBdandnv/V\n/YX3vzro3PvpEO/8AkXEgV697a9qlNrh0y6nzFEfmr12oQzAkPmaovlwdJHl\nYg6klmROUQ5X+SLFXE7pj2fFB7TF80aERKz0ueRM0iTLHkU0U0O/5I5Yr07U\nI6JKAAwrsHpooxGKaTfAm20WzvyoS7akBKlkmNqysTtSl1M0KXuQUUhJl09a\nLsbag5aQXuo2ln5wm83XsiXqmrCDk9UkvpHfOu1dOsYGLCcDyM5FyAYyXsd9\nPvUy296eD6AF7CGX7qWlD1oR1bOyanwflB4OKIFwaumOr40bBDqRdyPLfYVc\nnXRFqmAU8F9GdfB7nFksS5VavkfIcmxgGgb6/NXRXX1U+dXCfaeXnnZ0dj7F\nXm+oU0JW9gshKbJueOOMSNEUyoRTs1Iwa30e1DBSoRa888HEMmaBpUjUXAdd\niVHPm6pv7c0vUnRuhVeK9ttwCK9qWI60u2kJ/1OhDjbvgJsz/jXr8G+GzZ7+\nXFsaJhF/amstTFHTtYYFJFPixhxtjHDQhQDOsueh/82j/T7iupahSBmhOoV9\nvk/rRPICd4iCO5+1rUZZa4amzIhyX+l0ifU3HNE3L/DRK2DTHu0/T9OF4Pnc\nVxsspb0xLBHqh1gvR5PzOHDZv0ZzlyEmdIkAbEweZFQdgSsESHpCTDT3Yxsq\nteaB\r\n=75LA\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","engines":{"node":">=8.0.0"},"gitHead":"3f72613a36b6f97555a0fa7481755cf8b6cce1a7","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.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 protos/opentelemetry/**/*.* build/protos/opentelemetry","version:update":"node ../../scripts/version-update.js"},"_npmUser":{"name":"obecny","email":"bobecny@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.4.0+x64 (darwin)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.4.0","dependencies":{"grpc":"^1.24.2","@grpc/proto-loader":"^0.5.4","@opentelemetry/api":"^0.12.0","@opentelemetry/core":"^0.12.0","@opentelemetry/metrics":"^0.12.0","@opentelemetry/tracing":"^0.12.0","@opentelemetry/resources":"^0.12.0","@opentelemetry/exporter-collector":"^0.12.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"cpx":"1.5.0","gts":"2.0.2","nyc":"15.1.0","mocha":"7.2.0","sinon":"9.0.3","rimraf":"3.0.2","codecov":"3.7.2","ts-node":"9.0.0","ts-mocha":"7.0.0","ts-loader":"8.0.2","typescript":"3.9.7","@babel/core":"7.11.1","@types/node":"14.0.27","@types/mocha":"8.0.2","@types/sinon":"9.0.4"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.12.0_1603112051014_0.8433427507032654","host":"s3://npm-registry-packages"}},"0.12.1-alpha.3":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.12.1-alpha.3","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.12.1-alpha.3","maintainers":[{"name":"obecny","email":"bobecny@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"mayurkale22","email":"mayurkale22@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"556e005ac6feef7db708073b82147483d25a8cc2","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.12.1-alpha.3.tgz","fileCount":35,"integrity":"sha512-921ZvrBkPjI1wM+8zMZ/74+CaUecwIsJE5Kxfjq7bpgxoLOIBT5XCYttvDtSK5gr85c0oIkv7Dr+xIItCh/3Wg==","signatures":[{"sig":"MEQCIBYJV/4kt2ioLgwISbnFIG6B2iXeyJA7C6vHNG/+dER6AiAejkZkyMWxKG84Ll92Mv4Tm/8BZItYyvrBXU/UQs3PoQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":102407,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfkbSpCRA9TVsSAnZWagAAClgP/0XGW8A59Z5t4wFfveVL\nxi9bYUi/hYBY0bpvy17ruJbNv1BWIDCXZUaSYeTAVSJM3YxtjFnbYV/jpB4X\nWCCvAGdhyLfu0DIAHonvrzM0hHB+hMlpg+AfDzx8NQm+dvekLQs8d2C0P0Aw\n3PRxwRs95pe0Uze0shjIEFl+898BQBL3lbpKi2t1bSbCMa8qG2rZSB94aKJa\ngPmb2G45qh89B1bo9BLhiV6v6PsC3G9o8cklNH4BTgE4nvfPs9K8oN1e+Dni\njQrqyPjgDaZT5urYf2H0Bcgp7vz43GREPkaMZJe/I6qapaVFj6Ul4j9FL4nl\nPRZMJfoXUZCbUgBy2VqI++jEbrke8RhZQyBvZjbx79raZMNTNJdpVdV77u00\nLcpO2XDk8p8/So8GmyNt8noOmn0tGj/x4JNaPujHXACYnl5FMyH8rUhKP1te\n9zHCDMvDXgoRteJ29ahGYEc01drrcPo9MOiJ3tIrJx8GOO0Dco3nhDTF3pwo\nvHp06i2thFrdqJdUhlhcS39K6SGEzjBhgOlbYH/sp4NNXQJZaMFe5Ll2/sO2\nTI0KYgvFtJ48WnpcvfRNFzVIJ6O5eC3BV9WrCFUGhDLhBmP4qQdoMSQ+lrvJ\njGZvbJW7wlm5Xtn7UX8h3o8VpHKDe96Gz3s/YUqj2Vup+CHYBAHRUIFSCgIu\nkzcF\r\n=1CLV\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry Collector Exporter for node with grpc\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-grpc\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-grpc');\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-grpc');\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-grpc');\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## Metrics in Node - GRPC\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-grpc');\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-grpc\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc\n[devDependencies-image]: https://david-dm.org/open-telemetry/opentelemetry-js/dev-status.svg?path=packages/opentelemetry-exporter-collector-grpc\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/exporter-collector-grpc\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fexporter-collector-grpc.svg\n[opentelemetry-collector-url]: https://github.com/open-telemetry/opentelemetry-collector\n","engines":{"node":">=8.0.0"},"gitHead":"dc8082a844681bc03fa63572e8ede743d1b1b39e","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.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 protos/opentelemetry/**/*.* build/protos/opentelemetry","version:update":"node ../../scripts/version-update.js"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.13.1+x64 (linux)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.13.1","dependencies":{"grpc":"^1.24.2","@grpc/proto-loader":"^0.5.4","@opentelemetry/api":"^0.12.0","@opentelemetry/core":"^0.12.0","@opentelemetry/metrics":"^0.12.0","@opentelemetry/tracing":"^0.12.0","@opentelemetry/resources":"^0.12.0","@opentelemetry/exporter-collector":"^0.12.1-alpha.3+dc8082a8"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cpx":"1.5.0","gts":"2.0.2","nyc":"15.1.0","mocha":"7.2.0","sinon":"9.0.3","rimraf":"3.0.2","codecov":"3.7.2","ts-node":"9.0.0","ts-mocha":"7.0.0","ts-loader":"8.0.2","typescript":"3.9.7","@babel/core":"7.11.1","@types/node":"14.0.27","@types/mocha":"8.0.2","@types/sinon":"9.0.4"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.12.1-alpha.3_1603384489452_0.18499282942376527","host":"s3://npm-registry-packages"}},"0.12.1-alpha.4":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.12.1-alpha.4","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.12.1-alpha.4","maintainers":[{"name":"obecny","email":"bobecny@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"mayurkale22","email":"mayurkale22@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"51e1ec5dbc0542433b977638c7531c6be5ed8e66","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.12.1-alpha.4.tgz","fileCount":35,"integrity":"sha512-wm72BSDifSQIxB5Lk3gWPpC9f859pXTiA9RNdeeVlqBHGI1ToDZ8izB6QacVYjoyTFsnoYnD9WCLy/VZVCAmxw==","signatures":[{"sig":"MEYCIQCefabDaX45K919X74Iz4oS54MG/23Hz9PWxVooT9UOugIhAPNoIDooYx4OEnf0K6NxHMmakbuwh+W8khxy8Pf8kr34","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":102424,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJflu37CRA9TVsSAnZWagAAL4cP/3ATf8FifGZOSC2dXqY/\n3Jh+W+YRGA02Oggfdn+GEEb+OVMUobTimNOcfm7mufSNPbHLBRdIuXwvysZd\nnQTioF0O2q/d4Wj4I7GpxH06JuHwrGc3cmQAaFbrTaCgm5yK8X479q6f/6CY\nX5KHcWA3o6NUtZR3CaP/r/k7H/pKh7NcdqSARj+r8JO8ENPxGWq1sfNM2erc\nTRVRQuw0GXTXMF3BUnfT/d3zWCUIA7kLjV/bIza2dSs13QGKgRK2P5he6m/k\nca0AB0psHVYKFTVlm5WEBLZzRuwzBlkXvVbHk1rBjzRcDtF4D1XSkUYdgqVT\nO8WqdwEn3K1lMsj2V+cI2CuijLdwhqaKg+5JowCvMBQqoGXYq8ci37bzUcMo\nteb43EBIG8f8/UguAZ6s+MqbIcV0RdgdchhH9tAowMZ8M3FhMsJM6VE2DrbD\nkzb9NHlZ9gF03sgZt2cNliwhfLm5UsvaO5c+cN7Op1Zt3SGvU1+pPffnaZqf\nPbtPzNHAzSB2+YWwNaSJIL60YxenocNoRn5gr+o56DssFhA+jRXCCA6p8acg\nPtOaQc3QrDRn2Si8KTZcvHkrDWma2K0eo0ZVsvry729Vc79qK+y7VviCqb4/\nMLU9SnNyIbs64TVa+zcB/QYWdan42yICxcQK9b/Z0JYFRQLI+UInHWO7Ptz3\nrBwg\r\n=0dE8\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry Collector Exporter for node with grpc\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-grpc\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-grpc');\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-grpc');\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-grpc');\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## Metrics in Node - GRPC\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-grpc');\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-grpc\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc\n[devDependencies-image]: https://david-dm.org/open-telemetry/opentelemetry-js/dev-status.svg?path=packages/opentelemetry-exporter-collector-grpc\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/exporter-collector-grpc\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fexporter-collector-grpc.svg\n[opentelemetry-collector-url]: https://github.com/open-telemetry/opentelemetry-collector\n","engines":{"node":">=8.0.0"},"gitHead":"f8988b5d8d2e138add50774d06bea77ef25745ba","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.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 protos/opentelemetry/**/*.* build/protos/opentelemetry","version:update":"node ../../scripts/version-update.js"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.13.1+x64 (linux)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.13.1","dependencies":{"grpc":"^1.24.2","@grpc/proto-loader":"^0.5.4","@opentelemetry/api":"^0.12.0","@opentelemetry/core":"^0.12.0","@opentelemetry/metrics":"^0.12.0","@opentelemetry/tracing":"^0.12.1-alpha.4+f8988b5d","@opentelemetry/resources":"^0.12.0","@opentelemetry/exporter-collector":"^0.12.1-alpha.4+f8988b5d"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cpx":"1.5.0","gts":"2.0.2","nyc":"15.1.0","mocha":"7.2.0","sinon":"9.0.3","rimraf":"3.0.2","codecov":"3.7.2","ts-node":"9.0.0","ts-mocha":"7.0.0","ts-loader":"8.0.2","typescript":"3.9.7","@babel/core":"7.11.1","@types/node":"14.0.27","@types/mocha":"8.0.2","@types/sinon":"9.0.4"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.12.1-alpha.4_1603726842795_0.8478368821627245","host":"s3://npm-registry-packages"}},"0.12.1-alpha.7":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.12.1-alpha.7","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.12.1-alpha.7","maintainers":[{"name":"obecny","email":"bobecny@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"mayurkale22","email":"mayurkale22@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"0142892d7bf25cb26bf06006fee2eae49d0cf520","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.12.1-alpha.7.tgz","fileCount":35,"integrity":"sha512-mzG7bVBxyObSpeYQ7XEw+ZISr0XCgDbvESbE+UgPIdQu12VODPVPcXZsIUBpBOTto9Y2L9JDDhtJYHhcZzUpJQ==","signatures":[{"sig":"MEUCIDClz0G0W/Y0yLpr7ECsU5zh/1okpVkoExHtLUh7IBT7AiEA3pTLquEMwUl1V82QqFy+1NSEK87mdMm7s0fvFfiYwoA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":102492,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJflzvGCRA9TVsSAnZWagAAiCEP/0F3HAEMZ5y0jbWYqWTV\nhCl5iRpOowh6Z6mk8xCVA/0h+jzJ0T9V4tKuL1El4WB5o8jciBeRWgaJKZHr\naxwuCVKcB7apZq8Wj7xEHemSrkvumfngh0G4arAlal3OfD8Uja7pH6lxRLSx\nz1lBVSyiO9c6LRln/gQU1jYMwfaHXRS4p8FQSA+LM/acooNNfKSexeCybg0j\nxG5J+hoYF6AamJzdNbXzl62io0dpyXi5o+CkC4NT4Fg5V/x4go71L+NKsohL\now4M+aqT20xSSIcQcNEcWkrrDI4kIzAuGAmKmI089QYYRpspd4TpzHCOd99R\nCLsFVUHd7vG3Mn0K8VD6qtNC0LkpNjEjTbLwdQRkUSOyXdG/w6OaI9K5hM59\n7bFRULpDOv7gjqsR0pUqOsMIdsg4byZd9GyuLRMzggp+K4xbILWqZ3CCXxFr\nYal+8MYpKSw0RydudWA9rYVHcTOjRJ79P4JBCV0Y/MBPWkKkZem4RVhz4hWP\n3w8W9OPvJuJhPsh+NpefOPItTRTqRPhZV7nBEvEUwOlR5FjthH6lVCJeWHuk\niEimnWBQWzFWwBi4pkHfh9v250PwytLwBkwxq0frk9KV+yzFK9TZPN/x0bO9\n5JBFRrBpQsK7vvC9NzKWcr8NNVg2i+9jF1wLAKzj3KVhQi7qUkQV9Z907Un7\nclii\r\n=pk4F\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry Collector Exporter for node with grpc\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-grpc\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-grpc');\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-grpc');\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-grpc');\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## Metrics in Node - GRPC\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-grpc');\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-grpc\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc\n[devDependencies-image]: https://david-dm.org/open-telemetry/opentelemetry-js/dev-status.svg?path=packages/opentelemetry-exporter-collector-grpc\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/exporter-collector-grpc\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fexporter-collector-grpc.svg\n[opentelemetry-collector-url]: https://github.com/open-telemetry/opentelemetry-collector\n","engines":{"node":">=8.0.0"},"gitHead":"46f31dd2285d55d239195032528c3dab1bf0e15c","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.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 protos/opentelemetry/**/*.* build/protos/opentelemetry","version:update":"node ../../scripts/version-update.js"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.13.1+x64 (linux)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.13.1","dependencies":{"grpc":"^1.24.2","@grpc/proto-loader":"^0.5.4","@opentelemetry/api":"^0.12.1-alpha.7+46f31dd2","@opentelemetry/core":"^0.12.1-alpha.7+46f31dd2","@opentelemetry/metrics":"^0.12.1-alpha.7+46f31dd2","@opentelemetry/tracing":"^0.12.1-alpha.7+46f31dd2","@opentelemetry/resources":"^0.12.1-alpha.7+46f31dd2","@opentelemetry/exporter-collector":"^0.12.1-alpha.7+46f31dd2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cpx":"1.5.0","gts":"2.0.2","nyc":"15.1.0","mocha":"7.2.0","sinon":"9.0.3","rimraf":"3.0.2","codecov":"3.7.2","ts-node":"9.0.0","ts-mocha":"7.0.0","ts-loader":"8.0.2","typescript":"3.9.7","@babel/core":"7.11.1","@types/node":"14.0.27","@types/mocha":"8.0.2","@types/sinon":"9.0.4"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.12.1-alpha.7_1603746757672_0.10728301351029135","host":"s3://npm-registry-packages"}},"0.13.0":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.13.0","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.13.0","maintainers":[{"name":"obecny","email":"bobecny@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"mayurkale22","email":"mayurkale22@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"426f995653aef9bbaffa455b24fca4b3ea688588","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.13.0.tgz","fileCount":35,"integrity":"sha512-sgzJ9l2I2PgaX1sHmnOArzHkehfUk1FYBnuUX+rLpyIpOYJ58R43QVJVB4zeRqHFyzWCaklK1Ty9bJArQ1V0uw==","signatures":[{"sig":"MEQCIDvFJtnl6fIzf2M5LZmkA3mHWB6FEHFdtvdmovyFuBTcAiB6XgnVhnRTQ0KH+Ub8Zdm1KJPE5l5zJiz0yeYceDBaog==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":102339,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfyqmRCRA9TVsSAnZWagAASfYP/1FvO9gmkdXCHYw2zWYv\nO70qL+HcCzUeRt4fwPbMseBhm8GDS0ZM1jFQp/QjAUslwQzsvRQvm/okyY36\nYhyUCdCo+imudAW5b/+76Gs5bmVOaNys9el98VQU1L8CgGREbaPVkbGFB/sX\nIntJUZFuQKegTPsdJfxcHY9O+rdiordyi+aAC3Ds8UkX8KxJOxpxtq0i3vKV\n9siaJlQKKkWXKa2s4EM63aZ4Chop4OHufRcgD5sfY70jq9KkKFbla3wJ1TmI\nfiEj2cF2hHNb32yfO1cGUy8RLilquDBEjlzK7aH5nhkxXN36fTF+jp3m+A74\nJqHwEDujSRKfDSLWcmB0FT77Z04W7FmAfjyWJImVw8yWuwmTcMsUW+Ht3co9\no5qSPeeD8yyKgQbYmvYNM18/rReKro/7aoonR3S64WzaZbn7JeyjG+2lYG15\nL0561giSoP4O1CDZi5V+DTPnTKeUaxoHmiRdQcrPLUTYL50MeIHw0QO7Ji86\nS5Dto8RCbg4Ym/N/OS5zObZ1vPuoFFWqgayyN/MLtzwBAZ1iWFIGnyT1oaWr\nuaCMS7r8OKTL67TmuRw/j88yr8nwVRxomYdkLh5Ay3uyBCbKpTpNkzLk12Ca\nZ4H+Xz3ERRsdyS38RqNNiVNY46eY/vm1ujTuRJFvxjbX3KxvWT/QK6YBoIoP\nbsf3\r\n=DO+w\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","engines":{"node":">=8.0.0"},"gitHead":"86cbd6798f9318c5920f9d9055f289a1c3f26500","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.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 protos/opentelemetry/**/*.* build/protos/opentelemetry","version:update":"node ../../scripts/version-update.js"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.8.0+x64 (darwin)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.8.0","dependencies":{"grpc":"^1.24.2","@grpc/proto-loader":"^0.5.4","@opentelemetry/api":"^0.13.0","@opentelemetry/core":"^0.13.0","@opentelemetry/metrics":"^0.13.0","@opentelemetry/tracing":"^0.13.0","@opentelemetry/resources":"^0.13.0","@opentelemetry/exporter-collector":"^0.13.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"cpx":"1.5.0","gts":"2.0.2","nyc":"15.1.0","mocha":"7.2.0","sinon":"9.2.1","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.0.0","ts-mocha":"8.0.0","ts-loader":"8.0.11","typescript":"3.9.7","@babel/core":"7.12.9","@types/node":"14.14.10","@types/mocha":"8.0.4","@types/sinon":"9.0.9"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.13.0_1607117200525_0.10345237783283312","host":"s3://npm-registry-packages"}},"0.14.0":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.14.0","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.14.0","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"0f23a1f4d834b98993b5dbc9b04cb8787a0022a0","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.14.0.tgz","fileCount":35,"integrity":"sha512-kuATqlzxwOFPAgLu5oNOeFTqyUd61Mw5rROD+5CnNhpU13Y39JWeDCDdPhpPr53TB++Mm52nppiPSj9ewrscuw==","signatures":[{"sig":"MEQCIAkRY22SHSzVU4nGLQ/KVcP/jPRRPEModYDDMCRktPjTAiBuRbFxxPisvcbueDnd70pa9e6W8ANBPd4XvX939fpMUg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":105015,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf28VACRA9TVsSAnZWagAAbSIP/RzykrdKse5mYL0+lULI\nSeDT7ESDQN5+BFpkiHUjhb2zo4tcQnaS2/zfrr8ijplB6t4VDbKmJ/fjY2bJ\nUfEYwuvWZthdZ8GGwJ9Va/Wt2nkMi18HHVMqm4/8iVWiLWn6bJW1Mi7W/+Nx\nZx7hILN4UR073ORRwF17mfKTj98TMIUJeLDRZUSab6wwu2Fy02mYcO4KEPfc\ngZ2JD6btPpHeovN5Js4s1+ypupMXh8/hIP/cJ+NmKwY8NvDqwUxcMXQnUmI0\nXC59qC2iEJtNTpvHhWU9Tt7gbDHH7YIBi2F+gR1yfdVCw63xhxMpkSW0MPfg\nQ/58xMoiuQTGpWAAwkwgUTO6hwoLAyj1OYJz4vg8yJPP30QzMJG2ltOxOwtn\nCk3ScvtHOcLgOMmBoHnfPBH7vgCNhvEoItf4NzJY5V9HjuN3XTY7UZ7Aobc7\nPrOnI8RgMf8tlPF96HyeBPcHRP2vHJ+a1a0QYqDYEXEDLauBpuF/SktfZS65\n4YYuK5OkktCc30Tx49r82Vnbq71T6HkJoBqeRX2K609jV8TLhjnr6DIg7Dfk\n6VyzJTRRk2orNUAxKsCZ7xHnuK9/g+FnW/PhaWe1amCQm2Q8PjP52LOoe0nr\n99qMoojOOJsTA7zdoCjZf3n6AYhCMabX3ubWHDiB/He55sPBDyinckx2OxrK\noJkh\r\n=gEvu\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","engines":{"node":">=8.0.0"},"gitHead":"27a8d4530c56257c191468b073669909bf8892a1","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.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 protos/opentelemetry/**/*.* build/protos/opentelemetry","version:update":"node ../../scripts/version-update.js"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.8.0+x64 (darwin)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.8.0","dependencies":{"grpc":"^1.24.2","@grpc/proto-loader":"^0.5.4","@opentelemetry/api":"^0.14.0","@opentelemetry/core":"^0.14.0","@opentelemetry/metrics":"^0.14.0","@opentelemetry/tracing":"^0.14.0","@opentelemetry/resources":"^0.14.0","@opentelemetry/exporter-collector":"^0.14.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"cpx":"1.5.0","gts":"2.0.2","nyc":"15.1.0","mocha":"7.2.0","sinon":"9.2.2","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","ts-loader":"8.0.12","typescript":"3.9.7","@babel/core":"7.12.10","@types/node":"14.14.12","@types/mocha":"8.2.0","@types/sinon":"9.0.9"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.14.0_1608238400320_0.851311603627823","host":"s3://npm-registry-packages"}},"0.15.0":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.15.0","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.15.0","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"e2250ae8fd3887dcb709bd07fed6fb01594e14d1","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.15.0.tgz","fileCount":35,"integrity":"sha512-jqvCYS41gixpSCrE+CfoK4COXFt9vRLDmhLHrxgTDYKmEERsHh792Dij81gxps+p9qdpje4t2z+iYSGAc1sMnw==","signatures":[{"sig":"MEUCIFUVHoPQqti9HgrsHcRCF49tZwtFswSa98mehnVKGeM8AiEAiNREPEncCGMnAyCPCKJL11sOTf6YOSDCiZwcAkRyS04=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":104963,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgCf4lCRA9TVsSAnZWagAA9DcP/0iV63qJqLkd0y7xuQB7\negRgnGEIUx59b+1T7lUWm6GaHlKRbWp/9Vfa41m1BzPE1LJj/Z/c6/v7ssB6\nvedT565SE070gd2pmKN1hbCAt9UWm47kjXteMt+C/J2OEL3UMqm44pHl3mF2\ncIsftwlgerahGtUpZ4dxLgzR3kUVi/AAZGacmyWhUnxmeBl9nX6ErifSxQgn\nqmWVBVqs07hk5Fe4dWiskmDMDNDh6CLAzjmMe6wWV+PZWB93NF2Cs8h/V9Fq\nyN/8D2su+TcCWlCxYv88sx1Q+SOCxD0vznFuti2pSepsY/Zxc85ubf98r2yB\net0JcPV9dR/4LAR0r0bFI6j94KF2LXFtsAJgnQwgEOpme+6bs0hLxWRV2VUN\nWpdEHdHb+9dj8vH+y0ma90jJOM5TeSmDKOvH5dDRntODvpi6ga0wbHDYyWZC\nvfs4K6mLM5PJyZhPcat5JQAM/PA6fXD4ck10oFmR5O8yLWiIli44UOvIaGum\njkw9Go0hUimV+v8WZfihnYZPqRlGmeNwl9MaXENIcfs92xZwW/OyxKystosq\nALvF4EoKjE9dJIFvl2R21Tj1W/7mC8gedl1jCP0G9KOoWXL+qt9NJ7pAeag5\nDuRY1N4ism6F/1IT55BPfm1ALtb/wSYKFUa4rMyAQLG4cNVxeM+Y4AWAaSyu\nlj8v\r\n=DFmU\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","engines":{"node":">=8.0.0"},"gitHead":"960b868f5b7686eabbf49190071b8463551e5d8f","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"npm run protos:copy && tsc -w","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","submodule":"git submodule sync --recursive && git submodule update --init --recursive","postcompile":"npm run submodule && npm run protos:copy","protos:copy":"cpx protos/opentelemetry/**/*.* build/protos/opentelemetry"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.8.0+x64 (darwin)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.8.0","dependencies":{"grpc":"^1.24.2","@grpc/proto-loader":"^0.5.4","@opentelemetry/api":"^0.15.0","@opentelemetry/core":"^0.15.0","@opentelemetry/metrics":"^0.15.0","@opentelemetry/tracing":"^0.15.0","@opentelemetry/resources":"^0.15.0","@opentelemetry/exporter-collector":"^0.15.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"cpx":"1.5.0","gts":"2.0.2","nyc":"15.1.0","mocha":"7.2.0","sinon":"9.2.3","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","ts-loader":"8.0.14","typescript":"3.9.7","@babel/core":"7.12.10","@types/node":"14.14.20","@types/mocha":"8.2.0","@types/sinon":"9.0.10","@opentelemetry/api-metrics":"^0.15.0"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.15.0_1611267620757_0.5943234252458167","host":"s3://npm-registry-packages"}},"0.16.0":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.16.0","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.16.0","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"755fb34f71091181be3958798b9e8a6dc45534a6","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.16.0.tgz","fileCount":35,"integrity":"sha512-H3NuFHS48X12jlEr5vt2Jrb49sPSc0LSw2RSMLJgq3vjYTzoqTaccUcf93RRl8Kcayx7Ke8XCeZB1TjNILh9lA==","signatures":[{"sig":"MEYCIQCjMYLquLLdZ2OgcLPzq5zwF9vG1kgqyvynaOpKhmcPnwIhAJe8nQEOvm0G0PbfulUiypqa7RRZioAoomsaGAieVPSa","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":104800,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgGIHTCRA9TVsSAnZWagAAxBYP/2JyTqg0GR4KztJDoNfo\nyYKgqjjq0hN5E/F9/QkD+lJDZ/eo2wc0GCQCgNdRuBqO2Fp4WN41c/V930ED\ndXunS3H8dsmxwexOd2MgEnzT3AAYAl2V03aTau80uK6MJ/w8SLRM5x559Qp9\nW8tjNuOKsQwVeEC+CrAVtHt6hj3dNgOF+QZbbxMc4PDX/JfIlhWBlULYzqCP\nSdiTP4/Lg/9n5wJk9WypcGPC5eXBGlouqsyn2fgjHZSoXp3lAkCygfwntngv\nqQL4iT6FH9WZbPZqTwSTcmOgwbesFJpLmSn1EYADKXynx+jof+uAw3xR2Y4H\nQz+mTL9nh0047I098xcL0EU/gAjtv3PMo7lVhWYtYoJmSooJH6EPOv5dWFqM\nbHOmxFm93alH1AU0ml2C8btSIOo/JmNw6KLc7MDw8DuDVm+MqGgEC4GkEMKs\nrFGcxBf91vzDSWmVFCapw+/GQ2xypei/C4AmNfKfrqXAykYCyYa8x5ZL9DJD\noJJD/r+Faihgg+kH4ZlsjvAPrYweHFDAp7vJ2eWd1188Uov5kOKEtSb/ti//\nJDPbrtzHXsTGFVHTosjnr1+wLX+uK7GVDPwbgZ7bsbG84XiWkOwJOTYQFM+B\nW1yfGEAeBMJ6YFMOB8P/OTZPtUG7Tn/1dsbEiM3MtWHuEc4PIxyq0UPz5+MF\nUqAF\r\n=fggz\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","engines":{"node":">=8.0.0"},"gitHead":"e68863f8e63854b08ad13fb54677294ac6d6b681","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"npm run protos:copy && tsc -w","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","submodule":"git submodule sync --recursive && git submodule update --init --recursive","postcompile":"npm run submodule && npm run protos:copy","protos:copy":"cpx protos/opentelemetry/**/*.* build/protos/opentelemetry"},"_npmUser":{"name":"obecny","email":"bobecny@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v12.19.0+x64 (darwin)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"12.19.0","dependencies":{"grpc":"^1.24.2","@grpc/proto-loader":"^0.5.4","@opentelemetry/api":"^0.16.0","@opentelemetry/core":"^0.16.0","@opentelemetry/metrics":"^0.16.0","@opentelemetry/tracing":"^0.16.0","@opentelemetry/resources":"^0.16.0","@opentelemetry/exporter-collector":"^0.16.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"cpx":"1.5.0","gts":"2.0.2","nyc":"15.1.0","mocha":"7.2.0","sinon":"9.2.3","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","ts-loader":"8.0.14","typescript":"3.9.7","@babel/core":"7.12.10","@types/node":"14.14.20","@types/mocha":"8.2.0","@types/sinon":"9.0.10","@opentelemetry/api-metrics":"^0.16.0"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.16.0_1612218835374_0.42222390674304666","host":"s3://npm-registry-packages"}},"0.16.1-alpha.10":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.16.1-alpha.10","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.16.1-alpha.10","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"8c651cc39a1e69526e18c136f98ba08435c15b52","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.16.1-alpha.10.tgz","fileCount":35,"integrity":"sha512-OP4TPFUPI2N91zR4/nuDNZvIhYqOaK2sXdOa3dYatmsTf/IlJqwAGRpAyU2w3NjpprYdmkhIbGlb6MO6Qf8HSQ==","signatures":[{"sig":"MEQCIGWWCp41RqJxhwtHT7ntaPNFlhHfO26ZDybjeA26n9ksAiBkOaDWnGdX0guphpwYc7jJ+31T56TSRxwpWbJdJHFuCw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":104931,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgIV3fCRA9TVsSAnZWagAA6xcP/0na3naqTyAAFtFrQzIL\nGsL8HEisbouvGsFQniG51T7uMotw9YzvAzv/wYBWg+46Pq6AVOVOFYq0i5fj\n6EuYZpWJLHfgBxZTjjN9tzYu9O2tTrHZ5MuDr+z05woPiAqa6b2ookLAaARe\nlEuw7OdjsOUieu3EIHk9BuXTqzRj1W2uTMuAL1l7sV8KUKnYOTGz1XN65/aK\n/3XC1sKrg3ywh63AXQH/Eq7iV4lj9lE4Lw+kQSyvn6+hFgprssv6Bss0KL1n\nOtDb/eBPOa4CDK5WFyzkicRkux92GbSe3tXebqYPdeMirHoiPIfYg8o7Vk+W\nL3BmmbU6s0Y3dMVqff6Sxg5/oQKTN77GYXrUqYNnveBLQXovyH2z2U2rjRAN\nd1ZpCLY5NX0/0doXya2vSZw6++tXEUNjVaevqq+/ta4kcGhv6jRhjnPX/8Ha\n1W87rixtxiK5Yz0d4PfYSUFreIlhfyMcoSOVJByCgW75+aYFUMu/N12B6nvV\n2DYhE1POQ5UjIIdYQBjKPppFWw5pnh0kNoI704n9cjBTtVsn6DMw+9a7vsbh\nyE20iie5o74tWhY/glRi+uVcBsndCuOTOOpKC9Hq15U6IsaP6imxtSmo8cqH\nDkglt1s0Cx47SWJhwLwbUAYjXQg0KhOIvjnH+gZTTT9fFWJal2EOe8fuJpSC\nivv6\r\n=rwc7\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry Collector Exporter for node with grpc\n\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.16.0**.\n\n## Installation\n\n```bash\nnpm install --save @opentelemetry/exporter-collector-grpc\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-grpc');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  url: '<opentelemetry-collector-url>' // url is optional and can be omitted - default is localhost:4317\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-grpc');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  url: '<opentelemetry-collector-url>', // url is optional and can be omitted - default is localhost:4317\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-grpc');\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:4317\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## Metrics in Node - GRPC\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-grpc');\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 in [GitHub Discussions][discussions-url]\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\n[discussions-url]: https://github.com/open-telemetry/opentelemetry-js/discussions\n[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/main/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-grpc\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc\n[devDependencies-image]: https://david-dm.org/open-telemetry/opentelemetry-js/dev-status.svg?path=packages/opentelemetry-exporter-collector-grpc\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/exporter-collector-grpc\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fexporter-collector-grpc.svg\n[opentelemetry-collector-url]: https://github.com/open-telemetry/opentelemetry-collector\n","engines":{"node":">=8.0.0"},"gitHead":"cacbbdca0e89d31e2e0b10a8ff5fb86d7a714906","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"npm run protos:copy && tsc -w","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","submodule":"git submodule sync --recursive && git submodule update --init --recursive","postcompile":"npm run submodule && npm run protos:copy","protos:copy":"cpx protos/opentelemetry/**/*.* build/protos/opentelemetry"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.15.4+x64 (linux)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.15.4","dependencies":{"grpc":"^1.24.2","@grpc/proto-loader":"^0.5.4","@opentelemetry/api":"^0.16.0","@opentelemetry/core":"^0.16.1-alpha.10+cacbbdca","@opentelemetry/metrics":"^0.16.1-alpha.10+cacbbdca","@opentelemetry/tracing":"^0.16.1-alpha.10+cacbbdca","@opentelemetry/resources":"^0.16.1-alpha.10+cacbbdca","@opentelemetry/exporter-collector":"^0.16.1-alpha.10+cacbbdca"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cpx":"1.5.0","gts":"3.1.0","nyc":"15.1.0","mocha":"7.2.0","sinon":"9.2.3","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","ts-loader":"8.0.14","typescript":"4.1.3","@babel/core":"7.12.10","@types/node":"14.14.20","@types/mocha":"8.2.0","@types/sinon":"9.0.10","@opentelemetry/api-metrics":"^0.16.0"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.16.1-alpha.10_1612799455083_0.5285648241212406","host":"s3://npm-registry-packages"}},"0.16.1-alpha.11":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.16.1-alpha.11","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.16.1-alpha.11","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"2348f6b3f008997e67647a1f50ed09ef09e7a21e","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.16.1-alpha.11.tgz","fileCount":35,"integrity":"sha512-H2Kx/XcqaX/sE/XyoeMfafo6wgx7ORpyFYo636ol8fWQHY/Oho9jLeguC1zqG6Gj2rf/NwbJbVJY2oYhqIpc/g==","signatures":[{"sig":"MEUCIFNEU/s2twW3Q1caK4k/7Yg51ZcU/gGru/5qI2uIi1IDAiEA8qBQNxEeBdpRkiIiVZPRG34L35bGlFe7L1Lba1tMcKo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":104967,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgIWRnCRA9TVsSAnZWagAA/mAQAKCRPKkVC2xUesUpA3a5\nuVjQ1AKFw3zI+FIseMASKjF8JgDNz1eLq+D97/LymshDUMqoqV6JtqqwQaSR\n1XGeiBKRkqMCnIcUMvaGYmQBiyHzNtlQ5c5jPFH+aYZ5Z9fkmJ+Z+mEUn6RZ\nzlGyVVA+Ne0HWRKVu8up8n+wSAo31MgVZbA68ZuupvkqpYQq17IrNF373b+y\nXCX4f76cfZuzuYsCK5a3fq62G4bN0mRT+2Kzu3kKl4ERqnpzpD2y4Lz9Zues\nreAKU+m/g9hZhmy2ShdAaTAMyhi1YWxntI0pfR5YQzkuHwO73VoBPs4KceOO\ne76zgijpefHeSzxq0haos/savv4NNXNFaolCcf73XyRk97ZDqFheZqi+z9X4\n/QltL/kDMTy4VcXq9uHlL+uXvKxCrpwEBulcFhhm/ub9DnqoiBgQEMnjyinA\nisD4dKdw+UYf2qk1pv7a1ecDnEYpqEPCsUY0AjDloq1h7zOqjp7uZb9t/70y\nWhP2PDD0t6Ub4bRfFkkQwF0198cqZV9k595CodMOlpq/96HzOp8dGA9SGOtI\n5OBxFa7/POHSOYS2/Xm5aYfQHF70HNfks0coysaykDA4J75+OsCV5JVRcBI9\ng7w16ue+rlm4o4SP4gbGQSOahZs3iUL6h0GgpnL/S9dITI8wYi1SqIYj4xJi\n9okk\r\n=aFY9\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry Collector Exporter for node with grpc\n\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.16.0**.\n\n## Installation\n\n```bash\nnpm install --save @opentelemetry/exporter-collector-grpc\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-grpc');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  url: '<opentelemetry-collector-url>' // url is optional and can be omitted - default is localhost:4317\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-grpc');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  url: '<opentelemetry-collector-url>', // url is optional and can be omitted - default is localhost:4317\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-grpc');\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:4317\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## Metrics in Node - GRPC\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-grpc');\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 in [GitHub Discussions][discussions-url]\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\n[discussions-url]: https://github.com/open-telemetry/opentelemetry-js/discussions\n[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/main/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-grpc\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc\n[devDependencies-image]: https://david-dm.org/open-telemetry/opentelemetry-js/dev-status.svg?path=packages/opentelemetry-exporter-collector-grpc\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/exporter-collector-grpc\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fexporter-collector-grpc.svg\n[opentelemetry-collector-url]: https://github.com/open-telemetry/opentelemetry-collector\n","engines":{"node":">=8.0.0"},"gitHead":"70a128ff5dca16060ca7c2cff943369ae9999c34","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"npm run protos:copy && tsc -w","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","submodule":"git submodule sync --recursive && git submodule update --init --recursive","postcompile":"npm run submodule && npm run protos:copy","protos:copy":"cpx protos/opentelemetry/**/*.* build/protos/opentelemetry"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.15.4+x64 (linux)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.15.4","dependencies":{"grpc":"^1.24.2","@grpc/proto-loader":"^0.5.4","@opentelemetry/api":"^0.16.1-alpha.11+70a128ff","@opentelemetry/core":"^0.16.1-alpha.11+70a128ff","@opentelemetry/metrics":"^0.16.1-alpha.11+70a128ff","@opentelemetry/tracing":"^0.16.1-alpha.11+70a128ff","@opentelemetry/resources":"^0.16.1-alpha.11+70a128ff","@opentelemetry/exporter-collector":"^0.16.1-alpha.11+70a128ff"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cpx":"1.5.0","gts":"3.1.0","nyc":"15.1.0","mocha":"7.2.0","sinon":"9.2.3","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","ts-loader":"8.0.14","typescript":"4.1.3","@babel/core":"7.12.10","@types/node":"14.14.20","@types/mocha":"8.2.0","@types/sinon":"9.0.10","@opentelemetry/api-metrics":"^0.16.1-alpha.11+70a128ff"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.16.1-alpha.11_1612801126745_0.4513111816472519","host":"s3://npm-registry-packages"}},"0.16.1-alpha.12":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.16.1-alpha.12","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.16.1-alpha.12","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"78e76cefce9c794a7abb2af46f9b50341298523b","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.16.1-alpha.12.tgz","fileCount":35,"integrity":"sha512-tAcWJ/yOzX2+uysqmxqm0nBU6e8F1KtO5D7Vcslm8BRhhXHW3OHcGl970dcLFrPLdskuH8gAUZaDZ9WfXiizhA==","signatures":[{"sig":"MEUCIFj8cgWzvgNLdRYUtizUDfNomMzTLqoVNcnBE+nwBQCnAiEAqks/d52/ZjD7DWcLU1wo9UhXMpNAlJLmFQ5wiB7ksEc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":104877,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgIZrqCRA9TVsSAnZWagAALFYP/1Pd1PcOqGEO0reT5MP/\nf+sLUGWr/1KOuoFWMoPKCW8+eGhGCobP9yVSvIvEeL+IDfFLv3PzIBIuG+O5\n640/l2zq0Ru7jn9E2xve/bglB/sjUOkIWb1eZn+Lu67p0EM6FD9iY2nNS5n/\nMlBAD73Uze3FeqCQU37DEFWb+mAUqPgDb9wXVbLy3hD/jaHCj53QUdzjiFZK\ncy0SLHTroLS0u/pAd4orIdzmyhce8bwhxN5MI3h2nSytKobrcWuEudF8S4Xq\nf7bGOwIs5hIfisBCnTJNhugBNxulD1KeWhyJcv9if/NKFsG2AugyNEVN2a8L\nFb478/XSB8iFwF0Rr+QqfcDhsqVkJr6DGMm5rrHokzPWRHvBLi71o6oPzBhF\nwZJbiGMTL0wWLxneLfIEwfWetf5d0QQ49JU30vjsfVbnI0NaAy8+tzzRoimV\n63/kaKVNz1xOAaC36v8hjo1ZrfG0p3gguZ7j9aeuvc7/DpHOq8fiOT89wxRN\nGF8lElAB2Xvy7XbAPJqmTvHfdPT5jd8VBcizmD4FmeX+Hr8yA8H38PjaWQs3\nDQ4HMA6aVf/wW+zIAOsMDn/0MfFj8tW96VwEre8LJ4e2J6vzPWxfOV95mO71\n5g5zBXa01+d4L1zbBQEok0VyLoAbtHFf7u7qUHR/GyPlo9vKljXPm8J2vhiQ\nYX/r\r\n=avpU\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry Collector Exporter for node with grpc\n\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.16.0**.\n\n## Installation\n\n```bash\nnpm install --save @opentelemetry/exporter-collector-grpc\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-grpc');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  url: '<opentelemetry-collector-url>' // url is optional and can be omitted - default is localhost:4317\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-grpc');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  url: '<opentelemetry-collector-url>', // url is optional and can be omitted - default is localhost:4317\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-grpc');\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:4317\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## Metrics in Node - GRPC\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-grpc');\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 in [GitHub Discussions][discussions-url]\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\n[discussions-url]: https://github.com/open-telemetry/opentelemetry-js/discussions\n[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/main/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-grpc\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc\n[devDependencies-image]: https://david-dm.org/open-telemetry/opentelemetry-js/dev-status.svg?path=packages/opentelemetry-exporter-collector-grpc\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/exporter-collector-grpc\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fexporter-collector-grpc.svg\n[opentelemetry-collector-url]: https://github.com/open-telemetry/opentelemetry-collector\n","engines":{"node":">=8.0.0"},"gitHead":"dc384956b3c762b16c3fc62c792def067e94a307","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"npm run protos:copy && tsc -w","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","submodule":"git submodule sync --recursive && git submodule update --init --recursive","postcompile":"npm run submodule && npm run protos:copy","protos:copy":"cpx protos/opentelemetry/**/*.* build/protos/opentelemetry"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.15.4+x64 (linux)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.15.4","dependencies":{"grpc":"^1.24.2","@grpc/proto-loader":"^0.5.4","@opentelemetry/api":"^0.16.0","@opentelemetry/core":"^0.16.0","@opentelemetry/metrics":"^0.16.0","@opentelemetry/tracing":"^0.16.1-alpha.12+dc384956","@opentelemetry/resources":"^0.16.0","@opentelemetry/exporter-collector":"^0.16.1-alpha.12+dc384956"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cpx":"1.5.0","gts":"3.1.0","nyc":"15.1.0","mocha":"7.2.0","sinon":"9.2.3","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","ts-loader":"8.0.14","typescript":"4.1.3","@babel/core":"7.12.10","@types/node":"14.14.20","@types/mocha":"8.2.0","@types/sinon":"9.0.10","@opentelemetry/api-metrics":"^0.16.0"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.16.1-alpha.12_1612815082544_0.40264576185666057","host":"s3://npm-registry-packages"}},"0.16.1-alpha.14":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.16.1-alpha.14","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.16.1-alpha.14","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"b32dd57c5c4d730ab3698d5849aa532a48e3a8b8","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.16.1-alpha.14.tgz","fileCount":35,"integrity":"sha512-t3Qxa+yj4i5iqym38RzUDwiN4hbkWsIyrnp5p1tBHoqeWdHMakr1N2GUfffYw50lFCeinKQnomjsqdy87e1rFw==","signatures":[{"sig":"MEUCIHcRdSe7ydpPgoKVhDgUEjIWe8/mmU1sVR4jZpJdvY1MAiEAqFU5ZSBDFgFuXlCD5mGKl/BKRqx+21053giHcyaaPrY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":104967,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgJASXCRA9TVsSAnZWagAA8QIP/R6MjXfkvskdRyrTOgnW\n5eUXw+6eoR014yJX0oKrqJB6QaJiNGAas3BFnvB/eof7IJsYthihNfm4Tt4J\nFoiH88qdQWVYPcUQTGIZenGIcnJB08/2EIy0Hu2pqP28OgEqjRQwz2n6cL5N\nVB7k+2A55gU6EbEidZ8qrouauyBaPC5uGf9bUPDn8Odf4ropqlRyG+qfTiLz\nbLUAGmdXy6nkaISfiVIZ1CLrtShkULshVo38BBS47uVWRX9EbrQsAqCCh5TI\nltHQF+d+RES+xaKMFpi0niDPbydq4AxsDFEDA8+7IfMSmXuE0uxlOsgaPHBP\njRE662JAFbdSTQ3NmsWZkxtr/Gxu/myEc7USo5oCwY1jueK7duTnO0h1NN8U\ndSdhUZ0thAQpxxEupvqBlzsoI6lF53QZoU42q0YlFyjM6niTmsdHFwwdqN3k\nrHzVSxW3sHDoHEfiwr3ruzGBUrBnACf9SLU/Xm08YNqhuR4+xWZ5ntYHkFTL\ncJ7k+EYe4sdht5GdWHwHApqQMwuZPKdhEWHrxH3BIcLMdyFbRmWG2VsCxY2J\nHRUTJUvuT/GC0wAW3cpEanMVl2krUCQHR3oaifrxWD5xuk2CO5CA+kiVX/fw\nGegABe9t++kBRDdcIpxjd1fCxO+j3u9zlI6bQ8Z3GFYB765z7bUJThAv/1o6\nV0XE\r\n=B0By\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry Collector Exporter for node with grpc\n\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.16.0**.\n\n## Installation\n\n```bash\nnpm install --save @opentelemetry/exporter-collector-grpc\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-grpc');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  url: '<opentelemetry-collector-url>' // url is optional and can be omitted - default is localhost:4317\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-grpc');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  url: '<opentelemetry-collector-url>', // url is optional and can be omitted - default is localhost:4317\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-grpc');\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:4317\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## Metrics in Node - GRPC\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-grpc');\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 in [GitHub Discussions][discussions-url]\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\n[discussions-url]: https://github.com/open-telemetry/opentelemetry-js/discussions\n[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/main/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-grpc\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc\n[devDependencies-image]: https://david-dm.org/open-telemetry/opentelemetry-js/dev-status.svg?path=packages/opentelemetry-exporter-collector-grpc\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/exporter-collector-grpc\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fexporter-collector-grpc.svg\n[opentelemetry-collector-url]: https://github.com/open-telemetry/opentelemetry-collector\n","engines":{"node":">=8.0.0"},"gitHead":"000a8ac099a3848a9a3c66f4bdd4826b4cff987a","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"npm run protos:copy && tsc -w","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","submodule":"git submodule sync --recursive && git submodule update --init --recursive","postcompile":"npm run submodule && npm run protos:copy","protos:copy":"cpx protos/opentelemetry/**/*.* build/protos/opentelemetry"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.15.4+x64 (linux)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.15.4","dependencies":{"grpc":"^1.24.2","@grpc/proto-loader":"^0.5.4","@opentelemetry/api":"^0.16.1-alpha.14+000a8ac0","@opentelemetry/core":"^0.16.1-alpha.14+000a8ac0","@opentelemetry/metrics":"^0.16.1-alpha.14+000a8ac0","@opentelemetry/tracing":"^0.16.1-alpha.14+000a8ac0","@opentelemetry/resources":"^0.16.1-alpha.14+000a8ac0","@opentelemetry/exporter-collector":"^0.16.1-alpha.14+000a8ac0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cpx":"1.5.0","gts":"3.1.0","nyc":"15.1.0","mocha":"7.2.0","sinon":"9.2.3","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","ts-loader":"8.0.14","typescript":"4.1.3","@babel/core":"7.12.10","@types/node":"14.14.20","@types/mocha":"8.2.0","@types/sinon":"9.0.10","@opentelemetry/api-metrics":"^0.16.1-alpha.14+000a8ac0"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.16.1-alpha.14_1612973206705_0.5983273060966106","host":"s3://npm-registry-packages"}},"0.16.1-alpha.15":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.16.1-alpha.15","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.16.1-alpha.15","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"1f050d3ad6149d4d4e897595682b5f44fa6aaa8a","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.16.1-alpha.15.tgz","fileCount":35,"integrity":"sha512-A+Mm+R1Qg78sf6dPTMQ5hqvnYMiDyTinFInJ9zMy6b+6g2/M9lO84eSldyIPjHTFIAuqzzyTIm4UfZCAnFCrpQ==","signatures":[{"sig":"MEYCIQDm4NH8yrNhAqGTC973n4pRO2OEsSRhYwrtTEzt2/dSXAIhAPV9eF8+gUssWJ+UQ5qAwuxxtC8l6C5GbszbNmlzEnQb","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":104967,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgJFvECRA9TVsSAnZWagAApf4P/35y3E7SpS6Rr4JIE40j\nWzf2nbXWEN6FTeUq+JoUfWh79AWmu/DiSZJ++S+RXM7NasMleUQnNr2zGbnf\n06h1NI3a+ewR5X/kudTnNOEWBgnOGZU1zS+xvTEcGPZxsrya96nbM+T9q1ks\nlXaphiM9WZguW7WeYpuPphjDTDVVU83E29q9rbCYEDMMKQ9WG0cp6oi0F1x8\ntuU9dNt23Pr3chU/kYwhkfdsuLh1ncdgc5+2a6h/5nbUSx0IXSTETFCKQMpU\nRRCZiXKSSrFbc+I4uzYiniXcDXUo+aCjOsltTr+K5qnymYvM2IuZCdBdDBI1\nKdz87+BALWpDwPa6UG3K7i46TTKbKBGIANRZJ7BL2L/wq9JG3BW8jdlFazQG\nSsOUbFQPxPIyJXzE41V5a8fKePfgyZNtERnOLU4GngTbcBln6skVo5i1EpXr\n2TDWnK/kD5t9qeeUOE7warEMMAJGXWMv4CHCQmFVwpZTdfvuPR45FUlWV7y/\nGpsMP8/NqnYlujKwmcrUIWoN9nNaUN541you6mkznJKIbsFtcCa6fuB1EnyC\nY9yvvYRm9ldC/nfxWjEL6fyU1MWUY+ETK5Rov2/jw3+Vio9SyQ5zE5OJ83u6\nSQ72dcpMFmMopoMS08HnjIva2wHrgDvcWOu2mrIPcoq3Wavn639KHNxJ75Ry\nqnbx\r\n=aUTo\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry Collector Exporter for node with grpc\n\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.16.0**.\n\n## Installation\n\n```bash\nnpm install --save @opentelemetry/exporter-collector-grpc\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-grpc');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  url: '<opentelemetry-collector-url>' // url is optional and can be omitted - default is localhost:4317\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-grpc');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  url: '<opentelemetry-collector-url>', // url is optional and can be omitted - default is localhost:4317\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-grpc');\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:4317\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## Metrics in Node - GRPC\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-grpc');\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 in [GitHub Discussions][discussions-url]\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\n[discussions-url]: https://github.com/open-telemetry/opentelemetry-js/discussions\n[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/main/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-grpc\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc\n[devDependencies-image]: https://david-dm.org/open-telemetry/opentelemetry-js/dev-status.svg?path=packages/opentelemetry-exporter-collector-grpc\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/exporter-collector-grpc\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fexporter-collector-grpc.svg\n[opentelemetry-collector-url]: https://github.com/open-telemetry/opentelemetry-collector\n","engines":{"node":">=8.0.0"},"gitHead":"1d682c2f75f9d11265cfc1692fa822174594d4b0","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"npm run protos:copy && tsc -w","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","submodule":"git submodule sync --recursive && git submodule update --init --recursive","postcompile":"npm run submodule && npm run protos:copy","protos:copy":"cpx protos/opentelemetry/**/*.* build/protos/opentelemetry"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.15.4+x64 (linux)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.15.4","dependencies":{"grpc":"^1.24.2","@grpc/proto-loader":"^0.5.4","@opentelemetry/api":"^0.16.1-alpha.15+1d682c2f","@opentelemetry/core":"^0.16.1-alpha.15+1d682c2f","@opentelemetry/metrics":"^0.16.1-alpha.15+1d682c2f","@opentelemetry/tracing":"^0.16.1-alpha.15+1d682c2f","@opentelemetry/resources":"^0.16.1-alpha.15+1d682c2f","@opentelemetry/exporter-collector":"^0.16.1-alpha.15+1d682c2f"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cpx":"1.5.0","gts":"3.1.0","nyc":"15.1.0","mocha":"7.2.0","sinon":"9.2.3","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","ts-loader":"8.0.14","typescript":"4.1.3","@babel/core":"7.12.10","@types/node":"14.14.20","@types/mocha":"8.2.0","@types/sinon":"9.0.10","@opentelemetry/api-metrics":"^0.16.1-alpha.15+1d682c2f"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.16.1-alpha.15_1612995524264_0.5542921086910331","host":"s3://npm-registry-packages"}},"0.16.1-alpha.18":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.16.1-alpha.18","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.16.1-alpha.18","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"7f433a6a660b3da59c3e46c35d44169e9fbae99e","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.16.1-alpha.18.tgz","fileCount":35,"integrity":"sha512-AauMv8ZHZtgXOTYcZ9JkFfA52TevewLferPGUuQkNwYIQmamkJaN+NxIjGeRm07bfPAz6s8uwYjnrVkhq15w/w==","signatures":[{"sig":"MEYCIQCL5+LmSzRMpuR9X9Fhd5mQLCIOScHfUEhasIqtOQ5h1AIhALrAKS5+GxfDAwUMw7S5ma2YKbosWWVGNUmpxDHqUMg6","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":104931,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgKWgwCRA9TVsSAnZWagAAA34P/AlWKDZh9VsDfjC8UT0R\nisaMy5nGZFre1n9Clo9OKJc/wDk7OScm9bRMTY3al8gM5eB0TPpLc34kpv9A\nxImLyXCONM1qhbU4JNZJSxG/u4/jxQLrUxRlej1vx+Zo8s48rGXyZ/meud5X\nwu1Ts1trFgckMJgbEP+V70KR1LVAWl+XsnAvexQRbesVFalBKMwYJkHx5p3u\nMjUbHGOR1qT4MuBOQLsalL2gVG+Rny0k77Ca39onpbdxaVs2CJGxZTbTGs59\nKlSdBV/gqVck9zOyXR8KyeRu4oYNb1smD4/gy/u6FX8D2RqqceZivPLbz4w0\njo5WZv0mXbyAU5IYbs27A5QtxHHwjIi2gOSUo21eL3fAVZ9sIrOhoRR7wMZJ\neIMj9AEyarJ6u9xm/Bqo23pISRmaXTuXws6jPMNzqBoj08svslJjV5Vrq8tV\nvCn09ca6tEVVEWQkx6Gpmiodq5nmu+oT5s1pRM6PXsyRHYFO7f51wD75myNm\nVT8MV61WtEBLLOicR93PIEVbd1GH7m6RzzwvMvCY4Z1dERapCN+OspDsiQPN\n4e+2SDbIgIpUFladuOhhbnQ/WVMJyF2bEsyqIwNgGxbdT4JEgiHoNljyjjEP\no992Kd47RyRFl2A15f1Ve82vi9+m1xI4CLdkwxnyedqJ8GY3MZceD8BHHJ0Y\nj/IQ\r\n=inYr\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry Collector Exporter for node with grpc\n\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.16.0**.\n\n## Installation\n\n```bash\nnpm install --save @opentelemetry/exporter-collector-grpc\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-grpc');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  url: '<opentelemetry-collector-url>' // url is optional and can be omitted - default is localhost:4317\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-grpc');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  url: '<opentelemetry-collector-url>', // url is optional and can be omitted - default is localhost:4317\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-grpc');\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:4317\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## Metrics in Node - GRPC\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-grpc');\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 in [GitHub Discussions][discussions-url]\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\n[discussions-url]: https://github.com/open-telemetry/opentelemetry-js/discussions\n[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/main/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-grpc\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc\n[devDependencies-image]: https://david-dm.org/open-telemetry/opentelemetry-js/dev-status.svg?path=packages/opentelemetry-exporter-collector-grpc\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/exporter-collector-grpc\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fexporter-collector-grpc.svg\n[opentelemetry-collector-url]: https://github.com/open-telemetry/opentelemetry-collector\n","engines":{"node":">=8.0.0"},"gitHead":"9f965b0c749108df00bbe44eeab84d79b04bb0a4","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"npm run protos:copy && tsc -w","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","submodule":"git submodule sync --recursive && git submodule update --init --recursive","postcompile":"npm run submodule && npm run protos:copy","protos:copy":"cpx protos/opentelemetry/**/*.* build/protos/opentelemetry"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.15.4+x64 (linux)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.15.4","dependencies":{"grpc":"^1.24.2","@grpc/proto-loader":"^0.5.4","@opentelemetry/api":"^0.16.0","@opentelemetry/core":"^0.16.1-alpha.18+9f965b0c","@opentelemetry/metrics":"^0.16.1-alpha.18+9f965b0c","@opentelemetry/tracing":"^0.16.1-alpha.18+9f965b0c","@opentelemetry/resources":"^0.16.1-alpha.18+9f965b0c","@opentelemetry/exporter-collector":"^0.16.1-alpha.18+9f965b0c"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cpx":"1.5.0","gts":"3.1.0","nyc":"15.1.0","mocha":"7.2.0","sinon":"9.2.3","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","ts-loader":"8.0.14","typescript":"4.1.3","@babel/core":"7.12.10","@types/node":"14.14.20","@types/mocha":"8.2.0","@types/sinon":"9.0.10","@opentelemetry/api-metrics":"^0.16.0"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.16.1-alpha.18_1613326384137_0.8768790643182969","host":"s3://npm-registry-packages"}},"0.16.1-alpha.20":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.16.1-alpha.20","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.16.1-alpha.20","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"53998db23a0c6561a73e34526cb6db924e5acfb6","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.16.1-alpha.20.tgz","fileCount":35,"integrity":"sha512-/0fvOsAVRKes7owtImkI7ns+x8P0iwfPk4++43vqPCV/sV7Zqgn3UCJ4oPgp2NbCklqrdPZqCktr1SpHFLeG1w==","signatures":[{"sig":"MEUCIDP6BSe0ODrbBLOg/QFOeQ8NGLdko+8G3L13Na4P5JCKAiEAilfLDgrBmba7asM72m4wv7jr8iE403W2L4mgTmGuvv0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":105029,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgLYIWCRA9TVsSAnZWagAAIZkP/Rl9VY6y4pUoePCtM27F\n1ukDhCu4Z5y0HfGh1LiWg02Yhtx4Cup+TmYi8pV5ERqVAG2D4xaTWCU6n/nv\ntoWMA1loRpaz0BPUSk4ClugIpzsin/jobwRdwiY5zoBosonI4ZHoA700CuuA\nbxMHwUge85aD0UWloZqAmp5eICvOwhw5ZCEYIVrSTeJdTVzGcXIwzooZUsHb\nUK/JPZ3kWcsPdTWVI7d7mORovKZKHotBbv/ZwQ37nsKz5M6cbDzldoq0vCui\ni3MrajU2Tgvl0IvG80Wm34H8ZV7IzUl+B59jnAd1vumIVAKQoO766JlWGWBY\nIUElvx9QxDJ6g/nRPbcnBBYwkO+uiRDcWZchvnwQkRMPjYqYP7C/zfS2xhhk\net8++d00FK8UssWUtE2bAqGjY00IJAOls5yNqe/nBJztzUZWjD8JlA0sVIQa\nHIn4OWOIna3Xzz5XINHURIPYL8wZakzOuwkp/Yg61Wyy4lSNlCPsL47PmafR\n4vqKX/vrQVT9QtauXS5AkU80vXy165nmx+QXLhl8V1VgP0MuUq+h+4Yfj3oB\nDTAPIXFw2Sp/FGxpJFQbg8SfG7ofODewflLPVeGy8QShDUS5LiHm4TJ7pPSZ\nV3TcoNXZII+ZWZr3OMAi7DnYPSTHHwNQCgwVgA9fMnUl8J6XDFy60dTHwVWN\n7BfV\r\n=I+z3\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry Collector Exporter for node with grpc\n\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.16.0**.\n\n## Installation\n\n```bash\nnpm install --save @opentelemetry/exporter-collector-grpc\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-grpc');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  url: '<opentelemetry-collector-url>' // url is optional and can be omitted - default is localhost:4317\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-grpc');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  url: '<opentelemetry-collector-url>', // url is optional and can be omitted - default is localhost:4317\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-grpc');\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:4317\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## Metrics in Node - GRPC\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-grpc');\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 in [GitHub Discussions][discussions-url]\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\n[discussions-url]: https://github.com/open-telemetry/opentelemetry-js/discussions\n[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/main/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-grpc\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc\n[devDependencies-image]: https://david-dm.org/open-telemetry/opentelemetry-js/dev-status.svg?path=packages/opentelemetry-exporter-collector-grpc\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/exporter-collector-grpc\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fexporter-collector-grpc.svg\n[opentelemetry-collector-url]: https://github.com/open-telemetry/opentelemetry-collector\n","engines":{"node":">=8.0.0"},"gitHead":"62f8695d3fe5309c62418a1043bc6e8a176bc11f","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"npm run protos:copy && tsc -w","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","submodule":"git submodule sync --recursive && git submodule update --init --recursive","postcompile":"npm run submodule && npm run protos:copy","protos:copy":"cpx protos/opentelemetry/**/*.* build/protos/opentelemetry"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.15.4+x64 (linux)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.15.4","dependencies":{"grpc":"^1.24.2","@grpc/proto-loader":"^0.5.4","@opentelemetry/api":"^0.16.1-alpha.20+62f8695d","@opentelemetry/core":"^0.16.1-alpha.20+62f8695d","@opentelemetry/metrics":"^0.16.1-alpha.20+62f8695d","@opentelemetry/tracing":"^0.16.1-alpha.20+62f8695d","@opentelemetry/resources":"^0.16.1-alpha.20+62f8695d","@opentelemetry/exporter-collector":"^0.16.1-alpha.20+62f8695d"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cpx":"1.5.0","gts":"3.1.0","nyc":"15.1.0","mocha":"7.2.0","sinon":"9.2.3","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","ts-loader":"8.0.14","typescript":"4.1.3","@babel/core":"7.12.10","@types/node":"14.14.20","@types/mocha":"8.2.0","@types/sinon":"9.0.10","@opentelemetry/api-metrics":"^0.16.1-alpha.20+62f8695d"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.16.1-alpha.20_1613595158140_0.7503965860349611","host":"s3://npm-registry-packages"}},"0.17.0":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.17.0","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.17.0","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"2a14600b300a354299846f67913548dbd8917c99","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.17.0.tgz","fileCount":35,"integrity":"sha512-kDPUca6Xfmmk4UT0AN1Tj4x9stB4P/8imhuvZp2K06GGgxU6mjjl35WrZGrZ1HZN8MMg/U8UUVUrF8hbjjjTYA==","signatures":[{"sig":"MEUCIC/QYqxJCEcwnz8wGyjawD1hV6Epkg+eP4iZ1LCL5+zWAiEAl56rjbSm7iKu7K/LfMtV+HPHRGmCwmWGtjJofp4n/oE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":104885,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgLYerCRA9TVsSAnZWagAAddkP/A44LSUa2AZP3GaE/rkk\nk4sef+UhlSeRBtYx/QwTGqBYzZKwROnM7mRMK3Fj1FpQ04OAxAIZRHMWyRwN\nsiJovjFiLxEu5Vj3Tb2UV9APCPEBbPns9UCBNt28Fn6OGO73Zj4L1eFu+n8j\nXkg1BFAa6dTcn+aFm5mjUkOpm1d/7WvwKIxrxyqxMpyDbdqMCtceBjmBn53n\ni78aBzbexvPjK3scKn23D01Ot0/bPtyzB79C2JVOTZVB5UhBrkuOIM8dxnSz\n/Sx/7T59TJkXoOAU7xKaFJod10VPb2fFYDeXM7MeItgumd6+JuW4QKBKS/T3\nJdqVVGcbZq4ZJ6elfEpwHgDOf92umMqvTWZoKmni1zcSF9IzXmVAO7+iWaus\nFfP6JtwdPq10xprytEuje6G3xKWFhkK8NesyNzUefwR5Jjul3eOW8QsQT4Qv\na9MUlShH+qv24aX1xFXtWTXpZZjFTZtRdpBGybFg0gqyD0+5lXVKbsCZCvut\nen20Mtf3DbM2BLGTh5SkrCScFwwjsTNe4qcdcDCV6qDkck32l7np2645Tf2y\naRBOQzm1rGIHVN1hPCeMYAX7rmW6L1TZ03VsU+oXwxN4xX+NtbjVSM2RYW6h\nsSCYvp0mdjHfjvCAxoGXob/kyp+N4Yk3Cz9q7I68ARKsUcpvGvpu1KbuvhuO\nw+5A\r\n=8hXB\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","engines":{"node":">=8.0.0"},"gitHead":"a91ea7617f288af632934334d0c8ecece318ce73","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"npm run protos:copy && tsc -w","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","submodule":"git submodule sync --recursive && git submodule update --init --recursive","postcompile":"npm run submodule && npm run protos:copy","protos:copy":"cpx protos/opentelemetry/**/*.* build/protos/opentelemetry"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.8.0+x64 (darwin)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.8.0","dependencies":{"grpc":"^1.24.2","@grpc/proto-loader":"^0.5.4","@opentelemetry/api":"^0.17.0","@opentelemetry/core":"^0.17.0","@opentelemetry/metrics":"^0.17.0","@opentelemetry/tracing":"^0.17.0","@opentelemetry/resources":"^0.17.0","@opentelemetry/exporter-collector":"^0.17.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"cpx":"1.5.0","gts":"3.1.0","nyc":"15.1.0","mocha":"7.2.0","sinon":"9.2.3","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","ts-loader":"8.0.14","typescript":"4.1.3","@babel/core":"7.12.10","@types/node":"14.14.20","@types/mocha":"8.2.0","@types/sinon":"9.0.10","@opentelemetry/api-metrics":"^0.17.0"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.17.0_1613596587531_0.5690474381342752","host":"s3://npm-registry-packages"}},"0.17.1-alpha.21":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.17.1-alpha.21","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.17.1-alpha.21","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"9440ab0551cd66eff12476dc6b9393a5d5defe1d","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.17.1-alpha.21.tgz","fileCount":35,"integrity":"sha512-xlJBhEypk2SnktIHjHhIwkXP9dw35eQqWSBGAzoFw9X+neAcxBXwNrfN4w/YhAziaiYmhvbtKtnWKHkhcP8zSA==","signatures":[{"sig":"MEUCIQDaGonN69GU/HPHgqvi/rs3Ld6WUYEOp4efolzHmmZHhQIgXipnd2BAww1pyEmedjikizeBH/u2V3SPwKCW9XoR0a0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":105029,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgLYfnCRA9TVsSAnZWagAAEYoP+QCw1HV8HEYieia4U1gp\nfV21gFKsp/MHp9r3w57d6EFXAWd6DxCCR+JymhIchPxQbRALGFp2aAbVj+Yr\nEUPq4N3kx0obuu+kOM3Aa6qS1k4hdZukY7GCmj9akHAXNgsKfo0k6GPEWb8/\nJ7CbmwKP76+dK+AxsGl5nDj2ALtcTOyoSOxMQ9GVeLunORBZTeAAVUQDooCs\nF8mxeTjrJHb9clahRm0O5o2KwpWaH2op9PG3MDaq5OT7KPgNVYQTYL/TPOOh\njrwWzTojilr/p9uZnwf5fgBF7yyQhypEYdHpPz7Ap0cK7y3XeiYl+LdcjSxw\nKmePU1cIMo/biGeYUXT7FAv+R96XwHoFUkq2QF1LyK+EVkxBRijot8L05Dwi\nkc2YieMOOIvwSfke/RI3k0FO4z57MuEk31OSbvYHcLCjZRrM42AGqDy4owVn\nwgdfzH+zOh2lnAjhH0Wclz3l1olqIio59dOLSzmNPTHl++ufousSbQyHMVFM\n62zpz7uwsXjCJe+o/isg0RUlUa5pgTaeQIzcgDlUEo0I8sB/hQ6RAjLwTJUq\nfkGSG6qo38UcbZnRzDQsVUJJjH/cg+P39gS9Jq5CFA5s353jrYD/JNZdTVZh\nERXwxjG641flB0cwKEeHLzPArY3Fsp6pqf9kdTGvYhSekYZKgbO8VeLNB3yH\n4QRW\r\n=Iyg7\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry Collector Exporter for node with grpc\n\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.16.0**.\n\n## Installation\n\n```bash\nnpm install --save @opentelemetry/exporter-collector-grpc\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-grpc');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  url: '<opentelemetry-collector-url>' // url is optional and can be omitted - default is localhost:4317\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-grpc');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  url: '<opentelemetry-collector-url>', // url is optional and can be omitted - default is localhost:4317\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-grpc');\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:4317\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## Metrics in Node - GRPC\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-grpc');\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 in [GitHub Discussions][discussions-url]\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\n[discussions-url]: https://github.com/open-telemetry/opentelemetry-js/discussions\n[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/main/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-grpc\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc\n[devDependencies-image]: https://david-dm.org/open-telemetry/opentelemetry-js/dev-status.svg?path=packages/opentelemetry-exporter-collector-grpc\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/exporter-collector-grpc\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fexporter-collector-grpc.svg\n[opentelemetry-collector-url]: https://github.com/open-telemetry/opentelemetry-collector\n","engines":{"node":">=8.0.0"},"gitHead":"a91ea7617f288af632934334d0c8ecece318ce73","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"npm run protos:copy && tsc -w","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","submodule":"git submodule sync --recursive && git submodule update --init --recursive","postcompile":"npm run submodule && npm run protos:copy","protos:copy":"cpx protos/opentelemetry/**/*.* build/protos/opentelemetry"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.15.4+x64 (linux)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.15.4","dependencies":{"grpc":"^1.24.2","@grpc/proto-loader":"^0.5.4","@opentelemetry/api":"^0.17.1-alpha.21+a91ea761","@opentelemetry/core":"^0.17.1-alpha.21+a91ea761","@opentelemetry/metrics":"^0.17.1-alpha.21+a91ea761","@opentelemetry/tracing":"^0.17.1-alpha.21+a91ea761","@opentelemetry/resources":"^0.17.1-alpha.21+a91ea761","@opentelemetry/exporter-collector":"^0.17.1-alpha.21+a91ea761"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cpx":"1.5.0","gts":"3.1.0","nyc":"15.1.0","mocha":"7.2.0","sinon":"9.2.3","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","ts-loader":"8.0.14","typescript":"4.1.3","@babel/core":"7.12.10","@types/node":"14.14.20","@types/mocha":"8.2.0","@types/sinon":"9.0.10","@opentelemetry/api-metrics":"^0.17.1-alpha.21+a91ea761"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.17.1-alpha.21_1613596647184_0.23710180886419763","host":"s3://npm-registry-packages"}},"0.17.1-alpha.2":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.17.1-alpha.2","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.17.1-alpha.2","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"adc8a3c76d215bc22b4330e800909193f828b9d8","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.17.1-alpha.2.tgz","fileCount":35,"integrity":"sha512-5MsENLVtNM4tu9l9M6q6/7b5O43hxk7/pqnanFGFeKO1eL3kRXAIkqf0L8jqsCTIES2GbMDN/SSrKuLK93Qnbw==","signatures":[{"sig":"MEUCIQC3Sai8aWT9AgGlHV5tFRAwpUr86znftYAQQwk54PhqgAIgLLuG6afZMCrJcfL2bAsQ69BWvjPf3Y/eUmVD1ZbX9ZM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":104987,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgMUj2CRA9TVsSAnZWagAAaFcQAIw9EUqoqmTZOiX9XdEt\nUXAiSd/bGubNj/ct+dDaysZ8sppowjILsD6geYdbL40Cz+Mj0SLoQYQYn6nq\njVoTp3EbUhL4lkOgVXTcmiF3v0igqF0pbsVW4buebRNjbyz0eErw6QFBi6cE\nAgyiwZClZM00tj1oad4Igkmkf6EBQl735kq3fISO7k4cl2Teq0l6FsptlzA7\n9QiuLUhZMszA4pu6kaKSmdR/m58REz8t87vnjyqbI9cnHGUO/fzni39Ni8aj\nCod0FDD5EVueRHLlCecX3GAl/wQVAxKM/2cNuZ8iDGgBNuTtWVzkxZEgjhau\n+6SPchPfE4854Jpjel3uWttwaO+GPwRajoJw+Eyoq/0reStzbukZI8LD+0pw\n2WisygJyqCgi++HEaoiJ9T4oKqweoiQf8CMLVmKMkzB1RxgiqeiXEM2PCfV3\n1OSrNeS/Uauv1RSxF8KbQOPhkDedWar3DeiNOkKuCzgd+xpklalb0ibMxFBD\nwtU3PE4QDGZyTYNliQe+aWP7/H9UOQFQifVemKsVtAVYr6jvxxYMtZ4VK3Ja\n9edACtT9A8WytyGh8sf9c8l92yYwTnVwt7OtglLZJyH7Z99ZdYjfhSK9tBJx\n/FM+enRnLV6sVe5OqTNbk1vjspJss1oOylbyq+haOTrOeFARtYGjFBB4JvdY\njdvL\r\n=InzP\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry Collector Exporter for node with grpc\n\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.16.0**.\n\n## Installation\n\n```bash\nnpm install --save @opentelemetry/exporter-collector-grpc\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-grpc');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  url: '<opentelemetry-collector-url>' // url is optional and can be omitted - default is localhost:4317\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-grpc');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  url: '<opentelemetry-collector-url>', // url is optional and can be omitted - default is localhost:4317\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-grpc');\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:4317\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## Metrics in Node - GRPC\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-grpc');\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 in [GitHub Discussions][discussions-url]\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\n[discussions-url]: https://github.com/open-telemetry/opentelemetry-js/discussions\n[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/main/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-grpc\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc\n[devDependencies-image]: https://david-dm.org/open-telemetry/opentelemetry-js/dev-status.svg?path=packages/opentelemetry-exporter-collector-grpc\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/exporter-collector-grpc\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fexporter-collector-grpc.svg\n[opentelemetry-collector-url]: https://github.com/open-telemetry/opentelemetry-collector\n","engines":{"node":">=8.0.0"},"gitHead":"38d1ee2552bbdda0a151734ba0d50ee7448e68e1","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"npm run protos:copy && tsc -w","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","submodule":"git submodule sync --recursive && git submodule update --init --recursive","postcompile":"npm run submodule && npm run protos:copy","protos:copy":"cpx protos/opentelemetry/**/*.* build/protos/opentelemetry"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.15.5+x64 (linux)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.15.5","dependencies":{"grpc":"^1.24.2","@grpc/proto-loader":"^0.5.4","@opentelemetry/api":"^0.17.0","@opentelemetry/core":"^0.17.1-alpha.2+38d1ee25","@opentelemetry/metrics":"^0.17.1-alpha.2+38d1ee25","@opentelemetry/tracing":"^0.17.1-alpha.2+38d1ee25","@opentelemetry/resources":"^0.17.1-alpha.2+38d1ee25","@opentelemetry/exporter-collector":"^0.17.1-alpha.2+38d1ee25"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cpx":"1.5.0","gts":"3.1.0","nyc":"15.1.0","mocha":"7.2.0","sinon":"9.2.3","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","ts-loader":"8.0.14","typescript":"4.1.3","@babel/core":"7.12.10","@types/node":"14.14.20","@types/mocha":"8.2.0","@types/sinon":"9.0.10","@opentelemetry/api-metrics":"^0.17.0"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.17.1-alpha.2_1613842678116_0.9134890326334102","host":"s3://npm-registry-packages"}},"0.17.1-alpha.5":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.17.1-alpha.5","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.17.1-alpha.5","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"5fa0ca58c86dbe851ad30e9df5576834bc9792a8","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.17.1-alpha.5.tgz","fileCount":35,"integrity":"sha512-iu/tTKidJGcY3tRrQ6l3/c0SNDT8cL4ozPfC3wxCFGUw5LDuVzcZaUXNvJvhswrSRYfqs9B2LY0/NJlHMo2sAw==","signatures":[{"sig":"MEQCIBaA3ZyHfkramNfrWHuO0r5v2J1eUcHPmhY+dAQIcXiEAiAha3iTjESSqhi3BK8YLGhTgswZ4RHz9+gZ0fTNzxlVKg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":105004,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgNorYCRA9TVsSAnZWagAA0OgQAI6V8NVeBesBUToAzXo7\ndWYIIIM2HzSL3PoUBzjjOhCIA3CKlSauC5OlvyO/L/JFJagGT9i4L2a1qW9V\nHK22WMr+shJ8ysJMn7kJA5apNqUuvA/GCPFzB1DOlXHfYiTjXcw6Oa312BPS\ne8ChAguarTcqYglImetbbza95feiE2xZU0PQbOOkPmhZILDy5Xyhd4XakGYY\n7Odh+ivI89agjTTRPvkFlZHaqxi8JCTmVkwEI9cXRn5gQzbd6WXD/TW99Jk7\nitmFIyg1Qg4tTvShGUNZjIzIlRS4cmNWeWFJYbhda8UGUO+y0Mhyk9CjWFpy\natUAiX4DqqZsfVK1O6oF3YPxSAgUeV5Yuxv2aYbHE/C9tbcprKcjlaL+0r1A\n8um6vWhqLj2MfWoOVJFPMhS4DmZSiGeMTXZ0/7VOVwwNRqaNv6lUnFCDWq4B\n0zlzveBmeZ6vahBjBUTl8Y4tXyalSvXUbkf18Rsf47GA4DTlCMc0bRtP2F8F\n0dkMp6wvdjswM9nh1nMuzAIq3tD3O15UUnwFSQj9bBRW7jBA6VcQmxn6EqWE\nzV1V69J+jLrwgqAXBE9E3UGGtN2e1Ow5nFe344LCg/B4DM4DNTjCGwBiSf3s\nGZz9UVcgqm9U+6YCQ9ARcZPxalSZm6Zgjg7md4ZnOye9Hj/F+QyKxSITA577\nSDJQ\r\n=UKgm\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry Collector Exporter for node with grpc\n\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.16.0**.\n\n## Installation\n\n```bash\nnpm install --save @opentelemetry/exporter-collector-grpc\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-grpc');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  url: '<opentelemetry-collector-url>' // url is optional and can be omitted - default is localhost:4317\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-grpc');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  url: '<opentelemetry-collector-url>', // url is optional and can be omitted - default is localhost:4317\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-grpc');\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:4317\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## Metrics in Node - GRPC\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-grpc');\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 in [GitHub Discussions][discussions-url]\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\n[discussions-url]: https://github.com/open-telemetry/opentelemetry-js/discussions\n[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/main/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-grpc\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc\n[devDependencies-image]: https://david-dm.org/open-telemetry/opentelemetry-js/dev-status.svg?path=packages/opentelemetry-exporter-collector-grpc\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/exporter-collector-grpc\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fexporter-collector-grpc.svg\n[opentelemetry-collector-url]: https://github.com/open-telemetry/opentelemetry-collector\n","engines":{"node":">=8.0.0"},"gitHead":"36ae1bd89abc2e2cc7f64e4a35a94d7e75a81d0d","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"npm run protos:copy && tsc -w","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","submodule":"git submodule sync --recursive && git submodule update --init --recursive","postcompile":"npm run submodule && npm run protos:copy","protos:copy":"cpx protos/opentelemetry/**/*.* build/protos/opentelemetry"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.15.5+x64 (linux)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.15.5","dependencies":{"grpc":"^1.24.2","@grpc/proto-loader":"^0.5.4","@opentelemetry/api":"^0.17.0","@opentelemetry/core":"^0.17.1-alpha.5+36ae1bd8","@opentelemetry/metrics":"^0.17.1-alpha.5+36ae1bd8","@opentelemetry/tracing":"^0.17.1-alpha.5+36ae1bd8","@opentelemetry/resources":"^0.17.1-alpha.5+36ae1bd8","@opentelemetry/exporter-collector":"^0.17.1-alpha.5+36ae1bd8"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cpx":"1.5.0","gts":"3.1.0","nyc":"15.1.0","mocha":"7.2.0","sinon":"9.2.3","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","ts-loader":"8.0.14","typescript":"4.1.3","@babel/core":"7.12.10","@types/node":"14.14.20","@types/mocha":"8.2.0","@types/sinon":"9.0.10","@opentelemetry/api-metrics":"^0.17.1-alpha.5+36ae1bd8"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.17.1-alpha.5_1614187223696_0.9258997705818934","host":"s3://npm-registry-packages"}},"0.17.1-alpha.7":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.17.1-alpha.7","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.17.1-alpha.7","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"ba24aa8634501a2b1c6aede0714261a3a2d4ed9d","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.17.1-alpha.7.tgz","fileCount":35,"integrity":"sha512-4zMFT/jrlsyOhs1q3yjX+F+Aly0NEJWqnQ19xwm21RAPXoyIAx3hc8nfPeXMPHoooyJRZ2ik/Jbu1ZPmJ45Nyg==","signatures":[{"sig":"MEUCIB6t3dS0aiBEPWVnR1yKxnqzC6hQlZAET9+ZQcJE7fy6AiEAxRKYBmodoeL6V61zuBuDbGVdivW+0wmYB0vTlZeZOdc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":104919,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgOCibCRA9TVsSAnZWagAAiRoQAKIRLTXX9iJp8UMutUQQ\n261mgmPyC67UxYfvm2VYuxToa0o6nrdFU0JwCsRhNkRa4Gy+PfpACGpf0y5U\ndl4iIYsMUljqiIZxMYAiH53h19N1TC8nLwq/USpcmZkus+Ws8bMWwvXd4hV1\ndhhBhOSpx76mkiwqMO95NohaEtX/e6BH8bwmZMAYkvAXoUrPrw782ZXrcoUx\nc7WV6ZKiEj06Vu3v1oguaw9bkToJRUoQQuleMp1hhvZ2k3hAOPhXjf3QkeS4\njvDqm7Nf8b1bSbkacKHSTc/Z3aJ4CtHAY0sejMtwQ5Z4wQ9MWLAzyhngN98X\n8u53aJPnSrJvA3vORjVL2PWgdkKdczfRen8kFe/CWvVJ3bp7srrXSqNLNX0b\nWLDY2dlUq0tTEl+PNCRIckScijoeZTsNuasJO3GLIu5K3J8CLxWFsE47NFLW\nRs031SdMsPrX6DISt1aCVhpTJ0d82/sWB91H8gYgrftwxvT8R050st2tsXV/\nC3BQliTzTQvo9adbrJomIMwLTjV3ALxWuZIKlrxWaL38kjKevGpLmcJwGHS3\nwHWzW+rIC2kSLLFg2n4vT1cmfLs7BQSJgoR/UKkywLYA6B65Dpr6k4R7i78e\nMGfiqt+VQ+/RJ5qlDvhGDH5Sipezt762tA0Tkw5liar/29cuus0+4kOzNWf3\nB+Rj\r\n=a2J1\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry Collector Exporter for node with grpc\n\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.16.0**.\n\n## Installation\n\n```bash\nnpm install --save @opentelemetry/exporter-collector-grpc\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-grpc');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  url: '<opentelemetry-collector-url>' // url is optional and can be omitted - default is localhost:4317\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-grpc');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  url: '<opentelemetry-collector-url>', // url is optional and can be omitted - default is localhost:4317\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-grpc');\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:4317\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## Metrics in Node - GRPC\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-grpc');\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 in [GitHub Discussions][discussions-url]\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\n[discussions-url]: https://github.com/open-telemetry/opentelemetry-js/discussions\n[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/main/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-grpc\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc\n[devDependencies-image]: https://david-dm.org/open-telemetry/opentelemetry-js/dev-status.svg?path=packages/opentelemetry-exporter-collector-grpc\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/exporter-collector-grpc\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fexporter-collector-grpc.svg\n[opentelemetry-collector-url]: https://github.com/open-telemetry/opentelemetry-collector\n","engines":{"node":">=8.0.0"},"gitHead":"8af444408cba94f6cc119112c31b0b9da9057750","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"npm run protos:copy && tsc -w","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","submodule":"git submodule sync --recursive && git submodule update --init --recursive","postcompile":"npm run submodule && npm run protos:copy","protos:copy":"cpx protos/opentelemetry/**/*.* build/protos/opentelemetry"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.15.5+x64 (linux)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.15.5","dependencies":{"grpc":"^1.24.2","@grpc/proto-loader":"^0.5.4","@opentelemetry/api":"^0.17.0","@opentelemetry/core":"^0.17.0","@opentelemetry/metrics":"^0.17.0","@opentelemetry/tracing":"^0.17.0","@opentelemetry/resources":"^0.17.0","@opentelemetry/exporter-collector":"^0.17.1-alpha.7+8af44440"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cpx":"1.5.0","gts":"3.1.0","nyc":"15.1.0","mocha":"7.2.0","sinon":"9.2.3","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","ts-loader":"8.0.14","typescript":"4.1.3","@babel/core":"7.12.10","@types/node":"14.14.20","@types/mocha":"8.2.0","@types/sinon":"9.0.10","@opentelemetry/api-metrics":"^0.17.0"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.17.1-alpha.7_1614293147019_0.5017169045609298","host":"s3://npm-registry-packages"}},"0.17.1-alpha.8":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.17.1-alpha.8","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.17.1-alpha.8","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"16c7cff1dbd43954a63c8665b1a78891f243fa9c","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.17.1-alpha.8.tgz","fileCount":35,"integrity":"sha512-cN443jC+cNvl/Mbj38Y4meoLJCqgQgpZ+DQRuxsA71NPMOtzp0NU9p6oTaw8GATkQ/2q0IBvVwe2PYOUUdAE0A==","signatures":[{"sig":"MEUCIQD/LzR9jkRknaQgudBDs1RPLFurmqHj/6D+NPkHdg2yuwIgPgEOYcd40+A6wBxQOvZkpAoAYZ6IQBBdONCmavew72M=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":105004,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgPO5sCRA9TVsSAnZWagAA+PQQAIz7Ft+BJgu4CLjCoanm\nD4+Jb6yNUfKtwFhlm5uV3TaHHBic/9tfvumsL+bP8WCHQgqLB15qQn0weHkv\npxB8BrPm2BJBOYhJLN9wyTULF3ZH8ZKi6I+C+evGbsocPHhd9Qzeiokqnm8n\nX9APiQhkqqx3OoaPZl/Q/vwpT6wLuBbhdZxqXjEV0YtXdkxRZpCL+aOPVu2X\n6geGjgtivaQXhwuxotKbnOTPoBALBkfmpd/ORsq2aj2u6ylzsWlvPYXD6CVd\n4OgocKdHwYa+KJDm1W729QzqJPtNeVsR8sqUnWx/8gTVWBsNF/ddtwSLd6oT\nzhqmBo0yiTF2YlFY3PHoAb1v1J/Mf+gNh0IidkXQdC3t4ryKfXdesey3NnbS\nyxpyCePlnrAFeDw2rEGYjCu0GZbOy3ZPTQCbZUHG2qTZq7hwq0l2JZ2wFgE4\nyTJeu7v1gt0rA9IWE9Q40JOtkvdG9PdHRZtRHEIT8JMp14WEosL5nxLJM85+\ntMWeBDQW4A4mSAatqdHnfZpclLfqA4WQMR0ulxIgDzBL87kmOtj8LK26VQ89\nVZeZXEt2GOY97tRBiYR3p8VWTl8hjqiHxlnqePaY0yaCtt4fJpfczPt2xKX9\nEgx9QpJmS79eiBHkMjlwte48GdZvgId7UanBsH+EJRg1E2vdj4fYE523ti9b\nQ/R2\r\n=4ttu\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry Collector Exporter for node with grpc\n\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.16.0**.\n\n## Installation\n\n```bash\nnpm install --save @opentelemetry/exporter-collector-grpc\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-grpc');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  url: '<opentelemetry-collector-url>' // url is optional and can be omitted - default is localhost:4317\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-grpc');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  url: '<opentelemetry-collector-url>', // url is optional and can be omitted - default is localhost:4317\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-grpc');\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:4317\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## Metrics in Node - GRPC\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-grpc');\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 in [GitHub Discussions][discussions-url]\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\n[discussions-url]: https://github.com/open-telemetry/opentelemetry-js/discussions\n[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/main/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-grpc\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc\n[devDependencies-image]: https://david-dm.org/open-telemetry/opentelemetry-js/dev-status.svg?path=packages/opentelemetry-exporter-collector-grpc\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/exporter-collector-grpc\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fexporter-collector-grpc.svg\n[opentelemetry-collector-url]: https://github.com/open-telemetry/opentelemetry-collector\n","engines":{"node":">=8.0.0"},"gitHead":"67f7e70a3de005484d3e110b06f6bbee75b6f8a6","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"npm run protos:copy && tsc -w","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","submodule":"git submodule sync --recursive && git submodule update --init --recursive","postcompile":"npm run submodule && npm run protos:copy","protos:copy":"cpx protos/opentelemetry/**/*.* build/protos/opentelemetry"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.15.5+x64 (linux)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.15.5","dependencies":{"grpc":"^1.24.2","@grpc/proto-loader":"^0.5.4","@opentelemetry/api":"^0.18.0","@opentelemetry/core":"^0.17.1-alpha.8+67f7e70a","@opentelemetry/metrics":"^0.17.1-alpha.8+67f7e70a","@opentelemetry/tracing":"^0.17.1-alpha.8+67f7e70a","@opentelemetry/resources":"^0.17.1-alpha.8+67f7e70a","@opentelemetry/exporter-collector":"^0.17.1-alpha.8+67f7e70a"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cpx":"1.5.0","gts":"3.1.0","nyc":"15.1.0","mocha":"7.2.0","sinon":"9.2.3","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","ts-loader":"8.0.14","typescript":"4.1.3","@babel/core":"7.12.10","@types/node":"14.14.20","@types/mocha":"8.2.0","@types/sinon":"9.0.10","@opentelemetry/api-metrics":"^0.17.1-alpha.8+67f7e70a"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.17.1-alpha.8_1614605930623_0.21119256081626192","host":"s3://npm-registry-packages"}},"0.17.1-alpha.10":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.17.1-alpha.10","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.17.1-alpha.10","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"e23b66a61ac2f40a84a6fdc0ec629b373899f521","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.17.1-alpha.10.tgz","fileCount":35,"integrity":"sha512-lmrD9pjMRnGKSlHIlgTlSo7p+OVY7GQ2JVJpXSJmz3QcYr95NLe36rvDURx+rK2suryeqrQhJ5fQI5VA9hl7Qg==","signatures":[{"sig":"MEQCIHPZjUv3wWpfb1f3su0JwsUx8CJiYsbKAhAmpjsvsK15AiAi3CL5RNkwGz3Lp+KcDRuQV2Hv3xVKwYEJZKdtlKdhbA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":104975,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgPjwaCRA9TVsSAnZWagAA1yAP/iM4TvDMC6T5onSwfWMa\nsrN/EdMSXYQvBHkkvtSl2zXSW4ETI1h2Q6WXY1yj2ICBLzR+txvCEEwuJ3Xu\nYVjxoL8VntZmerQJrWUcLocTCocY8V4aFiIUuTqnZwGbrPgVDvtpvEjnE7bt\n2ZytKH+M1ww5+9sGP1oouE8N2niWJNdf84wwAsWgizXXchVA5qKGtDtJtiZT\noIHhCTMN7Fs9rHgHJzK8Kx3m3iR7dWVYULuzS1Ph7W9sOrugt9hNiSWU5lY0\noU1+qDsNw3+Rp801srstH/Dd/8FpMWDeHKD46W07GCkBop9IlPm2eLXeWsV0\nePnpT5vH6mni23quWmjvycYahBb00PKP+zcQH+EkQeE6jqYJF83nSVTHVHCp\nAGqhhosWY1rdbOwcSzOlx/ZGsuXMT8tvEfVwI9ae2w7/yPotECbdUxcb3orP\nPxbx6xG3KQOaQ5+914gVHvN5/+AhCYsE2KpqBHAdsLJ5UpCOjh7dr5bhbLa2\nzi43JPtmuoqY+dZ6EkpxnuHFrOKCiHZhiZcPsQ6M0OKhVx3qMANmDmlJU/Lj\nCQ7Icaf4kkvdrnl4LbJAEovUx4W4P+sJ3SjHBb0l35iJTNbAOpub8tL93eKe\n0QbvukZPTGYBK9/fg5QZcZatdVTjwVqRtx5FGap22TOrTEswcx3g1fmxla7d\n2T5Q\r\n=PJev\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry Collector Exporter for node with grpc\n\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.16.0**.\n\n## Installation\n\n```bash\nnpm install --save @opentelemetry/exporter-collector-grpc\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-grpc');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  url: '<opentelemetry-collector-url>' // url is optional and can be omitted - default is localhost:4317\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-grpc');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  url: '<opentelemetry-collector-url>', // url is optional and can be omitted - default is localhost:4317\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-grpc');\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:4317\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## Metrics in Node - GRPC\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-grpc');\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 in [GitHub Discussions][discussions-url]\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\n[discussions-url]: https://github.com/open-telemetry/opentelemetry-js/discussions\n[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/main/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-grpc\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc\n[devDependencies-image]: https://david-dm.org/open-telemetry/opentelemetry-js/dev-status.svg?path=packages/opentelemetry-exporter-collector-grpc\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/exporter-collector-grpc\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fexporter-collector-grpc.svg\n[opentelemetry-collector-url]: https://github.com/open-telemetry/opentelemetry-collector\n","engines":{"node":">=8.0.0"},"gitHead":"4c609aa13c899dd2b7a963d2e3e491bc35ffb742","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"npm run protos:copy && tsc -w","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","submodule":"git submodule sync --recursive && git submodule update --init --recursive","postcompile":"npm run submodule && npm run protos:copy","protos:copy":"cpx protos/opentelemetry/**/*.* build/protos/opentelemetry"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.15.5+x64 (linux)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.15.5","dependencies":{"grpc":"^1.24.2","@grpc/proto-loader":"^0.5.4","@opentelemetry/api":"^0.18.0","@opentelemetry/core":"^0.17.0","@opentelemetry/metrics":"^0.17.1-alpha.10+4c609aa1","@opentelemetry/tracing":"^0.17.1-alpha.10+4c609aa1","@opentelemetry/resources":"^0.17.1-alpha.10+4c609aa1","@opentelemetry/exporter-collector":"^0.17.1-alpha.10+4c609aa1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cpx":"1.5.0","gts":"3.1.0","nyc":"15.1.0","mocha":"7.2.0","sinon":"9.2.3","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","ts-loader":"8.0.14","typescript":"4.1.3","@babel/core":"7.12.10","@types/node":"14.14.20","@types/mocha":"8.2.0","@types/sinon":"9.0.10","@opentelemetry/api-metrics":"^0.17.0"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.17.1-alpha.10_1614691353733_0.5941118431702856","host":"s3://npm-registry-packages"}},"0.17.1-alpha.11":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.17.1-alpha.11","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.17.1-alpha.11","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"c1e884abe29907b0971f181c940017f144dc5dcf","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.17.1-alpha.11.tgz","fileCount":35,"integrity":"sha512-mQpc2x7CPfhyyA5rHF/7Ss2DJqxLudg0HR0Cn2yHKG5EokZ0uCH4yRexPEwhrRl4PNtouZYNTznd/o64nZfHdA==","signatures":[{"sig":"MEUCIQC5wJq7dJlIWgiB2KAw29sDAfxRzfVmOmPWfVUDc7ztqwIgDbI5NTDEFvW6YCicqXXU5vVGlHooBCFP9AotjZQiFn8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":104939,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgPj5dCRA9TVsSAnZWagAA+aMQAKFDUXj8kr0u4WLLKq8C\nwVgefDiTtDIvr318KxogJ3z0+SepOCvm6CCwPVI55pwhg7ulcnnb050dp66J\nbI2+hOP2wI8DutiTPTbw6BMshIv3VsPeCBIRatnPEwT88KSahIX++8zaWTNf\nC2fuAkxFiDuPbaN+5Gz7sm+JllIO0/h79yAGo7xZwYHamcXVDq4l1eZCX5oy\nvJxevFeQ1gGRlxiLKdJlFe/h2ZVz7uNpM5mkQuiqV0t9TuSpGl+AYSbtgvhP\nMBl2jBk4gNO0erVpV14n99pRXsLFnvVSo/f+za/U7Kb+y7SltS/f8701klCs\nmJJrkFQuXTJgGtSeZH6RGtVpuNzRf1SMR8h8D8MYNQj3ujaXEsmCCV9p0Qr4\nWaHtRbPUpS1GId5oRBtmZHwklcFcXPK8jtpOb8UN27GM8gDDYr8iraiVd1gA\n7msluaf7lT9FAySDXB2wXbjHILcjPjhOFvnHk2FnPmXlupLDStf9HCvjy7+L\n2fWgGyHOL9nvSGpt882LoNCom9TD1agM6tEXvFi79SnKqRAbZ2AlHETrSGYP\n5xiWdJHbB16+8r+KYcw74EDn1RMbLcJS4/dmuCb/vZ8fAC0zI/T4kklzZ4+u\nitSI2zFly79uQssE186AkCHLOQfAl57lcR5egVMzF6+Y88fjBy2ZwjtsaiQT\nKWaD\r\n=s+Zi\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry Collector Exporter for node with grpc\n\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.16.0**.\n\n## Installation\n\n```bash\nnpm install --save @opentelemetry/exporter-collector-grpc\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-grpc');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  url: '<opentelemetry-collector-url>' // url is optional and can be omitted - default is localhost:4317\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-grpc');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  url: '<opentelemetry-collector-url>', // url is optional and can be omitted - default is localhost:4317\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-grpc');\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:4317\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## Metrics in Node - GRPC\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-grpc');\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 in [GitHub Discussions][discussions-url]\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\n[discussions-url]: https://github.com/open-telemetry/opentelemetry-js/discussions\n[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/main/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-grpc\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc\n[devDependencies-image]: https://david-dm.org/open-telemetry/opentelemetry-js/dev-status.svg?path=packages/opentelemetry-exporter-collector-grpc\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/exporter-collector-grpc\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fexporter-collector-grpc.svg\n[opentelemetry-collector-url]: https://github.com/open-telemetry/opentelemetry-collector\n","engines":{"node":">=8.0.0"},"gitHead":"41235a9e68b13050ad49b8d6abc5c868885a74fe","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"npm run protos:copy && tsc -w","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","submodule":"git submodule sync --recursive && git submodule update --init --recursive","postcompile":"npm run submodule && npm run protos:copy","protos:copy":"cpx protos/opentelemetry/**/*.* build/protos/opentelemetry"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.15.5+x64 (linux)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.15.5","dependencies":{"grpc":"^1.24.2","@grpc/proto-loader":"^0.5.4","@opentelemetry/api":"^0.18.0","@opentelemetry/core":"^0.17.0","@opentelemetry/metrics":"^0.17.0","@opentelemetry/tracing":"^0.17.1-alpha.11+41235a9e","@opentelemetry/resources":"^0.17.0","@opentelemetry/exporter-collector":"^0.17.1-alpha.11+41235a9e"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cpx":"1.5.0","gts":"3.1.0","nyc":"15.1.0","mocha":"7.2.0","sinon":"9.2.3","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","ts-loader":"8.0.14","typescript":"4.1.3","@babel/core":"7.12.10","@types/node":"14.14.20","@types/mocha":"8.2.0","@types/sinon":"9.0.10","@opentelemetry/api-metrics":"^0.17.0"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.17.1-alpha.11_1614691932675_0.5668785194105701","host":"s3://npm-registry-packages"}},"0.18.1-alpha.12":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.18.1-alpha.12","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.18.1-alpha.12","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"8152366c124681ead1e149ffd0a9f73abdcb4120","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.18.1-alpha.12.tgz","fileCount":35,"integrity":"sha512-cgJQdr3VNCUBpOMeRrBAZz9FneLu9Xq/pr8UwD61DIdzutFYFGh1GEK320davLwKypeTieoaNV356fhU0zIMgQ==","signatures":[{"sig":"MEUCIAS33jYnBF4ASNlnS876sPISV2XYimJv9bVO8pWRTy2qAiEA1uVe6Nbx98zPF5HONh1/MIPpp/dsCXjBfvpmMvhSzC0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":105011,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgPkOeCRA9TVsSAnZWagAAABAP/iRjcyATGRH7w5sOta5+\nkpBoXbxWltoY6w5NfXUtq9nSEhCBy+R6urkBvNHqZvmL5ERfyjYyswLvg5JJ\nbLqgrDvmv1jdlDszOWBvTds1ae+2J+r9fAg9mNQB0Tm3J0xW8o8II2k0XfOK\ncLBkws9SXA/mMj3XBb5EoxmEb0HqJplb5rQbFujzaPh/gnTbDX7/vFo2iQve\npE7/InANC950DLNpWHsDyw9yW5CgW7vSpCV5Tz4dlirRoqmjHNcef/M5s1TI\n+6apO/s+tZ1zjLwCCNgwH5urHFVYcgSqyQF/nFfSYENen52NlJo6C9w/2tnG\n7pDFlzO5HIeHHxVfDEq/vH3axq1iKcGV3K6T9QzwKQvKQ4oSQLQ7U6Ahjl6e\nbllJHW9u0uyXtQEOa4yd0KSrb2vSmjRrRuFHCvKjBsDMvwe5wXMpnvN5qz8Q\n9Sj4+/2WYGdWC9kVpI8+YUmE+v8tkx3YBx7x1gL6pwCTLhHWdVLrMaE4h1gQ\nZ6PuabA6qVx2GyQkSlvtV7398gkAXq2R0wOqB0SXAVbsHCbb52KYoD3OAmvh\n6SEijM3jjS6j5QBAVkI6FF5bwj6XNViDg0ckdz9b2bC4U0CryRUUzUcwBUtS\nS4ljUiv6XeNSvvg0Om9cDXeB+YChCgQItVBWUK4Pzq38f8+GNFqMwn1hNiWq\nCXIa\r\n=kLEt\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry Collector Exporter for node with grpc\n\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.16.0**.\n\n## Installation\n\n```bash\nnpm install --save @opentelemetry/exporter-collector-grpc\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-grpc');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  url: '<opentelemetry-collector-url>' // url is optional and can be omitted - default is localhost:4317\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-grpc');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  url: '<opentelemetry-collector-url>', // url is optional and can be omitted - default is localhost:4317\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-grpc');\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:4317\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## Metrics in Node - GRPC\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-grpc');\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 in [GitHub Discussions][discussions-url]\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\n[discussions-url]: https://github.com/open-telemetry/opentelemetry-js/discussions\n[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/main/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-grpc\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc\n[devDependencies-image]: https://david-dm.org/open-telemetry/opentelemetry-js/dev-status.svg?path=packages/opentelemetry-exporter-collector-grpc\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/exporter-collector-grpc\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fexporter-collector-grpc.svg\n[opentelemetry-collector-url]: https://github.com/open-telemetry/opentelemetry-collector\n","engines":{"node":">=8.0.0"},"gitHead":"6540b54a8bd49746e164ab730269188237f89b1c","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"npm run protos:copy && tsc -w","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","submodule":"git submodule sync --recursive && git submodule update --init --recursive","postcompile":"npm run submodule && npm run protos:copy","protos:copy":"cpx protos/opentelemetry/**/*.* build/protos/opentelemetry"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.15.5+x64 (linux)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.15.5","dependencies":{"grpc":"^1.24.2","@grpc/proto-loader":"^0.5.4","@opentelemetry/api":"^0.18.0","@opentelemetry/core":"^0.18.1-alpha.12+6540b54a","@opentelemetry/metrics":"^0.18.1-alpha.12+6540b54a","@opentelemetry/tracing":"^0.18.1-alpha.12+6540b54a","@opentelemetry/resources":"^0.18.1-alpha.12+6540b54a","@opentelemetry/exporter-collector":"^0.18.1-alpha.12+6540b54a"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cpx":"1.5.0","gts":"3.1.0","nyc":"15.1.0","mocha":"7.2.0","sinon":"9.2.3","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","ts-loader":"8.0.14","typescript":"4.1.3","@babel/core":"7.12.10","@types/node":"14.14.20","@types/mocha":"8.2.0","@types/sinon":"9.0.10","@opentelemetry/api-metrics":"^0.18.1-alpha.12+6540b54a"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.18.1-alpha.12_1614693278075_0.11242532880102618","host":"s3://npm-registry-packages"}},"0.18.0":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.18.0","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.18.0","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"ca30b76bb4d5a3709ad08e9d4a716b1a3961c598","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.18.0.tgz","fileCount":35,"integrity":"sha512-fmZdlt+Y7nHb9VhfgAT2/+4sVGXIo6dNoAVTqE2orWmpI7bzzFYydmSTOM43XMByEjqJrONHV8l8NtCWHWvc3w==","signatures":[{"sig":"MEYCIQDwqbDy3ARIOzcLpnaIiRwEVHGov7+/+BuCN8LHwX7sCwIhALv9+OryzeQNBj1HrPwbuyibK0LdjVaadZnPd3g83ZDx","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":104885,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgPkU0CRA9TVsSAnZWagAAfmwP/0lDArx6QjYN/GDfL+2+\ni60V5D8muXkg8XB1q8hCaV2fv2Z89jzqEHIs505yTW6KMMcIN5Mkhv0MXTEu\n0krT4MLp4KZ9+bKIyUvZ+sOVvXOlAN8EMzilSclkW3pMxBsY7Sy9yZbO6Oi5\nbi6W92m4YC63E7GUruX7+EiQ6JfSGivBsVAJ00s4xCh2H8o3khNcoWoJb/+V\nmvXnpgEca7v7odB1+d+QJU84kBxeGF5jCydqDYs4d4AO1dguReDYuXLMo6au\n8C+cqso9jdBTcB8IMuapHV8ogkHaztKFeA0Ga94L3+lhVWrVFI1kUkQdqS86\nFGIe5coSan/V7FczQ1Sf0D3f0H6xcSf/Sza/U91Lu7jgGMkvc0sW+xk+xHFU\nkVWfVTkTtBCTQwWbX76Teo670evcQDu8FZFekhIbPN7ThuoDvOvF6t3F2V87\nNaKsM1Br1ZieS2e0cnOFM74N64xZPYx8V4S6s1w3L0DD07xeWWH5LMXc0U1T\niwePgBny7OgNZfn3H0qR87ZofirXFai+IoWusz/+Dqeu7NvS+gDZS94KA5Ik\nTvMrmXRwSevsYudXyr5XWl7iexTm0uvZ3BCjOx2feapL3+s5QIw9blsgU/cu\ntm3/HUnTsUW6nnPRQrMqHiJSjkyV6G2WzEjgqXcao6iYTNZi6VpD358vuJRU\n4l0s\r\n=YN7o\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","engines":{"node":">=8.0.0"},"gitHead":"6540b54a8bd49746e164ab730269188237f89b1c","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"npm run protos:copy && tsc -w","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","submodule":"git submodule sync --recursive && git submodule update --init --recursive","postcompile":"npm run submodule && npm run protos:copy","protos:copy":"cpx protos/opentelemetry/**/*.* build/protos/opentelemetry"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.8.0+x64 (darwin)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.8.0","dependencies":{"grpc":"^1.24.2","@grpc/proto-loader":"^0.5.4","@opentelemetry/api":"^0.18.0","@opentelemetry/core":"^0.18.0","@opentelemetry/metrics":"^0.18.0","@opentelemetry/tracing":"^0.18.0","@opentelemetry/resources":"^0.18.0","@opentelemetry/exporter-collector":"^0.18.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"cpx":"1.5.0","gts":"3.1.0","nyc":"15.1.0","mocha":"7.2.0","sinon":"9.2.3","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","ts-loader":"8.0.14","typescript":"4.1.3","@babel/core":"7.12.10","@types/node":"14.14.20","@types/mocha":"8.2.0","@types/sinon":"9.0.10","@opentelemetry/api-metrics":"^0.18.0"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.18.0_1614693684505_0.639310740761375","host":"s3://npm-registry-packages"}},"0.18.1-alpha.3":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.18.1-alpha.3","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.18.1-alpha.3","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"0f9677d51cba0c4c4801098e1dc835ff4ea700b0","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.18.1-alpha.3.tgz","fileCount":35,"integrity":"sha512-2bqS6wCc++pZ3AtAlpYgiwQO58op/1JSkvxfTTgEtifZQWrEoXYgiV1C/eiIhmwAcR/dbFMp3DkRyvcIq/bqmw==","signatures":[{"sig":"MEUCIQC46clnxpI+PcFN4vCnA3wbzknGp5pq6LzLHc1oXz4ocgIgO02ehr5thkYxayONFa0ZXbY90KwY1QyIUrDokzoiyXk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":104987,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgPo2KCRA9TVsSAnZWagAAr1QQAJy1/6CLZugTQbfKFzb7\nS3UHmoCiNMd5Q0+RmpCpwyU8WziLnbUMKreXOQIpG6M/F5wP33Jdd/DScN8T\n2tgu2t9lkTJnxG+4QuYhLvxFN1EfWGUXhQfPWASvfDcIoBtAaZ3gWSZsoHLt\nRy9MxGaOWgncoh4N2CPBajrKd1lmUdysabiTqh1PlKKhEedqhhopuN6UXTct\nS1VuHjF8/QZDRFa/jcRO/9XUmKjAZpkTZ2g8vyyNlyJdUbgZCx8tlX/yD5tz\nTVxxYZ0ioLHG9CBzWkuUzywvGgzT9Qbofxm0FLkxyHQhGyW3zCRMeLGkkIgN\n4jkzMG6syTBJ5CTFsizWpyCaPGNErM1jf3PVzt0W3X7X42nYeocG/DXJyHZm\n/kP9Wvanuf/lNU80ypo3jWP1ALu3jI5UnC6SE/BJnIb6UpDbjImd8L3/t615\nb3lgAU4ASMnCb9eZmHzbI1nyIdYuFgA7CqMkci4HjK5y6wY/IgWboH+eV7f5\ntH/PmchyBrliKcnoqGIZ9H7DBQDago/DdUPGRzXtOASgqxpBvWd6fSmH2weJ\ntLtWbUP+yJh/oYSMrM5e9RB3tgVUKnvrtxrOjL4b0M4U5Z8C37nNDh+Szv/l\nzIcXsHCg9z+0RF0IWSgwwQKlQWbOwHL09dQLO4YwXMS1a93IgOCDE3N7BMjm\ncl0L\r\n=uDEY\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry Collector Exporter for node with grpc\n\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.16.0**.\n\n## Installation\n\n```bash\nnpm install --save @opentelemetry/exporter-collector-grpc\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-grpc');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  url: '<opentelemetry-collector-url>' // url is optional and can be omitted - default is localhost:4317\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-grpc');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  url: '<opentelemetry-collector-url>', // url is optional and can be omitted - default is localhost:4317\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-grpc');\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:4317\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## Metrics in Node - GRPC\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-grpc');\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 in [GitHub Discussions][discussions-url]\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\n[discussions-url]: https://github.com/open-telemetry/opentelemetry-js/discussions\n[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/main/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-grpc\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc\n[devDependencies-image]: https://david-dm.org/open-telemetry/opentelemetry-js/dev-status.svg?path=packages/opentelemetry-exporter-collector-grpc\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/exporter-collector-grpc\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fexporter-collector-grpc.svg\n[opentelemetry-collector-url]: https://github.com/open-telemetry/opentelemetry-collector\n","engines":{"node":">=8.0.0"},"gitHead":"0643642f61de5e2bfb8942ce7b5dadea643cb295","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"npm run protos:copy && tsc -w","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","submodule":"git submodule sync --recursive && git submodule update --init --recursive","postcompile":"npm run submodule && npm run protos:copy","protos:copy":"cpx protos/opentelemetry/**/*.* build/protos/opentelemetry"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.15.5+x64 (linux)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.15.5","dependencies":{"grpc":"^1.24.2","@grpc/proto-loader":"^0.5.4","@opentelemetry/api":"^0.18.0","@opentelemetry/core":"^0.18.1-alpha.3+0643642f","@opentelemetry/metrics":"^0.18.1-alpha.3+0643642f","@opentelemetry/tracing":"^0.18.1-alpha.3+0643642f","@opentelemetry/resources":"^0.18.1-alpha.3+0643642f","@opentelemetry/exporter-collector":"^0.18.1-alpha.3+0643642f"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cpx":"1.5.0","gts":"3.1.0","nyc":"15.1.0","mocha":"7.2.0","sinon":"9.2.3","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","ts-loader":"8.0.14","typescript":"4.1.3","@babel/core":"7.12.10","@types/node":"14.14.20","@types/mocha":"8.2.0","@types/sinon":"9.0.10","@opentelemetry/api-metrics":"^0.18.0"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.18.1-alpha.3_1614712201649_0.003628301477042628","host":"s3://npm-registry-packages"}},"0.18.1-alpha.13":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.18.1-alpha.13","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.18.1-alpha.13","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"9243b21eebf2cbabebeec1b3292eb7aefeca1e49","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.18.1-alpha.13.tgz","fileCount":35,"integrity":"sha512-/zO3JQHzcVlk+gKgrhnGfLaHUOi/40l2ePfQi0EeDdcKv450olNxGJrYLN50Gvef9WGcGm6qhwDB2Hu9t6hiHQ==","signatures":[{"sig":"MEYCIQC3yMbtelmJM22mka9EmYN8HR1hAs+6nt0psjSwpP0zTgIhANV5asEMwKjNWWoyMvJDgdLPHsqVzZNp7LH2jGYjTAd+","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":104939,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgU38oCRA9TVsSAnZWagAAytoP/iNdgWNLi/5zxdCF7mSh\nbvfzD5JbHH2z3nqoqYNuohl5gOujlf6mFaBrEjBp7DzASu87V3x49XK6mT/x\nwaXl2aD8b37BdTm8IeephguInhXJE+0mQD50rluzeh4Vz5mExfmOFKWEc6NW\n9X++dFdoEXKC2Jngd9LadWh4BmUBXYGmstVpc4qSX+ewKlYT1r0vuWFyL0j3\njq0uDO9laivIDQ4AH6ccmR6DxYOf9hGzNhMNzcBzDD7lnBoOCYk6UHZ5vinn\nNXqJsc++KGxoHoO2EBGyNGLUtMPCimf859cwfSroLHxZfi1armhr5eOhN2c2\nlp5xQHYFbF+1VVatBK02z5KF+f4Ua11ph228hjbom59r+6iB3QgT2A6Gqi3Z\nkaFTt3OQfUV1W3rlvzAiGEEFoYCI/qeXTbilzdmMDeLSaJmaRrCSZyRIijOY\nl4xXOVoWSzf1ui4saNTdPBArm4JMQZKvtU9X68gNqdnniLAGgrCER58r2sNf\n8At343/k6uFiZYVefvi+Ol8Pk06c/3l9yD1+SaWupMMlHyUCzh1sselfoiAe\nmVbs34/tTHF7tFecyLg21wbsdaDKhCBrDlebKSP2j6LU5klEkvnCFLY2BZ7G\n5wqObw0USr/iwTMvI4SP8RDiJLInpE8V+BybSkNReKJ19vUFtbY5ZSS3Cc9T\n0neJ\r\n=ILZI\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry Collector Exporter for node with grpc\n\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.16.0**.\n\n## Installation\n\n```bash\nnpm install --save @opentelemetry/exporter-collector-grpc\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-grpc');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  url: '<opentelemetry-collector-url>' // url is optional and can be omitted - default is localhost:4317\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-grpc');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  url: '<opentelemetry-collector-url>', // url is optional and can be omitted - default is localhost:4317\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-grpc');\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:4317\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## Metrics in Node - GRPC\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-grpc');\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 in [GitHub Discussions][discussions-url]\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\n[discussions-url]: https://github.com/open-telemetry/opentelemetry-js/discussions\n[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/main/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-grpc\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc\n[devDependencies-image]: https://david-dm.org/open-telemetry/opentelemetry-js/dev-status.svg?path=packages/opentelemetry-exporter-collector-grpc\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/exporter-collector-grpc\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fexporter-collector-grpc.svg\n[opentelemetry-collector-url]: https://github.com/open-telemetry/opentelemetry-collector\n","engines":{"node":">=8.0.0"},"gitHead":"445c39fcd54675d455115e22605b6cf3434eb071","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"npm run protos:copy && tsc -w","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","submodule":"git submodule sync --recursive && git submodule update --init --recursive","postcompile":"npm run submodule && npm run protos:copy","protos:copy":"cpx protos/opentelemetry/**/*.* build/protos/opentelemetry"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.16.0+x64 (linux)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.16.0","dependencies":{"grpc":"^1.24.2","@grpc/proto-loader":"^0.5.4","@opentelemetry/api":"^0.18.0","@opentelemetry/core":"^0.18.0","@opentelemetry/metrics":"^0.18.0","@opentelemetry/tracing":"^0.18.1-alpha.13+445c39fc","@opentelemetry/resources":"^0.18.0","@opentelemetry/exporter-collector":"^0.18.1-alpha.13+445c39fc"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cpx":"1.5.0","gts":"3.1.0","nyc":"15.1.0","mocha":"7.2.0","sinon":"9.2.3","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","ts-loader":"8.0.14","typescript":"4.1.3","@babel/core":"7.12.10","@types/node":"14.14.20","@types/mocha":"8.2.0","@types/sinon":"9.0.10","@opentelemetry/api-metrics":"^0.18.0"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.18.1-alpha.13_1616084775914_0.9053692478439392","host":"s3://npm-registry-packages"}},"0.18.1-alpha.16":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.18.1-alpha.16","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.18.1-alpha.16","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"517d2f23f5b0b252a7c96c54a81b46f3f30ef35f","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.18.1-alpha.16.tgz","fileCount":35,"integrity":"sha512-90YE7E0rOf/6tv0oSJ1t/rnPNm077xq0aUyRkkAdSCxHE+79txKZWTYmR2a1mneEV3xL7gtQ45h/U4lbKG0vjw==","signatures":[{"sig":"MEYCIQD42Q0DmuMXA1fDr9Zelt/n2/bCBxcMpVretKo8PXhUHwIhAMI5ukMHab2AoLIg8tUoMr4jqXJSBTK1t7a3Be1PcLF7","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":104957,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgWJenCRA9TVsSAnZWagAACAIP/3boGd5XNV+mz8KFEFLh\nKJsQlRDlyNBUSoO6S5y/1RNug1rxZ+aHpsupovn2f8qn3JAstmgl3+dgyrCe\nN4Vd5/w7eCMD9r6vQQmRTcTzHGAicJvQb/QZLkN8EXBrPu0+evYCa+LAkeZD\nMchAGCsHdeAGAj+E69yD6NdmSbL2hu7W4k2tKYE84N/pXHiJc5LdoCUIbjnI\n73T6X/X1mRhzoq4G30S73bi6GQ9LownKNJ5c4OXbmAB68BEYdhc6fBIMGu3l\nwtrD9OvBm+4OHFVyoc3pfLT7+/Jfyda1nYPv8zFq7F09hj/vzHxqAc27UX6B\n3h3YTgSUGHw1TA4ngK2ZxAE3cIMIW1kDl0Oayc9NxRrlLR/ohmi59EiwAdZJ\n/NWSI0uYAT4r3GSAepqp7kqLseyNo4bHELn0nN8evpcgEfWFw1nQb9GSzE5M\n4E8E3HdPU1AKeM2elpH4bDAn/CTVZkZUBpA4igwbyh7FI3Mtyjgg6ETAbGMd\n2jkz0VPZzfKJuJQOIdW4fgpwT3eypTMGmx827GYeaT7cwAmrGI677m2yXXb/\nLahkQO9RNKZaAA6pHwc1MGx/ey3R0ED3hiuo+y3wwzyPqSCmGxIrdJyziArf\nBvuWW03KV6ndVHoWZC2R1YXcVbu/KFCxoEFx3mg/RTDKJA+ORXbbxxyMmRo0\nyWeD\r\n=vegI\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry Collector Exporter for node with grpc\n\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.16.0**.\n\n## Installation\n\n```bash\nnpm install --save @opentelemetry/exporter-collector-grpc\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-grpc');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  url: '<opentelemetry-collector-url>' // url is optional and can be omitted - default is localhost:4317\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-grpc');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  url: '<opentelemetry-collector-url>', // url is optional and can be omitted - default is localhost:4317\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-grpc');\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:4317\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## Metrics in Node - GRPC\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-grpc');\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 in [GitHub Discussions][discussions-url]\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\n[discussions-url]: https://github.com/open-telemetry/opentelemetry-js/discussions\n[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/main/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-grpc\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc\n[devDependencies-image]: https://david-dm.org/open-telemetry/opentelemetry-js/dev-status.svg?path=packages/opentelemetry-exporter-collector-grpc\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/exporter-collector-grpc\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fexporter-collector-grpc.svg\n[opentelemetry-collector-url]: https://github.com/open-telemetry/opentelemetry-collector\n","engines":{"node":">=8.0.0"},"gitHead":"f045eef8b02e6dda452aab3cdbeaf78b225c2fd4","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"npm run protos:copy && tsc -w","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","submodule":"git submodule sync --recursive && git submodule update --init --recursive","postcompile":"npm run submodule && npm run protos:copy","protos:copy":"cpx protos/opentelemetry/**/*.* build/protos/opentelemetry"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.16.0+x64 (linux)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.16.0","dependencies":{"grpc":"^1.24.2","@grpc/proto-loader":"^0.5.4","@opentelemetry/api":"^0.18.0","@opentelemetry/core":"^0.18.0","@opentelemetry/metrics":"^0.18.1-alpha.16+f045eef8","@opentelemetry/tracing":"^0.18.1-alpha.16+f045eef8","@opentelemetry/resources":"^0.18.0","@opentelemetry/exporter-collector":"^0.18.1-alpha.16+f045eef8"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cpx":"1.5.0","gts":"3.1.0","nyc":"15.1.0","mocha":"7.2.0","sinon":"9.2.3","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","ts-loader":"8.0.14","typescript":"4.1.3","@babel/core":"7.12.10","@types/node":"14.14.20","@types/mocha":"8.2.0","@types/sinon":"9.0.10","@opentelemetry/api-metrics":"^0.18.0"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.18.1-alpha.16_1616418727383_0.1620378662278319","host":"s3://npm-registry-packages"}},"0.18.1-alpha.20":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.18.1-alpha.20","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.18.1-alpha.20","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"fc8bc86733268bd9102a50a00b072f8ad2816cc3","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.18.1-alpha.20.tgz","fileCount":35,"integrity":"sha512-t/I1iSCcwK6Nf5ZpJ37ShaYuZQFdRFnpouzVi0hTezjWibxQ24A7Ve8E2+iGDfR86C+M6qkZW5HcxK7Eey/Y/w==","signatures":[{"sig":"MEUCIDRR/JEc5QYweSTjsE/hP91NUuEn3aCqBVqkCGVbSN5hAiEAzbXBWhb2uv7QBrfStM4FoTp6MDjWJFRVoyKIFvj+IG0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":105011,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgWzqJCRA9TVsSAnZWagAACCkP/187yzSvC6k7QcWxCoVr\nUmYhhdkveHXPhiwcUYU/+JPgYkumnECKWSswBqkXN2VVdTk3iVI8Gy5LmIcm\nzxKB1YH7HDPpq+d0ELoSYXnRWnlzJj55wyIWlbPPM44B8WsmFG3+v+y8Yb6y\nRRuwHXs1tR9T/Pqfy8rs3mcUpMUVJcEezSBay4F7Scrfzc1LD5qkB3RJK9zM\nc+WZounbT1SeUhjMumJMtndN1VQoALhKqKz/sVkWJkm9TYJAb5sQUtZPB2rZ\naiI7O89kOOBoKMvJH2XFbra9bz2alz0oRTAqT34+P6bcfnmwlBJi6Qawq1gb\nKF874N8fbvsh8TNOOolhOyErdkVYc5yC8mjf2MCTrnnWwBPNrfLf9n2p6j5k\nIQrfnk0Y7xROFEhOoyc7JS67dun1XxmlOxP2YfdZBUtOsmXyPdyQhjW9M1hA\nRCLGC23Ho0is17LNNIhSubhv3IjgrDGyWfo8vJfbIMhuuqmRi4I6H6WOM5ya\nXs8RrG/E5sBsDD9LSkf3tozJtVRi2ePiCaRk2b2hFCaYnFHTm5E6fQWMoLPB\nx4knmNfgC0e0FeE8qR3tN4HInDfgOOPEUe8tg5ILQzLvaZmMllN8pVMIAaTj\noVOrREYLvTO/vS27q1DZC9pdlUAyY4fxvJjC3YQjSwuKuYo4l2b981Kkd4E7\n3CK4\r\n=g/Ip\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry Collector Exporter for node with grpc\n\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.16.0**.\n\n## Installation\n\n```bash\nnpm install --save @opentelemetry/exporter-collector-grpc\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-grpc');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  url: '<opentelemetry-collector-url>' // url is optional and can be omitted - default is localhost:4317\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-grpc');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  url: '<opentelemetry-collector-url>', // url is optional and can be omitted - default is localhost:4317\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-grpc');\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:4317\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## Metrics in Node - GRPC\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-grpc');\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 in [GitHub Discussions][discussions-url]\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\n[discussions-url]: https://github.com/open-telemetry/opentelemetry-js/discussions\n[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/main/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-grpc\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc\n[devDependencies-image]: https://david-dm.org/open-telemetry/opentelemetry-js/dev-status.svg?path=packages/opentelemetry-exporter-collector-grpc\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/exporter-collector-grpc\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fexporter-collector-grpc.svg\n[opentelemetry-collector-url]: https://github.com/open-telemetry/opentelemetry-collector\n","engines":{"node":">=8.0.0"},"gitHead":"24bcfe82340e02e605c5c722b0f955da50bf82cf","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"npm run protos:copy && tsc -w","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","submodule":"git submodule sync --recursive && git submodule update --init --recursive","postcompile":"npm run submodule && npm run protos:copy","protos:copy":"cpx protos/opentelemetry/**/*.* build/protos/opentelemetry"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.16.0+x64 (linux)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.16.0","dependencies":{"grpc":"^1.24.2","@grpc/proto-loader":"^0.5.4","@opentelemetry/api":"^0.18.1","@opentelemetry/core":"^0.18.1-alpha.20+24bcfe82","@opentelemetry/metrics":"^0.18.1-alpha.20+24bcfe82","@opentelemetry/tracing":"^0.18.1-alpha.20+24bcfe82","@opentelemetry/resources":"^0.18.1-alpha.20+24bcfe82","@opentelemetry/exporter-collector":"^0.18.1-alpha.20+24bcfe82"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cpx":"1.5.0","gts":"3.1.0","nyc":"15.1.0","mocha":"7.2.0","sinon":"9.2.4","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","ts-loader":"8.0.18","typescript":"4.2.3","@babel/core":"7.13.10","@types/node":"14.14.35","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@opentelemetry/api-metrics":"^0.18.1-alpha.20+24bcfe82"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.18.1-alpha.20_1616591497384_0.57524538616475","host":"s3://npm-registry-packages"}},"0.18.1-alpha.21":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.18.1-alpha.21","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.18.1-alpha.21","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"775eb22a944014f39d1bbc9efa6bded0362dc737","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.18.1-alpha.21.tgz","fileCount":35,"integrity":"sha512-komx1P0BjuJiMfCjRHa+Qxd88SfPcWel730qXCAaE32kPVEGrMUh/In0Aqbed931cgc710oHIGTPpmjk+ajz2Q==","signatures":[{"sig":"MEQCIF2wRxeN4P0WcdoVNJ0q+oWsTBtdLz26b0dvVqYvLJfaAiABv2n8B5eWr2XiUJ51U5pQSfuOJ3qM/yZb5a02+vE8yA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":105015,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgW0kLCRA9TVsSAnZWagAAPWIP/i0NmWyG7RVNfu/pweyy\n7Nis2gA3+zKudWTRr/QPiYsbhPcbqIlQQ3HWoKKRHS6k0zrzH5TbJkgRv8sX\nKU57ss5SKMEmz7yOI7rJUufW8JGmRfvLUPNEyn3DZdvy0xJL1H31AbCKeTHf\nRZKsvyXOh5YgYKCyIDxjzZIVQEuCJNXUkzJH1PcV9hGqOXCu0OgHFXYVo5eu\n4i1VufJq6yMVfcotkKBN0OWohy0hILfvkQJN8RuE569mYdb//DX2rGx4yvmc\npB3lxfJoW1lNXDamrY/1ouoOvT0pxk8n0TQ2mAv3PqqMkBsxpXQ7Xgy3AIX3\nKJb1/uYyqrIJJFp+nVLqoKUjdX+HxvvqkvR2S1alKSgDOxJz6GwViQLv1xbo\np/GWEv5ulbEMlm/UrISFNS5MFroHv2PPKIRQoHUkGHZEKCir4K5WOhmUGwpG\nmpog6abmalZ4EfuHIfi77RNH82iiV5QC9QIqox5REVJrkLkmsZJEpDIgBzj3\nC0jHp2TC6qFX6J/tTXe9Oqh3lCRMy8Hfalg4fdjgNlJQeZ0HOLrTJgaDKs7v\nb7c1ek4UAApWIw5np11u6GkfnotVX0cOFPa8hthnGthvt8nbQfRqFbW6dUaN\nVtkJkeoj8rCUibSgUe0T6wbJem9b6gHYe2zdtPW8iTOzmkmfkCEDYG5l4KhR\nRg1H\r\n=K1dh\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry Collector Exporter for node with grpc\n\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.16.0**.\n\n## Installation\n\n```bash\nnpm install --save @opentelemetry/exporter-collector-grpc\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-grpc');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  url: '<opentelemetry-collector-url>' // url is optional and can be omitted - default is localhost:4317\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-grpc');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  url: '<opentelemetry-collector-url>', // url is optional and can be omitted - default is localhost:4317\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-grpc');\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:4317\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## Metrics in Node - GRPC\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-grpc');\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 in [GitHub Discussions][discussions-url]\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\n[discussions-url]: https://github.com/open-telemetry/opentelemetry-js/discussions\n[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/main/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-grpc\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc\n[devDependencies-image]: https://david-dm.org/open-telemetry/opentelemetry-js/dev-status.svg?path=packages/opentelemetry-exporter-collector-grpc\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/exporter-collector-grpc\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fexporter-collector-grpc.svg\n[opentelemetry-collector-url]: https://github.com/open-telemetry/opentelemetry-collector\n","engines":{"node":">=8.0.0"},"gitHead":"8010ac2fcd0c658c0a4184cb0f5d8108db3632e5","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"npm run protos:copy && tsc -w","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","submodule":"git submodule sync --recursive && git submodule update --init --recursive","postcompile":"npm run submodule && npm run protos:copy","protos:copy":"cpx protos/opentelemetry/**/*.* build/protos/opentelemetry"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.16.0+x64 (linux)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.16.0","dependencies":{"grpc":"^1.24.2","@grpc/proto-loader":"^0.5.4","@opentelemetry/api":"^1.0.0-rc.0","@opentelemetry/core":"^0.18.1-alpha.21+8010ac2f","@opentelemetry/metrics":"^0.18.1-alpha.21+8010ac2f","@opentelemetry/tracing":"^0.18.1-alpha.21+8010ac2f","@opentelemetry/resources":"^0.18.1-alpha.21+8010ac2f","@opentelemetry/exporter-collector":"^0.18.1-alpha.21+8010ac2f"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cpx":"1.5.0","gts":"3.1.0","nyc":"15.1.0","mocha":"7.2.0","sinon":"9.2.4","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","ts-loader":"8.0.18","typescript":"4.2.3","@babel/core":"7.13.10","@types/node":"14.14.35","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@opentelemetry/api-metrics":"^0.18.1-alpha.21+8010ac2f"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.18.1-alpha.21_1616595211098_0.6369237577794031","host":"s3://npm-registry-packages"}},"0.18.1-alpha.23":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.18.1-alpha.23","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.18.1-alpha.23","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"c829b3e848721b4e27a51b6067e347e536a004ec","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.18.1-alpha.23.tgz","fileCount":35,"integrity":"sha512-HWVVzT7P1lEw6X4dP7FyyDk4FZxEenVqUsDD0569V8yANi20FhUDELd9VW8yAEcZKA2R89ZJe9UttEFtd+jUfA==","signatures":[{"sig":"MEYCIQCcZu6vLOdKjMz7vLlaSiZeeUDpPZtzYYmOJ/GbMQWe0QIhAP5TmdCmQPJ2aDcKWe0a3OLY8ewkH52zCqajo7OoqLny","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":104979,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgW5BWCRA9TVsSAnZWagAAvD4QAKBlpQzNFTuyYyIsKf/3\nR417xunDzE57AZf5bjZ8HnowAzFAM71B/fUHr+h/0Qenk2Qjl2oa0EWs1WQm\nbbM+pNEOfsCMXrTNNdgUYnv3ORRqHGxlNhK0vBvesNukfItthvfL06armux5\njUai9GfaJrZoXhm7QsrG5QLlzA/0wyXDt2U5H+MMQ0yJQ87oAVLYZ607TcAC\nv9Ta7pfCNFr9QkNVe/00CV6Gah75X7eCMOfwKAE62sBZ1DIldwi89y0y8GF3\ndqux33iNjNnYVMmKWrXnenHQDry4SDgQEX8iF5mbTnDGmD7Sx4Fh9SaRWBmX\namj11/f5/9C+Ycj6PQsQ8upXtrvnEQEZSn7JOWJtQqzHseaEe+gznAcPMQsW\nTBhOKgNIPVPlNt8OT8pxm/ecwiUrad3Yv9l5GQU6i2O2Tk0ncjTmtmhs/1Zo\nBz+kbvqbZFPU523fRoFdx45oQCw0bNC7qgxx0TZL6HPIud4grYEoZ/BjG6F+\nCBYl6sOxcIJGpIh/ZOWgupdkcDtdKwHegY+0R8XaiIopBbPUO+LGDEikdtX9\nTlvbPYApnUgUoBbtST3kPPU5OMdagWwo7obkDr0gPjVCE874A8tKMZ3F4sZc\nWtWdE7SfOepHjAXpH1MObXpfRDc4AaqDMqKJFP7k8uSZ5ewinaWAQwNnfqYG\n/9yB\r\n=f1Dg\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry Collector Exporter for node with grpc\n\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.16.0**.\n\n## Installation\n\n```bash\nnpm install --save @opentelemetry/exporter-collector-grpc\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-grpc');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  url: '<opentelemetry-collector-url>' // url is optional and can be omitted - default is localhost:4317\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-grpc');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  url: '<opentelemetry-collector-url>', // url is optional and can be omitted - default is localhost:4317\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-grpc');\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:4317\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## Metrics in Node - GRPC\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-grpc');\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 in [GitHub Discussions][discussions-url]\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\n[discussions-url]: https://github.com/open-telemetry/opentelemetry-js/discussions\n[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/main/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-grpc\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc\n[devDependencies-image]: https://david-dm.org/open-telemetry/opentelemetry-js/dev-status.svg?path=packages/opentelemetry-exporter-collector-grpc\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/exporter-collector-grpc\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fexporter-collector-grpc.svg\n[opentelemetry-collector-url]: https://github.com/open-telemetry/opentelemetry-collector\n","engines":{"node":">=8.0.0"},"gitHead":"41db733e60b5e4f981be94eaa56e4fca24b539d9","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"npm run protos:copy && tsc -w","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","submodule":"git submodule sync --recursive && git submodule update --init --recursive","postcompile":"npm run submodule && npm run protos:copy","protos:copy":"cpx protos/opentelemetry/**/*.* build/protos/opentelemetry"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.16.0+x64 (linux)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.16.0","dependencies":{"grpc":"^1.24.2","@grpc/proto-loader":"^0.5.4","@opentelemetry/api":"^1.0.0-rc.0","@opentelemetry/core":"^0.18.0","@opentelemetry/metrics":"^0.18.1-alpha.23+41db733e","@opentelemetry/tracing":"^0.18.1-alpha.23+41db733e","@opentelemetry/resources":"^0.18.1-alpha.23+41db733e","@opentelemetry/exporter-collector":"^0.18.1-alpha.23+41db733e"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cpx":"1.5.0","gts":"3.1.0","nyc":"15.1.0","mocha":"7.2.0","sinon":"9.2.4","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","ts-loader":"8.0.18","typescript":"4.2.3","@babel/core":"7.13.10","@types/node":"14.14.35","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@opentelemetry/api-metrics":"^0.18.0"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.18.1-alpha.23_1616613462489_0.6625427055776081","host":"s3://npm-registry-packages"}},"0.18.1-alpha.24":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.18.1-alpha.24","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.18.1-alpha.24","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"d5259049e10eb00b6a8f30764bb94e0d95b41da6","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.18.1-alpha.24.tgz","fileCount":35,"integrity":"sha512-ekwesxZsiwvPMdTad09aRnap6gprV/GBve6rFI/Ci/7iKXd3cf2+dQ28MdylSk1Auf3cr990P6GDsglnr7d6fg==","signatures":[{"sig":"MEQCICFf8PfS4TTORvJRJvdUFON60t6B1/Qn6g3tlhUYGmXdAiAX5EfpOGfSpjjBiUmwq3VJ1MA/3DVIxr8HohgERCsS8A==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":105030,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgW5VoCRA9TVsSAnZWagAAAE4P/19l4tz9JmFTCT90etmC\n8KtCnj1mN444QZpuY19T7m4xYDKrgROclx+WjT1b1DIpMdphoZ5x92IxvRsx\nXBsOKppOeQXrpQpo12p6x830hjc6fdq+11mzuQHjHXDS2qSlig+jkA+Umm93\npNfxsOYPlYZ96MATiAkxCQRXAszEH5MkFCUQ7yox1rJRtEK6j58juolsaj1O\nDp6L8+bc51fpUKc7P7JU5yGLc7Byj6CpG5pRgV2CsjSD85iBmDcgXpgssWt4\n7j6qWcLbE7lCdoLdrzotq48vT3J2NgKYCvB6bsEx/tIPH/ZHQLNu6holhLn0\ncpF79pMY3jAuCgQQQH4J6rS2fzymZozE+0OhadXxJnjX0I589Dikxk8bfe8v\n51N+aZs/jIJWNK2tsYgTs0/TuOXJRqWLn3yNkvKbkLwKyhaEj4Ey2e4/lb2H\n7FzxSGXZTNI8P9z4GacHvmCSWXSQWwVTAVP7uXbmJNzsL/pBkGDvNB8g5ocu\nNc66psCkMluFwXdHjJz4TOJJI6IwovKX4rcw2AAVD72aARW338h4t+lb9H6z\n1/pjWOJM2MBr7m/WpHDyYzAAFE1AqaMuUB6xzILM+6O3J6efVkrK+TGSgjqy\n2C6R407KTm/P/eWlvN0oonFogzHFOyMCtMXCW94q2lVoYn2yj/l/swAG/Djm\nFk2T\r\n=PMzI\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry Collector Exporter for node with grpc\n\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.16.0**.\n\n## Installation\n\n```bash\nnpm install --save @opentelemetry/exporter-collector-grpc\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-grpc');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  url: '<opentelemetry-collector-url>' // url is optional and can be omitted - default is localhost:4317\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-grpc');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  url: '<opentelemetry-collector-url>', // url is optional and can be omitted - default is localhost:4317\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-grpc');\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:4317\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## Metrics in Node - GRPC\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-grpc');\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 in [GitHub Discussions][discussions-url]\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\n[discussions-url]: https://github.com/open-telemetry/opentelemetry-js/discussions\n[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/main/LICENSE\n[license-image]: https://img.shields.io/badge/license-Apache_2.0-green.svg?style=flat\n[dependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc\n[devDependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/exporter-collector-grpc\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fexporter-collector-grpc.svg\n[opentelemetry-collector-url]: https://github.com/open-telemetry/opentelemetry-collector\n","engines":{"node":">=8.0.0"},"gitHead":"69f2d3c264497bfdefa2126d0865ca56ad5f22a3","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"npm run protos:copy && tsc -w","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","submodule":"git submodule sync --recursive && git submodule update --init --recursive","postcompile":"npm run submodule && npm run protos:copy","protos:copy":"cpx protos/opentelemetry/**/*.* build/protos/opentelemetry"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.16.0+x64 (linux)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.16.0","dependencies":{"grpc":"^1.24.2","@grpc/proto-loader":"^0.5.4","@opentelemetry/api":"^1.0.0-rc.0","@opentelemetry/core":"^0.18.1-alpha.24+69f2d3c2","@opentelemetry/metrics":"^0.18.1-alpha.24+69f2d3c2","@opentelemetry/tracing":"^0.18.1-alpha.24+69f2d3c2","@opentelemetry/resources":"^0.18.1-alpha.24+69f2d3c2","@opentelemetry/exporter-collector":"^0.18.1-alpha.24+69f2d3c2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cpx":"1.5.0","gts":"3.1.0","nyc":"15.1.0","mocha":"7.2.0","sinon":"9.2.4","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","ts-loader":"8.0.18","typescript":"4.2.3","@babel/core":"7.13.10","@types/node":"14.14.35","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@opentelemetry/api-metrics":"^0.18.1-alpha.24+69f2d3c2"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.18.1-alpha.24_1616614759613_0.9987840885370394","host":"s3://npm-registry-packages"}},"0.18.1-alpha.26":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.18.1-alpha.26","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.18.1-alpha.26","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"6ec004381714e99a3e92e3c43005f491b5ac3951","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.18.1-alpha.26.tgz","fileCount":35,"integrity":"sha512-RQb+nVJGxPDx/67TzvrZnZFOWTNdzUWDm6CyAp/lxAxGNBrw6Wr/fahnSJ5oM/cyP2h0ewaAf7sm4LfBt9qNcw==","signatures":[{"sig":"MEUCIHF7ZhBqeMOnFzNr2wdNJq9Q4NlnvcPmW+WcW+tLNih+AiEAumOG8yEwKI516SMLQNWumsb0YBvjSZPoUratSrqDmQs=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":105012,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgW5yHCRA9TVsSAnZWagAAfRgQAJwMWoSXfWRHKl/gZmrn\nTr6Z6F7B/dnpDVOJyryGEN8dLbg7LwecbuAsPnkjYVOMmzHP41txwBvyTfA+\nZhhTdCMATUc+lPP8WoxeYmvnsnQbfnxTc0wGS8o5Ff4LG28a7euqE/9foZdF\npn9cc93jl/2nbTg2sq151G+v5nnGMI4zFyMdXKHiFeCKAlJXMt5OPexKMg1G\n8nLN/u0+93ySzmSbJVhlu0GLVyReVQ1P1fUWHX7a1u8SvJAElPHRVpIrONmI\nHOPG/xc7ca//LeAwjwZn5cRKKLsmBK2rhWOHgzEUxJD07g6VYc95gp6tYobB\nNk1CuLdPLIYMI5nnwiEw9im63Y3TZpKlK3cFXMwsK1sVgAuzPcSxCZEsUfBK\ndX2+8gh/cKq5PoLmgYpShhi7gNVm+Da+Myxby8cxpA2iD637pBJahW/cpNv9\nR8MhsN4RorbNYJtLBR/VJ8Kl+btmlfzAS85LWjX3B0XYTFkjO4qQk4zFI6k9\nMifF5g0G0v+30KcuYQMueKx2LJWCE/GUEwSb6ABLcZKLRbYjpp/zisXBYkXG\nyDENks6h9KecBEN4Uh7/Nj8PLCtPBL6C+mRSPXY+gDYDzAcEKA0PDN8NAu5h\n2SzsUFS3TauVrpDWRDZywXp4OAS4Ld7/wWGzOKX3ZUswaUqY5FxfJdb6RK6U\nEANA\r\n=fA95\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry Collector Exporter for node with grpc\n\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.16.0**.\n\n## Installation\n\n```bash\nnpm install --save @opentelemetry/exporter-collector-grpc\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-grpc');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  url: '<opentelemetry-collector-url>' // url is optional and can be omitted - default is localhost:4317\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-grpc');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  url: '<opentelemetry-collector-url>', // url is optional and can be omitted - default is localhost:4317\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-grpc');\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:4317\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## Metrics in Node - GRPC\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-grpc');\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 in [GitHub Discussions][discussions-url]\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\n[discussions-url]: https://github.com/open-telemetry/opentelemetry-js/discussions\n[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/main/LICENSE\n[license-image]: https://img.shields.io/badge/license-Apache_2.0-green.svg?style=flat\n[dependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc\n[devDependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/exporter-collector-grpc\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fexporter-collector-grpc.svg\n[opentelemetry-collector-url]: https://github.com/open-telemetry/opentelemetry-collector\n","engines":{"node":">=8.0.0"},"gitHead":"91483873ae3e3e8a686dbe3b7711a233167efba5","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"npm run protos:copy && tsc -w","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","submodule":"git submodule sync --recursive && git submodule update --init --recursive","postcompile":"npm run submodule && npm run protos:copy","protos:copy":"cpx protos/opentelemetry/**/*.* build/protos/opentelemetry"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.16.0+x64 (linux)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.16.0","dependencies":{"grpc":"^1.24.2","@grpc/proto-loader":"^0.5.4","@opentelemetry/api":"^1.0.0-rc.0","@opentelemetry/core":"^0.18.1-alpha.26+91483873","@opentelemetry/metrics":"^0.18.1-alpha.26+91483873","@opentelemetry/tracing":"^0.18.1-alpha.26+91483873","@opentelemetry/resources":"^0.18.1-alpha.26+91483873","@opentelemetry/exporter-collector":"^0.18.1-alpha.26+91483873"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cpx":"1.5.0","gts":"3.1.0","nyc":"15.1.0","mocha":"7.2.0","sinon":"9.2.4","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","ts-loader":"8.0.18","typescript":"4.2.3","@babel/core":"7.13.10","@types/node":"14.14.35","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@opentelemetry/api-metrics":"^0.18.0"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.18.1-alpha.26_1616616582898_0.8456644203492834","host":"s3://npm-registry-packages"}},"0.18.1-alpha.27":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.18.1-alpha.27","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.18.1-alpha.27","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"555638892475e989048786de622031a4af69bb3a","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.18.1-alpha.27.tgz","fileCount":35,"integrity":"sha512-EDRM5ELxoGiblUJQzFm1EJcKxwGHwAJeyg7Ll++Ipg3atkx5n/78H+mUd78fSzyGIQgD0vHrTarCIMhikVgJjQ==","signatures":[{"sig":"MEUCIDcySr5tvadd36AuG+F/NpX1CksUlpI4DcXodVapJy+8AiEA2Hp9gyEv1Kmk8qAtU7xJlVkG45wH/pBWIOXk88ONifI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":104940,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgXvYECRA9TVsSAnZWagAABpUP/2fd9rJG87UCHEzEpsY2\na49/E4E4V04ZQikXdv+3MZQtu0bDI68M+zUlxp7Hi/ib/egcdzHB9YlKlrBy\n32uL0ni/SsauCPaaLQR3bQP+tpRXcL7joFeGx6QQNeY7Kh2f/gUgZagN7ArX\ncdtviBs5B6OIqhwaKDNBq7J/8PuxAKGqk0xVPanoepVbIfy380Zi6HrAzUJ4\n2B3KidondEmNmwVp/0e4srsfCxh2D1bbPkN/YJjjZzj9intquoGZawUGB+oM\nJxmzfjwkJeeixwsYY5hGS5+Hj5QTE/VgltRtxNnyw+lvE3G7AYNpYTTzlVlx\ncnZvZx/ZDJIu7xyVFiqxPj19lRBzZ7cNR7jpgfzXQRWh4QF+o26ERGojj2EO\nhf553Yhm6gJixN+jIBoq3l5hxavFV+icVBey8cZY19ssppT+1ZGIaDrmAVtx\nsbcpHOnbnitaBIcl44xbiaTECBdmEsDDNTw26kOAQi9LtPIYrlvblTvxyT5j\nPqzxEE74yV+f/URUPZl8CiOF8zd1ms+v8f2OVYZwJzdIbYArihZKpUg9+40Z\ndJi7vvCsMqnHyUH0OBIp3wrsQCNqgJcGLghSqZ4aohLDyuDAhJ1PswhR+5GC\ncoS4WLZ//FWfF9hXB67zT0XPKfSyVmv6I0bITGVFYyq0Z/yuaAoqxLXHkmxU\nVrzv\r\n=NPwW\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry Collector Exporter for node with grpc\n\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.16.0**.\n\n## Installation\n\n```bash\nnpm install --save @opentelemetry/exporter-collector-grpc\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-grpc');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  url: '<opentelemetry-collector-url>' // url is optional and can be omitted - default is localhost:4317\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-grpc');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  url: '<opentelemetry-collector-url>', // url is optional and can be omitted - default is localhost:4317\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-grpc');\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:4317\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## Metrics in Node - GRPC\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-grpc');\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 in [GitHub Discussions][discussions-url]\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\n[discussions-url]: https://github.com/open-telemetry/opentelemetry-js/discussions\n[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/main/LICENSE\n[license-image]: https://img.shields.io/badge/license-Apache_2.0-green.svg?style=flat\n[dependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc\n[devDependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/exporter-collector-grpc\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fexporter-collector-grpc.svg\n[opentelemetry-collector-url]: https://github.com/open-telemetry/opentelemetry-collector\n","engines":{"node":">=8.0.0"},"gitHead":"ed92829b10bd17e46dc50cb6545b11ba350cac42","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"npm run protos:copy && tsc -w","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","submodule":"git submodule sync --recursive && git submodule update --init --recursive","postcompile":"npm run submodule && npm run protos:copy","protos:copy":"cpx protos/opentelemetry/**/*.* build/protos/opentelemetry"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.16.0+x64 (linux)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.16.0","dependencies":{"grpc":"^1.24.2","@grpc/proto-loader":"^0.5.4","@opentelemetry/api":"^1.0.0-rc.0","@opentelemetry/core":"^0.18.0","@opentelemetry/metrics":"^0.18.0","@opentelemetry/tracing":"^0.18.0","@opentelemetry/resources":"^0.18.0","@opentelemetry/exporter-collector":"^0.18.1-alpha.27+ed92829b"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cpx":"1.5.0","gts":"3.1.0","nyc":"15.1.0","mocha":"7.2.0","sinon":"9.2.4","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","ts-loader":"8.0.18","typescript":"4.2.3","@babel/core":"7.13.10","@types/node":"14.14.35","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@opentelemetry/api-metrics":"^0.18.0"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.18.1-alpha.27_1616836100577_0.47308090267262815","host":"s3://npm-registry-packages"}},"0.18.2-alpha.81":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.18.2-alpha.81","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.18.2-alpha.81","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"ca9087d9b4405fa73ff8086fec20a514752253fe","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.18.2-alpha.81.tgz","fileCount":35,"integrity":"sha512-Nd22E3eklQ9ic8Q3HRdw+7iZy7P7ellEF0nlND+xeisohhFwXvrnWENeKCeXWyaI0WbTzSjJFPXF9Geqzj0o7Q==","signatures":[{"sig":"MEQCIDAwaKfETiMaBniUw8PnmUkzgdefrgbHDgEv1r8mkv7uAiA1PKsuFGt+XBxfZhOBjGtEs2CUnJCZO4dADlZcq5OQUQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":105030,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgYjASCRA9TVsSAnZWagAAStIP/1JYaiyM4WiVYn61lQN2\ngWCFKYdfVAN2RQ9urN8VF/kuU9I4LdQoI+70HuDYOLtTVvyLnyi2uFKdm81q\nbpjaUtgZwEKnr6wt5ctNbSQqGmUR9sHK3AVodS2tO0b0b3frs9rglV8LS6AM\n/41G3ScVNAcbLDbJkMIPCeKJcbN2KNF2XnfIAj1wv/p9tAMtWffJo+tCTNHw\n0kwNnnE0uSPTrcV7i+JbEL/L4eKF5K6YFCytJg6zOt4q8zVFaThbTMaY6jkG\nlUJVtJ8TbcluYKqELuCyw3QlEeTk2kKSZoyGeA8Mc2/9VT0t1YLwzx63J0oc\nZE9T5q0kJMpmhKg24Qjlqfr037Zjhuj6STp1QoTr0rQSJlm+1eT1ILB2yaa8\nhg/SdcSnF2NhrDPpz/H51FTe8rYO4i+8EtbAzYXLhuspfjxdaArQ4X23iCPQ\nyVeBDD5tDKGqsPiclfHl+iqq5zzbqtIYxhhWGnUPHLis6eRGrPTprUroH3YZ\n1xeDTwFHzQWImmF9g2mLlo0iePgUtbpdWCVUcl8P9hULYDJHtCkA7x+Hap4K\nkPHJN053G0IBNf0U+CE0PkN+gw0xwRr8R44hpzN+6CzIGZCzub/ianMsYF6a\n30gxbd157QIb/65NXoCqZyhZEOv4WacOBP7wwqnnmfHpN5DEOUh71AGNaI6O\npqsI\r\n=fJmm\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry Collector Exporter for node with grpc\n\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.16.0**.\n\n## Installation\n\n```bash\nnpm install --save @opentelemetry/exporter-collector-grpc\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-grpc');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  url: '<opentelemetry-collector-url>' // url is optional and can be omitted - default is localhost:4317\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-grpc');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  url: '<opentelemetry-collector-url>', // url is optional and can be omitted - default is localhost:4317\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-grpc');\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:4317\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## Metrics in Node - GRPC\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-grpc');\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 in [GitHub Discussions][discussions-url]\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\n[discussions-url]: https://github.com/open-telemetry/opentelemetry-js/discussions\n[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/main/LICENSE\n[license-image]: https://img.shields.io/badge/license-Apache_2.0-green.svg?style=flat\n[dependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc\n[devDependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/exporter-collector-grpc\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fexporter-collector-grpc.svg\n[opentelemetry-collector-url]: https://github.com/open-telemetry/opentelemetry-collector\n","engines":{"node":">=8.0.0"},"gitHead":"e369035cd228a5c8781069a99322c5b938061d20","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"npm run protos:copy && tsc -w","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","submodule":"git submodule sync --recursive && git submodule update --init --recursive","postcompile":"npm run submodule && npm run protos:copy","protos:copy":"cpx protos/opentelemetry/**/*.* build/protos/opentelemetry"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.16.0+x64 (linux)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.16.0","dependencies":{"grpc":"^1.24.2","@grpc/proto-loader":"^0.5.4","@opentelemetry/api":"^1.0.0-rc.0","@opentelemetry/core":"^0.18.2-alpha.81+e369035c","@opentelemetry/metrics":"^0.18.2-alpha.81+e369035c","@opentelemetry/tracing":"^0.18.2-alpha.81+e369035c","@opentelemetry/resources":"^0.18.2-alpha.81+e369035c","@opentelemetry/exporter-collector":"^0.18.2-alpha.81+e369035c"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cpx":"1.5.0","gts":"3.1.0","nyc":"15.1.0","mocha":"7.2.0","sinon":"9.2.4","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","ts-loader":"8.0.18","typescript":"4.2.3","@babel/core":"7.13.10","@types/node":"14.14.35","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@opentelemetry/api-metrics":"^0.18.2-alpha.81+e369035c"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.18.2-alpha.81_1617047569748_0.3137552974659452","host":"s3://npm-registry-packages"}},"0.18.1":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.18.1","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.18.1","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"12f4bcc14e42f8c7d3f830701e0a72d248a27673","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.18.1.tgz","fileCount":35,"integrity":"sha512-oNPMPN3zxMMyt/aSHAGeyc4zZ7ucVe7YBf/BVaPNpF2HwbbXi0N5wovFE9qj6GYFfkxBUJnD0iPcKIMmAoQE8A==","signatures":[{"sig":"MEUCIFhTzwzurq9kVAg/9ltKrc4dHRAk73rzsxln6YNw7+K0AiEAmja1tBWkJ3DIphQe+Pa3PCemwoWxzqMa/JwdUBLkm0A=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":104904,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgYjLECRA9TVsSAnZWagAApmkP/AnU7kujXvP5vtOQMXIK\nOsDIaWeerDaUAWbNoWC2A+NLj8YmCbF9QZ/2ow3y2m3E1PRZkY6HQB2PdrDu\nDUijTSjkwCf1eNpnzjjIqxmoJJvooDynnSGCoBQv+SBQOyfL9VN5zfJHMiS7\nssn3oTXGfxu2HFaB7JjX2UqVVJ3YM9V4JUxzp/ZjVJkdqkQRb71ozwdbBKNf\nJgiDhVxks9hMDXPKmu8nJ2jN6AuAnXJqI6phzTf3/nFHrVQDLX0zSlwHOD0Z\nDbmaVZFdDopmgctqHNKKoTETAsBOif9RlzyJacM9NdjFg3EizvyT3MOhr6cz\nAqDb7tX6Lgkfpy+65QSr9f9i7jY6v1n0mXRCH9StcPlxVZIcCQ1FWHGXyKHy\nxv7b2/u925dr0mK18FcP0N7brCEpmDmVrDik5aiHDXq4RPdkp6NudqeLgNAp\neRdJECoYooG35NLu+POnpClxG/j48VcIkON5a0srn/Ywr1RN6KYU8tZn5+xQ\ndq4J/fCbKGdY3GmuMfBEbysocs/XeztKAyDw5aDEEfa+59EnxrULtOkJbNz/\n5a1Oq4Kan2p15W8tQqur64v5/4BNbZVbeGCnMKadv9Opg962dkcmvnmAOfFL\nRKvMGrraJVkzG+wgMVJ87bQLGIsCWGh4jo/ni2qYIHiW3hAiqE1tDXkEscTY\nDgRP\r\n=coTd\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","engines":{"node":">=8.0.0"},"gitHead":"e369035cd228a5c8781069a99322c5b938061d20","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"npm run protos:copy && tsc -w","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","submodule":"git submodule sync --recursive && git submodule update --init --recursive","postcompile":"npm run submodule && npm run protos:copy","protos:copy":"cpx protos/opentelemetry/**/*.* build/protos/opentelemetry"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.8.0+x64 (darwin)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.8.0","dependencies":{"grpc":"^1.24.2","@grpc/proto-loader":"^0.5.4","@opentelemetry/api":"^1.0.0-rc.0","@opentelemetry/core":"^0.18.1","@opentelemetry/metrics":"^0.18.1","@opentelemetry/tracing":"^0.18.1","@opentelemetry/resources":"^0.18.1","@opentelemetry/exporter-collector":"^0.18.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"cpx":"1.5.0","gts":"3.1.0","nyc":"15.1.0","mocha":"7.2.0","sinon":"9.2.4","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","ts-loader":"8.0.18","typescript":"4.2.3","@babel/core":"7.13.10","@types/node":"14.14.35","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@opentelemetry/api-metrics":"^0.18.1"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.18.1_1617048260118_0.7409567785018618","host":"s3://npm-registry-packages"}},"0.18.2-alpha.1":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.18.2-alpha.1","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.18.2-alpha.1","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"7cd029c11a24ad4b7bfa5318d0758f7b67471c9a","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.18.2-alpha.1.tgz","fileCount":35,"integrity":"sha512-U8X3EIMpucXm2osbTZPh1OSKqX7aM/4+acSN+iF9VFUH27guMFman5Z6eCFUaL+mdc6mGqlvx1B/35Kk2EsUsw==","signatures":[{"sig":"MEYCIQCFyZhlnh2IpGAa3wtTYxjos184Cp46kpNlBqIoO3xLdAIhALrTGToxq2SWppIzRPrSa17xX7clSEEfTmaFzdSoS3+Y","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":105019,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgYyJqCRA9TVsSAnZWagAApv0P/2ESto6aVOzCmG+bevAE\nPiL9j/VPY326PC6lp/LdIUDB0qGp89VgJJEPtJFpnhDjNN0wdGvJ9pH4OeJV\nJVvLyl/Mnpnw2/GtjsAAGnTdqQPiAjsAjz1ygBbnTGjdkTLHQAYVucf5UH6V\nswxzi/tVNp7egg9PURzUscJOgVpQ6QyY/MDq15LKl2pZpZ62igRTxSztiUzY\nmeLhtywu4AjkL8tgrBZN5CfE5/fKhY1ttGJijTlt1LEVtbtaTFdgwkDioprE\nUDLZfpGCrjdBxNySKAENWviw2DJVZBYRLkwTKSfZo/XLjuXTTQEBfS273w2L\nRJ9jg7Y3Iz8coAiCKWB2c4VwJJYuc0RiSueZLDt4d/gGEa6iczy1EOTjYhtc\n/m6LWj/0ggDlYHPAkh5Cjr3Hx3mijmYuSlR/CQ64B9nxz/UFK5ILgxNlsH9K\n50/y3EGzgrm+EZMGqZTvjsSPnNgg7icpJBYKQpN+dqf+8dgCqc80ZRju+e1H\n4Q2Ohfbt0DWeOk+2pKNsGT/qHdlxmY+anZI4flAqFULw+PAA6VKFHkIzbV4g\nCukOz/7/DATGJm81R2keRp3Xk0K3O4XlNNKQyWcVZhxcugvgd26rlmCLGjR9\nHZQX7cp3Mj2Bb1Lo3Q43/WTOmOmpu3NK/yTvYLtD+PHWjy1s6PIBci6yVwE/\nzZmF\r\n=7voH\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry Collector Exporter for node with grpc\n\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.16.0**.\n\n## Installation\n\n```bash\nnpm install --save @opentelemetry/exporter-collector-grpc\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-grpc');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  url: '<opentelemetry-collector-url>' // url is optional and can be omitted - default is localhost:4317\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-grpc');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  url: '<opentelemetry-collector-url>', // url is optional and can be omitted - default is localhost:4317\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-grpc');\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:4317\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## Metrics in Node - GRPC\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-grpc');\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 in [GitHub Discussions][discussions-url]\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\n[discussions-url]: https://github.com/open-telemetry/opentelemetry-js/discussions\n[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/main/LICENSE\n[license-image]: https://img.shields.io/badge/license-Apache_2.0-green.svg?style=flat\n[dependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc\n[devDependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/exporter-collector-grpc\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fexporter-collector-grpc.svg\n[opentelemetry-collector-url]: https://github.com/open-telemetry/opentelemetry-collector\n","engines":{"node":">=8.0.0"},"gitHead":"54857c012414c05bc83b4a8da224492c98abfd46","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"npm run protos:copy && tsc -w","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","submodule":"git submodule sync --recursive && git submodule update --init --recursive","postcompile":"npm run submodule && npm run protos:copy","protos:copy":"cpx protos/opentelemetry/**/*.* build/protos/opentelemetry"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.16.0+x64 (linux)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.16.0","dependencies":{"grpc":"^1.24.2","@grpc/proto-loader":"^0.5.4","@opentelemetry/api":"^0.18.1","@opentelemetry/core":"^0.18.2-alpha.1+54857c01","@opentelemetry/metrics":"^0.18.2-alpha.1+54857c01","@opentelemetry/tracing":"^0.18.2-alpha.1+54857c01","@opentelemetry/resources":"^0.18.2-alpha.1+54857c01","@opentelemetry/exporter-collector":"^0.18.2-alpha.1+54857c01"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cpx":"1.5.0","gts":"3.1.0","nyc":"15.1.0","mocha":"7.2.0","sinon":"9.2.4","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","ts-loader":"8.0.18","typescript":"4.2.3","@babel/core":"7.13.10","@types/node":"14.14.35","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@opentelemetry/api-metrics":"^0.18.2-alpha.1+54857c01"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.18.2-alpha.1_1617109609639_0.024577038500440684","host":"s3://npm-registry-packages"}},"0.18.3-alpha.2":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.18.3-alpha.2","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.18.3-alpha.2","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"0ceaed06a4aa37dd061c91e0ad6b0104c829599d","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.18.3-alpha.2.tgz","fileCount":35,"integrity":"sha512-SNEZmOObNZM2gDwvaLGEWFH8OiwhYv021CEFXj/skaqzq8bcaoNmFyFv3v9/medS6tAro6Wp0PxYmUzTv9ADJA==","signatures":[{"sig":"MEUCIQDVWrZB+njbz54NgKUQRwg1fRticfpb3DRSToIx3UIAyAIgRdPvQ9L9Ex7SM188/UeFiM177+5fK5zrWYrX7rj5Ufk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":105019,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgY0N6CRA9TVsSAnZWagAA1bsP/1tJkuV4q4VUmR9edQ+G\ntuljsANFBIkdc47/QGoePT0KoMKZuADjTVJPYp6+rYB6X/9NUmffckxe2ujy\nAVCiAyG5xMYDCGLPlU62rZaYF3F2KyV1KOwrFaRn6oKHBGTCZgs+17r/V3H3\nlvKexi2EdjijzqMoS+SgsMWpjbUff+q80JHu7As5fKikUy091WNDVMGrV1NR\n+WxRgH2FiCkk4wT4epS84++Hydtl6KzyPuxjlXgzjqichUfnkEsRr8KXEHsf\nXYPiEfH2kgGCnwdIkJA7+GXXedac/PrnA/fEXooyKy6YMBQsYmm4hzD9rxk1\npM6JXGdo9NNi2pxBI8x/1yaJzHQ+oZ9P7sSqyWj7vbs6fbzGgShzNyRWpuRs\ncqFeDkvUR8qjUC3Or0y/BFo16eK/W3j5Sk+HcllNXQwHV8LtyceP7OBWeNNa\nBZ9UEifIUYWiZPR6cl8XZIQFQJC04clLtndi1KFCoXv5UhAsvfXwRlGbSTQe\niS00kZhxjT61tap+trpyF2HivWaNMCb+uRI6wCazQWIWMmGp7A4LInKtIDED\na481iSMMsIu+ANRCCzvt4fOGFrEWlBd27diJ9vLPW0WFukTqjP/n0hhUwAMO\nhY0V8H+fBSBgdvisip5oL2cgmyTiGOedzAle6Ved9XmH4kWsudqf3Ffsd3tp\nHn5v\r\n=lOe1\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry Collector Exporter for node with grpc\n\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.16.0**.\n\n## Installation\n\n```bash\nnpm install --save @opentelemetry/exporter-collector-grpc\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-grpc');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  url: '<opentelemetry-collector-url>' // url is optional and can be omitted - default is localhost:4317\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-grpc');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  url: '<opentelemetry-collector-url>', // url is optional and can be omitted - default is localhost:4317\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-grpc');\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:4317\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## Metrics in Node - GRPC\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-grpc');\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 in [GitHub Discussions][discussions-url]\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\n[discussions-url]: https://github.com/open-telemetry/opentelemetry-js/discussions\n[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/main/LICENSE\n[license-image]: https://img.shields.io/badge/license-Apache_2.0-green.svg?style=flat\n[dependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc\n[devDependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/exporter-collector-grpc\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fexporter-collector-grpc.svg\n[opentelemetry-collector-url]: https://github.com/open-telemetry/opentelemetry-collector\n","engines":{"node":">=8.0.0"},"gitHead":"2409f1cdddd92c23548c18c055a6a36efe36349f","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"npm run protos:copy && tsc -w","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","submodule":"git submodule sync --recursive && git submodule update --init --recursive","postcompile":"npm run submodule && npm run protos:copy","protos:copy":"cpx protos/opentelemetry/**/*.* build/protos/opentelemetry"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.16.0+x64 (linux)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.16.0","dependencies":{"grpc":"^1.24.2","@grpc/proto-loader":"^0.5.4","@opentelemetry/api":"^0.18.1","@opentelemetry/core":"^0.18.3-alpha.2+2409f1cd","@opentelemetry/metrics":"^0.18.3-alpha.2+2409f1cd","@opentelemetry/tracing":"^0.18.3-alpha.2+2409f1cd","@opentelemetry/resources":"^0.18.3-alpha.2+2409f1cd","@opentelemetry/exporter-collector":"^0.18.3-alpha.2+2409f1cd"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cpx":"1.5.0","gts":"3.1.0","nyc":"15.1.0","mocha":"7.2.0","sinon":"9.2.4","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","ts-loader":"8.0.18","typescript":"4.2.3","@babel/core":"7.13.10","@types/node":"14.14.35","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@opentelemetry/api-metrics":"^0.18.3-alpha.2+2409f1cd"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.18.3-alpha.2_1617118073712_0.9457916448535633","host":"s3://npm-registry-packages"}},"0.18.2":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.18.2","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.18.2","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"f814a43e49980c9b2ce2caa8eb69f2dc4b0d9b54","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.18.2.tgz","fileCount":35,"integrity":"sha512-bEQbcqTlinMaj+/7rH98M9+POGHOpdgTkD6a9LOym6Qu6eMF5F+TBqaUQjfGsfmPsIpWoDkCl566pcCS4RsGCw==","signatures":[{"sig":"MEUCIBp1o+F/+tHtJShqw2pS2V++33Pzf7ybeegOyjoJe3GVAiEAn1dR6wE9KQFHrxpGDysE4NoZACuWkxhZeYRZdeFQRtg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":104900,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgY07SCRA9TVsSAnZWagAAs54QAKR47DSHJM9bUCbO7nOS\nRJh+l86wyUUOqLl+4+KkvBbBR1b5zCyqZ9ofa3htcfI8GX6rg5pSmSApVk+J\nLpB2hjqtFRWNUZKvU67gp+doh73iIMoxz99UgHf0grZPa0hWP8rAFK57cw+y\nzk0x/zaHAWvVAcD8KCaF45c8JRmK7SkLREo9tmw09R6kUMi7wEeZhVso8EoX\nzIt2IJm2eaYY4CuNe0XAYomdckMV7ocSkCk63fuF4tLKrv7teVOyQIwwL5X6\nCcl9bB1fW1+qGNxFy6ELwIIU+viB1gk50KjOgJKm7mluyUkKokqA3TPlbpCl\nZIq6QAGqM5SLobhk7eXLPSzP3k0lZH04EHwKC6p4ePvKMmC9MUJTDYxhcRQz\ngbScB2HVlhqpQ2mQz/D/hh5dzddqylglA5A+2Xnoc61KGhnst0GMEx15NRZd\n2lDWbjBDPgsKs51PWBXUIjAakRBChO0YvzWhW66Gjp3RWTjbM7hPwqKxzrtM\nt1g6DT3I/vX2pdpG/rCUaxbWwaWiT72rD6V/UTVyulkcwd0KSyhCq6IP06xs\nG5q+uSR9mvBc9JIOgft//y+slEiDQxx5lzriiY/ynKZb/mck8MbKmXm0eVVw\nlz+bj3NX2I6Uj6WxUEhsbR6beYknSJf8zsan6JKfTivQt1bx9k/6qbG0SCBK\niXqN\r\n=nZ77\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","engines":{"node":">=8.0.0"},"gitHead":"2409f1cdddd92c23548c18c055a6a36efe36349f","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"npm run protos:copy && tsc -w","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","submodule":"git submodule sync --recursive && git submodule update --init --recursive","postcompile":"npm run submodule && npm run protos:copy","protos:copy":"cpx protos/opentelemetry/**/*.* build/protos/opentelemetry"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.8.0+x64 (darwin)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.8.0","dependencies":{"grpc":"^1.24.2","@grpc/proto-loader":"^0.5.4","@opentelemetry/api":"^0.18.1","@opentelemetry/core":"^0.18.2","@opentelemetry/metrics":"^0.18.2","@opentelemetry/tracing":"^0.18.2","@opentelemetry/resources":"^0.18.2","@opentelemetry/exporter-collector":"^0.18.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"cpx":"1.5.0","gts":"3.1.0","nyc":"15.1.0","mocha":"7.2.0","sinon":"9.2.4","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","ts-loader":"8.0.18","typescript":"4.2.3","@babel/core":"7.13.10","@types/node":"14.14.35","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@opentelemetry/api-metrics":"^0.18.2"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.18.2_1617120977875_0.008270429805543156","host":"s3://npm-registry-packages"}},"0.18.3-alpha.1":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.18.3-alpha.1","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.18.3-alpha.1","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"b3c3750cff678b7f30511d2d28022ecaa654a8f2","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.18.3-alpha.1.tgz","fileCount":35,"integrity":"sha512-x/NikCrwAafxSzZYnQYt8oo19OYyh/mDKur5fOp0NRMF7zZh2exLPgdSNBY96V37WkGOhfNUINy/S93KtfE9eQ==","signatures":[{"sig":"MEUCIQCeOhCCJiHXLmZfNY1bVuWZ9wutK2u5SGPrOLrYZYNWigIgcOT4iYm96qyuZa5VbYGkzM9Edt7M1JqJVma5kZgjkus=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":105018,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgY2AlCRA9TVsSAnZWagAA7UkP/RnKqdsbIZgcNhtq3Meq\n8mGEQkwEA4CT1CxCvhpH4h/xc+TFtv9bNOnTTI0Jka8V25QF3n66QyAtSHPY\neKl6zATBHucj262KrAucJvCLJ65445E9SPPneNnQxEcATZ1ddD6oehwcI5gC\n5fr1MnxmR3OHEbNw0QCSxKKRHho98+ohPWFGU7kMaV4UcECLaXrPVGEFvy2e\nswhNcKVBFe2PJxbXWbkshOPhsEq71DJu0MvK1pjBv4udGeG2cBjkMvhxTSbS\nCLxKjDUFGdu3ONigEku69ujYb+l/FLOnjCezEzKHYNWcHbnmrBVLYbWEGaA9\ns8RZcb9en3RFetIM0yHtpzAjDvrmnt8EibQJW/P6LKdKrqLJ1ja5FjWzTn3i\nPJ/qYUAKTAAnEZEkZaCMhHLT5+0L/RFrimyObrOm8g7+qt9zYloVkoutG9Tq\nf/a0xCyE3HiVO0ARH8BP2FLfREQ3qvwCRWMHxZlk9CQ/P2OrYWPUiKD7rI6O\nOFbszdMTKQ4QRUl8WWPDomsgu4JDbYqVkrt96nfG7gYh3sztFo5PO0tTkOTe\nK1UiPUTlV9D1xrWfP+BOVaVxCgIqnuPoaxNyI94C3iZp2qlSt8rPdJFu2UQ3\npt7raHz+pMg6CGROyRsAp+wKCzIKhVf0+4UVKln0AJ3vRrGgXEHQ1clYjhkf\nOQiV\r\n=DgFY\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry Collector Exporter for node with grpc\n\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.16.0**.\n\n## Installation\n\n```bash\nnpm install --save @opentelemetry/exporter-collector-grpc\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-grpc');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  url: '<opentelemetry-collector-url>' // url is optional and can be omitted - default is localhost:4317\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-grpc');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  url: '<opentelemetry-collector-url>', // url is optional and can be omitted - default is localhost:4317\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-grpc');\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:4317\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## Metrics in Node - GRPC\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-grpc');\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 in [GitHub Discussions][discussions-url]\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\n[discussions-url]: https://github.com/open-telemetry/opentelemetry-js/discussions\n[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/main/LICENSE\n[license-image]: https://img.shields.io/badge/license-Apache_2.0-green.svg?style=flat\n[dependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc\n[devDependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/exporter-collector-grpc\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fexporter-collector-grpc.svg\n[opentelemetry-collector-url]: https://github.com/open-telemetry/opentelemetry-collector\n","engines":{"node":">=8.0.0"},"gitHead":"cabf8630cf2e295ac2e7e5f44d6efd1ae911cbe4","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"npm run protos:copy && tsc -w","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","submodule":"git submodule sync --recursive && git submodule update --init --recursive","postcompile":"npm run submodule && npm run protos:copy","protos:copy":"cpx protos/opentelemetry/**/*.* build/protos/opentelemetry"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.16.0+x64 (linux)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.16.0","dependencies":{"grpc":"^1.24.2","@grpc/proto-loader":"^0.5.4","@opentelemetry/api":"^0.18.1","@opentelemetry/core":"^0.18.3-alpha.1+cabf8630","@opentelemetry/metrics":"^0.18.3-alpha.1+cabf8630","@opentelemetry/tracing":"^0.18.3-alpha.1+cabf8630","@opentelemetry/resources":"^0.18.3-alpha.1+cabf8630","@opentelemetry/exporter-collector":"^0.18.3-alpha.1+cabf8630"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cpx":"1.5.0","gts":"3.1.0","nyc":"15.1.0","mocha":"7.2.0","sinon":"9.2.4","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","ts-loader":"8.1.0","typescript":"4.2.3","@babel/core":"7.13.14","@types/node":"14.14.37","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@opentelemetry/api-metrics":"^0.18.3-alpha.1+cabf8630"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.18.3-alpha.1_1617125412432_0.7122607251656967","host":"s3://npm-registry-packages"}},"0.18.3-alpha.3":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.18.3-alpha.3","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.18.3-alpha.3","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"6701712dbb67ab8d10464c51d0b16faa5605a150","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.18.3-alpha.3.tgz","fileCount":35,"integrity":"sha512-Vty1HlLD5FukIFk4Dbx9p5hMSI/MIGweOZW7ZJKcylEN5ykJrPzDzxC4oC8K7uZ+5oOEkzcME8LI7o8+UfxhLg==","signatures":[{"sig":"MEUCIQDsAFOQQErAFx9YyDijVKff5XUvl3h+FZEOHkJ9Jw2ftQIgGNRNfjugeOa1wnJzJKEkS271pL5an0SozEaSTLvb1MY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":105001,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgZCcDCRA9TVsSAnZWagAAvFUP/0avBurKQyv+YjAsiGQR\nfDJpJQVWUWuduvaZeHlJnl0c8Lx4qaLxliLq+yfhB8FIiPjmqo4hH7jX0yqK\nr0MfqOntWrywSiOIto5nxnyajJNp32m4zU+MeTLCJtdiBOAl2FwynSxctOzl\nOtfgq5/hK0+sxem/O7gP/UCWtS7OVrxdUGH7LzBwljt4OSdf5nwRygeyoyw3\nwam0sGCuwyvtzPNGSvnNGyfTi6ErEfGnjUNmYJiSvYRDCy6AR18y8VuJdJkl\nDFgr0pQimHbjGnnF9Dh8vg9DC1hqOaOQY2bhk15QEHjws5mE1QSK/bGf2HgT\nDXptLdOX77Nx8eFHzwJXrLWN62Rfj0dSuPnU7KSRbfTFOkWUgwPIRrFq6Euj\nmC5acMVWSNtjLuLjOFMhTjBELqoEmHYkGOe9B2akp8eveiIBJ0KqqjTw8pc9\nw4tp9sdZltVNwRAfv4M3oaS3pAo1YgVq+8Ta4ujG2oGPa/aBV3QEp9DiIm4b\ngXIiNZzxgsckMKU0S03ac36GIeL5S/9rB9leY6yWQOtCqCx4qbyHSJjHUHkQ\niJDn56g9f5YCyCCWYUcmG/PCVxaQj+zp/XtcAoJdR6RJIHTG/9n1dg4hzZ1t\nLdp+K4JZ2369cqJXl2yx0pDWLxfBPbFBPvGkh2xZpJkYQl3dDoNP1T+gZ8uX\nq7K2\r\n=5fuv\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry Collector Exporter for node with grpc\n\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.16.0**.\n\n## Installation\n\n```bash\nnpm install --save @opentelemetry/exporter-collector-grpc\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-grpc');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  url: '<opentelemetry-collector-url>' // url is optional and can be omitted - default is localhost:4317\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-grpc');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  url: '<opentelemetry-collector-url>', // url is optional and can be omitted - default is localhost:4317\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-grpc');\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:4317\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## Metrics in Node - GRPC\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-grpc');\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 in [GitHub Discussions][discussions-url]\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\n[discussions-url]: https://github.com/open-telemetry/opentelemetry-js/discussions\n[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/main/LICENSE\n[license-image]: https://img.shields.io/badge/license-Apache_2.0-green.svg?style=flat\n[dependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc\n[devDependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/exporter-collector-grpc\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fexporter-collector-grpc.svg\n[opentelemetry-collector-url]: https://github.com/open-telemetry/opentelemetry-collector\n","engines":{"node":">=8.0.0"},"gitHead":"853fcb94cd96cea0bd1af18cddb355345f76adad","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"npm run protos:copy && tsc -w","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","submodule":"git submodule sync --recursive && git submodule update --init --recursive","postcompile":"npm run submodule && npm run protos:copy","protos:copy":"cpx protos/opentelemetry/**/*.* build/protos/opentelemetry"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.16.0+x64 (linux)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.16.0","dependencies":{"grpc":"^1.24.2","@grpc/proto-loader":"^0.5.4","@opentelemetry/api":"^0.18.1","@opentelemetry/core":"^0.18.3-alpha.3+853fcb94","@opentelemetry/metrics":"^0.18.3-alpha.3+853fcb94","@opentelemetry/tracing":"^0.18.3-alpha.3+853fcb94","@opentelemetry/resources":"^0.18.3-alpha.3+853fcb94","@opentelemetry/exporter-collector":"^0.18.3-alpha.3+853fcb94"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cpx":"1.5.0","gts":"3.1.0","nyc":"15.1.0","mocha":"7.2.0","sinon":"9.2.4","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","ts-loader":"8.1.0","typescript":"4.2.3","@babel/core":"7.13.14","@types/node":"14.14.37","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@opentelemetry/api-metrics":"^0.18.2"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.18.3-alpha.3_1617176322695_0.9138912429029225","host":"s3://npm-registry-packages"}},"0.18.3-alpha.4":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.18.3-alpha.4","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.18.3-alpha.4","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"011e47e1094f60b5d479a837698ce49d7c8360dc","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.18.3-alpha.4.tgz","fileCount":35,"integrity":"sha512-hFcxDo42JPQnPJ2HjyunnLvuyXoEQmPQcTKp1GexiGqzSHS6JrukHu9szUlJe4jGuKASiFHkxaOXeOB4JEJk1g==","signatures":[{"sig":"MEYCIQDMN3o0ghUlbE3SXk7jvOyHH681S1r1acGNEvmuovxFmgIhAIQiPMbZglCETGIM6Rk4X7sDHdTZ52UURA0nbxeOdVCw","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":105022,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgaz0ECRA9TVsSAnZWagAA3NoP/3OtJup0rxT1SA4cUr7a\nAYcayXJZSNn5AMxaM0njAj2t/awC+Vzi0vLVNNH1QqAcnXf5jFcAd3h7AYIT\nYoFTieEh+F5vm7YatA/aKF4d+APmouxNSUtC8sK/b4qIus1xonBGEH4SD2eN\nYf3scO8MkBEL+cf0GGkLDoNzumzFIhI5cK/HnV+e2XRgtD1NMU8++FLd/6tz\nzqrovEbPSxrnTwExSL0ieGpzaSOd78h3H7rxZexQgvytmciyTyrJ/WE4SyOH\nmU+6T/5htOFpnRhgh9YbywBMUSCtbMbGOhZczN0N46xcZfayyYVOF+j07+wC\nXVCIZguTuL6Dje+YRWLd9KqCZm0wIOIRwwjtCPT2d2E4tyQ2Jhxwkxi+2j9f\nmcPuwMjgZNfvNkYk7wNP2L2ndRNoKL1SLyhUa4MDnzSwKkNA7YwpixE8VhcZ\nCNF4yTbKr0RlJeszUdoRsguBH+5Ceuo+tEi3g6je7TpupGu+lfOSw5fgDG96\n89jPtdSiiCq/jrBtGIxBZThY8rY4/UEMuKnOoK2bwz6wry80MYBMc4G+3B5N\nN81RyITqtGsPzD8GkpgrfN/3MqPyIFbDitAFv/41Ib6mIFlil9sBTBj1fbeU\nF8HmDsJAN9JTtuVoU4/e1cTup9mpT7toe3jn2Ua/3EtEZ1X72clG8xvOMquy\nGLZw\r\n=E8xW\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry Collector Exporter for node with grpc\n\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.16.0**.\n\n## Installation\n\n```bash\nnpm install --save @opentelemetry/exporter-collector-grpc\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-grpc');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  url: '<opentelemetry-collector-url>' // url is optional and can be omitted - default is localhost:4317\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-grpc');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  url: '<opentelemetry-collector-url>', // url is optional and can be omitted - default is localhost:4317\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-grpc');\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:4317\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## Metrics in Node - GRPC\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-grpc');\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 in [GitHub Discussions][discussions-url]\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\n[discussions-url]: https://github.com/open-telemetry/opentelemetry-js/discussions\n[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/main/LICENSE\n[license-image]: https://img.shields.io/badge/license-Apache_2.0-green.svg?style=flat\n[dependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc\n[devDependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/exporter-collector-grpc\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fexporter-collector-grpc.svg\n[opentelemetry-collector-url]: https://github.com/open-telemetry/opentelemetry-collector\n","engines":{"node":">=8.0.0"},"gitHead":"02175dfafde72898d7ab40d8078b0e1b6576e82a","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"npm run protos:copy && tsc -w","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","submodule":"git submodule sync --recursive && git submodule update --init --recursive","postcompile":"npm run submodule && npm run protos:copy","protos:copy":"cpx protos/opentelemetry/**/*.* build/protos/opentelemetry"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.16.0+x64 (linux)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.16.0","dependencies":{"grpc":"^1.24.2","@grpc/proto-loader":"^0.5.4","@opentelemetry/api":"^1.0.0-rc.0","@opentelemetry/core":"^0.18.3-alpha.4+02175dfa","@opentelemetry/metrics":"^0.18.3-alpha.4+02175dfa","@opentelemetry/tracing":"^0.18.3-alpha.4+02175dfa","@opentelemetry/resources":"^0.18.3-alpha.4+02175dfa","@opentelemetry/exporter-collector":"^0.18.3-alpha.4+02175dfa"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cpx":"1.5.0","gts":"3.1.0","nyc":"15.1.0","mocha":"7.2.0","sinon":"9.2.4","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","ts-loader":"8.1.0","typescript":"4.2.3","@babel/core":"7.13.14","@types/node":"14.14.37","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@opentelemetry/api-metrics":"^0.18.3-alpha.4+02175dfa"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.18.3-alpha.4_1617640707864_0.15924572124383363","host":"s3://npm-registry-packages"}},"0.18.3-alpha.5":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.18.3-alpha.5","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.18.3-alpha.5","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"359444f849014a7b1e73918a0b863e0ae5b4e641","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.18.3-alpha.5.tgz","fileCount":35,"integrity":"sha512-a/4CQ6Dt/8cmPvC8pZqkxNJLbz9GufiBlbsWn80pHqJRGazRNE5E/sGPHfgc23khJAAu3sL/mseN4DFBodyTzg==","signatures":[{"sig":"MEUCIQDxBC1NXYPDd6AqtB3NaTy43+h4d1ae4yRefRjLOj2R4wIgNApGOS4Xr8LpwyRQraRdGzeWOWU3+5hSBhoVYKdMifE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":105091,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJga08lCRA9TVsSAnZWagAASc4QAI8vfUyfvZN1QEqJnWf8\nm+lBFEYhYCD5y4pPsBV1UJIS8ayBwkqMFNGpDYO+XDxKse1CzyHTCyl+fxnC\nMiEwcChIenp/m8Tjn5nyt1/xMPgGjFmN39nz2iO4BHnp6SGxKPmBV3+NyYh4\nPzZBeSji+hpeN2xJ2SHiNR4AQj173RKSTktdx0XhqL8ToHnHL877SIfF/aNA\n+KUBQ7Jicx0LZp/mxaZMjaOqEq2GO9l6Uxpn9lYDYZmRstRhlq3KO7MAJadf\n8+YK8SfDorL+/W+JTp53MdQ5QS/l8Wirrf57eAvinYsXjFd7O5gDy4U5uq8F\ne8TeqAjQr4eZBxs0D/lDrxu2y7NTaQvcpvmERN/8lbnA+h4VPqDlpSJhBFoe\nbDoZ7CIaaiyCFdXJr0YgJvoU1GFDlwcVWZZ6pGOC5+7nlvMdx0cWhy/VOmV8\ndh8bTnw85GXsni6Sr7Dbpc+1YplNiF5DKGvmmigDdt2vA4G6ssga4YN75DB6\nmF2zAf+0hi0icStm3rr8EmADfVUTRxLVf1uJQtyzH6lWUjGCXnWooyzOJzvW\n9JKmUX8qFeLVMMt2nwUfZhnxAWdodEPjqpylHk1dnH+7bdhzhSYJ66ka+a5+\noBrWadFPQXUrdkaYA5bHI1HHEopovw8LlQgGLb7A/aqKKPotuS1WiriI0Lfs\nIGBM\r\n=afiN\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry Collector Exporter for node with grpc\n\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.16.0**.\n\n## Installation\n\n```bash\nnpm install --save @opentelemetry/exporter-collector-grpc\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-grpc');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  url: '<opentelemetry-collector-url>' // url is optional and can be omitted - default is localhost:4317\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-grpc');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  url: '<opentelemetry-collector-url>', // url is optional and can be omitted - default is localhost:4317\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-grpc');\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:4317\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## Metrics in Node - GRPC\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-grpc');\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 in [GitHub Discussions][discussions-url]\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\n[discussions-url]: https://github.com/open-telemetry/opentelemetry-js/discussions\n[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/main/LICENSE\n[license-image]: https://img.shields.io/badge/license-Apache_2.0-green.svg?style=flat\n[dependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc\n[devDependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/exporter-collector-grpc\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fexporter-collector-grpc.svg\n[opentelemetry-collector-url]: https://github.com/open-telemetry/opentelemetry-collector\n","engines":{"node":">=8.0.0"},"gitHead":"8e2e2a9653bdb648849a0ac64df55cbe3ff0c503","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"npm run protos:copy && tsc -w","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","submodule":"git submodule sync --recursive && git submodule update --init --recursive","postcompile":"npm run submodule && npm run protos:copy","protos:copy":"cpx protos/opentelemetry/**/*.* build/protos/opentelemetry"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.16.0+x64 (linux)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.16.0","dependencies":{"grpc":"^1.24.2","@grpc/proto-loader":"^0.5.4","@opentelemetry/core":"^0.18.3-alpha.5+8e2e2a96","@opentelemetry/metrics":"^0.18.3-alpha.5+8e2e2a96","@opentelemetry/tracing":"^0.18.3-alpha.5+8e2e2a96","@opentelemetry/resources":"^0.18.3-alpha.5+8e2e2a96","@opentelemetry/exporter-collector":"^0.18.3-alpha.5+8e2e2a96"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cpx":"1.5.0","gts":"3.1.0","nyc":"15.1.0","mocha":"7.2.0","sinon":"9.2.4","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","ts-loader":"8.1.0","typescript":"4.2.3","@babel/core":"7.13.14","@types/node":"14.14.37","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@opentelemetry/api":"^1.0.0-rc.0","@opentelemetry/api-metrics":"^0.18.3-alpha.5+8e2e2a96"},"peerDependencies":{"@opentelemetry/api":"^1.0.0-rc.0"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.18.3-alpha.5_1617645349321_0.015337572258073306","host":"s3://npm-registry-packages"}},"0.18.3-alpha.7":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.18.3-alpha.7","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.18.3-alpha.7","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"5b0ac454a6d9085da4ff453e6b3165261cab3d32","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.18.3-alpha.7.tgz","fileCount":35,"integrity":"sha512-0Ie16XXkc2a6orao0A5OhDe4ybJlEEhbpN7oqSC+yYT/DJOL2dcHjVxB3aYo+rLgqfGZxcarE54ZGI7QXMJ40Q==","signatures":[{"sig":"MEUCIBDDrxeT3zjJcES9fgPzgkYycyldRbRpo0NdH6ZPTuZsAiEA+IzRScFqkAv0G+IttSRHso5nv14hjgonTobBv11KY0M=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":105091,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgbdoGCRA9TVsSAnZWagAAlbUQAJvYY5alBkiCG8/od6CT\nC8UPVBBnehksU2XShc43YEtJGRYzuLBlyt32Xj9s7sdKnKmk2EklpX1pmUwD\ngowMjDDfuvCB2ujig9v38L7DO727fNZhf7Uav1kPx6u49+l1F7tsOl8s5rUs\n6rPm+/LEo1TCakZZ/waxcR8/fOiyxs9s4bzntMpw2XSZw0swkaA352y28CjM\nEG8YNDzPlNt3rmytndGT+p6BAqtVm4Lh1Cjr7AwZA1CnoEkp3+jHOStRodbQ\nxxEWzsmek4PW+7QB8HyshlKmBjo4neezqN9EDH44oCIL3peBIITZxUJNWS63\nesRhbcy3BnghKhOf2jaG/iIq26i01vJgQMHeFfBSu3UvAetazwvC2DMzJnN+\nwKXfgfX6o5HSgV5N+S0eU6PVkSRpwZsSPsIYEjyqYNhhfHXKTijODheTrr5I\n4taOXFhI6yjmtoABD84OnOhB4US8w43uz+2g22OAWZUvllUb/0rp5mkMXRfE\nrxfLarHorohlZTX5mxWMG6B4BILVE4QPYvqxYRwRqwluse6CM5QO5xjMJO86\nGGc5qPvt8ntyGB8PMWV3+B2jnK2jqaifoHGNpHhQNa5ifEDtSb+9czD/JB5m\npq1Ba9ZCBXF8rrslYE1y4bZc2S6r71srQ2a76iZ+OMQyhNRCMgyWrB0Ce6zL\nHl8G\r\n=fKBY\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry Collector Exporter for node with grpc\n\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.16.0**.\n\n## Installation\n\n```bash\nnpm install --save @opentelemetry/exporter-collector-grpc\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-grpc');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  url: '<opentelemetry-collector-url>' // url is optional and can be omitted - default is localhost:4317\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-grpc');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  url: '<opentelemetry-collector-url>', // url is optional and can be omitted - default is localhost:4317\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-grpc');\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:4317\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## Metrics in Node - GRPC\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-grpc');\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 in [GitHub Discussions][discussions-url]\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\n[discussions-url]: https://github.com/open-telemetry/opentelemetry-js/discussions\n[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/main/LICENSE\n[license-image]: https://img.shields.io/badge/license-Apache_2.0-green.svg?style=flat\n[dependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc\n[devDependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/exporter-collector-grpc\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fexporter-collector-grpc.svg\n[opentelemetry-collector-url]: https://github.com/open-telemetry/opentelemetry-collector\n","engines":{"node":">=8.0.0"},"gitHead":"897c35f497363ee3f3ea4c1e5ad1628e09ec9041","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"npm run protos:copy && tsc -w","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","submodule":"git submodule sync --recursive && git submodule update --init --recursive","postcompile":"npm run submodule && npm run protos:copy","protos:copy":"cpx protos/opentelemetry/**/*.* build/protos/opentelemetry"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.16.0+x64 (linux)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.16.0","dependencies":{"grpc":"^1.24.2","@grpc/proto-loader":"^0.5.4","@opentelemetry/core":"^0.18.3-alpha.7+897c35f4","@opentelemetry/metrics":"^0.18.3-alpha.7+897c35f4","@opentelemetry/tracing":"^0.18.3-alpha.7+897c35f4","@opentelemetry/resources":"^0.18.3-alpha.7+897c35f4","@opentelemetry/exporter-collector":"^0.18.3-alpha.7+897c35f4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cpx":"1.5.0","gts":"3.1.0","nyc":"15.1.0","mocha":"7.2.0","sinon":"9.2.4","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","ts-loader":"8.1.0","typescript":"4.2.3","@babel/core":"7.13.14","@types/node":"14.14.37","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@opentelemetry/api":"^1.0.0-rc.0","@opentelemetry/api-metrics":"^0.18.3-alpha.7+897c35f4"},"peerDependencies":{"@opentelemetry/api":"^1.0.0-rc.0"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.18.3-alpha.7_1617811974037_0.6082231586898161","host":"s3://npm-registry-packages"}},"0.18.3-alpha.9":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.18.3-alpha.9","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.18.3-alpha.9","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"391c4c062a0d1264847896409d11ec373de4647e","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.18.3-alpha.9.tgz","fileCount":35,"integrity":"sha512-l/nKjtCjJEqWvawNIdJzRXEP/KX6moeZqezcudkC3mKxG0o/BZM4LdGHEZ/NEOZWJUCFjHKb7Nt0OtdnIKbgww==","signatures":[{"sig":"MEQCIC95kOJUicumQQrAMbVLQz892uu+rRvHBFAAQLSw7IXCAiANlGCyMOQPvE4B1b/M8U48c7pmCWpUwoZq0p3VoxELRw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":105023,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgbwHGCRA9TVsSAnZWagAAuQkP/1wx5rMyEoU5WT1SKioO\nu7igglbc42/XDL0y7PS6ASsy3k/d4aR1KWk0z9CDyzZ9/LUWnEcqgItBQWTA\nCH/uEJ2cRBRuD5tq4UJrrhtpI3l7XZaxcEa5qZfCVRAeMre/Qd6GtKA0ETen\n2Na4G+Fg/KLFn2rUqDAYz9qWzUnX3kTIdNjDCWN3MmOm2hZbR4IDxKE/to0F\nLUVbTSOwm6/ICrx4NAFSOFMoLWgLbBh1RpKR9/pq73uN473xcSEdYbwfhx/3\nmkVlrGnjNDL3xnktooYniLwQJX1WRgatdDi4VGhFoaYaicLRoLaNzVBRgEqZ\nq7V05uQrTFmh4bxJlKTC7y0n7SeFnyvWNlJLD+tdoPfiIzVfaZD90DIwiooU\n2qWtk36v1iODmHvJ0kKdb/cy6Ntw+i7RJ59x+KmbNPiaQwkzdTzobgIz09hk\nXeaN0JWzmJ0rYtNuo7Dlt7d+QSSwwS55AviCgsXozK4g/DiBEYt6MfcO1aJl\nEeXUotFdf56Z0qxRkfvzHrn7c2i1nf5Kdab2Rr7R87AuOd5hX4p+f2X8uadb\no3K6qIbirn6o5L5mobJkYqQzB8CS2bnmDCx3ZNAUDbhPcR4wEuiqcNhefNA1\nJKVI6C5gBDKeLOdPuTh7/ylh8xiyhRSDdFK3wTHT6fSTzV4lEPf01ZPsmUXT\n7yN+\r\n=BoXh\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry Collector Exporter for node with grpc\n\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.16.0**.\n\n## Installation\n\n```bash\nnpm install --save @opentelemetry/exporter-collector-grpc\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-grpc');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  url: '<opentelemetry-collector-url>' // url is optional and can be omitted - default is localhost:4317\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-grpc');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  url: '<opentelemetry-collector-url>', // url is optional and can be omitted - default is localhost:4317\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-grpc');\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:4317\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## Metrics in Node - GRPC\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-grpc');\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 in [GitHub Discussions][discussions-url]\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\n[discussions-url]: https://github.com/open-telemetry/opentelemetry-js/discussions\n[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/main/LICENSE\n[license-image]: https://img.shields.io/badge/license-Apache_2.0-green.svg?style=flat\n[dependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc\n[devDependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/exporter-collector-grpc\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fexporter-collector-grpc.svg\n[opentelemetry-collector-url]: https://github.com/open-telemetry/opentelemetry-collector\n","engines":{"node":">=8.0.0"},"gitHead":"a4577767a07c794ea687759421693e75f2a84b27","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"npm run protos:copy && tsc -w","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","submodule":"git submodule sync --recursive && git submodule update --init --recursive","postcompile":"npm run submodule && npm run protos:copy","protos:copy":"cpx protos/opentelemetry/**/*.* build/protos/opentelemetry"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.16.0+x64 (linux)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.16.0","dependencies":{"grpc":"^1.24.2","@grpc/proto-loader":"^0.5.4","@opentelemetry/core":"^0.18.2","@opentelemetry/metrics":"^0.18.2","@opentelemetry/tracing":"^0.18.3-alpha.9+a4577767","@opentelemetry/resources":"^0.18.2","@opentelemetry/exporter-collector":"^0.18.3-alpha.9+a4577767"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cpx":"1.5.0","gts":"3.1.0","nyc":"15.1.0","mocha":"7.2.0","sinon":"9.2.4","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","ts-loader":"8.1.0","typescript":"4.2.3","@babel/core":"7.13.14","@types/node":"14.14.37","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@opentelemetry/api":"^1.0.0-rc.0","@opentelemetry/api-metrics":"^0.18.2"},"peerDependencies":{"@opentelemetry/api":"^1.0.0-rc.0"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.18.3-alpha.9_1617887686341_0.8089184561996818","host":"s3://npm-registry-packages"}},"0.18.3-alpha.10":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.18.3-alpha.10","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.18.3-alpha.10","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"f733ab18f82dda1a23ff7839fe004fc02c969d3c","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.18.3-alpha.10.tgz","fileCount":35,"integrity":"sha512-2wd/LxxZw6zGtJK880gDOdcVe+YRUFT98up5M3gpbrmvT2juga7JM3YT4jJ62xYt3nlviIga2h9gVaCZziiwng==","signatures":[{"sig":"MEUCID0Tzg1rdEC3qEi9I0vvaBQLtpcHz9P7qSg5CvbDVMboAiEA7nc7mH4hySy2iLghBHC2f/Yo+I2mryE+SvwDe4uCMxU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":105080,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgbxJ3CRA9TVsSAnZWagAAt5QP/2Wu6GpwBdAwk7+3oId1\novDSz9xONwi9fWgtD1fFebf2nQtkwCyK2h5R+jrrwooimvXCMFSxsExColOB\nFCZJ0kzBCn77ub0tN0QNn2HoYonUeOwauqnIWiWrwrBslLx8h1Jc5+RgApsp\nU7z9SbrBlYwLtbkPUVNmGmAo3lQn22uou+eiQU7H+6W37XFz8uBnARYAN0L0\nm7VQu6yiw5Cty/0fqRvooGndsMSUAFkRlJUg9UguWomqj3IKuIev2WoAnKZ+\nKLt5ke73w/Srlk68ehmg1cLCO+qr73z9COFz2BiH8lUaker7+poql/2nB7Kc\ndb8+gXiAQ+EBf31awAAtIMMelvRY+jakY02jZGhPOuxTwtWIX1VmJe+sA2HN\nwE51CGPpQevgUPG+4d/HeIJmZLSocCOIgiHLozBPkv8ZxMhBDSm6FryVQu4C\ndwsqWS0Qv6V7viYjpZ2c5lzYmHvVv6vmbwrQJ7yM9Z4Bd23HHzFDBSlE8Av8\nm6P7izdXi+8Lriv2VnpOkkZExieqpLwaN84lAphdx8bpdYsOiplaYra+8OXl\nlrgqhubHbMcAUl/YWW+hjdPtSnOXAKAmKKx/wTJuwJP7GKNZya/EbbALKxTY\nOXhG7WSBLswsFeBAPvkfwu+LPBPaIciyQwFOQRzbxXQsFavYTkiRe4BKKQoM\ntDV6\r\n=UUq/\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry Collector Exporter for node with grpc\n\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.16.0**.\n\n## Installation\n\n```bash\nnpm install --save @opentelemetry/exporter-collector-grpc\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-grpc');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  url: '<opentelemetry-collector-url>' // url is optional and can be omitted - default is localhost:4317\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-grpc');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  url: '<opentelemetry-collector-url>', // url is optional and can be omitted - default is localhost:4317\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-grpc');\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:4317\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## Metrics in Node - GRPC\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-grpc');\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 in [GitHub Discussions][discussions-url]\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\n[discussions-url]: https://github.com/open-telemetry/opentelemetry-js/discussions\n[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/main/LICENSE\n[license-image]: https://img.shields.io/badge/license-Apache_2.0-green.svg?style=flat\n[dependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc\n[devDependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/exporter-collector-grpc\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fexporter-collector-grpc.svg\n[opentelemetry-collector-url]: https://github.com/open-telemetry/opentelemetry-collector\n","engines":{"node":">=8.0.0"},"gitHead":"80ff5e2af390ed8bf97c4bfcd1221d2a855b50a1","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"npm run protos:copy && tsc -w","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","submodule":"git submodule sync --recursive && git submodule update --init --recursive","postcompile":"npm run submodule && npm run protos:copy","protos:copy":"cpx protos/opentelemetry/**/*.* build/protos/opentelemetry"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.16.0+x64 (linux)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.16.0","dependencies":{"grpc":"^1.24.2","@grpc/proto-loader":"^0.5.4","@opentelemetry/core":"^0.18.3-alpha.10+80ff5e2a","@opentelemetry/metrics":"^0.18.3-alpha.10+80ff5e2a","@opentelemetry/tracing":"^0.18.3-alpha.10+80ff5e2a","@opentelemetry/resources":"^0.18.3-alpha.10+80ff5e2a","@opentelemetry/exporter-collector":"^0.18.3-alpha.10+80ff5e2a"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cpx":"1.5.0","gts":"3.1.0","nyc":"15.1.0","mocha":"7.2.0","sinon":"9.2.4","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","ts-loader":"8.1.0","typescript":"4.2.3","@babel/core":"7.13.14","@types/node":"14.14.37","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@opentelemetry/api":"^1.0.0-rc.0","@opentelemetry/api-metrics":"^0.18.2"},"peerDependencies":{"@opentelemetry/api":"^1.0.0-rc.0"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.18.3-alpha.10_1617891959501_0.4498335889659255","host":"s3://npm-registry-packages"}},"0.18.3-alpha.11":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.18.3-alpha.11","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.18.3-alpha.11","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"fcac60a2b7572f26cffce921da8b6b28be1df6d7","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.18.3-alpha.11.tgz","fileCount":35,"integrity":"sha512-t7+HGDrAJUgrmN23cbDY+eRHK5dIvafi9xkKNiIRqozyCnvITubTvkiDB40VODFAvbQdQlATy9U+PoW5eJkhXw==","signatures":[{"sig":"MEUCIQC2PEUiJFqNz6JTH/db/8e8EF2OPOG9WmMaQSzMupK0ngIgLNKTUTKib6EmDrrECbo5+EiDlg639kw8m7B5w1EPIKY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":105080,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgb2X/CRA9TVsSAnZWagAAhY0QAKNJHt0Ve48KkeJs1yOz\nkjajeN4H4Lua80vE++zBszkjfl2h4deu+mnhIlll8nL86J3gXRxVPnv9CILi\nfE/le0Iml+e5Nz8RU8XptnP26YYO6/6R/Q9yzjjKsB9aFa9uBYMQ297SnP+M\nogjL+o3MDpzFsvm/RXmrKCIw4FBxi8+wOhVJl1J6aIQnbPLw5+x/zbC/PFzY\n8gWMq/Z44SkKwNCiBFU1SMbshK5E2te/QS7N5wth3hW4lII6rluFhLIkxdoN\nbS6UkRJBOS02TsJ18dVvSfvJwtDnFrQwf5wUNlztzEfUaOnS08N647rKWrtg\nswjDWn2+xLjLhMeWUCJKguV0HouIPVHgzd+/KioW6r7Hn2HqigpwtSv5rwPA\nl5b19IUjW2af5xnWlTXOtLG/PbXsiFUb7I/ee15R+YvT7LRb7UpL6dzViqIG\nYgTf/5qhdfTCWGHqtMCL0PMBfZOWf3V5S6Wup+wYnKB8LC6srRCbRsk/jfXQ\n29u8wz/9sPm65olYRTVY7c2gdMnJaIhU/uJRw57KQ8ymkU5PrRHkhednibc9\nEkd8FWaaCKVnfHODEX1bhbsbyH3pxPgFjDEAGInAdQlh3klXu4buP32usSU5\n7uutRdK8PZMuUiTmjGW3ydGP6gFgEtIx/Um73cEo36S3yynCH9h642OiyztI\nmYps\r\n=iJSq\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry Collector Exporter for node with grpc\n\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.16.0**.\n\n## Installation\n\n```bash\nnpm install --save @opentelemetry/exporter-collector-grpc\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-grpc');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  url: '<opentelemetry-collector-url>' // url is optional and can be omitted - default is localhost:4317\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-grpc');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  url: '<opentelemetry-collector-url>', // url is optional and can be omitted - default is localhost:4317\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-grpc');\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:4317\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## Metrics in Node - GRPC\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-grpc');\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 in [GitHub Discussions][discussions-url]\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\n[discussions-url]: https://github.com/open-telemetry/opentelemetry-js/discussions\n[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/main/LICENSE\n[license-image]: https://img.shields.io/badge/license-Apache_2.0-green.svg?style=flat\n[dependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc\n[devDependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/exporter-collector-grpc\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fexporter-collector-grpc.svg\n[opentelemetry-collector-url]: https://github.com/open-telemetry/opentelemetry-collector\n","engines":{"node":">=8.0.0"},"gitHead":"64c8ef57a9fe3b8468f2388ff78687b927ef8965","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"npm run protos:copy && tsc -w","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","submodule":"git submodule sync --recursive && git submodule update --init --recursive","postcompile":"npm run submodule && npm run protos:copy","protos:copy":"cpx protos/opentelemetry/**/*.* build/protos/opentelemetry"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.16.0+x64 (linux)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.16.0","dependencies":{"grpc":"^1.24.2","@grpc/proto-loader":"^0.5.4","@opentelemetry/core":"^0.18.3-alpha.11+64c8ef57","@opentelemetry/metrics":"^0.18.3-alpha.11+64c8ef57","@opentelemetry/tracing":"^0.18.3-alpha.11+64c8ef57","@opentelemetry/resources":"^0.18.3-alpha.11+64c8ef57","@opentelemetry/exporter-collector":"^0.18.3-alpha.11+64c8ef57"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cpx":"1.5.0","gts":"3.1.0","nyc":"15.1.0","mocha":"7.2.0","sinon":"9.2.4","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","ts-loader":"8.1.0","typescript":"4.2.3","@babel/core":"7.13.14","@types/node":"14.14.37","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@opentelemetry/api":"^1.0.0-rc.0","@opentelemetry/api-metrics":"^0.18.2"},"peerDependencies":{"@opentelemetry/api":"^1.0.0-rc.0"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.18.3-alpha.11_1617913342789_0.3866785543692719","host":"s3://npm-registry-packages"}},"0.18.3-alpha.14":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.18.3-alpha.14","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.18.3-alpha.14","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"8eff58e2bece5dea769c397ce9d90e76215a72f4","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.18.3-alpha.14.tgz","fileCount":35,"integrity":"sha512-HcxXo3LWntffL/bps8MGg5Lhgf8WTzKNHa7J8rFF+zhKpCoZ7cYuvSWaGKaovl46qY9imjQQ4pA1YB+otlS1VQ==","signatures":[{"sig":"MEYCIQC40w2OXhHisrogZDt4rD9PPYM2krIjrN3X03NA7S+G8wIhALvrlIX8WmYkfS/xSulJP0ficVaOgLSv8FgqfWydr4/C","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":105080,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgcBpVCRA9TVsSAnZWagAAGzoQAIYIcr2cNt3Ip/2g8xzT\nO4h4gk7UVU0q50D2NcQzMIEzzr5gtoHevXRsCmp8jO4a5Z3d6S0PHQCYmw68\n9jDJoCRcDlNxaoBFqTSbj4mgz/kU7g1EDosGcaVM/jd0VUukiDuHfPlxw+gi\nX1vZqcrma1Lw9oPBkd20nWefhT7HtLGsjzpASppMnBFZNZJAzCXF5mR2ROO4\neAMVoO81g6m6GuVQ3kJ48WzV8DGk6cpr5gtBLHLJXBq/s+qf28zpLv7CU9PA\nw0WhhzZFacSS2t9vhS3vU1yPp1MUQwUHt1MeFNtGVN7/xN53Ifv0fAf51YUN\n3JNN63Oh76ifH1tfa0RBv45x7gFdeqzgoFldPMC39oMDT0He/kxKjQgVA2HI\nDK+gtDMd8nbYWJrH2iSmKSUqNmnDRQZ8j9HIWTFjRhgwKC5WYrHJpBXvmU41\nR8whHoK2oRLk/G9mKjVOTAE/ex/tOktJrLQ4LsSTgPTN37a0YfPJx0uX5OsO\nOuBMI3yF2imgevnHjWTGiEHvpa5RQFfxsW0NnGok7FIyQCLWULRjnoYPR/Hc\n/++Kt43jR57iQ87Zy3IKmj3ori+yEwBr1vNlwu+FTPms26GnlUwkdOc4nVeX\nVZsCI6xGUe8n4Zk/6v3zTtqe3dIccDhYU16dUDNkM5bHmdZucnLNRIujr6CI\n8Az6\r\n=f8CA\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry Collector Exporter for node with grpc\n\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.16.0**.\n\n## Installation\n\n```bash\nnpm install --save @opentelemetry/exporter-collector-grpc\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-grpc');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  url: '<opentelemetry-collector-url>' // url is optional and can be omitted - default is localhost:4317\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-grpc');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  url: '<opentelemetry-collector-url>', // url is optional and can be omitted - default is localhost:4317\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-grpc');\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:4317\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## Metrics in Node - GRPC\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-grpc');\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 in [GitHub Discussions][discussions-url]\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\n[discussions-url]: https://github.com/open-telemetry/opentelemetry-js/discussions\n[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/main/LICENSE\n[license-image]: https://img.shields.io/badge/license-Apache_2.0-green.svg?style=flat\n[dependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc\n[devDependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/exporter-collector-grpc\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fexporter-collector-grpc.svg\n[opentelemetry-collector-url]: https://github.com/open-telemetry/opentelemetry-collector\n","engines":{"node":">=8.0.0"},"gitHead":"4a3fd1f4d86499e4485c1f1af0f5589de993b0dd","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"npm run protos:copy && tsc -w","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","submodule":"git submodule sync --recursive && git submodule update --init --recursive","postcompile":"npm run submodule && npm run protos:copy","protos:copy":"cpx protos/opentelemetry/**/*.* build/protos/opentelemetry"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.16.0+x64 (linux)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.16.0","dependencies":{"grpc":"^1.24.2","@grpc/proto-loader":"^0.5.4","@opentelemetry/core":"^0.18.3-alpha.14+4a3fd1f4","@opentelemetry/metrics":"^0.18.3-alpha.14+4a3fd1f4","@opentelemetry/tracing":"^0.18.3-alpha.14+4a3fd1f4","@opentelemetry/resources":"^0.18.3-alpha.14+4a3fd1f4","@opentelemetry/exporter-collector":"^0.18.3-alpha.14+4a3fd1f4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cpx":"1.5.0","gts":"3.1.0","nyc":"15.1.0","mocha":"7.2.0","sinon":"9.2.4","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","ts-loader":"8.1.0","typescript":"4.2.3","@babel/core":"7.13.14","@types/node":"14.14.37","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@opentelemetry/api":"^1.0.0-rc.0","@opentelemetry/api-metrics":"^0.18.2"},"peerDependencies":{"@opentelemetry/api":"^1.0.0-rc.0"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.18.3-alpha.14_1617959509297_0.3840704715368919","host":"s3://npm-registry-packages"}},"0.18.3-alpha.16":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.18.3-alpha.16","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.18.3-alpha.16","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"acf989e03138b067693e318f7f3d47adfba4271b","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.18.3-alpha.16.tgz","fileCount":35,"integrity":"sha512-u4zLn51TbFiZTH8zXPMt1QN5Kr6IHhz45k2djmetkUXejfi//b/a65WlTDFHzII9yzmss2RgMYh+jrpUn21+BA==","signatures":[{"sig":"MEUCIDSvcuAucfVIwTLMXrBAOkDCNUsrclz2u4lifheDb05/AiEAkbRlBQaD7E7cbI/KRluPN3XSKxM/+0v++EFbVJbd/9I=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":105081,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgcLQ2CRA9TVsSAnZWagAAxZEP/1D7eFq74tuEvCy7j7Om\n4lrp5JltEb9lRp8XPBCCXgkpi8fITLKyzZnBSA3jGQzSpDRZZOmvKhHOO4S4\nHKXDkU8BJKM8xOB/e+NuVRH6Rh7scBDFxQ6GtXYRO48SKYrpS2JcWef9tMQi\nSa6meLHCSu2YRJJpQ1qWyk2uyAwoVBzyUdErqdhKMQWo3rasw0FIvvLEdoRj\nlgg8oR/Rx8Ev2d1SDQFilnbgJVq59UflR98PxLKuY3WmLoLQHEpw11O1O8GY\nF38VA+mpH34mG1r9SSI35y8bznIZ5YTsBmcvV0daBqaJdQ/3KGPINAynXtsO\nQRzjpmuxMIq1K94GDWbdQw3CL3X7TjJ0IUjLYa4AMAuIkn+u6uU8JVEyrlcb\nYdthw/KR3iz1l+cg/xZUfQ1znfm8qsQDqBd5hnZnCWM4mX0BvVJKAIEiAfYj\nq11EIuI0jy7rFNZW5cDumI7a27UzwEm2TVdhWohoLZC/3RKrJaVAyzLfFzl/\nboPYt+DkK/59mB+Q/0yHewFUWME7FIpBWOAMMTm2mKHSuuGEbjhmgZ2ifF8l\neGTWOloucCjev0aQPZyYMbNYQL6d5unLkX2YUQhd79x9uSLkRjzmvN/5fOmH\nE31+AZJflQnUenikKyaRWCrMZZEbBQ54/69E6cEi66QH1dJ2gJkyAFLoRFYY\nYGgX\r\n=m0/q\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry Collector Exporter for node with grpc\n\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.16.0**.\n\n## Installation\n\n```bash\nnpm install --save @opentelemetry/exporter-collector-grpc\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-grpc');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  url: '<opentelemetry-collector-url>' // url is optional and can be omitted - default is localhost:4317\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-grpc');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  url: '<opentelemetry-collector-url>', // url is optional and can be omitted - default is localhost:4317\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-grpc');\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:4317\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## Metrics in Node - GRPC\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-grpc');\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 in [GitHub Discussions][discussions-url]\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\n[discussions-url]: https://github.com/open-telemetry/opentelemetry-js/discussions\n[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/main/LICENSE\n[license-image]: https://img.shields.io/badge/license-Apache_2.0-green.svg?style=flat\n[dependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc\n[devDependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/exporter-collector-grpc\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fexporter-collector-grpc.svg\n[opentelemetry-collector-url]: https://github.com/open-telemetry/opentelemetry-collector\n","engines":{"node":">=8.0.0"},"gitHead":"7f7afa7bb88edf4a4d46da8b252116d92b578b79","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"npm run protos:copy && tsc -w","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","submodule":"git submodule sync --recursive && git submodule update --init --recursive","postcompile":"npm run submodule && npm run protos:copy","protos:copy":"cpx protos/opentelemetry/**/*.* build/protos/opentelemetry"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.16.0+x64 (linux)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.16.0","dependencies":{"grpc":"^1.24.2","@grpc/proto-loader":"^0.5.4","@opentelemetry/core":"^0.18.3-alpha.16+7f7afa7b","@opentelemetry/metrics":"^0.18.3-alpha.16+7f7afa7b","@opentelemetry/tracing":"^0.18.3-alpha.16+7f7afa7b","@opentelemetry/resources":"^0.18.3-alpha.16+7f7afa7b","@opentelemetry/exporter-collector":"^0.18.3-alpha.16+7f7afa7b"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cpx":"1.5.0","gts":"3.1.0","nyc":"15.1.0","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","ts-loader":"8.1.0","typescript":"4.2.3","@babel/core":"7.13.14","@types/node":"14.14.37","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@opentelemetry/api":"^1.0.0-rc.0","@opentelemetry/api-metrics":"^0.18.2"},"peerDependencies":{"@opentelemetry/api":"^1.0.0-rc.0"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.18.3-alpha.16_1617998898998_0.056547470357607876","host":"s3://npm-registry-packages"}},"0.18.3-alpha.17":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.18.3-alpha.17","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.18.3-alpha.17","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"7e78ceb7db4a7f41dda40efb62003f8099214702","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.18.3-alpha.17.tgz","fileCount":35,"integrity":"sha512-sgqssQr8YNI7PS4YhMsCMdN0mRfVXmLg9xrhrhcHZzIbSiljtDnQUQfTQEPg9dR5zSPT1+z1cnQeQPx0dlayyg==","signatures":[{"sig":"MEUCIAR5V7/Vmwbn8xx96eybKI/4QbOVcAnqCwC33O5Aa1kRAiEA8d2WH7HaDzCaFHr3HtRNhpYYmTR5URUZa/gspSL3SdI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":105027,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgcXEBCRA9TVsSAnZWagAAaGsP/3fsoiPWFDzgbICJpULb\nsopGrL/IphzK2sqv/R6r3j5jGDuJjpsnNUVj8eccVVXeIx89tO7MAu4u3vyP\niYjg2OchUoLzB2Qdok830rRG7SVLDIgvH9A0HxqvN8nXuE1f+iyzxES1KO6K\nxKgSwIIynU69M5Dkb5kWIU/y8KlECGPhneUpZJ35Dt878IkCnQSzBNC2mJ3d\n4q/+NAxFnyDtZlpU/hiXcuo6efdv3omI0dNbmHpe7QRK9AQp0f2hFvfYz8Xf\nj5CnMa4lnajktyEv1s9ap5YxpxzJBUAAMOHKhfYdTTXP/dNQ3DNUFqJS9usk\nNlLIyFe8AruLRut7HVce5qEaHipouCizjYVxuDgto3tb1Mfkr6e8495yZvV8\nMdlhHlJAC0A0bXdBsKSjcw7QrLrarlKe8nGVmhKwV3gxw8u4FoAlk884uCz7\nZc54mkOJ5HbxRK4C51ZxVNgnOGbQh9q2XlMvGPj9wE3aA1SEJ/+vhX2Rbrtz\n+8zogQU2NAz60odeXERfYl3hVttPfZdNH0tQlMaP0VffC2zjqtL2LftxnNbs\na3RFUx9+NsWtlKurd0FCYOUdVi62J0/pC6wNHGhzINizZ7kc4zf5xUakYoux\nxIr3XuBMPeLARSOylixuyWQqVAA0Bz6SVFMulDOocNqn8iofqEBUuvhdJLBl\nSOZZ\r\n=hEcO\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry Collector Exporter for node with grpc\n\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.16.0**.\n\n## Installation\n\n```bash\nnpm install --save @opentelemetry/exporter-collector-grpc\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-grpc');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  url: '<opentelemetry-collector-url>' // url is optional and can be omitted - default is localhost:4317\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-grpc');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  url: '<opentelemetry-collector-url>', // url is optional and can be omitted - default is localhost:4317\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-grpc');\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:4317\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## Metrics in Node - GRPC\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-grpc');\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 in [GitHub Discussions][discussions-url]\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\n[discussions-url]: https://github.com/open-telemetry/opentelemetry-js/discussions\n[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/main/LICENSE\n[license-image]: https://img.shields.io/badge/license-Apache_2.0-green.svg?style=flat\n[dependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc\n[devDependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/exporter-collector-grpc\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fexporter-collector-grpc.svg\n[opentelemetry-collector-url]: https://github.com/open-telemetry/opentelemetry-collector\n","engines":{"node":">=8.0.0"},"gitHead":"031b0f4286f18a1d08523c87e419803fd1b0c9c2","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"npm run protos:copy && tsc -w","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","submodule":"git submodule sync --recursive && git submodule update --init --recursive","postcompile":"npm run submodule && npm run protos:copy","protos:copy":"cpx protos/opentelemetry/**/*.* build/protos/opentelemetry"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.16.0+x64 (linux)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.16.0","dependencies":{"grpc":"^1.24.2","@grpc/proto-loader":"^0.5.4","@opentelemetry/core":"^0.18.2","@opentelemetry/metrics":"^0.18.2","@opentelemetry/tracing":"^0.18.3-alpha.17+031b0f42","@opentelemetry/resources":"^0.18.2","@opentelemetry/exporter-collector":"^0.18.3-alpha.17+031b0f42"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cpx":"1.5.0","gts":"3.1.0","nyc":"15.1.0","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","ts-loader":"8.1.0","typescript":"4.2.3","@babel/core":"7.13.14","@types/node":"14.14.37","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@opentelemetry/api":"^1.0.0-rc.0","@opentelemetry/api-metrics":"^0.18.2"},"peerDependencies":{"@opentelemetry/api":"^1.0.0-rc.0"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.18.3-alpha.17_1618047233494_0.06650633048175725","host":"s3://npm-registry-packages"}},"0.18.3-alpha.18":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.18.3-alpha.18","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.18.3-alpha.18","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"d66c8cd9e0f148f0b3e67c7e5b2d2ce5ac4374ea","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.18.3-alpha.18.tgz","fileCount":35,"integrity":"sha512-2pcKQ6P7OpA0VHkdFCiQvScqGt4YxCGbCwsmekXJNwyWNJXYHbAFJJwhAhdaYWNErPLzwFGjq1JXGmeimxjt6g==","signatures":[{"sig":"MEQCIEGQ2uS5nHqS2rCn0GwhjMggdGFybQMlZwuYxsIowk9MAiAu4im7bnTikGwd+SvZO4e5bQRPnJDaT4fX3AsNxHPfpQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":105081,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgcfX5CRA9TVsSAnZWagAAKS4QAJwRKAI0CDnghp8O4+jB\nW6fTypqxJqAzd/Nad66s3N7Tz9lb+4OuagdQjJUvmwNQznHwoLszgAe8MDOG\nJCYbVC7iBlrsN/HF83CFE9x1OlLN5P4pKMTzgXf2pA95+aw84/lLnMIlYKYZ\nQa1ONQ9Anp28U1bIMq/nuK+k153JpUODRowGjXYWmvsNMfLRdOP9C04iZHgF\nH8KTl1usC1nDYSeC/mHwDQJeEGc2X0UT4kN3C4rFbREDnbz45Ux5QIfDMExf\nY649PahvkGG08/tsu7WXVmn7/xwUvmN2DVqEw3IaZWFP6bEJ9YLBCY64KBMT\no2ttWqq/9rViL5jV2dhFoxwsfU3xKEmwucS9crwGUrGr20iT+qPqpBwpEaj0\nxGPZdTYDfgB0Of3wlQ78MTu5s1Ba9YOkB8DKZXBAo9c0V7UyHpHqQCRJx/jj\nul/qcNS5RDQTaURjf6FfWPIqbtVyiZY6v1hnREKy3BO/uYpveCF/Ydy8yzRc\niBJaduHk16izELh7m55gl4mDzo5VkyPhVTniI1h2IYTJ5nGllsTtVG3khJQP\nzo0CZdMQzKNDaXT44V3lpB9j+5pJ9Zyh4WRVmxrM/8BWCInvwsv5BhSI+Zx5\ncSPegy7vibfYbvnvygNHiWbDQ942KIqFHi6N4lk6RDxjpHCWSXY4FeP6jfKM\nvtGy\r\n=gJRG\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry Collector Exporter for node with grpc\n\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.16.0**.\n\n## Installation\n\n```bash\nnpm install --save @opentelemetry/exporter-collector-grpc\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-grpc');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  url: '<opentelemetry-collector-url>' // url is optional and can be omitted - default is localhost:4317\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-grpc');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  url: '<opentelemetry-collector-url>', // url is optional and can be omitted - default is localhost:4317\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-grpc');\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:4317\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## Metrics in Node - GRPC\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-grpc');\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 in [GitHub Discussions][discussions-url]\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\n[discussions-url]: https://github.com/open-telemetry/opentelemetry-js/discussions\n[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/main/LICENSE\n[license-image]: https://img.shields.io/badge/license-Apache_2.0-green.svg?style=flat\n[dependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc\n[devDependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/exporter-collector-grpc\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fexporter-collector-grpc.svg\n[opentelemetry-collector-url]: https://github.com/open-telemetry/opentelemetry-collector\n","engines":{"node":">=8.0.0"},"gitHead":"9fc1b109e7997b054c7182cc6db4d71d7ce9e5af","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"npm run protos:copy && tsc -w","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","submodule":"git submodule sync --recursive && git submodule update --init --recursive","postcompile":"npm run submodule && npm run protos:copy","protos:copy":"cpx protos/opentelemetry/**/*.* build/protos/opentelemetry"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.16.0+x64 (linux)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.16.0","dependencies":{"grpc":"^1.24.2","@grpc/proto-loader":"^0.5.4","@opentelemetry/core":"^0.18.3-alpha.18+9fc1b109","@opentelemetry/metrics":"^0.18.3-alpha.18+9fc1b109","@opentelemetry/tracing":"^0.18.3-alpha.18+9fc1b109","@opentelemetry/resources":"^0.18.3-alpha.18+9fc1b109","@opentelemetry/exporter-collector":"^0.18.3-alpha.18+9fc1b109"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cpx":"1.5.0","gts":"3.1.0","nyc":"15.1.0","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","ts-loader":"8.1.0","typescript":"4.2.3","@babel/core":"7.13.14","@types/node":"14.14.37","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@opentelemetry/api":"^1.0.0-rc.0","@opentelemetry/api-metrics":"^0.18.2"},"peerDependencies":{"@opentelemetry/api":"^1.0.0-rc.0"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.18.3-alpha.18_1618081272664_0.1389201278911305","host":"s3://npm-registry-packages"}},"0.18.3-alpha.20":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.18.3-alpha.20","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.18.3-alpha.20","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"b515afb09e302a1d587a57857517572b6c06c19a","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.18.3-alpha.20.tgz","fileCount":35,"integrity":"sha512-nJPtbRKCfjdE9vYtzOWICNMka1Xz4rDjpGYNTltCv8dcI8LKrMLKLBN3dEgYcgBghbxRz6Wc0V+ZE1euySDDJA==","signatures":[{"sig":"MEUCIQDksrB18XTu239j4MMVWMYXSwIUtXhuSDcIJ/wX3AfvlgIgeS1+RrOv7LhFH5P5JeJYJNbxnVut0A2k/BQtE+rVIQ0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":105081,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgdGKYCRA9TVsSAnZWagAAcvoP/A7GTpG621uHATD5rPfT\nLI435gf9ygnBDJSXkLDxwQJahkeAztveONCnIbtfDcMSbaf1CFnWOTcJJPB5\nN+4Gc+Nh5Fw1JZMzyIK9bBQVsCCb2x9+QJPktwJOe/+Pf9Ym0/u4j9gZu1iC\nDtMnhJTyYQh1zS/46x4Z8i+2gU+2Gegik5+S8pmJrOzpFuEybINkutvGUyvp\nmb6cOxytJ31jK0zz08nMfPG3W7UAK0ItfKPnBfMZe+josCgjQNx/WFZ+7iAt\nmevy01JAIxE4TH1JP6g38qz2P8wkiljFKi30bNakCPHeMy0onfevnSlEQ/7/\nn/iA5RY0apF61xsMygYTvRuwaK40CVp6H+YAEmOtxEKCsSRVqDOEwsxl9hV0\nB+tEVEEQ3X1f4H91bztopZLq1QguC9WbbIky8CaPM13j3pwBUKnJf1S/fFSC\nuGTxbreHcSW7+aL6e0Z/sfh2rWtSdlTDNrmdp9eAXGqFYHVuWaV5twg2L5i4\nv481+FOV327Ng0nyyIP0TinnPXi829hDwYb5QFMwsp1blsVg5Pm2WXPmTbqp\nEisKws4xukpPzdMN/havFXzSx5nK8A0bnCHBLEhxuKUkISD1ixu0m1hvWHcK\njajJqA0pBK+1LhtWM3YkeNnk0WauzzJ3buATwf+wiw1DaAcig11X/z37GSG3\nw+nj\r\n=pO2H\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry Collector Exporter for node with grpc\n\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.16.0**.\n\n## Installation\n\n```bash\nnpm install --save @opentelemetry/exporter-collector-grpc\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-grpc');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  url: '<opentelemetry-collector-url>' // url is optional and can be omitted - default is localhost:4317\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-grpc');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  url: '<opentelemetry-collector-url>', // url is optional and can be omitted - default is localhost:4317\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-grpc');\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:4317\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## Metrics in Node - GRPC\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-grpc');\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 in [GitHub Discussions][discussions-url]\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\n[discussions-url]: https://github.com/open-telemetry/opentelemetry-js/discussions\n[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/main/LICENSE\n[license-image]: https://img.shields.io/badge/license-Apache_2.0-green.svg?style=flat\n[dependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc\n[devDependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/exporter-collector-grpc\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fexporter-collector-grpc.svg\n[opentelemetry-collector-url]: https://github.com/open-telemetry/opentelemetry-collector\n","engines":{"node":">=8.0.0"},"gitHead":"b6dfd978513eb400a706928e604b625961ea7062","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"npm run protos:copy && tsc -w","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","submodule":"git submodule sync --recursive && git submodule update --init --recursive","postcompile":"npm run submodule && npm run protos:copy","protos:copy":"cpx protos/opentelemetry/**/*.* build/protos/opentelemetry"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.16.0+x64 (linux)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.16.0","dependencies":{"grpc":"^1.24.2","@grpc/proto-loader":"^0.5.4","@opentelemetry/core":"^0.18.3-alpha.20+b6dfd978","@opentelemetry/metrics":"^0.18.3-alpha.20+b6dfd978","@opentelemetry/tracing":"^0.18.3-alpha.20+b6dfd978","@opentelemetry/resources":"^0.18.3-alpha.20+b6dfd978","@opentelemetry/exporter-collector":"^0.18.3-alpha.20+b6dfd978"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cpx":"1.5.0","gts":"3.1.0","nyc":"15.1.0","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","ts-loader":"8.1.0","typescript":"4.2.3","@babel/core":"7.13.14","@types/node":"14.14.37","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@opentelemetry/api":"^1.0.0-rc.0","@opentelemetry/api-metrics":"^0.18.2"},"peerDependencies":{"@opentelemetry/api":"^1.0.0-rc.0"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.18.3-alpha.20_1618240152185_0.5792900901981719","host":"s3://npm-registry-packages"}},"0.18.3-alpha.23":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.18.3-alpha.23","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.18.3-alpha.23","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"9e810934aa51e358e959827c406f89595357a5e3","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.18.3-alpha.23.tgz","fileCount":35,"integrity":"sha512-WkzvY9FZRC6T9zXmjWgUtx/8fgxjFsnRYb5j7rITIZI27qgNfNVyjaWrKoL/KmO2Ug/Nop5JVTveeD70mkVCYw==","signatures":[{"sig":"MEUCIHp/NxgXirKu8EJNsl80ZWWN0SYuVQUYibl9eIrIO8u0AiEA+ufYd/DtCRBLSySlEpDAm2QPqnq9avFVC0qS7AQySwM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":105081,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgdI23CRA9TVsSAnZWagAAmt0P/RLpAJZTjSuFSNspX+Nw\nbLQO8VBXGtIElrAKoveIpZJ36C0KBjq5rCrTo+FpYiMBFfKnQJEPj82OMctg\nrV+otfRCw446lXLZZuauffoAeS73ISer8kllxqnd6s/pGToJNyy4xE/xS8TN\naMxopuMkcER8RjWnAedasT53Tv4tnPiI0sIlRfrDii7EhBtLKAe+6q1+qert\niFBDVLRyz7/w34WpG8nBysqDBpWo9IpZYeXtXS+kLFOSsMghq4k5voYoDrVn\nM86Sn4OaCUzKM21JPsvprH1AV648oLJPHxBrRAMEoguZqdvlj9lIWBlIVxkO\naUK2fQ4pRBT3Xfy0t/l30wWl5gepkA8MsfxM4I4EZ1eO+kfb9Jo6Sm6n3Bit\njXR/V/FyEGoB+aQe/d1N+YSUt1C2H8CBc+uRQgVsG7QZ7hzqZeJon4B6ZEQs\nIgKrOlp6qt9xyXmUp/D+peHN4OnpxemGeyF7dacNBRMS38i5o0bHR9UYpB4k\nspix/YJXkQjnTKMLTjeN4iVGxyrJQ/OXSfajTnCVL9hNEThfYV5hslAuWh70\nFxbQkZ5hfdE97wu5QVkoPSHtiLuIXQHyKIiFO7njy1elW7fobVBuCbUKhgoz\nqPshDCqLOl/rYNwwiO53oxpe5vBM7CegSKfteIW5aGnUOQZc4G9ALoP7kmW/\nMDyE\r\n=k8Ty\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry Collector Exporter for node with grpc\n\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.16.0**.\n\n## Installation\n\n```bash\nnpm install --save @opentelemetry/exporter-collector-grpc\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-grpc');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  url: '<opentelemetry-collector-url>' // url is optional and can be omitted - default is localhost:4317\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-grpc');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  url: '<opentelemetry-collector-url>', // url is optional and can be omitted - default is localhost:4317\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-grpc');\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:4317\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## Metrics in Node - GRPC\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-grpc');\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 in [GitHub Discussions][discussions-url]\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\n[discussions-url]: https://github.com/open-telemetry/opentelemetry-js/discussions\n[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/main/LICENSE\n[license-image]: https://img.shields.io/badge/license-Apache_2.0-green.svg?style=flat\n[dependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc\n[devDependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/exporter-collector-grpc\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fexporter-collector-grpc.svg\n[opentelemetry-collector-url]: https://github.com/open-telemetry/opentelemetry-collector\n","engines":{"node":">=8.0.0"},"gitHead":"2260dd6594bd007f886e7985bbedba1d655a6d3f","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"npm run protos:copy && tsc -w","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","submodule":"git submodule sync --recursive && git submodule update --init --recursive","postcompile":"npm run submodule && npm run protos:copy","protos:copy":"cpx protos/opentelemetry/**/*.* build/protos/opentelemetry"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.16.0+x64 (linux)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.16.0","dependencies":{"grpc":"^1.24.2","@grpc/proto-loader":"^0.5.4","@opentelemetry/core":"^0.18.3-alpha.23+2260dd65","@opentelemetry/metrics":"^0.18.3-alpha.23+2260dd65","@opentelemetry/tracing":"^0.18.3-alpha.23+2260dd65","@opentelemetry/resources":"^0.18.3-alpha.23+2260dd65","@opentelemetry/exporter-collector":"^0.18.3-alpha.23+2260dd65"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cpx":"1.5.0","gts":"3.1.0","nyc":"15.1.0","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","ts-loader":"8.1.0","typescript":"4.2.3","@babel/core":"7.13.14","@types/node":"14.14.37","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@opentelemetry/api":"^1.0.0-rc.0","@opentelemetry/api-metrics":"^0.18.2"},"peerDependencies":{"@opentelemetry/api":"^1.0.0-rc.0"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.18.3-alpha.23_1618251191211_0.5767761543450458","host":"s3://npm-registry-packages"}},"0.18.3-alpha.24":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.18.3-alpha.24","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.18.3-alpha.24","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"dd7f9b735efac14ad2249242364e7c4c97f8e818","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.18.3-alpha.24.tgz","fileCount":35,"integrity":"sha512-ZY1KItnraoQGhaOYe8sFcECADNEyJAeLIA+76vHUJDr0ZVFEwGXLDerm4wmGqqcWYpmwLK6KBM4J8EsD0awOTA==","signatures":[{"sig":"MEYCIQCywRpn+4OZNJLfK9BDmO6FJ3OPfhdlJplOVEI3wh856gIhAO9pBd0u+rJflVouechyHg8fgUOPqo4cRkM81vOqHx4Y","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":105080,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgdJoJCRA9TVsSAnZWagAASQkP+wc0JWMzHeDvZXOUVnrU\nis0Z9P+CRb7LiJ1opecGqlzwyWOw9qqOEIf2tVnRp38J8RqxLF0T8irxL5wA\nDY4NT3p0rMGXYRybc85zcB6Qy4SFo1jerVJhvmX9uNY3UuDDZPeKhq8Wq12u\nclpa/ttcQn0i77wRPY4f4VaQWSM5EnQgHYB2zxxSdPGPlx0vxn2JbuSKkKhQ\nePRdqItHnCANbtf4uiUh8YvG31Fv/DGHjaLuSFXfXVSyBeoHumXDq4zkiALm\n1Weevt4hdHTjTajMuT8FAcCQq9dD7kFiQBIzMXbcXAu/uwcAoQN5t8j54+pC\nUooe3EP4GtkQ4EgqoivHiAIhG4PDY/xl53iT34KQV7rBNpKD8OaaPy4kkhXV\nYnIx/19QD5CHf/wsxesSo/PT8BWEFeg8GwV3BDGPnc+jce5p38/vxPB3tNDz\nmUdOeTkRiW11eI14YTljRMml2jrQ0Z+LzzLRr0MpIvF2WQ9PKuGqfTqar208\n1AVWgmxd/gLUf7lFY1F5YZtcGT3Hw0113mcJm2B5hKPYnk3zzxOTqYhuNyYp\nKEAev6EkRO4de/AQrDYhmzb9yHhSMCRYH9pHeqoV4ycLxNA48FyhU9Cg7cb1\nQkv+XO4l6lKA2tOP83aBfYof1lh9pfwzP+5Dkt1TRKQtkr8tbKWBERjSn/1v\nDeVr\r\n=zw7h\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry Collector Exporter for node with grpc\n\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.16.0**.\n\n## Installation\n\n```bash\nnpm install --save @opentelemetry/exporter-collector-grpc\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-grpc');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  url: '<opentelemetry-collector-url>' // url is optional and can be omitted - default is localhost:4317\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-grpc');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  url: '<opentelemetry-collector-url>', // url is optional and can be omitted - default is localhost:4317\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-grpc');\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:4317\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## Metrics in Node - GRPC\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-grpc');\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 in [GitHub Discussions][discussions-url]\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\n[discussions-url]: https://github.com/open-telemetry/opentelemetry-js/discussions\n[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/main/LICENSE\n[license-image]: https://img.shields.io/badge/license-Apache_2.0-green.svg?style=flat\n[dependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc\n[devDependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/exporter-collector-grpc\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fexporter-collector-grpc.svg\n[opentelemetry-collector-url]: https://github.com/open-telemetry/opentelemetry-collector\n","engines":{"node":">=8.0.0"},"gitHead":"d4e0fe2468d0ac76a32f17ac15341fe046d47855","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"npm run protos:copy && tsc -w","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","submodule":"git submodule sync --recursive && git submodule update --init --recursive","postcompile":"npm run submodule && npm run protos:copy","protos:copy":"cpx protos/opentelemetry/**/*.* build/protos/opentelemetry"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.16.0+x64 (linux)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.16.0","dependencies":{"@grpc/grpc-js":"^1.2.12","@grpc/proto-loader":"^0.5.4","@opentelemetry/core":"^0.18.2","@opentelemetry/metrics":"^0.18.2","@opentelemetry/tracing":"^0.18.2","@opentelemetry/resources":"^0.18.2","@opentelemetry/exporter-collector":"^0.18.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cpx":"1.5.0","gts":"3.1.0","nyc":"15.1.0","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","ts-loader":"8.1.0","typescript":"4.2.3","@babel/core":"7.13.14","@types/node":"14.14.37","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@opentelemetry/api":"^1.0.0-rc.0","@opentelemetry/api-metrics":"^0.18.2"},"peerDependencies":{"@opentelemetry/api":"^1.0.0-rc.0"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.18.3-alpha.24_1618254344853_0.35779168756522406","host":"s3://npm-registry-packages"}},"0.18.3-alpha.25":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.18.3-alpha.25","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.18.3-alpha.25","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"21522bf6c2b6e1198e5490a14d6f1bd4c873fbdd","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.18.3-alpha.25.tgz","fileCount":35,"integrity":"sha512-KDz/TekJUwU5IVMRMPl0StTs1GkO6YMqnpzuoKxBh4o+V3oP66eaYXyx0Li8MBKy4f4x4aLGy93dDW1U2SXGrQ==","signatures":[{"sig":"MEUCIFed3FF6hQHawu1zV2IMILtAPd8bMXREhxghRNrF5n4QAiEAjpkg54mDn00aIjf80wmLZATkNcGyoiecR6TrrwtSoDc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":105188,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgdKLACRA9TVsSAnZWagAAjdEP/2kojQWNZiu6pf214Swe\nUkN3swy4+T5Onqw2cTke4RVPkMYRrAL3Gf0ZD5bUtKRqQfcCB6PHWoYxyY3t\noWj3M93tSbSBYFwqHkmBJauGVgW88g+/B5JUEDZx9lzfnoGOtX3loUAawldb\nQLTUFN4gKbtlnfsvMPS02idc8sImJ5WKrcdKJ+TozGu1cHKqNhOjohiuBf+k\naPm0gV1ZgudR5NS5TDMMnsEfMnTSSWPQctNe+YfJStjG1TlmbdB17JTy3ciA\n9yhOJxtEzxaT5326NLHQjYRvfyuKrdVfXcZik9iW1vC9Mu/+1riL+WBZy8Ai\n7EzRdo3vBYAdsWm9lRshXqs0RUvN0PUrbhjQ33aDyDrikuXqCMZwpzrJ2fy6\nBiJ4RalMccpsJD3XrfrgiKbAAXXjnhBW62OhuaknI0Z9nU3sbvUrGDpOGadS\nw7ZA23+I3RqLF+kSdnXa8Co3YJ4V8TClKJyYwpwlfhjJ8tMzfvfg8tAYVPPB\nl7V3t8crjhbvfQnas9s3zlJUdlzIMKDTDmhebI987bHzCBt97c1jV/b2ISM6\nkRIqD2IOKRvvi255NutLNTGNRG85CIBjNOmAg8CfudiJu8PL2HJ27fXMN1RK\nr6APFy0vjIZd7cVdK6OXWuk0LfptqJAyfFlgb6udzrtHDUvlmCHz2H8sOHGR\nGzom\r\n=IYus\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry Collector Exporter for node with grpc\n\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.16.0**.\n\n## Installation\n\n```bash\nnpm install --save @opentelemetry/exporter-collector-grpc\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-grpc');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  url: '<opentelemetry-collector-url>' // url is optional and can be omitted - default is localhost:4317\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-grpc');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  url: '<opentelemetry-collector-url>', // url is optional and can be omitted - default is localhost:4317\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-grpc');\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:4317\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## Metrics in Node - GRPC\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-grpc');\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 in [GitHub Discussions][discussions-url]\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\n[discussions-url]: https://github.com/open-telemetry/opentelemetry-js/discussions\n[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/main/LICENSE\n[license-image]: https://img.shields.io/badge/license-Apache_2.0-green.svg?style=flat\n[dependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc\n[devDependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/exporter-collector-grpc\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fexporter-collector-grpc.svg\n[opentelemetry-collector-url]: https://github.com/open-telemetry/opentelemetry-collector\n","engines":{"node":">=8.0.0"},"gitHead":"4ef22cae74b9c976f969151ebcc3ae3d931cf9c6","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"npm run protos:copy && tsc -w","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","submodule":"git submodule sync --recursive && git submodule update --init --recursive","postcompile":"npm run submodule && npm run protos:copy","protos:copy":"cpx protos/opentelemetry/**/*.* build/protos/opentelemetry"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.16.0+x64 (linux)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.16.0","dependencies":{"@grpc/grpc-js":"^1.2.12","@grpc/proto-loader":"^0.6.0","@opentelemetry/core":"^0.18.3-alpha.25+4ef22cae","@opentelemetry/metrics":"^0.18.3-alpha.25+4ef22cae","@opentelemetry/tracing":"^0.18.3-alpha.25+4ef22cae","@opentelemetry/resources":"^0.18.3-alpha.25+4ef22cae","@opentelemetry/exporter-collector":"^0.18.3-alpha.25+4ef22cae"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cpx":"1.5.0","gts":"3.1.0","nyc":"15.1.0","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","ts-loader":"8.1.0","typescript":"4.2.4","@babel/core":"7.13.15","@types/node":"14.14.37","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@opentelemetry/api":"^1.0.0-rc.0","@opentelemetry/api-metrics":"^0.18.3-alpha.25+4ef22cae"},"peerDependencies":{"@opentelemetry/api":"^1.0.0-rc.0"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.18.3-alpha.25_1618256575619_0.8901561699244136","host":"s3://npm-registry-packages"}},"0.18.3-alpha.27":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.18.3-alpha.27","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.18.3-alpha.27","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"7caa165c5d0fad4b7fe5c1ba2df824e36bc14d73","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.18.3-alpha.27.tgz","fileCount":35,"integrity":"sha512-1e+ivEIUUf/ogim19h8gIeB05oJBlIL0w0CA5OGMzR/eeemBz3NuthjpLlA5kP5HHYfNEj1Fc6qNbc04KCBX2w==","signatures":[{"sig":"MEQCIBkq3JQjuMqg4DKq33ZzUdKtUE9W+rDEtaFYa5NUCxG9AiBMgIz4d2zK3I9gOsSKpGLPkxNogGDBW1X3ksIkxjsMhg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":105343,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgdfchCRA9TVsSAnZWagAA+p4P/059M878Pll5rl992GWy\nWjnvCFOP+acT8DxF/CzHpU2kvsLo/TxUNo99VrfWQ3G6WoyiTi/DWT/fo6MP\ntk9CS19BRvh+6u3dgNJ/h8mjhV/D6qnJ+3HhHl6mAX5MtRIY5sMwdTJrnkBw\n0kZxf2kGCE6q23CX00t/RDOd9H26uwzfInV9j+U6wbwmiyhlg0ObvGWm4ay3\nMrraP7tn5ZdXT31e1AxKsJdnD8+Lm29aeTo14/9BrmrciwfudWIzeANBJwtZ\nb1bzCRAtnBlOlHiflDkOEHLitK6RnVFgtXavk46ehckJF8+7TnRldMyvr1V+\n6j547DmOZjGOZPT5NRj3CzJbupQTG5EN1DjDfPBnrn4RgXmEObyR39mSIMZh\npZ/PsKidV+GtEBz4IZiodQxmOEvhbC4aM4IEQh3Kx+56iA8B8xO2zbDzq+eZ\ndw2Ej8Hm3ucB+R+P32DFkeBW46vKoLGFM3m4D0N/Q3cN2pQGtkxCMZQr4aMp\nw4kLFu0t5mhbbizkhEWGIrFZcvLVruWhyJu5r3KoRgpB2+44V6MronvH6w9R\nriu87brH30VFQzMAZBnXVPVyXu0zI4GDEXVNLmSGpvSQcZ0bSKZOPaFowfRR\nXSXVphh/mZWd4+gNnp8KRmaANUx6w5iUmTbuC+JwGk/urP3Q7zLzLvWl9NP3\nB3bm\r\n=ggn2\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry Collector Exporter for node with grpc\n\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.16.0**.\n\n## Installation\n\n```bash\nnpm install --save @opentelemetry/exporter-collector-grpc\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-grpc');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  url: '<opentelemetry-collector-url>' // url is optional and can be omitted - default is localhost:4317\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-grpc');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  url: '<opentelemetry-collector-url>', // url is optional and can be omitted - default is localhost:4317\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-grpc');\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:4317\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## Metrics in Node - GRPC\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-grpc');\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 in [GitHub Discussions][discussions-url]\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\n[discussions-url]: https://github.com/open-telemetry/opentelemetry-js/discussions\n[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/main/LICENSE\n[license-image]: https://img.shields.io/badge/license-Apache_2.0-green.svg?style=flat\n[dependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc\n[devDependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/exporter-collector-grpc\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fexporter-collector-grpc.svg\n[opentelemetry-collector-url]: https://github.com/open-telemetry/opentelemetry-collector\n","engines":{"node":">=8.0.0"},"gitHead":"115ee3977a9c5f5228a0ae91abdc7d6b6354e9c2","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"npm run protos:copy && tsc -w","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","submodule":"git submodule sync --recursive && git submodule update --init --recursive","postcompile":"npm run submodule && npm run protos:copy","protos:copy":"cpx protos/opentelemetry/**/*.* build/protos/opentelemetry"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.16.0+x64 (linux)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.16.0","dependencies":{"@grpc/grpc-js":"^1.2.12","@grpc/proto-loader":"^0.6.0","@opentelemetry/core":"^0.18.2","@opentelemetry/metrics":"^0.18.3-alpha.27+115ee397","@opentelemetry/tracing":"^0.18.3-alpha.27+115ee397","@opentelemetry/resources":"^0.18.2","@opentelemetry/exporter-collector":"^0.18.3-alpha.27+115ee397"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cpx":"1.5.0","gts":"3.1.0","nyc":"15.1.0","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","ts-loader":"8.1.0","typescript":"4.2.4","@babel/core":"7.13.15","@types/node":"14.14.37","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@opentelemetry/api":"^1.0.0-rc.0","@opentelemetry/api-metrics":"^0.18.2"},"peerDependencies":{"@opentelemetry/api":"^1.0.0-rc.0"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.18.3-alpha.27_1618343712845_0.12265705938139071","host":"s3://npm-registry-packages"}},"0.18.3-alpha.28":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.18.3-alpha.28","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.18.3-alpha.28","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"eda13b5782eeef498d846d74f8f36f32faefefda","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.18.3-alpha.28.tgz","fileCount":35,"integrity":"sha512-SzAfW1iKs0CXmhl5akV2vH0Pyde1fIYNfggfN0MwaZsYC+j3BhJZYSpE2eRhP9wZq9hJ29mfkNyQcAvx6f7Pzw==","signatures":[{"sig":"MEQCIGVQMwm4GbnP867tAgP7cVqYx8PSBBWs1eAXobpBPahlAiB8jbBf3AAdTYTU4YUvY7/N3/a29A0yZchoZNi1/jr/Vg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":105379,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgdp8kCRA9TVsSAnZWagAAZGUP/jHOdGJOpH9/eKHuF70J\naoYPDWWtontrkrBX8ew+czzD420VIqDRR+aiAn4XgG37evED+kVSG18kvJdF\nddgN9V7J5g8Hcai6lnKlIJJDjyLvK2YYtIT6AsEDVxfXipxn+x2WyqXrlkvY\nRNzhYWWXrIvVfQoY8MJqYstt6fXfOa74CyBjkyLQyMW0yxCHtLsrkchaw7d7\n7IKlNoB39iVXq26sK4tXLYcUPCOaIdKV9hFSnUPTww3X5jCtCdVc7S/4rdLL\n6UMqc0iR4WQT0rUBYWdQ8ZWCW0opf0R5ZcMZXtI20Q2kqfwwQVBCjMzJG9Qk\n55j2ciwitcgOltUWfB9uPwpOPORD41+trksO+qFxMS56LkkO/p4nNnpR5+6T\nQ8Epe7IOhLkwawzgNWDclhwR62obag67d2AAPtRLPhNnpOAKbLjJvPa5GWrd\nJ6Pi7TRM1Vrx7/sH0jvisDVrY0lZ8DbgOQkAAfxN/h7tYWYpUXrxv9udW9U1\n2J0oBn5hUzteO5aKBX1ctzWuv7f5ONJUekFhRygMekAF1/qRsqHXvfNGnVCJ\nMqz9AogD4Zu1GCdlIRrdmuwP5nTT4/VwXOYfR+5oRrDk1SOE/Y40Ac4GpxT3\nMnzuc6SQuy/bP6j1oJ4WtH9UTXZRCLuEe+/h8EaZd6dY1wPG5E2Mdk+45Omf\n3qWg\r\n=C5ZQ\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry Collector Exporter for node with grpc\n\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.16.0**.\n\n## Installation\n\n```bash\nnpm install --save @opentelemetry/exporter-collector-grpc\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-grpc');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  url: '<opentelemetry-collector-url>' // url is optional and can be omitted - default is localhost:4317\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-grpc');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  url: '<opentelemetry-collector-url>', // url is optional and can be omitted - default is localhost:4317\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-grpc');\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:4317\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## Metrics in Node - GRPC\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-grpc');\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 in [GitHub Discussions][discussions-url]\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\n[discussions-url]: https://github.com/open-telemetry/opentelemetry-js/discussions\n[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/main/LICENSE\n[license-image]: https://img.shields.io/badge/license-Apache_2.0-green.svg?style=flat\n[dependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc\n[devDependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/exporter-collector-grpc\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fexporter-collector-grpc.svg\n[opentelemetry-collector-url]: https://github.com/open-telemetry/opentelemetry-collector\n","engines":{"node":">=8.0.0"},"gitHead":"181f11ecc761b75a2702ecf4a6b017f5fb9a8445","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"npm run protos:copy && tsc -w","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","submodule":"git submodule sync --recursive && git submodule update --init --recursive","postcompile":"npm run submodule && npm run protos:copy","protos:copy":"cpx protos/opentelemetry/**/*.* build/protos/opentelemetry"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.16.0+x64 (linux)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.16.0","dependencies":{"@grpc/grpc-js":"^1.2.12","@grpc/proto-loader":"^0.6.0","@opentelemetry/core":"^0.18.3-alpha.28+181f11ec","@opentelemetry/metrics":"^0.18.3-alpha.28+181f11ec","@opentelemetry/tracing":"^0.18.3-alpha.28+181f11ec","@opentelemetry/resources":"^0.18.3-alpha.28+181f11ec","@opentelemetry/exporter-collector":"^0.18.3-alpha.28+181f11ec"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cpx":"1.5.0","gts":"3.1.0","nyc":"15.1.0","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","ts-loader":"8.1.0","typescript":"4.2.4","@babel/core":"7.13.15","@types/node":"14.14.37","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@opentelemetry/api":"^1.0.0-rc.0","@opentelemetry/api-metrics":"^0.18.2"},"peerDependencies":{"@opentelemetry/api":"^1.0.0-rc.0"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.18.3-alpha.28_1618386723459_0.854225662336288","host":"s3://npm-registry-packages"}},"0.18.3-alpha.29":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.18.3-alpha.29","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.18.3-alpha.29","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"8ffbb90aeb0b5189499cf49219f4e5198f9e8784","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.18.3-alpha.29.tgz","fileCount":35,"integrity":"sha512-TnrsDQ45iRWGZe5tVVZZj+1kM8Cc5USO+NosD0D8RKi4nrNVuvh/PohW5Av+XGXF9Pfc1Gp8mTq88lt/q098+Q==","signatures":[{"sig":"MEYCIQDyt4JbefPmalabMTNrju7ef0AW1/O26PnEuLoa2n/CggIhAJ6J6LICdjcPRw+DDDc9lkCEv3JKxA5lqEVa4pZHSqlT","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":105325,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgdsV1CRA9TVsSAnZWagAA1NYP/37YyDMph1VYOv+nmNvy\nIXpC1OzuIaxlf40q6XVMGHWloDKunrltViOBrt0euNKSXcUEtkb5tz9haLGX\nbXB68jlEDJsUSyesjPRqrDwpSevdULA4uofAgQuFhFeS5BGBMHAgvhNpUEOI\nwOs2ao5ing4aXixgbR7CXF+vWSmJ503dCTSI5NZdTg05tMTsUAGqXn9IgDBf\n5UwqFCcUdXrNtcecF9Vux9Fr0czTT2VNTwrL1O1M6dx0ELNoxS6GahEXGVlO\nkXl7bzU5UBQZvrLONwZNCJy9VjwRPuF/CRBe0hGdkIZmrej/xBPgM/BU1YXY\nXjNO/spFYijg8tj0aNGP99qa38SnZp/S5LtAo+tzcSRGc2Jg69gS9AEVrYJL\nAt1ccwp8ZgGBUYE1Zf1KMV7kKvTepmCCDpA7NpVBIFE6ofYmnAg/3PvsPIHp\nFzt+qpl7Igs0Lt+ZzDt8fCbCCmOqKhsOLDaMYbzY6bEWy0uW0ySjnZIjPvEk\nOCfqv3lkaPbRTu2kLy3f5G6sAmrcDoHyr5oooRnhELwoDsJpwyb5F8gKdpei\nOgpNycB9Th6dhMlFPbEOnIFURzXLPA7XcfaZJ6epK+PeN9hXhURf1Cf4MXhP\nKVHPmcVH97Mf/rF5Qy7EnwcbSG167xhqB2c9dnZe6aOBUMxCakajk3xc7UQE\nUk/w\r\n=YDnD\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry Collector Exporter for node with grpc\n\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.16.0**.\n\n## Installation\n\n```bash\nnpm install --save @opentelemetry/exporter-collector-grpc\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-grpc');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  url: '<opentelemetry-collector-url>' // url is optional and can be omitted - default is localhost:4317\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-grpc');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  url: '<opentelemetry-collector-url>', // url is optional and can be omitted - default is localhost:4317\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-grpc');\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:4317\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## Metrics in Node - GRPC\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-grpc');\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 in [GitHub Discussions][discussions-url]\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\n[discussions-url]: https://github.com/open-telemetry/opentelemetry-js/discussions\n[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/main/LICENSE\n[license-image]: https://img.shields.io/badge/license-Apache_2.0-green.svg?style=flat\n[dependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc\n[devDependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/exporter-collector-grpc\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fexporter-collector-grpc.svg\n[opentelemetry-collector-url]: https://github.com/open-telemetry/opentelemetry-collector\n","engines":{"node":">=8.0.0"},"gitHead":"c0b021be5782ebee6a23015c992dc496b105dad2","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"npm run protos:copy && tsc -w","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","submodule":"git submodule sync --recursive && git submodule update --init --recursive","postcompile":"npm run submodule && npm run protos:copy","protos:copy":"cpx protos/opentelemetry/**/*.* build/protos/opentelemetry"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.16.0+x64 (linux)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.16.0","dependencies":{"@grpc/grpc-js":"^1.2.12","@grpc/proto-loader":"^0.6.0","@opentelemetry/core":"^0.18.2","@opentelemetry/metrics":"^0.18.2","@opentelemetry/tracing":"^0.18.3-alpha.29+c0b021be","@opentelemetry/resources":"^0.18.2","@opentelemetry/exporter-collector":"^0.18.3-alpha.29+c0b021be"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cpx":"1.5.0","gts":"3.1.0","nyc":"15.1.0","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","ts-loader":"8.1.0","typescript":"4.2.4","@babel/core":"7.13.15","@types/node":"14.14.37","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@opentelemetry/api":"^1.0.0-rc.0","@opentelemetry/api-metrics":"^0.18.2"},"peerDependencies":{"@opentelemetry/api":"^1.0.0-rc.0"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.18.3-alpha.29_1618396533060_0.5344169090532318","host":"s3://npm-registry-packages"}},"0.18.3-alpha.30":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.18.3-alpha.30","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.18.3-alpha.30","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"6ec994c44f4bc01c0e4ca1dbf5c1151f76d93c2a","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.18.3-alpha.30.tgz","fileCount":35,"integrity":"sha512-4bDjQXVLFxxcQaWAXMCoaETbMScFcnAXzNO0x6mMd07fwgVrUChAD76392uY9KSr8J4Z01c9T+P3FP+a+EMXUg==","signatures":[{"sig":"MEUCIQDWBf2SwurXDHowzSHVPdJ6HnTxONqbu0t8XS9djd1q7wIgHRA9abc0m2Lh6brin40SrvwXFOo0hEMFm2a1P3tDQfM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":105325,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgfbd8CRA9TVsSAnZWagAA8oIP/0Wo/VV8pghp/wL/vB+v\nnufFOMNV6YfJD/a2gqL9CUQwPvOnRC/FfPjUdx6Iuarl7Kxm+QJezYpn9j5k\n+rqAaj5+rdtxKvsKRA//HGhEHU/VKGRnI4aoPyW2+kOp/IESQjI/juB2LSLZ\nRiNRTmGOT9yXGZcULUr/9zAz4H4E4O2V7bQFz+f8tp4is+lYDRIWotwq+IYq\nJuR17NLAwRg0G8rYCA7wn/VKeBFlW9Q07Msbw6WmSa3Mfx2+0kEhNmJf1eCR\nF0x+qIVLwXNd4HTYTFA4wCyk8vqy/r8sn2CAbNh3U6enj85VOL3NPHzGHUXy\nznUk/h8rhbwti6SCbg/r5ivs5bc2pz4+sIC9P1AcTQu3TcLXDrpWmxiJoByB\n3KdVY0789McVP6Bou1hhtGlq4FGsBJrh5PmPhxpN84MyqKKRk8hlbKJ9I6VQ\nHkj8Ekqyejdes7fYHb3EFzzPf7vl5SMBwYpVI+n2y4Za1e1HcMViuM6db7jv\nmmZhiDBf47Qyq4HeWziEgsuRAgWjed8yKUsxLwK1Q7IpHcp0j5DkOgqG8B7l\nD+C9NqQBMrpJ70R1tNT72dUOE8fDtzmlOobYlwXHLq5KXYjMEKWqApI1kNge\n+pRia+TVNzYY66PsHuv3M9aOsDv6wEZM1gS4oX3VwktOJIB15OQYIltlgquk\nlDsg\r\n=Uy9H\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry Collector Exporter for node with grpc\n\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.16.0**.\n\n## Installation\n\n```bash\nnpm install --save @opentelemetry/exporter-collector-grpc\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-grpc');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  url: '<opentelemetry-collector-url>' // url is optional and can be omitted - default is localhost:4317\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-grpc');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  url: '<opentelemetry-collector-url>', // url is optional and can be omitted - default is localhost:4317\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-grpc');\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:4317\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## Metrics in Node - GRPC\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-grpc');\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 in [GitHub Discussions][discussions-url]\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\n[discussions-url]: https://github.com/open-telemetry/opentelemetry-js/discussions\n[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/main/LICENSE\n[license-image]: https://img.shields.io/badge/license-Apache_2.0-green.svg?style=flat\n[dependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc\n[devDependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/exporter-collector-grpc\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fexporter-collector-grpc.svg\n[opentelemetry-collector-url]: https://github.com/open-telemetry/opentelemetry-collector\n","engines":{"node":">=8.0.0"},"gitHead":"09c2aa757fe107613f3601a2a9c23d05011f755d","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"npm run protos:copy && tsc -w","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","submodule":"git submodule sync --recursive && git submodule update --init --recursive","postcompile":"npm run submodule && npm run protos:copy","protos:copy":"cpx protos/opentelemetry/**/*.* build/protos/opentelemetry"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.16.1+x64 (linux)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.16.1","dependencies":{"@grpc/grpc-js":"^1.2.12","@grpc/proto-loader":"^0.6.0","@opentelemetry/core":"^0.18.2","@opentelemetry/metrics":"^0.18.2","@opentelemetry/tracing":"^0.18.3-alpha.30+09c2aa75","@opentelemetry/resources":"^0.18.2","@opentelemetry/exporter-collector":"^0.18.3-alpha.30+09c2aa75"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cpx":"1.5.0","gts":"3.1.0","nyc":"15.1.0","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","ts-loader":"8.1.0","typescript":"4.2.4","@babel/core":"7.13.15","@types/node":"14.14.37","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@opentelemetry/api":"^1.0.0-rc.0","@opentelemetry/api-metrics":"^0.18.2"},"peerDependencies":{"@opentelemetry/api":"^1.0.0-rc.0"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.18.3-alpha.30_1618851707884_0.45637327699689156","host":"s3://npm-registry-packages"}},"0.18.3-alpha.31":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.18.3-alpha.31","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.18.3-alpha.31","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"9063062d93f817c58cf33873526b575340ab6762","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.18.3-alpha.31.tgz","fileCount":35,"integrity":"sha512-m3ptCRxvPOUMJ3eD7SEKb1Y57CxIohumG4j++/m+PnEGmscFnZAnA23eUU9KoiM+W1Yi3VbTgfm+2KuYpZQS0A==","signatures":[{"sig":"MEQCICtukYbpv29Tfr4oktF7vE7CX0+P1oFol+PzpEWvGq7tAiBSi77DmXL8OrjzPH6xrXBbFF8FCWYi0K8GxDvnuKyQmQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":105379,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgfvf0CRA9TVsSAnZWagAADTkP/3jjT/fmO2bAJ+CZcTHm\n1v3FsxapC8DivMAS6QIRj2MPb+9FDf2KXNGCscUTYd6CmnFvO+PLrwt/6Fsi\nvDBi+Sd2epWFHlQCf1msksFg8SAHr3GjdqZRI4xguTMWTqELdw1JSeApup1F\nOlBoxnzI1dWiVd9mBUVYWodZDQggsT/mi/rjTYm7Bz9UzyGAY1XhYe5nwiEL\n7E9mPBnA+inOhQHmlLiVH32TJPPZIDjPY/ApKYXrNI0WQgmv5jIx3iKdlb43\nVfm3KOBC3WsftxqN73QU0XHqgtv26d4sKJ4zlH9718TH/ERzhQS/LZ7VgTk7\nkIaEih07/2mNjhiFH6CRScgpEFahX6vzaYYJOJs0dRVo/WXzw/ULqeHydda7\n+r6fRegh5kC2KNS4DO83xSOnZhhllqGs1xqdua71IVVrPhnjB+kzPrjWgB7C\n2RnpmXRbwf0gzS80plongUeLdh8TgmdJ9ryxDJe9k53xmEWa2DmevAxbZgho\nXjqvCaRG4IDbMStwwnC2YYnSEetrhoD3OSCMT9smhJXWvpLIAb+SfWBXJJEm\n3QjCySZX9wch1sWY28te/cDymgAK4xBbSZwadm4yWi4sZSn3nbwBT4nQRBaj\nv8zpo2SvG47C3nQjOKtyVRVUMJwjKWQ9jel1uBBGROSuBWlnBcyiEchtNyc9\nvO9A\r\n=HaeL\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry Collector Exporter for node with grpc\n\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.16.0**.\n\n## Installation\n\n```bash\nnpm install --save @opentelemetry/exporter-collector-grpc\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-grpc');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  url: '<opentelemetry-collector-url>' // url is optional and can be omitted - default is localhost:4317\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-grpc');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  url: '<opentelemetry-collector-url>', // url is optional and can be omitted - default is localhost:4317\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-grpc');\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:4317\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## Metrics in Node - GRPC\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-grpc');\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 in [GitHub Discussions][discussions-url]\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\n[discussions-url]: https://github.com/open-telemetry/opentelemetry-js/discussions\n[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/main/LICENSE\n[license-image]: https://img.shields.io/badge/license-Apache_2.0-green.svg?style=flat\n[dependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc\n[devDependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/exporter-collector-grpc\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fexporter-collector-grpc.svg\n[opentelemetry-collector-url]: https://github.com/open-telemetry/opentelemetry-collector\n","engines":{"node":">=8.0.0"},"gitHead":"d268bc6a8af633ed6803626096b124a269f7b24b","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"npm run protos:copy && tsc -w","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","submodule":"git submodule sync --recursive && git submodule update --init --recursive","postcompile":"npm run submodule && npm run protos:copy","protos:copy":"cpx protos/opentelemetry/**/*.* build/protos/opentelemetry"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.16.1+x64 (linux)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.16.1","dependencies":{"@grpc/grpc-js":"^1.2.12","@grpc/proto-loader":"^0.6.0","@opentelemetry/core":"^0.18.3-alpha.31+d268bc6a","@opentelemetry/metrics":"^0.18.3-alpha.31+d268bc6a","@opentelemetry/tracing":"^0.18.3-alpha.31+d268bc6a","@opentelemetry/resources":"^0.18.3-alpha.31+d268bc6a","@opentelemetry/exporter-collector":"^0.18.3-alpha.31+d268bc6a"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cpx":"1.5.0","gts":"3.1.0","nyc":"15.1.0","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","ts-loader":"8.1.0","typescript":"4.2.4","@babel/core":"7.13.15","@types/node":"14.14.37","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@opentelemetry/api":"^1.0.0-rc.0","@opentelemetry/api-metrics":"^0.18.2"},"peerDependencies":{"@opentelemetry/api":"^1.0.0-rc.0"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.18.3-alpha.31_1618933748329_0.8959747901821771","host":"s3://npm-registry-packages"}},"0.19.1-alpha.36":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.19.1-alpha.36","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.19.1-alpha.36","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"dbe4f3ca453249cf049d7568522084654be9f337","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.19.1-alpha.36.tgz","fileCount":35,"integrity":"sha512-RB63hfdQS5b3N8YH/rScSWI0KeuTFWu6TZ3XeeJkzg5+Le6lkUdg4AXC2KlJJNLgxscyeKu8/LKagSOelkebGw==","signatures":[{"sig":"MEYCIQDl/PRRuudHy2Z29IOsa45a9e3/1BbyyBeS3XXG0rdq1QIhAINKXjQLyOz6SVql3bwLjARyrhmdbXdE57svmlRdxyQA","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":105397,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJggWn/CRA9TVsSAnZWagAAe1cP/1TvpkP9tyLISjHXuBcY\n508uKOVmhJqbRPwZD5pMXKAC5K7tBSbDhFeK53SVGe4imq9qpOGX4P2sobKw\ntia7YY+xaeIDXTSkVvLFzBub5fqNsxiqgaII+MrT8+KaiGRPMjiScDKg2yyn\nVeMIj/yFy2sq2bfCKUUjTeewFlc/UImOrYE7HVP7mEPuWicIiTD4OYLYB1nG\n85cmhnETWqmpm4TUrt99ntGWJp6KzMX3VnqOimeHYyKOlx3PHn9duMrwrGeL\n/O2TD672IDvLrJ/xWROvx8969GKfarsyKWB2xGPjikPqpy5lpmHz6NyiEUS2\n2T8gMumXqhf3e2rVLF2tMVPsdyUy/VFuD6B263Zv7xyUdXftw6UMVVZZ1ymO\ngGdWl3HtdM4XeW93o9My/e/RriX4etQaSObuzlbbe5XzAEUr9bR7Prmbmzq7\nwHG2VOed0081XF9bWKZmAU6RqjV5hP3KuYrWCecC+T2Cfu3TMCzEj0K/DHgk\n6i3e71Im+BDKsN/H686pqKNKgLykFgTopuvGB9KMZsg6AtIdvo5+zk/wDCuH\nQmC/T7Dk7qTmrd1WpM7zrpED1KUxSKXSbnatXNFijdbAntye4l/8trpUScst\ngInXycBydDU8SuIUuor3v7pSuEVHTGBl/+n6PNNQlG/8yyiRTtaAkq014srZ\nHkk5\r\n=yQRG\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry Collector Exporter for node with grpc\n\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.16.0**.\n\n## Installation\n\n```bash\nnpm install --save @opentelemetry/exporter-collector-grpc\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-grpc');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  url: '<opentelemetry-collector-url>' // url is optional and can be omitted - default is localhost:4317\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-grpc');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  url: '<opentelemetry-collector-url>', // url is optional and can be omitted - default is localhost:4317\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-grpc');\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:4317\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## Metrics in Node - GRPC\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-grpc');\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 in [GitHub Discussions][discussions-url]\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\n[discussions-url]: https://github.com/open-telemetry/opentelemetry-js/discussions\n[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/main/LICENSE\n[license-image]: https://img.shields.io/badge/license-Apache_2.0-green.svg?style=flat\n[dependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc\n[devDependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/exporter-collector-grpc\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fexporter-collector-grpc.svg\n[opentelemetry-collector-url]: https://github.com/open-telemetry/opentelemetry-collector\n","engines":{"node":">=8.0.0"},"gitHead":"0c15999dccd377294a03cf7d36085216d6e8c5c1","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"npm run protos:copy && tsc -w","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","submodule":"git submodule sync --recursive && git submodule update --init --recursive","postcompile":"npm run submodule && npm run protos:copy","protos:copy":"cpx protos/opentelemetry/**/*.* build/protos/opentelemetry"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.16.1+x64 (linux)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.16.1","dependencies":{"@grpc/grpc-js":"^1.2.12","@grpc/proto-loader":"^0.6.0","@opentelemetry/core":"^0.19.1-alpha.36+0c15999d","@opentelemetry/metrics":"^0.19.1-alpha.36+0c15999d","@opentelemetry/tracing":"^0.19.1-alpha.36+0c15999d","@opentelemetry/resources":"^0.19.1-alpha.36+0c15999d","@opentelemetry/exporter-collector":"^0.19.1-alpha.36+0c15999d"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cpx":"1.5.0","gts":"3.1.0","nyc":"15.1.0","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","ts-loader":"8.1.0","typescript":"4.2.4","@babel/core":"7.13.15","@types/node":"14.14.37","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@opentelemetry/api":"^1.0.0-rc.0","@opentelemetry/api-metrics":"^0.19.1-alpha.36+0c15999d"},"peerDependencies":{"@opentelemetry/api":"^1.0.0-rc.0"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.19.1-alpha.36_1619094014971_0.8264037922301228","host":"s3://npm-registry-packages"}},"0.19.0":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.19.0","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.19.0","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"2cba315b7bb4399953ebe1d1c76c574c86ef99ff","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.19.0.tgz","fileCount":35,"integrity":"sha512-lbbmwRZYyV7p8k2oYYtpLCMA0ygXmCJbUlCbfn5b68f7tNxinjANxJyADXnF2ee+8RGobiObAcEhOtL8Kab9DQ==","signatures":[{"sig":"MEUCIQCoKenyjxVmAi6xCrM4S3W6FVU5C6qIMP3uZqCq6aOYeAIgSX9tIDmfuhQi+jOGBRacNIyc434DuO+pFUEe0kajd4U=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":105265,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJggWwQCRA9TVsSAnZWagAAMroP/1pw47PUDrFbQgGhIINK\ntaIdJBctiyc4p6DZr6xzEzI4kw894tz8zvKVlzJURynq9pbIPAg65EuCk7HG\nBFJsus/Cre87Lv6K4GlSGpD4gNtU6QW8JgCyyFrfvpcFBA3JR1b0hBaxh8SL\nlNWj4RVZXdckpXiIF2Vbpx/TFWg5zPopVSpCN6A4HMO4a49t6CHv+wCJp8lg\npiaHtKzaZrwDqAPqCWhhmdmhH3YglURyHjcAcw0F1B3ECD/ejw9LErzdtx7L\niWNdAzITDJnU0B85gT20mgtmf/6GOsbM8bHDFMyUIZxdb3n+Ui33cVGyhHj3\n9QJLhmBUcbDdhLyAHBxxjl+vxTe2mi5gy56IL4owWmpeUZkvYXqJ/gP2L4qQ\n1jolz5pU1rxR9hW0B/6kyv4ElC1F/Myj/lqErLCh5RryXD0xIpZzkhAhVnqM\n5853k00d56J7S7D+WwsOMoUinSdAHXNwKMO1PqmA1kB/tBlx+FW9pHVoj9Ln\nI+cRnNEyjuHIRwsNUmP5JXXTh/TBXZKalbv7ZSUmc0GiMSQ1mDSGMlT+jRUu\nayrIvzQJ8dFs6vftHAFcoBe6M1z9etv0cZ/bUJWx9l6pBtsA91wawIGIb/hG\nos4ngdMPfdTZnAyOzX++Dtop2xUnRX9G1NcVXgu0l76ZABrwrC60HnaXc857\neDmY\r\n=y/mp\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","engines":{"node":">=8.0.0"},"gitHead":"0c15999dccd377294a03cf7d36085216d6e8c5c1","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"npm run protos:copy && tsc -w","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","submodule":"git submodule sync --recursive && git submodule update --init --recursive","postcompile":"npm run submodule && npm run protos:copy","protos:copy":"cpx protos/opentelemetry/**/*.* build/protos/opentelemetry"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.8.0+x64 (darwin)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.8.0","dependencies":{"@grpc/grpc-js":"^1.2.12","@grpc/proto-loader":"^0.6.0","@opentelemetry/core":"0.19.0","@opentelemetry/metrics":"0.19.0","@opentelemetry/tracing":"0.19.0","@opentelemetry/resources":"0.19.0","@opentelemetry/exporter-collector":"0.19.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"cpx":"1.5.0","gts":"3.1.0","nyc":"15.1.0","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","ts-loader":"8.1.0","typescript":"4.2.4","@babel/core":"7.13.15","@types/node":"14.14.37","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@opentelemetry/api":"^1.0.0-rc.0","@opentelemetry/api-metrics":"0.19.0"},"peerDependencies":{"@opentelemetry/api":"^1.0.0-rc.0"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.19.0_1619094543949_0.5830851372283001","host":"s3://npm-registry-packages"}},"0.19.1-alpha.37":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.19.1-alpha.37","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.19.1-alpha.37","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"ffa62dead1087f28f14b7cb1da3be4521d3f776d","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.19.1-alpha.37.tgz","fileCount":35,"integrity":"sha512-UKWixm4hdzy/CN0oBgkTlIWER+1tPijksKqo0FzvwR2o4Px5ezOPPZ2K1R2vpAO1HrB+u34+vMiqjnSXJlkf/Q==","signatures":[{"sig":"MEYCIQDvLF71Zrcz6b/rbxHkqUsDjNYTuT3wSSTmhaKc1YZ7AwIhAMK6DWkvi0exgdr7E97IqfvrNd6GDNTclA/gjGlQLjCK","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":105397,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJggb15CRA9TVsSAnZWagAA/yYP/0NGR4PtaUOrcD9FEiA6\nRd2ZyPXDKZpihL9rVvba103SY1yPqSzgvqqqAaO6SZwYSd/0w9D6bZo1OTnI\nliYc1lgmphWAw2qknVjiZ3tsIoGp9FbUHQrkrpxXRtDVzr6Zg+tj3EtfnMcD\nopAzuMM4nLih5hHMIrVtT/Xxior08MSWCCVmv+RUmzG6Lc9SZI7FoS1GzBUk\nOZIn3CiLiee68KLS+WOwFXtb5UFlnx5+9+1msaN4Y5l1FuVqyQ0xAmHv6tFw\n4vnVbzbhRm4gY70P/7RE+QjG6EsSABvBd8nrY5G4MYrKUgTJU4I0njck5Vad\n2WNZG6CLJft5zNDK3lxqBalwubdPWYFaACzOgK7nu/ovwwEJotCaWuuro7NL\nv/XkSJ1vGLJF6tcZJzUyI+cyvoBO+iO4WA44MqtfGOpG8r3u2CyICaKGlmtj\n21MRv3QLLG2acpKSZ/76qAnxeCU1rPgI2wdcIKLcwQF/uPt3ZnepOEt0SKbu\nZafHcNM+oAs2tN1VrdN4jStaEbeT6MuRyxQEmWAm7Hy6cUnvNnz6fSLbvCm6\nE0akPaGID41d4OcbJqobV1fypSRqdfthzR884QqHXOSngmEag8RmbCYqhnCg\nB2FAODFOvia5EobTAT4p62craKqPL3pHxNF6jFaaFZLs2HIUY2EXtp3HgNnd\npERI\r\n=mmg9\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry Collector Exporter for node with grpc\n\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.16.0**.\n\n## Installation\n\n```bash\nnpm install --save @opentelemetry/exporter-collector-grpc\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-grpc');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  url: '<opentelemetry-collector-url>' // url is optional and can be omitted - default is localhost:4317\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-grpc');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  url: '<opentelemetry-collector-url>', // url is optional and can be omitted - default is localhost:4317\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-grpc');\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:4317\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## Metrics in Node - GRPC\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-grpc');\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 in [GitHub Discussions][discussions-url]\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\n[discussions-url]: https://github.com/open-telemetry/opentelemetry-js/discussions\n[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/main/LICENSE\n[license-image]: https://img.shields.io/badge/license-Apache_2.0-green.svg?style=flat\n[dependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc\n[devDependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/exporter-collector-grpc\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fexporter-collector-grpc.svg\n[opentelemetry-collector-url]: https://github.com/open-telemetry/opentelemetry-collector\n","engines":{"node":">=8.0.0"},"gitHead":"a0385c45376a86d396cb364feda2b4afebd836d1","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"npm run protos:copy && tsc -w","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","submodule":"git submodule sync --recursive && git submodule update --init --recursive","postcompile":"npm run submodule && npm run protos:copy","protos:copy":"cpx protos/opentelemetry/**/*.* build/protos/opentelemetry"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.16.1+x64 (linux)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.16.1","dependencies":{"@grpc/grpc-js":"^1.2.12","@grpc/proto-loader":"^0.6.0","@opentelemetry/core":"^0.19.1-alpha.37+a0385c45","@opentelemetry/metrics":"^0.19.1-alpha.37+a0385c45","@opentelemetry/tracing":"^0.19.1-alpha.37+a0385c45","@opentelemetry/resources":"^0.19.1-alpha.37+a0385c45","@opentelemetry/exporter-collector":"^0.19.1-alpha.37+a0385c45"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cpx":"1.5.0","gts":"3.1.0","nyc":"15.1.0","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","ts-loader":"8.1.0","typescript":"4.2.4","@babel/core":"7.13.16","@types/node":"14.14.41","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@opentelemetry/api":"^1.0.0-rc.0","@opentelemetry/api-metrics":"^0.19.1-alpha.37+a0385c45"},"peerDependencies":{"@opentelemetry/api":"^1.0.0-rc.0"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.19.1-alpha.37_1619115385136_0.7063063723102099","host":"s3://npm-registry-packages"}},"0.19.1-alpha.39":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.19.1-alpha.39","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.19.1-alpha.39","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"153bd90316469f4e6a728503763d5dc914e55547","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.19.1-alpha.39.tgz","fileCount":35,"integrity":"sha512-FdZMd84rEDf5zpYieB2Pf9C9EsPIBSA/4qtfHWkKxJrkOFBeX2FkzAhNPpNRN+69eUJjntr+7b1+ehLYgcVN2g==","signatures":[{"sig":"MEYCIQCxwPq07S38DL77KRWOCAyxOSwxA0thVWfKEVUwE1r+BwIhAJW8JLfJIfnDrVroLL4B8BuPMwtVY75bPaSX7ND+Fgrw","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":105397,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJggcROCRA9TVsSAnZWagAAANAQAIM5L+2xxkQqxhz0elyD\n62iOsSW3vth33UHN9N2THyCuNgwHQ/2pEeDrJxhTa2JWt33pQEiaxfmWbZ0s\nJF7EzGcPWJTG7VtQ4U/8mCvNiVEpgTOPLDJ6ancW+/mQKeZw4XQKcpjtFXHm\nIUFFO49PDLRCdQobOhKfxKhP+IWCuDLl7676Xri1rJFpYhwyOJOElKYfFJ8Y\nmy59Cdxj9ux9zVIjqQhyHvrMb9kIerkmInVZdNIMQT9E2QPbMqKf7iPbEMCp\nSiwFJigag68wG4pnXmZZFJZIhFpjziEdSTBbteg4KEzRa7V2HKd9zG8LFwO9\nlZfJ75DTjEojvaknSBAY6lv6SV2hI9ckm1lrsDV8JTFfc9+c+zmmtsFEKgVx\n+0s9eHp8EjzssZQd3PZP3aO7ED84dbdriUsZxphEHJYLmpECr6htyprQCJBo\nmPd5FJ4HHIMIu0GTUO7DzRxUTPxctEwW25GP+tk5Hs/5Qhvhv7BYVIGoyudS\np3SaoS6Gfz/y0NZ8vKSFfh9yv2pLbfRFE+9xUCYKIqFCRGVWp+B0vbRVzvIr\n6cn+52ZOcSTtxnemq8SEh7inKrLpyO5+ghVCc58RvHgMONLhfS1uII4q56uZ\nxxEaygKQ6FV3JUIkhqO4FQFdcYe6npQCRetFqsXZLz4tt+4O1oUaECuEi+Zm\nCDY5\r\n=j8bq\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry Collector Exporter for node with grpc\n\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.16.0**.\n\n## Installation\n\n```bash\nnpm install --save @opentelemetry/exporter-collector-grpc\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-grpc');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  url: '<opentelemetry-collector-url>' // url is optional and can be omitted - default is localhost:4317\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-grpc');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  url: '<opentelemetry-collector-url>', // url is optional and can be omitted - default is localhost:4317\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-grpc');\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:4317\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## Metrics in Node - GRPC\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-grpc');\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 in [GitHub Discussions][discussions-url]\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\n[discussions-url]: https://github.com/open-telemetry/opentelemetry-js/discussions\n[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/main/LICENSE\n[license-image]: https://img.shields.io/badge/license-Apache_2.0-green.svg?style=flat\n[dependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc\n[devDependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/exporter-collector-grpc\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fexporter-collector-grpc.svg\n[opentelemetry-collector-url]: https://github.com/open-telemetry/opentelemetry-collector\n","engines":{"node":">=8.0.0"},"gitHead":"23ba4bfdc77c8bf594bf0c817320a31f59ca0bd4","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"npm run protos:copy && tsc -w","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","submodule":"git submodule sync --recursive && git submodule update --init --recursive","postcompile":"npm run submodule && npm run protos:copy","protos:copy":"cpx protos/opentelemetry/**/*.* build/protos/opentelemetry"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.16.1+x64 (linux)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.16.1","dependencies":{"@grpc/grpc-js":"^1.2.12","@grpc/proto-loader":"^0.6.0","@opentelemetry/core":"^0.19.1-alpha.39+23ba4bfd","@opentelemetry/metrics":"^0.19.1-alpha.39+23ba4bfd","@opentelemetry/tracing":"^0.19.1-alpha.39+23ba4bfd","@opentelemetry/resources":"^0.19.1-alpha.39+23ba4bfd","@opentelemetry/exporter-collector":"^0.19.1-alpha.39+23ba4bfd"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cpx":"1.5.0","gts":"3.1.0","nyc":"15.1.0","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","ts-loader":"8.1.0","typescript":"4.2.4","@babel/core":"7.13.16","@types/node":"14.14.41","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@opentelemetry/api":"^1.0.0-rc.0","@opentelemetry/api-metrics":"^0.19.1-alpha.39+23ba4bfd"},"peerDependencies":{"@opentelemetry/api":"^1.0.0-rc.0"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.19.1-alpha.39_1619117134164_0.8626155839369145","host":"s3://npm-registry-packages"}},"0.19.1-alpha.42":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.19.1-alpha.42","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.19.1-alpha.42","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"102276938950211592914c2f83a763dc04970596","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.19.1-alpha.42.tgz","fileCount":35,"integrity":"sha512-sWFjeyikB3a8pDj4GuVexq4bHw1Evle9IFNK2WwKQCgx3qxaf077o3kRUQWbxMjMXiC4A3T4Ckd9rHPzD9Adfw==","signatures":[{"sig":"MEYCIQDaX2zQN6MWFlf8c+Y+Wx7SHu8c8ro1RzCkPoLoGu8v5wIhAMHWzKdKpor49IobazDM6v61AKowEOFR5RsRA4OecaUU","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":105343,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJghw3pCRA9TVsSAnZWagAA6HQP/1HbrfbM9SpVLRUHnb0/\nV8L0sAXJ/zaIXtT7mpaTsm0mV5mA4SJ0jaIHZ0oFzn+KNmQLougiwSqf6LF0\nirmQgvi3GkR91i+O/XVehQ5vhzC5OD2xl/GHGA5f4O3oq+3hmzLV/4NPYGOo\nheq2ZJw31GJ0pUr1Hle7Ch8Lm/+KflB5zuHhCJgN1qFgQdaJ0wAr/Y/Pvt5d\nIk4BB1bpVKxFLw+eXDXETgWd3f1fUCZ4AFT6mFhcTPQ3m/bDbsz/HR7Iu8Km\nspcF8L3H5MAwGJ5d2f/rpe0ekvwdLx1U/pmhUX9FdgtrBQ95pEBC/4+fYlLO\nifya5rn/hs55CPqMqzIteF4yAz1g95HHVTzfmWSm+iX8AoCUuIbawHfiozAw\nwAsRX9f0h26rY/Nb9dVMUkPM0louSmkifUj9nJzJs146WRCYyydzYrciaohd\nul/PeVRz7rH4RVfOgMEJJ+8K14AEf/P753m29fcGJbl9sQYr4aib70UF1wEK\n04JE2yAqm3bKFbw9gEWqc1HEGiWLCPMHZUDv4eTnqZs+zB6jMvWPB0qUnsHR\n/pfrmaag/LUvBs0hZ5zgxh5H80Kjes32MuuxtjRgzBnoqqFp/0lsRUnfNEhG\njX3HiQDNPznBjX80ZHqDnZ5jMUgX+J2m72AA7+vVMe1BYRl1W7ml+jx1zk9G\n7ER2\r\n=LYxG\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry Collector Exporter for node with grpc\n\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.16.0**.\n\n## Installation\n\n```bash\nnpm install --save @opentelemetry/exporter-collector-grpc\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-grpc');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  url: '<opentelemetry-collector-url>' // url is optional and can be omitted - default is localhost:4317\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-grpc');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  url: '<opentelemetry-collector-url>', // url is optional and can be omitted - default is localhost:4317\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-grpc');\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:4317\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## Metrics in Node - GRPC\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-grpc');\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 in [GitHub Discussions][discussions-url]\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\n[discussions-url]: https://github.com/open-telemetry/opentelemetry-js/discussions\n[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/main/LICENSE\n[license-image]: https://img.shields.io/badge/license-Apache_2.0-green.svg?style=flat\n[dependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc\n[devDependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/exporter-collector-grpc\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fexporter-collector-grpc.svg\n[opentelemetry-collector-url]: https://github.com/open-telemetry/opentelemetry-collector\n","engines":{"node":">=8.0.0"},"gitHead":"b9c842613c4439435f1644c8c8e288d1fd0e384c","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"npm run protos:copy && tsc -w","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","submodule":"git submodule sync --recursive && git submodule update --init --recursive","postcompile":"npm run submodule && npm run protos:copy","protos:copy":"cpx protos/opentelemetry/**/*.* build/protos/opentelemetry"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.16.1+x64 (linux)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.16.1","dependencies":{"@grpc/grpc-js":"^1.2.12","@grpc/proto-loader":"^0.6.0","@opentelemetry/core":"^0.19.0","@opentelemetry/metrics":"^0.19.1-alpha.42+b9c84261","@opentelemetry/tracing":"^0.19.0","@opentelemetry/resources":"^0.19.0","@opentelemetry/exporter-collector":"^0.19.1-alpha.42+b9c84261"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cpx":"1.5.0","gts":"3.1.0","nyc":"15.1.0","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","ts-loader":"8.1.0","typescript":"4.2.4","@babel/core":"7.13.16","@types/node":"14.14.41","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@opentelemetry/api":"^1.0.0-rc.0","@opentelemetry/api-metrics":"^0.19.1-alpha.42+b9c84261"},"peerDependencies":{"@opentelemetry/api":"^1.0.0-rc.0"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.19.1-alpha.42_1619463656709_0.1959618794705711","host":"s3://npm-registry-packages"}},"0.19.1-alpha.7":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.19.1-alpha.7","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.19.1-alpha.7","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"1d9d2b97da8ac785a1681f1bb4108d093124a31c","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.19.1-alpha.7.tgz","fileCount":35,"integrity":"sha512-Zn4BQ6astMHr9ZhhVj/Ti+wmsQ9PbFDIHCp9mJWnLgu0DjOEPoMhH7qCnQeUXp94kegu2tKp2fBVnw2JXlnE1Q==","signatures":[{"sig":"MEUCIQCEAhFJYqqq7lbHjWnUzf9A1SRGduMrQPblOzmMo53fqQIgLCUAjU2BkhyKpkHoH+IEqtPjWtJ1INEQiaN1tUrygNU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":105373,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgiYnWCRA9TVsSAnZWagAAKkYP/joM2zJ1l0Yu4R+OTS++\njwsGVEHLaSlEI+MEWlQjmnSA3e0OQ88sre+lxgonl2PEYFzYhf9OF7RnwDAw\n/pYxd882QeYplMLjdk/pmgI0fyAtF4kYrivreKo6Dx0PwN9TF1OhbNca3dfp\n2eG0fqcD8H3WXBv3XOHmQVDnUFV5DvhEY6JX50t9o/H4Wf8m4qLisYMIZZSE\nI82vBHKvxVEYMlF02aK3EqjLdu1Cmct3r/phlMmS2jYrnqwarm+g45vHiZSP\nYG1CPa27CT/m7+fvE2WhVlwmnNRDMOAAfoayelVjH04sFgrWETSzlqB2tK2p\nbBtIuNFTzC0CmQXjMmVZjxhEU4/zAhfDo9hoaepQ1JMJOP2PgA5qyYUkj9hD\ngeTGR5RoPOUM7mtg0H1g0akXUhGSLQN3D+n5687EJBz1b21fWjJiipbGQCZL\na3SXUZSocJbQ/Q5kV4scjOYmBxvWfHxZa2FVTh1c5Da4B1IqGIDR8R4HfpiS\n1s04fY5Sb2MEQGajHalu7OR8LpzSGQzM8PX7Ih8vDcGkApA+EHtaINxX6aSb\neTUgV9Usj64aASZ6xMtTEyCVC/kK6jf7Qm/ZTgQmszDxDOzZ9KN81deELElb\ncJCE4PC+iOBvEcUjVfN+Q8GIbPJyfFI1P24YR0ST5/DP7PttiLWFRVErB3h+\nrUJI\r\n=CoUc\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry Collector Exporter for node with grpc\n\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.16.0**.\n\n## Installation\n\n```bash\nnpm install --save @opentelemetry/exporter-collector-grpc\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-grpc');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  url: '<opentelemetry-collector-url>' // url is optional and can be omitted - default is localhost:4317\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-grpc');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  url: '<opentelemetry-collector-url>', // url is optional and can be omitted - default is localhost:4317\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-grpc');\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:4317\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## Metrics in Node - GRPC\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-grpc');\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 in [GitHub Discussions][discussions-url]\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\n[discussions-url]: https://github.com/open-telemetry/opentelemetry-js/discussions\n[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/main/LICENSE\n[license-image]: https://img.shields.io/badge/license-Apache_2.0-green.svg?style=flat\n[dependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc\n[devDependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/exporter-collector-grpc\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fexporter-collector-grpc.svg\n[opentelemetry-collector-url]: https://github.com/open-telemetry/opentelemetry-collector\n","engines":{"node":">=8.0.0"},"gitHead":"c4341c39dfcdaaa65a5d6ad8eb745b656d865177","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"npm run protos:copy && tsc -w","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","submodule":"git submodule sync --recursive && git submodule update --init --recursive","postcompile":"npm run submodule && npm run protos:copy","protos:copy":"cpx protos/opentelemetry/**/*.* build/protos/opentelemetry"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.16.1+x64 (linux)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.16.1","dependencies":{"@grpc/grpc-js":"^1.2.12","@grpc/proto-loader":"^0.6.0","@opentelemetry/core":"^0.19.1-alpha.7+c4341c39","@opentelemetry/metrics":"^0.19.1-alpha.7+c4341c39","@opentelemetry/tracing":"^0.19.1-alpha.7+c4341c39","@opentelemetry/resources":"^0.19.1-alpha.7+c4341c39","@opentelemetry/exporter-collector":"^0.19.1-alpha.7+c4341c39"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cpx":"1.5.0","gts":"3.1.0","nyc":"15.1.0","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","ts-loader":"8.1.0","typescript":"4.2.4","@babel/core":"7.13.16","@types/node":"14.14.41","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@opentelemetry/api":"^1.0.0-rc.0","@opentelemetry/api-metrics":"^0.19.0"},"peerDependencies":{"@opentelemetry/api":"^1.0.0-rc.0"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.19.1-alpha.7_1619626453730_0.3197131211169877","host":"s3://npm-registry-packages"}},"0.19.1-alpha.9":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.19.1-alpha.9","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.19.1-alpha.9","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"df7bfc729877ac4c51625a729942468b56f24755","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.19.1-alpha.9.tgz","fileCount":35,"integrity":"sha512-G3qW/l1vEjQkVYE5kBcSfI0TZWQA5UyZUzXve9CbyOS6QmIFV6Ep5LGJppbCKCZ8WCPcrWruOhR33sZBazJahQ==","signatures":[{"sig":"MEUCIHxT9F2o5EjDVck/9U93bYTGCjOBSRxIjrrNJEZ2KIgXAiEAjXBCrYe4BMwL5hR0otx6Y/tPaDVueGt4AgixcQ1p7Ms=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":105373,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgimu0CRA9TVsSAnZWagAAgoMP/0BAdBrRk/Ym6SMJDEyU\n1Z0ori8oiApldup3Mih72kpEgFUoap7ev0+rseJW8ZuPEoYWlR8zvifpD5MU\nwz1+OzKgTI/TXcaMALcPuQI++DX+b36UKdUjxjSlZozd9b8cuilUwSGT39QQ\n3HCaDMxlzgR3JEXxiEs2Bszbl4J4v7wcDK/CQuKVyibbIv/aQKLuxshzUWLK\nwzViYAUZhb7RdQs77L9TmPtlmjij8xQULC5uPAktx/dXrs1y9xYfLHVK1PTR\nTYh1RBOeDRlWzz8EM1/2pH1IhH8O0MNQ5GGRp2+5ZaejSwU0w63lvLi6om1P\n5GJ7DFtqlWnrJ0EbYl+Kcxcbe84Yftut8ApOaselYwh+CsgQWz7RA0+pjQt8\nkOQbWuPBUhOrVwSLIkwWhu19YNGkSQ3JaYGW9Q9Ekyt0kmtefIAB27zXJFM7\nsJWWQEAkPodrWRB1e4AkUfqr0Jee77URpLO9/6/pwBoj8IuUiVU+AsIxq5Lo\ntg1Jc90t30yF8MkCtx5We1k+mRoh7wYwe/L97z1EpBYSpym8vqNgDNVPnO9p\ng5PCpSk//37AfxJV7R21nXOy+RLiH/9xxzgytwJ7uEJeqWb1sGJo9oNwftQB\nO59Tipc0ilOqoe+H641lM7d13keDDrw73HMXIwYCX7lKf1aEcPBLTgbruUbl\nHvrG\r\n=Nqia\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry Collector Exporter for node with grpc\n\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.16.0**.\n\n## Installation\n\n```bash\nnpm install --save @opentelemetry/exporter-collector-grpc\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-grpc');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  url: '<opentelemetry-collector-url>' // url is optional and can be omitted - default is localhost:4317\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-grpc');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  url: '<opentelemetry-collector-url>', // url is optional and can be omitted - default is localhost:4317\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-grpc');\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:4317\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## Metrics in Node - GRPC\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-grpc');\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 in [GitHub Discussions][discussions-url]\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\n[discussions-url]: https://github.com/open-telemetry/opentelemetry-js/discussions\n[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/main/LICENSE\n[license-image]: https://img.shields.io/badge/license-Apache_2.0-green.svg?style=flat\n[dependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc\n[devDependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/exporter-collector-grpc\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fexporter-collector-grpc.svg\n[opentelemetry-collector-url]: https://github.com/open-telemetry/opentelemetry-collector\n","engines":{"node":">=8.0.0"},"gitHead":"677727b2da55ad1decf399f3584ef92dd5fea239","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"npm run protos:copy && tsc -w","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","submodule":"git submodule sync --recursive && git submodule update --init --recursive","postcompile":"npm run submodule && npm run protos:copy","protos:copy":"cpx protos/opentelemetry/**/*.* build/protos/opentelemetry"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.16.1+x64 (linux)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.16.1","dependencies":{"@grpc/grpc-js":"^1.2.12","@grpc/proto-loader":"^0.6.0","@opentelemetry/core":"^0.19.1-alpha.9+677727b2","@opentelemetry/metrics":"^0.19.1-alpha.9+677727b2","@opentelemetry/tracing":"^0.19.1-alpha.9+677727b2","@opentelemetry/resources":"^0.19.1-alpha.9+677727b2","@opentelemetry/exporter-collector":"^0.19.1-alpha.9+677727b2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cpx":"1.5.0","gts":"3.1.0","nyc":"15.1.0","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","ts-loader":"8.1.0","typescript":"4.2.4","@babel/core":"7.13.16","@types/node":"14.14.41","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@opentelemetry/api":"^1.0.0-rc.0","@opentelemetry/api-metrics":"^0.19.0"},"peerDependencies":{"@opentelemetry/api":"^1.0.0-rc.0"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.19.1-alpha.9_1619684276104_0.5392117625536161","host":"s3://npm-registry-packages"}},"0.19.1-alpha.11":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.19.1-alpha.11","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.19.1-alpha.11","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"aca704f074928374bba3d5930d9590e43ada3557","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.19.1-alpha.11.tgz","fileCount":35,"integrity":"sha512-KFwOMAY/nm1dikQBriiVxTww1omc6uFXIrc6f4tWvcVWmoXY6CLRmMfDEISBC8xbZsM/LdoJJuEuAUeHDQsZ5Q==","signatures":[{"sig":"MEUCIQCcxuz/JuPUg8WazdKvTivGTb8MyQW/TdJ5vop/5krQWQIgU85wwQh/8HyFDmbaQbjoJaMsr+VCb4J/1HG/th07nT0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":105396,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgiyAaCRA9TVsSAnZWagAAHgoP/335fI8rcUyS/qVBIwM2\n2zzQnvvac7QBSG7/aREjkA/SxNowT0xhOLLFvKMItoQmE1TZ6kxwsImPZ5eJ\n2VX3Jftth4x0j0K3muDhe/azYG0ViwOrZIWpRrRrhGaqvYmzj4AOOJd2Jo+P\nzjzmHB9NAPvtLAnupAv6U5YFbboASfCQbtlhyN7uAS+2TrHDOPZnYURylcmF\nkIxXAUZj67BkEL+wD7/ADEvmVbqT4ZCW0VgTmL0uFWxk2PVuVtEa1EThB64H\npAyzRWrOQQYKIw0yvBC+VfU1x7MaCPJN9ZVymHFQdTLSlGwW9se9w5u3ouzT\ni+kWnRN2WrscmniVC2Wjs22ME/gP2uSS+gKxpBQ1rMpvYoyKkFLFW+MQj5N4\nY4zZKSMZL84rS+MrG6kToZwpiv2slOMeoF7wicDOCwronaOnbdq7212cLpsG\n02SKivzBx6sKKbbcdzOOiJTJTSA2AnGpT11t+AUTITy22mFmPh3WiyPynggV\nNP1/fX90dvbQ7gQiOM5N0Di5LHdsV2JihBwVl6dVY40baCQ8n9QVlrZrkdha\n9p5k9U0uEzL8DaCHA644i4ChdmC/Sl29qiNacS2OP2Cui/RIE5CQqg8rMw+O\nuhuVMk+w/seAiWizAmprVruni56Pebxsnk0XeE6uNc3q/QvYTJY/TbfAlyuC\n7VRg\r\n=cp6j\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry Collector Exporter for node with grpc\n\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.16.0**.\n\n## Installation\n\n```bash\nnpm install --save @opentelemetry/exporter-collector-grpc\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-grpc');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  url: '<opentelemetry-collector-url>' // url is optional and can be omitted - default is localhost:4317\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-grpc');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  url: '<opentelemetry-collector-url>', // url is optional and can be omitted - default is localhost:4317\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-grpc');\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:4317\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## Metrics in Node - GRPC\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-grpc');\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 in [GitHub Discussions][discussions-url]\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\n[discussions-url]: https://github.com/open-telemetry/opentelemetry-js/discussions\n[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/main/LICENSE\n[license-image]: https://img.shields.io/badge/license-Apache_2.0-green.svg?style=flat\n[dependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc\n[devDependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/exporter-collector-grpc\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fexporter-collector-grpc.svg\n[opentelemetry-collector-url]: https://github.com/open-telemetry/opentelemetry-collector\n","engines":{"node":">=8.0.0"},"gitHead":"2afcc7c90d93bac4fa9180f4fd312ed01370b2b5","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"npm run protos:copy && tsc -w","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","submodule":"git submodule sync --recursive && git submodule update --init --recursive","postcompile":"npm run submodule && npm run protos:copy","protos:copy":"cpx protos/opentelemetry/**/*.* build/protos/opentelemetry"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.16.1+x64 (linux)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.16.1","dependencies":{"@grpc/grpc-js":"^1.2.12","@grpc/proto-loader":"^0.6.0","@opentelemetry/core":"^0.19.1-alpha.11+2afcc7c9","@opentelemetry/metrics":"^0.19.1-alpha.11+2afcc7c9","@opentelemetry/tracing":"^0.19.1-alpha.11+2afcc7c9","@opentelemetry/resources":"^0.19.1-alpha.11+2afcc7c9","@opentelemetry/exporter-collector":"^0.19.1-alpha.11+2afcc7c9"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cpx":"1.5.0","gts":"3.1.0","nyc":"15.1.0","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","ts-loader":"8.2.0","typescript":"4.2.4","@babel/core":"7.14.0","@types/node":"14.14.43","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@opentelemetry/api":"^1.0.0-rc.0","@opentelemetry/api-metrics":"^0.19.1-alpha.11+2afcc7c9"},"peerDependencies":{"@opentelemetry/api":"^1.0.0-rc.0"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.19.1-alpha.11_1619730458474_0.5524993024060734","host":"s3://npm-registry-packages"}},"0.19.1-alpha.12":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.19.1-alpha.12","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.19.1-alpha.12","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"c031e1af7122dfafcc2327a6df6a74760deb9331","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.19.1-alpha.12.tgz","fileCount":35,"integrity":"sha512-kcMqrmACeXRbmDr425GwQZmJD2FOGoiFjobVSOjnHpKfmjwv9Az/5X59m0kFRRqm1RLmx8ylmhNTz92+8oQn6g==","signatures":[{"sig":"MEYCIQCt+JVov5uPXiywj79F0be9m1KPUZOETqezJmLeLeUT6AIhAIh/8xgtqRTKWx1b9jrnEINgdw0oJV1u2PrEGwctofko","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":105378,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgjG2ACRA9TVsSAnZWagAAYFEP/0HU0LZcK9iuGeE6DxUc\nBVlN8amAKt5xH+iC/iBOBHtBeMK1M43USd4s7tGitQS12CWHpJvGSdT4vTy0\nKoaIbAsOKjvCHdpyAUsU4RPGAyD20y9EauZDvpOWURTyqnYcqA8QBYPZN452\nwhXDXiX0RYbN2g4EhVLoKEvNhpL3+ZiRJh33F+8KwjJghnSRh3gTljzWePR2\nkyZXZwc/OUItSjMAHjxqE8GeqzyKYXWt9Gi0xCcqbNL9CsCOXh6iz9ZxYTg1\nefgRo6QN5AIyJB56PbRBltBRfzpxssrbz3FWW1FarDVMA3q1US3W3+gR5EQJ\ngwepqpJs7XMbsD82CWXAvWS0/JD5OsVprO54hbfCdHxkkO2W2alFP2keSejF\nZGL29O+R3+/ct+Vq4V6ZoG1oJoGp1pU9YCr7dWmdFQqL56iIIC6Yy1Qtqe1y\nYLkUxc5522YIRdcy5bx/x1ZqQyMMCplHXzyFXUSC55cZub50IZKTdSm2pCZV\nG2ae+2+BirlSCFiTTdmOOsT1fPwt9fya/8HEt5W5nVZW0iDzbjntEQMUOgie\n+/JrLp7MeeuUZTaIfdAHFCYt740tmOnfie6QqwNHJwnYAwKNqzVGXNzOlE47\nZ+nMQ30WVk/XZAoUOi3xoZ5qHKQghtcbPYmHiMNrxDqH5Vo2+4OK2ZDNUiPw\nyLiT\r\n=/u0F\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry Collector Exporter for node with grpc\n\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.16.0**.\n\n## Installation\n\n```bash\nnpm install --save @opentelemetry/exporter-collector-grpc\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-grpc');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  url: '<opentelemetry-collector-url>' // url is optional and can be omitted - default is localhost:4317\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-grpc');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  url: '<opentelemetry-collector-url>', // url is optional and can be omitted - default is localhost:4317\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-grpc');\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:4317\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## Metrics in Node - GRPC\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-grpc');\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 in [GitHub Discussions][discussions-url]\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\n[discussions-url]: https://github.com/open-telemetry/opentelemetry-js/discussions\n[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/main/LICENSE\n[license-image]: https://img.shields.io/badge/license-Apache_2.0-green.svg?style=flat\n[dependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc\n[devDependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/exporter-collector-grpc\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fexporter-collector-grpc.svg\n[opentelemetry-collector-url]: https://github.com/open-telemetry/opentelemetry-collector\n","engines":{"node":">=8.0.0"},"gitHead":"25c205aaffb6707d4275be6bade3e078e50e2df3","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"npm run protos:copy && tsc -w","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","submodule":"git submodule sync --recursive && git submodule update --init --recursive","postcompile":"npm run submodule && npm run protos:copy","protos:copy":"cpx protos/opentelemetry/**/*.* build/protos/opentelemetry"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.16.1+x64 (linux)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.16.1","dependencies":{"@grpc/grpc-js":"^1.2.12","@grpc/proto-loader":"^0.6.0","@opentelemetry/core":"^0.19.1-alpha.12+25c205aa","@opentelemetry/metrics":"^0.19.1-alpha.12+25c205aa","@opentelemetry/tracing":"^0.19.1-alpha.12+25c205aa","@opentelemetry/resources":"^0.19.1-alpha.12+25c205aa","@opentelemetry/exporter-collector":"^0.19.1-alpha.12+25c205aa"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cpx":"1.5.0","gts":"3.1.0","nyc":"15.1.0","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","ts-loader":"8.2.0","typescript":"4.2.4","@babel/core":"7.14.0","@types/node":"14.14.43","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@opentelemetry/api":"^1.0.0-rc.0","@opentelemetry/api-metrics":"^0.19.0"},"peerDependencies":{"@opentelemetry/api":"^1.0.0-rc.0"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.19.1-alpha.12_1619815807990_0.6928913346552192","host":"s3://npm-registry-packages"}},"0.19.1-alpha.13":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.19.1-alpha.13","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.19.1-alpha.13","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"fa64a023a63cf58c85951e29edd582a7125c6569","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.19.1-alpha.13.tgz","fileCount":35,"integrity":"sha512-BiP83o+MjfAOGZQRSBKKdezqBALphS/3b32bZjnP+3gSgS5L6F+BCtpULKYOZa0RllKjjwBiQMwJS+j6Mqqriw==","signatures":[{"sig":"MEYCIQD6/Ahx9DkljRvDJzt5MN+POPzZLnv0+RlZbQxWIokbIgIhALtaBcEbLvwaQ/qcAb/CTwM6vlxwB2dRx9AjHEmcBw6A","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":105324,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgjP3cCRA9TVsSAnZWagAAIH8P/j2DUG4V7+LrQ7P6DUG8\nSbiEgZdsO+SoxlsI4rf2H4EbQx2deDywxslv8JnEXWzoeGv9Ju16wfaWuFxz\n+d+H1wYcKhXUHevoiEewQK7n8bBq0QPhJujH5GxSBkk60AUSsu/aRfspXX16\nbyV5PC/238twVOCGuEC5xiRKFE+7Dhz8aRi4gYcZa1sfq8PO1EZ/vje6R94W\nfw/UdUdi3BiGsD85mQZ1vh3lmcOjoiyX/ZuyRm3YbpR3CCnazqijC6WpFazW\nZTSzl6nDwpVph/lHlStSZEKMGPUot3jHVS/AHWhZ9cMvA/CFAmI+j9GM519E\nBG6l7zHIU5BmPTKuRDQb9wzW+OutgB3H2prh2sQxbHvAGowo3EC2QTzTJ8Pc\nTTLjxdurMhWv5B1XSQTttNG5WPYoucxbv6QZPBvHOhOwewPX9TtTeg7rPnLn\nLV9ibXUAAo4KNBfuKq8/SoLSfWLKsz8cuBOxbo6ICvUc+hjQlPuBLVbXJ0i8\n8VL4hN9x3HMFRF9lcFzcGuloSKxP/L5l0AZ3qvSnszG+4AHoT2iT70Jt1/y0\nuUHEzutyBCzn5p67rCOsfQfRz+ZSjck+SkDygeNXlOdLiVkG0iyQ5NSWtFZO\nsMly/tyspyQinr0E17a7sY3+U7VA1ttjGfhxERVPutO6c/PJPetoid94ute9\nndJ9\r\n=z7jh\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry Collector Exporter for node with grpc\n\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.16.0**.\n\n## Installation\n\n```bash\nnpm install --save @opentelemetry/exporter-collector-grpc\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-grpc');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  url: '<opentelemetry-collector-url>' // url is optional and can be omitted - default is localhost:4317\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-grpc');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  url: '<opentelemetry-collector-url>', // url is optional and can be omitted - default is localhost:4317\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-grpc');\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:4317\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## Metrics in Node - GRPC\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-grpc');\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 in [GitHub Discussions][discussions-url]\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\n[discussions-url]: https://github.com/open-telemetry/opentelemetry-js/discussions\n[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/main/LICENSE\n[license-image]: https://img.shields.io/badge/license-Apache_2.0-green.svg?style=flat\n[dependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc\n[devDependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/exporter-collector-grpc\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fexporter-collector-grpc.svg\n[opentelemetry-collector-url]: https://github.com/open-telemetry/opentelemetry-collector\n","engines":{"node":">=8.0.0"},"gitHead":"329cf927c6c2c9977996cc2a18a3979af2e4474e","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"npm run protos:copy && tsc -w","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","submodule":"git submodule sync --recursive && git submodule update --init --recursive","postcompile":"npm run submodule && npm run protos:copy","protos:copy":"cpx protos/opentelemetry/**/*.* build/protos/opentelemetry"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.16.1+x64 (linux)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.16.1","dependencies":{"@grpc/grpc-js":"^1.2.12","@grpc/proto-loader":"^0.6.0","@opentelemetry/core":"^0.19.0","@opentelemetry/metrics":"^0.19.0","@opentelemetry/tracing":"^0.19.1-alpha.13+329cf927","@opentelemetry/resources":"^0.19.0","@opentelemetry/exporter-collector":"^0.19.1-alpha.13+329cf927"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cpx":"1.5.0","gts":"3.1.0","nyc":"15.1.0","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","ts-loader":"8.2.0","typescript":"4.2.4","@babel/core":"7.14.0","@types/node":"14.14.43","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@opentelemetry/api":"^1.0.0-rc.0","@opentelemetry/api-metrics":"^0.19.0"},"peerDependencies":{"@opentelemetry/api":"^1.0.0-rc.0"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.19.1-alpha.13_1619852763675_0.7349723975920675","host":"s3://npm-registry-packages"}},"0.19.1-alpha.14":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.19.1-alpha.14","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.19.1-alpha.14","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"76b9d21aa035d720cf7ccdae4e8b801e9351aae8","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.19.1-alpha.14.tgz","fileCount":35,"integrity":"sha512-tnqvIIMro3q5PKURr9PJfpsTpEeeRBhi/7jnb2eXwvReg39rfNmsVQiULm20MREWgh7x4DyfhrWjEkZIVBrCxA==","signatures":[{"sig":"MEQCIB6EjbhvCPOKylVqfdBtkYGmKqSrjsMTjja0vBSAU2jNAiBhlX1P9nUuPv5LqbBlyp11fo59Tih+wlYqROi1m7NZ8Q==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":105324,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgjQVoCRA9TVsSAnZWagAA/ikP/00fGUnxESnEGvchEbYt\ndtToUF4IOfV22JbHEywD0WrqmV7BKY95WKjO3ex9YitR0jVqdAwYnaTfFPSg\nzKWVBCtRTa2a3r1BrAmCyFAh0FvXJCPvWjdTHKzcJknnRhuTbQhz9Hgzx+Pw\nkuuj7s1pERxh77jaf+NjJ6gwCDXoPlHNRdJnWgYIigWiJ0ALEZ8t3Lt8S1U2\naDiXiGrCJIKjlyJbL0OExdtZJHyKrlB5ch2otc9XVCjlqVgAnihWThzNR4Mp\nAt2lQfN4fcCXnmPIQXUvEo9xOOOGLUbD87HcfeU1sP43E1m5216xIdlNdGkJ\n1FSgSZ3R8svHgZUwskhlqmZXKhjRk356PgOCR4PPdhO3FEVYlyZma57U3i/S\nHCdQl7KRad72rlxQWVc0NIzTETZDFXJ1Z0LSBioFLol4kSfc8Q+ZtONDxdwm\n8+K0qC/CgjbcVzMxhMVsDRY5HZNjBwntbHfQ2qofHPGsokiM4pRk4iBDuPSL\n2fW/9qqHBTRo+30fhhNCSLBT3HpnL/dlcBm6JRpN6MeHYdog5TcH26VO9crE\nigA9or+d9TLL4+4DqiGMof7PT3Q4yUB/Kz0OjpUBPrrWkRKXonhOPmVWYjrS\nCwuE3vxvV+WUcnsM5yYDmELxpOKvXzN2F7x+Zc9YIglXKKyJyrJelwyTIYNU\nEtyl\r\n=TE6t\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry Collector Exporter for node with grpc\n\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.16.0**.\n\n## Installation\n\n```bash\nnpm install --save @opentelemetry/exporter-collector-grpc\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-grpc');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  url: '<opentelemetry-collector-url>' // url is optional and can be omitted - default is localhost:4317\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-grpc');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  url: '<opentelemetry-collector-url>', // url is optional and can be omitted - default is localhost:4317\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-grpc');\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:4317\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## Metrics in Node - GRPC\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-grpc');\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 in [GitHub Discussions][discussions-url]\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\n[discussions-url]: https://github.com/open-telemetry/opentelemetry-js/discussions\n[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/main/LICENSE\n[license-image]: https://img.shields.io/badge/license-Apache_2.0-green.svg?style=flat\n[dependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc\n[devDependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/exporter-collector-grpc\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fexporter-collector-grpc.svg\n[opentelemetry-collector-url]: https://github.com/open-telemetry/opentelemetry-collector\n","engines":{"node":">=8.0.0"},"gitHead":"e1e79ef11c3cc190805c3d870cd82060903d6e15","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"npm run protos:copy && tsc -w","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","submodule":"git submodule sync --recursive && git submodule update --init --recursive","postcompile":"npm run submodule && npm run protos:copy","protos:copy":"cpx protos/opentelemetry/**/*.* build/protos/opentelemetry"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.16.1+x64 (linux)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.16.1","dependencies":{"@grpc/grpc-js":"^1.2.12","@grpc/proto-loader":"^0.6.0","@opentelemetry/core":"^0.19.0","@opentelemetry/metrics":"^0.19.0","@opentelemetry/tracing":"^0.19.1-alpha.14+e1e79ef1","@opentelemetry/resources":"^0.19.0","@opentelemetry/exporter-collector":"^0.19.1-alpha.14+e1e79ef1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cpx":"1.5.0","gts":"3.1.0","nyc":"15.1.0","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","ts-loader":"8.2.0","typescript":"4.2.4","@babel/core":"7.14.0","@types/node":"14.14.43","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@opentelemetry/api":"^1.0.0-rc.0","@opentelemetry/api-metrics":"^0.19.0"},"peerDependencies":{"@opentelemetry/api":"^1.0.0-rc.0"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.19.1-alpha.14_1619854696416_0.6132942271682496","host":"s3://npm-registry-packages"}},"0.19.1-alpha.16":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.19.1-alpha.16","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.19.1-alpha.16","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"da6a9149dcbe35cf594e3268cfe275f86b161230","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.19.1-alpha.16.tgz","fileCount":35,"integrity":"sha512-UM2uPKtzd1EXyoHp962c6dX7DzU0z0zaohNXU165XA7q/4zElH3aBbSfqS7X8pj6z1VaLm8KeecK/UvWBdO9cw==","signatures":[{"sig":"MEQCIGviJZ7K7oNLhlaudrv2Sq1haO0UGcd3liK6foXhAxvrAiAYP/PTrRLz5KdaqFxQ8dtWRabezD0LT5Cqh8hibiy+2A==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":107044,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgkDZiCRA9TVsSAnZWagAAvo4P/RaSGum2BRP0VYaIjfxq\nJP3V6JkyVpJ9jmNV2J9nYwMG7Mo0OOfDPLia1GAeEXXBHoPbGKgNOr1xvwMu\nUd/NTsyjDRs8nE6RewSCrApp0WSuIBK+y15SAhdld9pBuUb3NJwj8DhCMPpQ\nRHeUFKSODOLyDoFfVNGNAh7a4QMSk7R4Cun9/maFf04KSufZkG2fO8ZQsCCZ\n3LINJhgWQaVEWX9aES/6VdkY3Pdt9mODfkLsP2/5TXSsB6IheU17Qqk0wdaD\nIkOL49y95XePqvtyTdjigfUsJhtSe3QQJHrM6XORejX2pykNWLP01Oq6rJQ3\nnJqKwojMgYwI6kQiuRZhNQamcplnDOZ0VKS5SA4T7xlq+yN1Xbb5Nslhnq0R\nNrxgbP8TDALatAxnbbud4enNauH46KPVq18ILWtfHe2GVfregocd5jZ81rUr\nv970J6tEdqOdv7QKkN7KDx8yCjChvgg2WtC+ponV5Cw6xyu0qolQekY/QUUc\nZ8MMSR7ek8nHOXd+uL0wn9DxvKBnY/IzOAiHxhBgvfGbB2TfjqMN8Et4kx55\nHAOfWLAKn7mdUWMa1j4j0yx0wG3LKb0V0Mo01HTwYedTYEP35iXf6qs/0mfB\n2HScLQqhRrExRdSkqwNXfrpBA+OOPk+GnJoLGpSZ9tDz930dpvCH4Z/p694e\n5GM3\r\n=dRVf\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry Collector Exporter for node with grpc\n\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.16.0**.\n\n## Installation\n\n```bash\nnpm install --save @opentelemetry/exporter-collector-grpc\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-grpc');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  // url is optional and can be omitted - default is localhost:4317\n  url: '<collector-hostname>:<port>',\n};\n\nconst provider = new BasicTracerProvider();\nconst exporter = new CollectorTraceExporter(collectorOptions);\nprovider.addSpanProcessor(new SimpleSpanProcessor(exporter));\n\nprovider.register();\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\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/grpc-js');\n\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/tracing');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  // url is optional and can be omitted - default is localhost:4317\n  url: '<collector-hostname>:<port>',\n  credentials: grpc.credentials.createSsl(),\n};\n\nconst provider = new BasicTracerProvider();\nconst exporter = new CollectorTraceExporter(collectorOptions);\nprovider.addSpanProcessor(new SimpleSpanProcessor(exporter));\n\nprovider.register();\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n```\n\nTo use mutual authentication, pass to the `createSsl()` constructor:\n\n```js\n  credentials: grpc.credentials.createSsl(\n    fs.readFileSync('./ca.crt'),\n    fs.readFileSync('./client.key'),\n    fs.readFileSync('./client.crt')\n  ),\n```\n\nTo generate credentials for mutual authentication, 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/grpc-js');\n\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/tracing');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst metadata = new grpc.Metadata();\n// For instance, an API key or access token might go here.\nmetadata.set('k', 'v');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  // url is optional and can be omitted - default is localhost:4317\n  url: '<collector-hostname>:<port>',\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['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n```\n\nNote, that this will only work if TLS is also configured on the server.\n\n## Metrics in Node - GRPC\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-grpc');\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  // url is optional and can be omitted - default is localhost:4317\n  url: '<collector-hostname>:<port>',\n};\nconst exporter = new CollectorMetricExporter(collectorOptions);\n\n// Register the exporter\nconst provider = new MeterProvider({\n  exporter,\n  interval: 60000,\n})\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n\n// Now, start recording data\nconst meter = provider.getMeter('example-meter');\nconst counter = meter.createCounter('metric_name');\ncounter.add(10, { 'key': 'value' });\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 in [GitHub Discussions][discussions-url]\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\n[discussions-url]: https://github.com/open-telemetry/opentelemetry-js/discussions\n[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/main/LICENSE\n[license-image]: https://img.shields.io/badge/license-Apache_2.0-green.svg?style=flat\n[dependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc\n[devDependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/exporter-collector-grpc\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fexporter-collector-grpc.svg\n[opentelemetry-collector-url]: https://github.com/open-telemetry/opentelemetry-collector\n","engines":{"node":">=8.0.0"},"gitHead":"cd54a452749178e3eb881878999710aa864e11d1","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"npm run protos:copy && tsc -w","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","submodule":"git submodule sync --recursive && git submodule update --init --recursive","postcompile":"npm run submodule && npm run protos:copy","protos:copy":"cpx protos/opentelemetry/**/*.* build/protos/opentelemetry"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.16.1+x64 (linux)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.16.1","dependencies":{"@grpc/grpc-js":"^1.2.12","@grpc/proto-loader":"^0.6.0","@opentelemetry/core":"^0.19.0","@opentelemetry/metrics":"^0.19.0","@opentelemetry/tracing":"^0.19.0","@opentelemetry/resources":"^0.19.0","@opentelemetry/exporter-collector":"^0.19.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cpx":"1.5.0","gts":"3.1.0","nyc":"15.1.0","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","ts-loader":"8.2.0","typescript":"4.2.4","@babel/core":"7.14.0","@types/node":"14.14.43","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@opentelemetry/api":"^1.0.0-rc.0","@opentelemetry/api-metrics":"^0.19.0"},"peerDependencies":{"@opentelemetry/api":"^1.0.0-rc.0"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.19.1-alpha.16_1620063841902_0.4505389024916213","host":"s3://npm-registry-packages"}},"0.19.1-alpha.19":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.19.1-alpha.19","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.19.1-alpha.19","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"44764f561156d1c0e1051a34c001886c7368300e","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.19.1-alpha.19.tgz","fileCount":35,"integrity":"sha512-mt3FLK7QrIayfjeHGthnkgi1mF8hhliGr59f/2UFGpJZwdR1BrVDNH/i1V65E40+wlGkki8j6yNtF4LKtEawdw==","signatures":[{"sig":"MEUCIDqRSMiu2NXLgfZavZFgPTN+HmSjihVHpoLLi5EJwCWeAiEAzePQhGTXLW9PjdKt+e/2n1+QNbCKu3gWKUiTKUDGeq8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":107134,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJglkOuCRA9TVsSAnZWagAAti0P/iEjbOiVf2OhyjRSHsSk\n6Wf0sLPx88S2QWtfd7aNCkb4/lcZjSx4QT9/Glre/guStEwuWuVBJLTyFMJ/\nyU/LbJyc14pfLyxF4Ja1Jwr/Yd1QOt/uRofmgp1B9ZbgFgR6mpLuO5sH3R2c\nq6YbkUQ/e57h9CuKV6zK/5b7e68+WDcwYW/+MPm04txAb9U7t0uyfEcN+utr\ndI4tH+ySipsq91SyqO7r3lVyPLjBlBUrnZwj3bm/osAId6Jba6MIO/+pfuS+\nOJmN9Mplh9+tH3IX9w7cZamxceVCuewRLs93tIMcNLqD2r/x32/6p8ZJgbUa\n10wZxxrWSGbo7IxMGUAhlMcSqaAX0PLvXWV6DvH00kqyOmIq/Fpl5EyLMz8f\njSmqFVbCvxuewOalfKDn7Ez/APyL2sTMebp+8CFKMYcmvxKWgzEQgTiEz6+B\n2gvWYSLSEfElr18bmT3Gu3C+2x37ew0tKMs7Lip1wn3IHLgQvOhsFCLxcxJA\n4Dz0vP2vIRvzn4mP6AEW4PyAesXH/kJiSiosCz/3Un//gESLNuZ0NMsX0EQk\n9V7OUzIEI25VCGEYNx+42Ynir/brabuW2Hvsz+w7ErSLxPKx09Kh3o+QulP7\ncEsq1eM8iE5PBmXsnj9PBT58o6TQDSALe7S56HWKOPTA6dwGiuVNmWyfwQlk\nno6H\r\n=hdv9\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry Collector Exporter for node with grpc\n\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.16.0**.\n\n## Installation\n\n```bash\nnpm install --save @opentelemetry/exporter-collector-grpc\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-grpc');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  // url is optional and can be omitted - default is localhost:4317\n  url: '<collector-hostname>:<port>',\n};\n\nconst provider = new BasicTracerProvider();\nconst exporter = new CollectorTraceExporter(collectorOptions);\nprovider.addSpanProcessor(new SimpleSpanProcessor(exporter));\n\nprovider.register();\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\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/grpc-js');\n\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/tracing');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  // url is optional and can be omitted - default is localhost:4317\n  url: '<collector-hostname>:<port>',\n  credentials: grpc.credentials.createSsl(),\n};\n\nconst provider = new BasicTracerProvider();\nconst exporter = new CollectorTraceExporter(collectorOptions);\nprovider.addSpanProcessor(new SimpleSpanProcessor(exporter));\n\nprovider.register();\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n```\n\nTo use mutual authentication, pass to the `createSsl()` constructor:\n\n```js\n  credentials: grpc.credentials.createSsl(\n    fs.readFileSync('./ca.crt'),\n    fs.readFileSync('./client.key'),\n    fs.readFileSync('./client.crt')\n  ),\n```\n\nTo generate credentials for mutual authentication, 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/grpc-js');\n\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/tracing');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst metadata = new grpc.Metadata();\n// For instance, an API key or access token might go here.\nmetadata.set('k', 'v');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  // url is optional and can be omitted - default is localhost:4317\n  url: '<collector-hostname>:<port>',\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['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n```\n\nNote, that this will only work if TLS is also configured on the server.\n\n## Metrics in Node - GRPC\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-grpc');\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  // url is optional and can be omitted - default is localhost:4317\n  url: '<collector-hostname>:<port>',\n};\nconst exporter = new CollectorMetricExporter(collectorOptions);\n\n// Register the exporter\nconst provider = new MeterProvider({\n  exporter,\n  interval: 60000,\n})\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n\n// Now, start recording data\nconst meter = provider.getMeter('example-meter');\nconst counter = meter.createCounter('metric_name');\ncounter.add(10, { 'key': 'value' });\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 in [GitHub Discussions][discussions-url]\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\n[discussions-url]: https://github.com/open-telemetry/opentelemetry-js/discussions\n[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/main/LICENSE\n[license-image]: https://img.shields.io/badge/license-Apache_2.0-green.svg?style=flat\n[dependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc\n[devDependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/exporter-collector-grpc\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fexporter-collector-grpc.svg\n[opentelemetry-collector-url]: https://github.com/open-telemetry/opentelemetry-collector\n","engines":{"node":">=8.0.0"},"gitHead":"9ce9eea7cad32cbc57bd80830f21e4f366ecf929","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"npm run protos:copy && tsc -w","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","submodule":"git submodule sync --recursive && git submodule update --init --recursive","postcompile":"npm run submodule && npm run protos:copy","protos:copy":"cpx protos/opentelemetry/**/*.* build/protos/opentelemetry"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.16.1+x64 (linux)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.16.1","dependencies":{"@grpc/grpc-js":"^1.2.12","@grpc/proto-loader":"^0.6.0","@opentelemetry/core":"^0.19.1-alpha.19+9ce9eea7","@opentelemetry/metrics":"^0.19.1-alpha.19+9ce9eea7","@opentelemetry/tracing":"^0.19.1-alpha.19+9ce9eea7","@opentelemetry/resources":"^0.19.1-alpha.19+9ce9eea7","@opentelemetry/exporter-collector":"^0.19.1-alpha.19+9ce9eea7"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cpx":"1.5.0","gts":"3.1.0","nyc":"15.1.0","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","ts-loader":"8.2.0","typescript":"4.2.4","@babel/core":"7.14.0","@types/node":"14.14.43","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@opentelemetry/api":"^1.0.0-rc.0","@opentelemetry/api-metrics":"^0.19.0"},"peerDependencies":{"@opentelemetry/api":"^1.0.0-rc.0"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.19.1-alpha.19_1620460461780_0.914389598354943","host":"s3://npm-registry-packages"}},"0.19.1-alpha.21":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.19.1-alpha.21","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.19.1-alpha.21","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"f0cc5028f1240421040af12d450f1ee7741c538a","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.19.1-alpha.21.tgz","fileCount":35,"integrity":"sha512-pDyckLkzYPaq3f37rWL3EHHzVSX8S6t7zI6kRZ2TcW05X9y05ifwaU+t/nClipn4lG/qiPo9IezND67Bly794g==","signatures":[{"sig":"MEUCIAEJ88japg0Q6bVbDKV5kMz3GC83l+pwrHV3A+RVMAsDAiEAyIlBJPHbch5+lQuYRpKPpifsuKr/DgIR0obPL4hiRrU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":107134,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgmtHxCRA9TVsSAnZWagAATpoQAImsv8UgqkMGMP+ytbFL\nAaGYwSMNYpTqlWJxdRM24/Ofsaw87IekG/H2w3tuVaWESHmvQsL81WdTdqtp\nvnIBjF4IlKGfAWsbmJB3FSkK89A6SbjozmkpIflPc0I0ZDPuGbfsn2SZTDtv\nDSi/UR70apaqAENXjfYEACvGUIy3MyfgD2rV+nDURizafKNzRQJIOjq2zp+g\n3HYN7JQ9dC4S6VXWia/OGdIDD+3wEMZtHOc2THKWHWawu97gPmvaRx1GsIdm\n7q6248EtbYsAQ5jWxtlwl/dV5V2YJiLeVTEGeI55M/pRVXYi4O13u6uGRszo\nHqxg9T5M9RTcpXeqh0nYKpGvCpkINV7/Qhx7rOydWrocCPC2NSSdf8c02k+i\nIJmCNuXN7GFLrpjWeBNbi1jJ3NeRT1KJ2lre/pjXt48MiI2LFfkujfLwoOkP\nUMKMD/gZGFFcLzHRPDEYxS3Hvv7YJTKbFuyXnUUVqm3rNh/mfZnmeRSNjyj4\nQajaXX+T1OUpiDVA0S4dEMA0iAjq1ss5z1k6yFPO0Jp8cZzY574hugJrFImc\nlIJ89znr+yqqptRAM2WryYHh9iBrks3syLVLN78DjLNpo+jWUw/IVB3R6MNt\ndyB1uEC+7N1ykq3OxN+m2WXP1RE3pp0XvRihrBRwDgKiIgsyL1DwfJNRKolm\nQC+P\r\n=t1us\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry Collector Exporter for node with grpc\n\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.16.0**.\n\n## Installation\n\n```bash\nnpm install --save @opentelemetry/exporter-collector-grpc\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-grpc');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  // url is optional and can be omitted - default is localhost:4317\n  url: '<collector-hostname>:<port>',\n};\n\nconst provider = new BasicTracerProvider();\nconst exporter = new CollectorTraceExporter(collectorOptions);\nprovider.addSpanProcessor(new SimpleSpanProcessor(exporter));\n\nprovider.register();\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\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/grpc-js');\n\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/tracing');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  // url is optional and can be omitted - default is localhost:4317\n  url: '<collector-hostname>:<port>',\n  credentials: grpc.credentials.createSsl(),\n};\n\nconst provider = new BasicTracerProvider();\nconst exporter = new CollectorTraceExporter(collectorOptions);\nprovider.addSpanProcessor(new SimpleSpanProcessor(exporter));\n\nprovider.register();\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n```\n\nTo use mutual authentication, pass to the `createSsl()` constructor:\n\n```js\n  credentials: grpc.credentials.createSsl(\n    fs.readFileSync('./ca.crt'),\n    fs.readFileSync('./client.key'),\n    fs.readFileSync('./client.crt')\n  ),\n```\n\nTo generate credentials for mutual authentication, 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/grpc-js');\n\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/tracing');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst metadata = new grpc.Metadata();\n// For instance, an API key or access token might go here.\nmetadata.set('k', 'v');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  // url is optional and can be omitted - default is localhost:4317\n  url: '<collector-hostname>:<port>',\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['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n```\n\nNote, that this will only work if TLS is also configured on the server.\n\n## Metrics in Node - GRPC\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-grpc');\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  // url is optional and can be omitted - default is localhost:4317\n  url: '<collector-hostname>:<port>',\n};\nconst exporter = new CollectorMetricExporter(collectorOptions);\n\n// Register the exporter\nconst provider = new MeterProvider({\n  exporter,\n  interval: 60000,\n})\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n\n// Now, start recording data\nconst meter = provider.getMeter('example-meter');\nconst counter = meter.createCounter('metric_name');\ncounter.add(10, { 'key': 'value' });\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 in [GitHub Discussions][discussions-url]\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\n[discussions-url]: https://github.com/open-telemetry/opentelemetry-js/discussions\n[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/main/LICENSE\n[license-image]: https://img.shields.io/badge/license-Apache_2.0-green.svg?style=flat\n[dependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc\n[devDependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/exporter-collector-grpc\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fexporter-collector-grpc.svg\n[opentelemetry-collector-url]: https://github.com/open-telemetry/opentelemetry-collector\n","engines":{"node":">=8.0.0"},"gitHead":"5cd02aa12e0bf08a9736f11f09ebaaad582eed27","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"npm run protos:copy && tsc -w","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","submodule":"git submodule sync --recursive && git submodule update --init --recursive","postcompile":"npm run submodule && npm run protos:copy","protos:copy":"cpx protos/opentelemetry/**/*.* build/protos/opentelemetry"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.16.1+x64 (linux)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.16.1","dependencies":{"@grpc/grpc-js":"^1.2.12","@grpc/proto-loader":"^0.6.0","@opentelemetry/core":"^0.19.1-alpha.21+5cd02aa1","@opentelemetry/metrics":"^0.19.1-alpha.21+5cd02aa1","@opentelemetry/tracing":"^0.19.1-alpha.21+5cd02aa1","@opentelemetry/resources":"^0.19.1-alpha.21+5cd02aa1","@opentelemetry/exporter-collector":"^0.19.1-alpha.21+5cd02aa1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cpx":"1.5.0","gts":"3.1.0","nyc":"15.1.0","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","ts-loader":"8.2.0","typescript":"4.2.4","@babel/core":"7.14.0","@types/node":"14.14.43","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@opentelemetry/api":"^1.0.0-rc.0","@opentelemetry/api-metrics":"^0.19.0"},"peerDependencies":{"@opentelemetry/api":"^1.0.0-rc.0"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.19.1-alpha.21_1620759024603_0.4566018407676513","host":"s3://npm-registry-packages"}},"0.19.1-alpha.23":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.19.1-alpha.23","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.19.1-alpha.23","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"422dae41ad469611133390b182667d096e6b8336","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.19.1-alpha.23.tgz","fileCount":35,"integrity":"sha512-gGXHBgf5Ha2Lv2bFiHKwN8kJr81sSxTcrXQENNvAsbj06fmeHvK0UzcrlgtE04UsRoKdaznT3f3QXpBK0VMrLw==","signatures":[{"sig":"MEQCIHg8a3AO7k6qi7SN7rF8YpFfAOxCXhB20pT47aKSJKrdAiBtLh9LJwLzeRhsAsSEYEAyxLG96zCKyWBYdo63ebTUQg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":107080,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgmuVpCRA9TVsSAnZWagAABMgP/2GG2DEVsxjoIqW3rQdt\npDdLnG+iF1R4Fn3o8a/GCLBylkAnhesh+8+OexxKlNpNXI6afnXQEqXAHXdn\n/+MsaE26+K3Dg2NbdwathzUK9dsaYmRb2t/4itGB4yalzBkFTiXEmKfSaw3U\ng9inXWbW3jNMYAJYEqxXkh+PqJFeNBo6Wh//cTwakaa3+oHIfmkvMXMHsI7m\n9gYOPYYQC5SCP/NPW65+boZPO/+OP7yzwLlnfnWthbSuSKc/nzQ34BKoUKu7\nFpxLcI+LP/vmSbTuFY+GVeM6NKGyDxdUEZIlI67/d6kVyA3FZrWXIA9ADiT3\nmov8PLa35NvZFmvagOIIOK9HVSngCPPPmH0o85CQr+ub/hsYo0I2R/jV7BG3\nV0Twu+1aSJpJaURLfFe+uedP7zT/fQFoNeNNHYeCdU9rOhlA8hBn9GbQu97Q\nPjDHAjaDiCB8QYtwSuDA1Ex/qFja2yylAE5RoQVUtSPWnEq74flruFHGuVQH\nArUlNkHvvOnJjbYh54EjU1Zx6TWoUHgtkc86IyrhLTeLg0RKvpIslLbGrA7Z\n6U1Yes616T+f2tl16MW7ARtTNeCQlVogKIhVRJz062XtV4cYqyIuCikfP8NA\nSailMgwirIoIfwnDyS+zhw7XnRROtZ7fX4XJ9Auir0PALpkdpuz1omIhm2xR\n1FEp\r\n=tkag\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry Collector Exporter for node with grpc\n\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.16.0**.\n\n## Installation\n\n```bash\nnpm install --save @opentelemetry/exporter-collector-grpc\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-grpc');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  // url is optional and can be omitted - default is localhost:4317\n  url: '<collector-hostname>:<port>',\n};\n\nconst provider = new BasicTracerProvider();\nconst exporter = new CollectorTraceExporter(collectorOptions);\nprovider.addSpanProcessor(new SimpleSpanProcessor(exporter));\n\nprovider.register();\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\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/grpc-js');\n\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/tracing');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  // url is optional and can be omitted - default is localhost:4317\n  url: '<collector-hostname>:<port>',\n  credentials: grpc.credentials.createSsl(),\n};\n\nconst provider = new BasicTracerProvider();\nconst exporter = new CollectorTraceExporter(collectorOptions);\nprovider.addSpanProcessor(new SimpleSpanProcessor(exporter));\n\nprovider.register();\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n```\n\nTo use mutual authentication, pass to the `createSsl()` constructor:\n\n```js\n  credentials: grpc.credentials.createSsl(\n    fs.readFileSync('./ca.crt'),\n    fs.readFileSync('./client.key'),\n    fs.readFileSync('./client.crt')\n  ),\n```\n\nTo generate credentials for mutual authentication, 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/grpc-js');\n\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/tracing');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst metadata = new grpc.Metadata();\n// For instance, an API key or access token might go here.\nmetadata.set('k', 'v');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  // url is optional and can be omitted - default is localhost:4317\n  url: '<collector-hostname>:<port>',\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['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n```\n\nNote, that this will only work if TLS is also configured on the server.\n\n## Metrics in Node - GRPC\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-grpc');\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  // url is optional and can be omitted - default is localhost:4317\n  url: '<collector-hostname>:<port>',\n};\nconst exporter = new CollectorMetricExporter(collectorOptions);\n\n// Register the exporter\nconst provider = new MeterProvider({\n  exporter,\n  interval: 60000,\n})\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n\n// Now, start recording data\nconst meter = provider.getMeter('example-meter');\nconst counter = meter.createCounter('metric_name');\ncounter.add(10, { 'key': 'value' });\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 in [GitHub Discussions][discussions-url]\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\n[discussions-url]: https://github.com/open-telemetry/opentelemetry-js/discussions\n[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/main/LICENSE\n[license-image]: https://img.shields.io/badge/license-Apache_2.0-green.svg?style=flat\n[dependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc\n[devDependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/exporter-collector-grpc\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fexporter-collector-grpc.svg\n[opentelemetry-collector-url]: https://github.com/open-telemetry/opentelemetry-collector\n","engines":{"node":">=8.0.0"},"gitHead":"805c2e87283690142d3b1970130f1fc1da2b2a4d","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"npm run protos:copy && tsc -w","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","submodule":"git submodule sync --recursive && git submodule update --init --recursive","postcompile":"npm run submodule && npm run protos:copy","protos:copy":"cpx protos/opentelemetry/**/*.* build/protos/opentelemetry"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.16.1+x64 (linux)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.16.1","dependencies":{"@grpc/grpc-js":"^1.2.12","@grpc/proto-loader":"^0.6.0","@opentelemetry/core":"^0.19.0","@opentelemetry/metrics":"^0.19.0","@opentelemetry/tracing":"^0.19.1-alpha.23+805c2e87","@opentelemetry/resources":"^0.19.0","@opentelemetry/exporter-collector":"^0.19.1-alpha.23+805c2e87"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cpx":"1.5.0","gts":"3.1.0","nyc":"15.1.0","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","ts-loader":"8.2.0","typescript":"4.2.4","@babel/core":"7.14.0","@types/node":"14.14.43","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@opentelemetry/api":"^1.0.0-rc.0","@opentelemetry/api-metrics":"^0.19.0"},"peerDependencies":{"@opentelemetry/api":"^1.0.0-rc.0"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.19.1-alpha.23_1620764008739_0.4538930304404163","host":"s3://npm-registry-packages"}},"0.19.1-alpha.25":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.19.1-alpha.25","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.19.1-alpha.25","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"8686de352171f188c6d9dc6de6f1beb72ec3f45c","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.19.1-alpha.25.tgz","fileCount":35,"integrity":"sha512-7nNj6vnULz/vt0BRRSZDRwuVNnZ4GD3I6hvhWQUy4QmfqPYBy7F8WxoJpo70RIQD4argbTuTRdeH2xajJGByMw==","signatures":[{"sig":"MEUCIGttyPD36YKEK/6bwKKVJt0stbgjn0tciPHBpgG2qyWfAiEAgUpWbIGh52712mkPFw/E7gYyxJ7UXS3jzBiTuaKWO8Y=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":108247,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgm/onCRA9TVsSAnZWagAARloP/jbYlyvcy72LdIo8OTJ/\nzjOREgwa/aRvUszKA7stlbxqVgFYfnNoXby1w0g5c7i6oA15r/mTpDMOx9WU\nVvFtDE4tIZt8VWB050kz9H1V9yDFfnCqqwvy6NXpxK+EjAX2xpsPuBWcFQfH\nwSfF92hvVSl29P2BL+MMP2i/mVCUEfRBtoV8sXKg8XXjnJ8k0x6OwoRtnTAv\np0MhBL50ijO8aftZ/Gi90aVq+ywrGKWa2TreVtn6sIFdzIQyd1jmJPs4GQcC\nyZyT0RjOOaGilBqMRKC6AOQ9atTZAl2m6nol8psTYMUtsTeTdW1g8HOjti5i\nkd/GOkNMampkV5+x1AcsP+b164Hc1QdB9FPy6n0YEl0rpXd5grCSlR2VEv+F\n/MzU0L3IhJjhQM4mZPpRNqB3Uvsd4YVP1vllK8myMCP6dCz6KIdQCE5Sw3fm\nbLVevDaSuN3wpGBgqNz/rcm9mCmGBf7I3LrtYTBJg14TDhDJlMALMlcB4CFO\nQ+vcqoXUohOV7H0suRVAdLhiktpyDOMucHYYcq0uT7k0aW4UxUhGVgBSN+Yl\n4sdsEJtG3W4Mah5iDWTG3Lv2S308V2Jrxr3ZZzCFyDaPGuZhHC5CigRlm6s2\nrVTq3u9iGJc/0lrf67sbPDF/L9v+YFvbNqbWQveJj1wPXNbHbo1ke1YBft1r\n6ExZ\r\n=WQUS\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry Collector Exporter for node with grpc\n\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.25.0**.\n\n## Installation\n\n```bash\nnpm install --save @opentelemetry/exporter-collector-grpc\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/traces`.\n\n```js\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/tracing');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  // url is optional and can be omitted - default is localhost:4317\n  url: '<collector-hostname>:<port>',\n};\n\nconst provider = new BasicTracerProvider();\nconst exporter = new CollectorTraceExporter(collectorOptions);\nprovider.addSpanProcessor(new SimpleSpanProcessor(exporter));\n\nprovider.register();\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\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/grpc-js');\n\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/tracing');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  // url is optional and can be omitted - default is localhost:4317\n  url: '<collector-hostname>:<port>',\n  credentials: grpc.credentials.createSsl(),\n};\n\nconst provider = new BasicTracerProvider();\nconst exporter = new CollectorTraceExporter(collectorOptions);\nprovider.addSpanProcessor(new SimpleSpanProcessor(exporter));\n\nprovider.register();\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n```\n\nTo use mutual authentication, pass to the `createSsl()` constructor:\n\n```js\n  credentials: grpc.credentials.createSsl(\n    fs.readFileSync('./ca.crt'),\n    fs.readFileSync('./client.key'),\n    fs.readFileSync('./client.crt')\n  ),\n```\n\nTo generate credentials for mutual authentication, 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/grpc-js');\n\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/tracing');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst metadata = new grpc.Metadata();\n// For instance, an API key or access token might go here.\nmetadata.set('k', 'v');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  // url is optional and can be omitted - default is localhost:4317\n  url: '<collector-hostname>:<port>',\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['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n```\n\nNote, that this will only work if TLS is also configured on the server.\n\n## Metrics in Node - GRPC\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-grpc');\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  // url is optional and can be omitted - default is localhost:4317\n  url: '<collector-hostname>:<port>',\n};\nconst exporter = new CollectorMetricExporter(collectorOptions);\n\n// Register the exporter\nconst provider = new MeterProvider({\n  exporter,\n  interval: 60000,\n})\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n\n// Now, start recording data\nconst meter = provider.getMeter('example-meter');\nconst counter = meter.createCounter('metric_name');\ncounter.add(10, { 'key': 'value' });\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 in [GitHub Discussions][discussions-url]\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\n[discussions-url]: https://github.com/open-telemetry/opentelemetry-js/discussions\n[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/main/LICENSE\n[license-image]: https://img.shields.io/badge/license-Apache_2.0-green.svg?style=flat\n[dependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc\n[devDependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/exporter-collector-grpc\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fexporter-collector-grpc.svg\n[opentelemetry-collector-url]: https://github.com/open-telemetry/opentelemetry-collector\n","engines":{"node":">=8.0.0"},"gitHead":"02239b52557fe5b4c5ae6eba742340428b856492","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"npm run protos:copy && tsc -w","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","submodule":"git submodule sync --recursive && git submodule update --init --recursive","postcompile":"npm run submodule && npm run protos:copy","protos:copy":"cpx protos/opentelemetry/**/*.* build/protos/opentelemetry"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.16.1+x64 (linux)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.16.1","dependencies":{"@grpc/grpc-js":"^1.2.12","@grpc/proto-loader":"^0.6.0","@opentelemetry/core":"^0.19.1-alpha.25+02239b52","@opentelemetry/metrics":"^0.19.1-alpha.25+02239b52","@opentelemetry/tracing":"^0.19.1-alpha.25+02239b52","@opentelemetry/resources":"^0.19.1-alpha.25+02239b52","@opentelemetry/exporter-collector":"^0.19.1-alpha.25+02239b52"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cpx":"1.5.0","gts":"3.1.0","nyc":"15.1.0","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","ts-loader":"8.2.0","typescript":"4.2.4","@babel/core":"7.14.0","@types/node":"14.14.43","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@opentelemetry/api":"^1.0.0-rc.0","@opentelemetry/api-metrics":"^0.19.0"},"peerDependencies":{"@opentelemetry/api":"^1.0.0-rc.0"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.19.1-alpha.25_1620834854552_0.2588989508010393","host":"s3://npm-registry-packages"}},"0.19.1-alpha.26":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.19.1-alpha.26","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.19.1-alpha.26","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"24c4994b90df307f2a5a1186ad0c07cb5200ea59","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.19.1-alpha.26.tgz","fileCount":35,"integrity":"sha512-pIfGqDnYDfrvDcYsPXteIiwcQNZqLwrHLnaU0XS2KW+YjSUA5I+QPM0QDeEu08rZDSIYB1DmUTPg2AQfzXaYQQ==","signatures":[{"sig":"MEUCIASXPOY2+4Cw8+/YNd0zogxpwXLTW7U32jGziA/AvsgkAiEAqBSrjThD0R4yM0XFHd/qu69YMrhGk/1JfYskmxvidFs=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":108247,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgm/0xCRA9TVsSAnZWagAAMXQP/0i9jDHRnI0eLd1K2M9D\nYAAoaI4vpg1RJWa77j3/yx2Kfokz1W2uo6DXW0E/WnJO9cmzRdmLDDjwkgpR\n/S7O+9sB5pdoY0nb9O+lZL1jTwj1PBSKDCGfCF4SN+TupbvCJRAGenu7cXaA\ndPK/y8OtZE1LpwAlpIv7ipCazYXx58p9NpzCygVJ++rzMAnlmqdfm13JKbfk\nH+FKIxDw+68Wsyco671lHHZcL2VGA0MjbPr7AxTqxRNvKtgkRLeApS5M4LgZ\nJXhbJ3nMRsg0dU/R8/od8CisCBHv8Yq7Hj2SefbWXmDylcDpp6jKNboqMU4K\nebrnb/HDzWLvBC1YkuoKxupMFIwYyuIDveNMM9LLbC2JTlLBobY/IpA7c6vi\nbKF7f4lx8SQmwgjyVIjg5WcIfa2Pyo0FzQhW5Mlasjfb/j1tCNb4ngN9kXSY\nQwtHpCGcP52mAMoD2Uq71XmkBtXQ9LqoW6doQjUitF5OiI1wpUx3Z57WL1Df\nHlcV2OrOJWHa59w3lGkC+50xG85h1LoK+PvK6N6jbD8CGhsu+PBdWKpbK4i1\n2EVzNWW8BpdvOYTaIsNcJ+0HEzZQkOR0v4QvdLRO97Sa3yiooa+e5oDSJKyu\nYTlaXlczBTG8xJdyuElDJg8tAq6iN6FSLtH3AUFPhc2Tbo7X3JgZGaQuCX+8\nCLOI\r\n=HkwT\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry Collector Exporter for node with grpc\n\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.25.0**.\n\n## Installation\n\n```bash\nnpm install --save @opentelemetry/exporter-collector-grpc\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/traces`.\n\n```js\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/tracing');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  // url is optional and can be omitted - default is localhost:4317\n  url: '<collector-hostname>:<port>',\n};\n\nconst provider = new BasicTracerProvider();\nconst exporter = new CollectorTraceExporter(collectorOptions);\nprovider.addSpanProcessor(new SimpleSpanProcessor(exporter));\n\nprovider.register();\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\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/grpc-js');\n\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/tracing');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  // url is optional and can be omitted - default is localhost:4317\n  url: '<collector-hostname>:<port>',\n  credentials: grpc.credentials.createSsl(),\n};\n\nconst provider = new BasicTracerProvider();\nconst exporter = new CollectorTraceExporter(collectorOptions);\nprovider.addSpanProcessor(new SimpleSpanProcessor(exporter));\n\nprovider.register();\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n```\n\nTo use mutual authentication, pass to the `createSsl()` constructor:\n\n```js\n  credentials: grpc.credentials.createSsl(\n    fs.readFileSync('./ca.crt'),\n    fs.readFileSync('./client.key'),\n    fs.readFileSync('./client.crt')\n  ),\n```\n\nTo generate credentials for mutual authentication, 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/grpc-js');\n\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/tracing');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst metadata = new grpc.Metadata();\n// For instance, an API key or access token might go here.\nmetadata.set('k', 'v');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  // url is optional and can be omitted - default is localhost:4317\n  url: '<collector-hostname>:<port>',\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['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n```\n\nNote, that this will only work if TLS is also configured on the server.\n\n## Metrics in Node - GRPC\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-grpc');\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  // url is optional and can be omitted - default is localhost:4317\n  url: '<collector-hostname>:<port>',\n};\nconst exporter = new CollectorMetricExporter(collectorOptions);\n\n// Register the exporter\nconst provider = new MeterProvider({\n  exporter,\n  interval: 60000,\n})\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n\n// Now, start recording data\nconst meter = provider.getMeter('example-meter');\nconst counter = meter.createCounter('metric_name');\ncounter.add(10, { 'key': 'value' });\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 in [GitHub Discussions][discussions-url]\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\n[discussions-url]: https://github.com/open-telemetry/opentelemetry-js/discussions\n[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/main/LICENSE\n[license-image]: https://img.shields.io/badge/license-Apache_2.0-green.svg?style=flat\n[dependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc\n[devDependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/exporter-collector-grpc\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fexporter-collector-grpc.svg\n[opentelemetry-collector-url]: https://github.com/open-telemetry/opentelemetry-collector\n","engines":{"node":">=8.0.0"},"gitHead":"1758fa6e84333c9c43cc468c5e99dd3646f7e3c7","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"npm run protos:copy && tsc -w","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","submodule":"git submodule sync --recursive && git submodule update --init --recursive","postcompile":"npm run submodule && npm run protos:copy","protos:copy":"cpx protos/opentelemetry/**/*.* build/protos/opentelemetry"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.16.1+x64 (linux)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.16.1","dependencies":{"@grpc/grpc-js":"^1.2.12","@grpc/proto-loader":"^0.6.0","@opentelemetry/core":"^0.19.1-alpha.26+1758fa6e","@opentelemetry/metrics":"^0.19.1-alpha.26+1758fa6e","@opentelemetry/tracing":"^0.19.1-alpha.26+1758fa6e","@opentelemetry/resources":"^0.19.1-alpha.26+1758fa6e","@opentelemetry/exporter-collector":"^0.19.1-alpha.26+1758fa6e"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cpx":"1.5.0","gts":"3.1.0","nyc":"15.1.0","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","ts-loader":"8.2.0","typescript":"4.2.4","@babel/core":"7.14.0","@types/node":"14.14.43","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@opentelemetry/api":"^1.0.0-rc.0","@opentelemetry/api-metrics":"^0.19.0"},"peerDependencies":{"@opentelemetry/api":"^1.0.0-rc.0"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.19.1-alpha.26_1620835632665_0.3629974033129779","host":"s3://npm-registry-packages"}},"0.19.1-alpha.27":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.19.1-alpha.27","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.19.1-alpha.27","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"d99efdc7143f0a1ddaa42633caf01014a749131e","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.19.1-alpha.27.tgz","fileCount":35,"integrity":"sha512-eil+1Pnpu/y3O1qQ9XUByrhgvidCoy8OPyP8c5Xy0U1R8hdcPIZAi8dTW2y4ghVHoJINADLJXN8SvuS+JL9yqA==","signatures":[{"sig":"MEUCIQCOd8GglIthfHWDbKBr4lEeYk6nkZo60wWCknkoagz/jgIgIXUn7+ps4FtJxtWPa6+iEwROmAnAJTxYiUfewkLSSFk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":108193,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgnPj6CRA9TVsSAnZWagAAliEQAJ8NyaT1fnezGH4BokSh\nOzzQCvHBVlaF1bXPwgAdS9nDBfRh8t10lQfZIavwxJu8/5AOr7tRrDxLVZBQ\n8WYCfXyh0uk6xAdBmXpy6tpQn6C/Qy2dt/u/GgYyISIKBXBubMb7XsYLkiXW\nuSqXkU4xgdV4R15+Xmq/eoVBMsLnGmIzvKxuOAP/Ag9Yrtpx2vhK9hpxAKcq\nI7ZjECw3ilTWRT56dkyj1X6XZ3X8U6caiaF3aZiNMlSmGrf+ErUnbdMLlL8h\nI98EGFAuPVeVCxT3M/3ZT2JZBZa94WOJ2IkZe0S82jkUf4SLJpoQYDVfvGE3\nl+DKa09pp8o2tAoSriEwwmHTb+0RGP6x3yU2CbGHOMnHFZHh+uxpdvtTJ4MB\nw2MudUUDqiBHwXs5wtb/vVJvL0y2nqmJhrUr1u42GAzOL39L+THqZyJguas3\n6F0k4ryrYOb500mcVbENsjCzc0/9kRAlYg+PtZ7X8l+s0LujLFnf2vkr1FJl\nqFwvH/92D8osuuuCx2AHxl3EFL6J6WEQLxr2jZfODLAcERRAFXo2bvmcskyJ\n9pDMTe0OYewrXlLkEbPqsGVq7xisKojqCbQfFRQUs57qmNwlxQpLvqP6PEkE\n6xGsMDCyUSinoUGKQ4Er3MZ0wsiBBnFymOfV/Nyw2CeU3sAohVjihHf1FxI2\nKk5X\r\n=EWSI\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry Collector Exporter for node with grpc\n\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.25.0**.\n\n## Installation\n\n```bash\nnpm install --save @opentelemetry/exporter-collector-grpc\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/traces`.\n\n```js\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/tracing');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  // url is optional and can be omitted - default is localhost:4317\n  url: '<collector-hostname>:<port>',\n};\n\nconst provider = new BasicTracerProvider();\nconst exporter = new CollectorTraceExporter(collectorOptions);\nprovider.addSpanProcessor(new SimpleSpanProcessor(exporter));\n\nprovider.register();\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\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/grpc-js');\n\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/tracing');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  // url is optional and can be omitted - default is localhost:4317\n  url: '<collector-hostname>:<port>',\n  credentials: grpc.credentials.createSsl(),\n};\n\nconst provider = new BasicTracerProvider();\nconst exporter = new CollectorTraceExporter(collectorOptions);\nprovider.addSpanProcessor(new SimpleSpanProcessor(exporter));\n\nprovider.register();\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n```\n\nTo use mutual authentication, pass to the `createSsl()` constructor:\n\n```js\n  credentials: grpc.credentials.createSsl(\n    fs.readFileSync('./ca.crt'),\n    fs.readFileSync('./client.key'),\n    fs.readFileSync('./client.crt')\n  ),\n```\n\nTo generate credentials for mutual authentication, 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/grpc-js');\n\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/tracing');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst metadata = new grpc.Metadata();\n// For instance, an API key or access token might go here.\nmetadata.set('k', 'v');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  // url is optional and can be omitted - default is localhost:4317\n  url: '<collector-hostname>:<port>',\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['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n```\n\nNote, that this will only work if TLS is also configured on the server.\n\n## Metrics in Node - GRPC\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-grpc');\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  // url is optional and can be omitted - default is localhost:4317\n  url: '<collector-hostname>:<port>',\n};\nconst exporter = new CollectorMetricExporter(collectorOptions);\n\n// Register the exporter\nconst provider = new MeterProvider({\n  exporter,\n  interval: 60000,\n})\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n\n// Now, start recording data\nconst meter = provider.getMeter('example-meter');\nconst counter = meter.createCounter('metric_name');\ncounter.add(10, { 'key': 'value' });\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 in [GitHub Discussions][discussions-url]\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\n[discussions-url]: https://github.com/open-telemetry/opentelemetry-js/discussions\n[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/main/LICENSE\n[license-image]: https://img.shields.io/badge/license-Apache_2.0-green.svg?style=flat\n[dependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc\n[devDependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/exporter-collector-grpc\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fexporter-collector-grpc.svg\n[opentelemetry-collector-url]: https://github.com/open-telemetry/opentelemetry-collector\n","engines":{"node":">=8.0.0"},"gitHead":"68852780eb2b65cc4bf492f020ad48a9af96a4e9","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"npm run protos:copy && tsc -w","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","submodule":"git submodule sync --recursive && git submodule update --init --recursive","postcompile":"npm run submodule && npm run protos:copy","protos:copy":"cpx protos/opentelemetry/**/*.* build/protos/opentelemetry"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.16.1+x64 (linux)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.16.1","dependencies":{"@grpc/grpc-js":"^1.2.12","@grpc/proto-loader":"^0.6.0","@opentelemetry/core":"^0.19.0","@opentelemetry/metrics":"^0.19.0","@opentelemetry/tracing":"^0.19.1-alpha.27+68852780","@opentelemetry/resources":"^0.19.0","@opentelemetry/exporter-collector":"^0.19.1-alpha.27+68852780"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cpx":"1.5.0","gts":"3.1.0","nyc":"15.1.0","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","ts-loader":"8.2.0","typescript":"4.2.4","@babel/core":"7.14.0","@types/node":"14.14.43","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@opentelemetry/api":"^1.0.0-rc.0","@opentelemetry/api-metrics":"^0.19.0"},"peerDependencies":{"@opentelemetry/api":"^1.0.0-rc.0"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.19.1-alpha.27_1620900089990_0.25644370392129257","host":"s3://npm-registry-packages"}},"0.19.1-alpha.28":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.19.1-alpha.28","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.19.1-alpha.28","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"73789e546a848c2d20bbd8509cddbec0fba0a0c8","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.19.1-alpha.28.tgz","fileCount":35,"integrity":"sha512-0QrTP6p/3if3N/ezaQLtcV9EXwMW8NioW93DH/f6do0oRYL7iDX5cfgrIj4ETijTBiZPlA6W97xo35+HJnYW/A==","signatures":[{"sig":"MEUCIEuSjRst800qDDMVAgNzQTHOu0aVUY1Vppnf4cL2zH5VAiEAzwLe5Gt9jZg0040cwDK27AOZZdIBAyGkJ0LZg+FYBz4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":108193,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgnPxECRA9TVsSAnZWagAAy/oQAILm9LM+pKU0SmiYc6f2\nBuoNNPXDGnLoF5SiOf3rUG/bCofcPssmKjj3c0Rj8gyV+Ybj2JCMkjumjK0m\nWoXyhnczjiIw/vFUFXNKjNeuDcyydeNhjwarA1q4zJ3b+e9CiczXx2lNJ/1L\n+MX1eTFr8tzht8gJGm4dyd0nj0j2mm0IyUgKGLGYKNcgaq2Wt+6oRWP+yc0J\nmYNVZ2A1Meucr4MLfUpTIS7Ikf15OoCvrcvJbeR+FDmGgRQS9E7SF+U1IKAt\nbksX2D+ioSztZvqQLjbR352H/nRUWU0JNeOQmhJ2/vQrP6AV7vDjwBcsNNQn\nfQb7vHSORxDiBw22MNHAQHy931P2tK5hRxD9j4iYIPS9ssZfuNrrw9g/S2eF\npF8+PaxTopjNCrj7eaJxDNcwzhJk8bYJDa91Ag1Z4jTwMrD8ox56cmWBwjNY\n/18cSB9YrUWBSPf6yMqCrCSXfKgV5xGQ7zYkAQzwrnE34rIo9UcMMDjCKIkO\nGebYii7g/nhDqIt5JJn/YXSDClqLp9uP5XVbU4gX10ABJuqJFeWat0P2JtmF\n3Kwa+yO0og4xLmM3pGUbV9Huqpo+bmH5zCRd/dZ2Gpn75JjdOqGdfPakrTIv\nt1dmZfWR2aTySwMKDPsz0G/CvT+Jn2Bf7xddVtZcp967qFLbq43u2Zv1Ve5D\n1JzF\r\n=qo85\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry Collector Exporter for node with grpc\n\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.25.0**.\n\n## Installation\n\n```bash\nnpm install --save @opentelemetry/exporter-collector-grpc\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/traces`.\n\n```js\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/tracing');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  // url is optional and can be omitted - default is localhost:4317\n  url: '<collector-hostname>:<port>',\n};\n\nconst provider = new BasicTracerProvider();\nconst exporter = new CollectorTraceExporter(collectorOptions);\nprovider.addSpanProcessor(new SimpleSpanProcessor(exporter));\n\nprovider.register();\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\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/grpc-js');\n\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/tracing');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  // url is optional and can be omitted - default is localhost:4317\n  url: '<collector-hostname>:<port>',\n  credentials: grpc.credentials.createSsl(),\n};\n\nconst provider = new BasicTracerProvider();\nconst exporter = new CollectorTraceExporter(collectorOptions);\nprovider.addSpanProcessor(new SimpleSpanProcessor(exporter));\n\nprovider.register();\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n```\n\nTo use mutual authentication, pass to the `createSsl()` constructor:\n\n```js\n  credentials: grpc.credentials.createSsl(\n    fs.readFileSync('./ca.crt'),\n    fs.readFileSync('./client.key'),\n    fs.readFileSync('./client.crt')\n  ),\n```\n\nTo generate credentials for mutual authentication, 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/grpc-js');\n\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/tracing');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst metadata = new grpc.Metadata();\n// For instance, an API key or access token might go here.\nmetadata.set('k', 'v');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  // url is optional and can be omitted - default is localhost:4317\n  url: '<collector-hostname>:<port>',\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['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n```\n\nNote, that this will only work if TLS is also configured on the server.\n\n## Metrics in Node - GRPC\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-grpc');\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  // url is optional and can be omitted - default is localhost:4317\n  url: '<collector-hostname>:<port>',\n};\nconst exporter = new CollectorMetricExporter(collectorOptions);\n\n// Register the exporter\nconst provider = new MeterProvider({\n  exporter,\n  interval: 60000,\n})\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n\n// Now, start recording data\nconst meter = provider.getMeter('example-meter');\nconst counter = meter.createCounter('metric_name');\ncounter.add(10, { 'key': 'value' });\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 in [GitHub Discussions][discussions-url]\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\n[discussions-url]: https://github.com/open-telemetry/opentelemetry-js/discussions\n[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/main/LICENSE\n[license-image]: https://img.shields.io/badge/license-Apache_2.0-green.svg?style=flat\n[dependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc\n[devDependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/exporter-collector-grpc\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fexporter-collector-grpc.svg\n[opentelemetry-collector-url]: https://github.com/open-telemetry/opentelemetry-collector\n","engines":{"node":">=8.0.0"},"gitHead":"3f82ff411c6cb26a5aa40ef30a788e6b03255242","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"npm run protos:copy && tsc -w","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","submodule":"git submodule sync --recursive && git submodule update --init --recursive","postcompile":"npm run submodule && npm run protos:copy","protos:copy":"cpx protos/opentelemetry/**/*.* build/protos/opentelemetry"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.16.1+x64 (linux)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.16.1","dependencies":{"@grpc/grpc-js":"^1.2.12","@grpc/proto-loader":"^0.6.0","@opentelemetry/core":"^0.19.0","@opentelemetry/metrics":"^0.19.0","@opentelemetry/tracing":"^0.19.1-alpha.28+3f82ff41","@opentelemetry/resources":"^0.19.0","@opentelemetry/exporter-collector":"^0.19.1-alpha.28+3f82ff41"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cpx":"1.5.0","gts":"3.1.0","nyc":"15.1.0","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","ts-loader":"8.2.0","typescript":"4.2.4","@babel/core":"7.14.0","@types/node":"14.14.43","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@opentelemetry/api":"^1.0.0-rc.0","@opentelemetry/api-metrics":"^0.19.0"},"peerDependencies":{"@opentelemetry/api":"^1.0.0-rc.0"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.19.1-alpha.28_1620900932398_0.15653039543335434","host":"s3://npm-registry-packages"}},"0.19.1-alpha.29":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.19.1-alpha.29","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.19.1-alpha.29","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"2f2ec4d53fbbb15792b3e56406e85ba85630d39b","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.19.1-alpha.29.tgz","fileCount":35,"integrity":"sha512-cpc7cHVeGyd4qx9Oq1VjddfVRqNNvAjSag51Ck/q9M3g2ocuq3eiVvGQxIjOZF+xdlkk8+KYN8qx5sieibvNDw==","signatures":[{"sig":"MEQCID2lKsxzbqe1n7o+qH/iBWx+o5uQagxCku8jM45RRs2oAiACRH4Ol6DSuZOgHf9XzG8ZnFa9NSyRmDRHW5dm5SWDtw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":108193,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgnP5kCRA9TVsSAnZWagAA2bYP/3NmsAbcxGN4UFZS8pRv\nFQ7iJ10w44cmvkj4EGnJW5zHAb9dnN4esk8xm9hyCUdfWix8+HbKTMhG7lyi\n+40haKQ3EP4QBc0TWx3SrX73t/PYgNTWir4ITXRmRPLMXfaS/1gqKvxzKlmk\ncCZJWu160uZW7/U5FqB34nYWSUurYzI1amQkSy9VeHeXAjobqkvyYTzba5hN\njv7e924aytObvaU8hE5EQZQ3+kxKuoMeceBk+T8mteWkyrNvvNQexg6jysye\nbc0AR6OHFPwUNx02a0A/ND/7595k7XjyG4aIyjEylYdfxCY8Ox8DacWLCEBU\n81iBGFoKsNlLttHUJlef/NJqIvpVjW9PPBQv8dNekSRR7k3UJALeYqqixy+/\nJ3wHCFeEH+CCoB7YlTb8mBpnAt+bnC7DCHg5wE8ioFVpUMLdMbUxfKdDMB62\njoVm1GD5FGd2zjY1dAS6aEGFivgIruaRmS1EtKyyN9EkL4cjm61ETOb90K/i\ngZkxrOpdqCmljaavY8farGcUGt8m4TcTqlzW89fDmFFNp4ZpYUFW0KCSzxTI\nY6GQEiH5oAvEhTeCt3HSROBXCtWvhpPJ1RwJU2Kfd3H1O3B5UnV2b6AlsSgY\n1UEr/NMyi/ZB1AbvMXBziU/Mkx3SjMWix50pagYOWGVERzS3YNGwQQ3XQUeq\nMi9S\r\n=Mghm\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry Collector Exporter for node with grpc\n\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.25.0**.\n\n## Installation\n\n```bash\nnpm install --save @opentelemetry/exporter-collector-grpc\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/traces`.\n\n```js\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/tracing');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  // url is optional and can be omitted - default is localhost:4317\n  url: '<collector-hostname>:<port>',\n};\n\nconst provider = new BasicTracerProvider();\nconst exporter = new CollectorTraceExporter(collectorOptions);\nprovider.addSpanProcessor(new SimpleSpanProcessor(exporter));\n\nprovider.register();\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\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/grpc-js');\n\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/tracing');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  // url is optional and can be omitted - default is localhost:4317\n  url: '<collector-hostname>:<port>',\n  credentials: grpc.credentials.createSsl(),\n};\n\nconst provider = new BasicTracerProvider();\nconst exporter = new CollectorTraceExporter(collectorOptions);\nprovider.addSpanProcessor(new SimpleSpanProcessor(exporter));\n\nprovider.register();\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n```\n\nTo use mutual authentication, pass to the `createSsl()` constructor:\n\n```js\n  credentials: grpc.credentials.createSsl(\n    fs.readFileSync('./ca.crt'),\n    fs.readFileSync('./client.key'),\n    fs.readFileSync('./client.crt')\n  ),\n```\n\nTo generate credentials for mutual authentication, 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/grpc-js');\n\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/tracing');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst metadata = new grpc.Metadata();\n// For instance, an API key or access token might go here.\nmetadata.set('k', 'v');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  // url is optional and can be omitted - default is localhost:4317\n  url: '<collector-hostname>:<port>',\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['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n```\n\nNote, that this will only work if TLS is also configured on the server.\n\n## Metrics in Node - GRPC\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-grpc');\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  // url is optional and can be omitted - default is localhost:4317\n  url: '<collector-hostname>:<port>',\n};\nconst exporter = new CollectorMetricExporter(collectorOptions);\n\n// Register the exporter\nconst provider = new MeterProvider({\n  exporter,\n  interval: 60000,\n})\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n\n// Now, start recording data\nconst meter = provider.getMeter('example-meter');\nconst counter = meter.createCounter('metric_name');\ncounter.add(10, { 'key': 'value' });\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 in [GitHub Discussions][discussions-url]\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\n[discussions-url]: https://github.com/open-telemetry/opentelemetry-js/discussions\n[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/main/LICENSE\n[license-image]: https://img.shields.io/badge/license-Apache_2.0-green.svg?style=flat\n[dependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc\n[devDependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/exporter-collector-grpc\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fexporter-collector-grpc.svg\n[opentelemetry-collector-url]: https://github.com/open-telemetry/opentelemetry-collector\n","engines":{"node":">=8.0.0"},"gitHead":"e379e59c1a2490053be16d0ca8aeb1c99d786a4c","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"npm run protos:copy && tsc -w","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","submodule":"git submodule sync --recursive && git submodule update --init --recursive","postcompile":"npm run submodule && npm run protos:copy","protos:copy":"cpx protos/opentelemetry/**/*.* build/protos/opentelemetry"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.16.1+x64 (linux)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.16.1","dependencies":{"@grpc/grpc-js":"^1.2.12","@grpc/proto-loader":"^0.6.0","@opentelemetry/core":"^0.19.0","@opentelemetry/metrics":"^0.19.0","@opentelemetry/tracing":"^0.19.1-alpha.29+e379e59c","@opentelemetry/resources":"^0.19.0","@opentelemetry/exporter-collector":"^0.19.1-alpha.29+e379e59c"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cpx":"1.5.0","gts":"3.1.0","nyc":"15.1.0","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","ts-loader":"8.2.0","typescript":"4.2.4","@babel/core":"7.14.0","@types/node":"14.14.43","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@opentelemetry/api":"^1.0.0-rc.0","@opentelemetry/api-metrics":"^0.19.0"},"peerDependencies":{"@opentelemetry/api":"^1.0.0-rc.0"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.19.1-alpha.29_1620901476564_0.34285874601753474","host":"s3://npm-registry-packages"}},"0.19.1-alpha.31":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.19.1-alpha.31","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.19.1-alpha.31","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"53a051663ca737306fe2a0baa89f7857fa506bb3","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.19.1-alpha.31.tgz","fileCount":35,"integrity":"sha512-6TvkGG6f5QcLRI8JWUwo6b60pEdZrl8ZJanS7+vZzTR81UD5ZEl11A0AqSoTdHcOMYNn3ZH3fYJ2ltXNfXe95A==","signatures":[{"sig":"MEUCIQCaLpUNQcnHC52SkXCi5M7ff3OYK2UWv1bcm+UBSo7E3wIgNgPfkM+rhKb3WpJaQiQe16Va/3EYdCjqmJy7f8YC29w=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":108245,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgpVPaCRA9TVsSAnZWagAAmDcP/0TwKzwmt3eCkln0+lPy\nDipKQNaKbccl0AMmk5xRx+izUprsa0AID4m5DQBALlTddz4YvOHfp69v7ze/\nxOdMJIms/QXSe5+uuoGwvwEvQ/3F+b5oOnZ18QDDidRWnBn4MTaIFSzV9pQa\nvePsgSygJ2Uw/V/KJmtDZ4JLFu54pWoMkm5xpXzLr5nkdXpLQoH7TqRSkRwQ\nHq3cQIWzQ8dcVvJgzLIQUFiZNxGUHxR6C9/sV3Y/jsHOBPKIr8/kUMVKztVj\nHQCRK/4hqGMxeCg4JMpD1ZCEf4MADPQlLsaOZBC81W/DTYaUI1U20QWgpMjt\nEbCidKNEJ7+eYJy0nTwDGBELi0sMCcROeUQBHuXEEECEBqxA1o9S0duFjhsI\nJnVTqVyGCxL4MTj2SnSn5KEopdztKapIZlOcvzARWB3nNvQycGTeW7klhupw\nTeMydBgLF7fgjCoEL7V7APtbtQZTZG0fZT3LpLPi7F466iqpvunvM8midaRI\n60DvP9czwG3ef7zWG+w2xoX6FUoSzlW7n0BSAYjux7tk92CDMzrhD5074+dq\ng8K2HfuMSkXlUv2D4H5w0gFpQ6lKoa1PrjD/IVCp2/PMYh39j98MbPu2HqaP\ncGU1DUVaCf2x3CO5Px9Nj+udB8jlidSjlIBjAiVFSoKCg6G9MFL/586G3W4O\n1wrQ\r\n=yZ5U\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry Collector Exporter for node with grpc\n\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.25.0**.\n\n## Installation\n\n```bash\nnpm install --save @opentelemetry/exporter-collector-grpc\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/traces`.\n\n```js\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/tracing');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  // url is optional and can be omitted - default is localhost:4317\n  url: '<collector-hostname>:<port>',\n};\n\nconst provider = new BasicTracerProvider();\nconst exporter = new CollectorTraceExporter(collectorOptions);\nprovider.addSpanProcessor(new SimpleSpanProcessor(exporter));\n\nprovider.register();\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\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/grpc-js');\n\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/tracing');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  // url is optional and can be omitted - default is localhost:4317\n  url: '<collector-hostname>:<port>',\n  credentials: grpc.credentials.createSsl(),\n};\n\nconst provider = new BasicTracerProvider();\nconst exporter = new CollectorTraceExporter(collectorOptions);\nprovider.addSpanProcessor(new SimpleSpanProcessor(exporter));\n\nprovider.register();\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n```\n\nTo use mutual authentication, pass to the `createSsl()` constructor:\n\n```js\n  credentials: grpc.credentials.createSsl(\n    fs.readFileSync('./ca.crt'),\n    fs.readFileSync('./client.key'),\n    fs.readFileSync('./client.crt')\n  ),\n```\n\nTo generate credentials for mutual authentication, 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/grpc-js');\n\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/tracing');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst metadata = new grpc.Metadata();\n// For instance, an API key or access token might go here.\nmetadata.set('k', 'v');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  // url is optional and can be omitted - default is localhost:4317\n  url: '<collector-hostname>:<port>',\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['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n```\n\nNote, that this will only work if TLS is also configured on the server.\n\n## Metrics in Node - GRPC\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-grpc');\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  // url is optional and can be omitted - default is localhost:4317\n  url: '<collector-hostname>:<port>',\n};\nconst exporter = new CollectorMetricExporter(collectorOptions);\n\n// Register the exporter\nconst provider = new MeterProvider({\n  exporter,\n  interval: 60000,\n})\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n\n// Now, start recording data\nconst meter = provider.getMeter('example-meter');\nconst counter = meter.createCounter('metric_name');\ncounter.add(10, { 'key': 'value' });\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 in [GitHub Discussions][discussions-url]\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\n[discussions-url]: https://github.com/open-telemetry/opentelemetry-js/discussions\n[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/main/LICENSE\n[license-image]: https://img.shields.io/badge/license-Apache_2.0-green.svg?style=flat\n[dependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc\n[devDependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/exporter-collector-grpc\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fexporter-collector-grpc.svg\n[opentelemetry-collector-url]: https://github.com/open-telemetry/opentelemetry-collector\n","engines":{"node":">=8.0.0"},"gitHead":"24adbd61062759f9d9d57420fd97e50f4d8c3b16","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"npm run protos:copy && tsc -w","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","submodule":"git submodule sync --recursive && git submodule update --init --recursive","postcompile":"npm run submodule && npm run protos:copy","protos:copy":"cpx protos/opentelemetry/**/*.* build/protos/opentelemetry"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.16.1+x64 (linux)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.16.1","dependencies":{"@grpc/grpc-js":"^1.2.12","@grpc/proto-loader":"^0.6.0","@opentelemetry/core":"^0.19.1-alpha.31+24adbd61","@opentelemetry/metrics":"^0.19.1-alpha.31+24adbd61","@opentelemetry/tracing":"^0.19.1-alpha.31+24adbd61","@opentelemetry/resources":"^0.19.1-alpha.31+24adbd61","@opentelemetry/exporter-collector":"^0.19.1-alpha.31+24adbd61"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cpx":"1.5.0","nyc":"15.1.0","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","ts-loader":"8.2.0","typescript":"4.2.4","@babel/core":"7.14.0","@types/node":"14.14.43","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@opentelemetry/api":"^1.0.0-rc.0","@opentelemetry/api-metrics":"^0.19.1-alpha.31+24adbd61"},"peerDependencies":{"@opentelemetry/api":"^1.0.0-rc.0"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.19.1-alpha.31_1621447641648_0.9364751290721283","host":"s3://npm-registry-packages"}},"0.19.1-alpha.32":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.19.1-alpha.32","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.19.1-alpha.32","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"f43518e7b536350e68bbef86fb8146b5b3f1add0","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.19.1-alpha.32.tgz","fileCount":35,"integrity":"sha512-QQQUlIKh8PUDPcjjb/26jz3gNK+yDFwcCO9CneDba7z87y4gZtbm6ZuqXAGiDrVPRFmuBnogpMgB2SYbvtg3Jw==","signatures":[{"sig":"MEUCIQCGCKHEr2wsCj++8krD3hqB/EXgXqoEW9cVhAlLTMTFDQIgcNajDwKOlFFWnBDVOvmmKuNI9J1+JiRmfVYpyEiH+88=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":108321,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgphnSCRA9TVsSAnZWagAA/H8P/insz2MOFu1c7Ig/t0c4\nW/CD4cDiS6GpHekcGq+lIFINCzIVmb1xZsBhjAqL8QN6TS/0hqUle93uAKqW\nSzWwMYgxOfPgtD3zXWW66gJW8+G+0oT2ZABq3KfBx/iy3AHTzlGqpGxspiWK\n/jEIABMoCs2qOERPxtKQDGg/hGSWw3O4KoU/jVmmUs5WkqYF+e//4Io3iTHx\nfZcECMdU4er0KDi6Id8+ApdaKwndAcMibT+tKT/KS0s2nEe8nT7fEUqybo34\nF3YlKVMBjWOxPhQ6Mds4fP8IkwnkOeEu/WiTdclKTd74Kl38KKQJryu7nKqt\nXgKcJpMqPYXI2K15m9nOvKfjnHF6iScWy8ph1Qke0dz37cEiwWMWSDoQo3/Y\nYrU0bevT3m/cRL089MO+48fhJmLWfDVam1O+E9BRy1oYxarztc768cnTfGkM\n254HLXRN1Fe89tR7UysB1zmlNovhGS5gjoDWY8DE/bmMrz7XkcViydAvWwbO\nngm/8mmf6n3J2wK6VR5IGf64qj5orhGMvtCwj+IK/Tcneka/nGkDVpzXsw+4\nMjrspC1P6xYQIKI1TfayWRNlNPA+9xvqZgqp7Sdauc49wDOBv/df3mCff9+p\nFg6QnK8dKc+k4iByKv4NV9JEKNAQkpKwZ4x2ai4EGWKDp+uQc3CUKS/4F0VZ\ntNIF\r\n=9SvV\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry Collector Exporter for node with grpc\n\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.25.0**.\n\n## Installation\n\n```bash\nnpm install --save @opentelemetry/exporter-collector-grpc\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/traces`.\n\n```js\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/tracing');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  // url is optional and can be omitted - default is localhost:4317\n  url: '<collector-hostname>:<port>',\n};\n\nconst provider = new BasicTracerProvider();\nconst exporter = new CollectorTraceExporter(collectorOptions);\nprovider.addSpanProcessor(new SimpleSpanProcessor(exporter));\n\nprovider.register();\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\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/grpc-js');\n\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/tracing');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  // url is optional and can be omitted - default is localhost:4317\n  url: '<collector-hostname>:<port>',\n  credentials: grpc.credentials.createSsl(),\n};\n\nconst provider = new BasicTracerProvider();\nconst exporter = new CollectorTraceExporter(collectorOptions);\nprovider.addSpanProcessor(new SimpleSpanProcessor(exporter));\n\nprovider.register();\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n```\n\nTo use mutual authentication, pass to the `createSsl()` constructor:\n\n```js\n  credentials: grpc.credentials.createSsl(\n    fs.readFileSync('./ca.crt'),\n    fs.readFileSync('./client.key'),\n    fs.readFileSync('./client.crt')\n  ),\n```\n\nTo generate credentials for mutual authentication, 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/grpc-js');\n\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/tracing');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst metadata = new grpc.Metadata();\n// For instance, an API key or access token might go here.\nmetadata.set('k', 'v');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  // url is optional and can be omitted - default is localhost:4317\n  url: '<collector-hostname>:<port>',\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['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n```\n\nNote, that this will only work if TLS is also configured on the server.\n\n## Metrics in Node - GRPC\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-grpc');\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  // url is optional and can be omitted - default is localhost:4317\n  url: '<collector-hostname>:<port>',\n};\nconst exporter = new CollectorMetricExporter(collectorOptions);\n\n// Register the exporter\nconst provider = new MeterProvider({\n  exporter,\n  interval: 60000,\n})\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n\n// Now, start recording data\nconst meter = provider.getMeter('example-meter');\nconst counter = meter.createCounter('metric_name');\ncounter.add(10, { 'key': 'value' });\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 in [GitHub Discussions][discussions-url]\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\n[discussions-url]: https://github.com/open-telemetry/opentelemetry-js/discussions\n[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/main/LICENSE\n[license-image]: https://img.shields.io/badge/license-Apache_2.0-green.svg?style=flat\n[dependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc\n[devDependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/exporter-collector-grpc\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fexporter-collector-grpc.svg\n[opentelemetry-collector-url]: https://github.com/open-telemetry/opentelemetry-collector\n","engines":{"node":">=8.0.0"},"gitHead":"1745d873005c1f4f1ce0ea614b8168ae04faa720","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"npm run protos:copy && tsc -w","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","submodule":"git submodule sync --recursive && git submodule update --init --recursive","postcompile":"npm run submodule && npm run protos:copy","protos:copy":"cpx protos/opentelemetry/**/*.* build/protos/opentelemetry"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.0+x64 (linux)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.17.0","dependencies":{"@grpc/grpc-js":"^1.2.12","@grpc/proto-loader":"^0.6.0","@opentelemetry/core":"^0.19.0","@opentelemetry/metrics":"^0.19.0","@opentelemetry/tracing":"^0.19.0","@opentelemetry/resources":"^0.19.0","@opentelemetry/exporter-collector":"^0.19.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cpx":"1.5.0","nyc":"15.1.0","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","ts-loader":"8.2.0","typescript":"4.2.4","@babel/core":"7.14.0","@types/node":"14.14.43","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@opentelemetry/api":"^1.0.0-rc.0","@opentelemetry/api-metrics":"^0.19.0"},"peerDependencies":{"@opentelemetry/api":"^1.0.0-rc.0"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.19.1-alpha.32_1621498321556_0.5845226599315636","host":"s3://npm-registry-packages"}},"0.19.1-alpha.33":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.19.1-alpha.33","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.19.1-alpha.33","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"a0ae4a5cd0c1017ca495c733a9955fd985287c86","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.19.1-alpha.33.tgz","fileCount":35,"integrity":"sha512-KYJFjc3dXXpSokPAKe+QCwjJxetUWox6jOa7a2q++nmthjOUwNL/cdN65N5OVGqDCz5UeHxjp9NUYqxBmD7xjA==","signatures":[{"sig":"MEQCIAbACMOX8YaFxiKC59WwMlYzo4RpvbN9c+OmYQ//UTdkAiAVTFhwEnmZ/uMPNCxnfIc24jmfJKPgOd6lZYxVuvwrGg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":108411,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgplI3CRA9TVsSAnZWagAAh/EP/i0R4yf2/UAOlvRAQrd6\nYOgtvQwqmabsukw0U/kaL/4bAWLljwx812ZIu/5ZhHGbwJYdAY1WLtTDdDI/\njhe9M4iuC0u8I7eAyAPa1HkMUzt0Ocl735nvM+viD6QnqwxfoWxJuJgdYV9B\nNz+224iCARqqGqV1hZEr9kXNJJWaHfk9H7gH4mfWy+y7JGcK+rgC+EdgEpNw\nZEJnMcRnIj5lv2KSv7ZbYG7XNJeoCMcCAaqjqYJrBT5wf9F7e1MBxS1hU1UQ\nj8QjO5zLoINVdhgvHg0YGPCSCEMBK2Z6Kisy1m1+r9wKaZWMcBT3ffpRzyim\nYvsSpEll+Am6Dh1kt/WMjIcAv1yl41989tnGaGHh6SRM8wsRDF7HpuK52pCK\n2r7AnOwTeNlpXUkulrjWZbTe8s9MT3R4jEN34B1HWeFJzFF41U1cbE+63r/c\nQuLXjsF/Q/BcSBgf0QQjWPjixfoVkhDXD2hZpLj6SZte07a/8sbhhJTg/QeF\nyM5Wj4wozO7VVcZ1EWeMzyYKhVPLK8KohlEpF96M/zNbaAz+OHd16stE8rWV\nQxcNYNS286ZuuJp5nqgUANsKEp86rr4Bt/Ig3Y7r8Tusnl9uy0iCDp5BJZzq\nXC0ohocworAM3Ruhno8cnV2ZVHZ8vDlcDY2WQIfdINnME/jU8upphMDRxDwq\nJRai\r\n=JyYL\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry Collector Exporter for node with grpc\n\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.25.0**.\n\n## Installation\n\n```bash\nnpm install --save @opentelemetry/exporter-collector-grpc\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/traces`.\n\n```js\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/tracing');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  // url is optional and can be omitted - default is localhost:4317\n  url: '<collector-hostname>:<port>',\n};\n\nconst provider = new BasicTracerProvider();\nconst exporter = new CollectorTraceExporter(collectorOptions);\nprovider.addSpanProcessor(new SimpleSpanProcessor(exporter));\n\nprovider.register();\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\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/grpc-js');\n\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/tracing');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  // url is optional and can be omitted - default is localhost:4317\n  url: '<collector-hostname>:<port>',\n  credentials: grpc.credentials.createSsl(),\n};\n\nconst provider = new BasicTracerProvider();\nconst exporter = new CollectorTraceExporter(collectorOptions);\nprovider.addSpanProcessor(new SimpleSpanProcessor(exporter));\n\nprovider.register();\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n```\n\nTo use mutual authentication, pass to the `createSsl()` constructor:\n\n```js\n  credentials: grpc.credentials.createSsl(\n    fs.readFileSync('./ca.crt'),\n    fs.readFileSync('./client.key'),\n    fs.readFileSync('./client.crt')\n  ),\n```\n\nTo generate credentials for mutual authentication, 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/grpc-js');\n\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/tracing');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst metadata = new grpc.Metadata();\n// For instance, an API key or access token might go here.\nmetadata.set('k', 'v');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  // url is optional and can be omitted - default is localhost:4317\n  url: '<collector-hostname>:<port>',\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['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n```\n\nNote, that this will only work if TLS is also configured on the server.\n\n## Metrics in Node - GRPC\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-grpc');\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  // url is optional and can be omitted - default is localhost:4317\n  url: '<collector-hostname>:<port>',\n};\nconst exporter = new CollectorMetricExporter(collectorOptions);\n\n// Register the exporter\nconst provider = new MeterProvider({\n  exporter,\n  interval: 60000,\n})\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n\n// Now, start recording data\nconst meter = provider.getMeter('example-meter');\nconst counter = meter.createCounter('metric_name');\ncounter.add(10, { 'key': 'value' });\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 in [GitHub Discussions][discussions-url]\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\n[discussions-url]: https://github.com/open-telemetry/opentelemetry-js/discussions\n[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/main/LICENSE\n[license-image]: https://img.shields.io/badge/license-Apache_2.0-green.svg?style=flat\n[dependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc\n[devDependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/exporter-collector-grpc\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fexporter-collector-grpc.svg\n[opentelemetry-collector-url]: https://github.com/open-telemetry/opentelemetry-collector\n","engines":{"node":">=8.0.0"},"gitHead":"c85fbe6682b9a8fd52e4b99bdbb079833b04e845","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"npm run protos:copy && tsc -w","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","submodule":"git submodule sync --recursive && git submodule update --init --recursive","postcompile":"npm run submodule && npm run protos:copy","protos:copy":"cpx protos/opentelemetry/**/*.* build/protos/opentelemetry"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.0+x64 (linux)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.17.0","dependencies":{"@grpc/grpc-js":"^1.2.12","@grpc/proto-loader":"^0.6.0","@opentelemetry/core":"^0.19.1-alpha.33+c85fbe66","@opentelemetry/metrics":"^0.19.1-alpha.33+c85fbe66","@opentelemetry/tracing":"^0.19.1-alpha.33+c85fbe66","@opentelemetry/resources":"^0.19.1-alpha.33+c85fbe66","@opentelemetry/exporter-collector":"^0.19.1-alpha.33+c85fbe66"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cpx":"1.5.0","nyc":"15.1.0","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","ts-loader":"8.2.0","typescript":"4.2.4","@babel/core":"7.14.0","@types/node":"14.14.43","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@opentelemetry/api":"^1.0.0-rc.0","@opentelemetry/api-metrics":"^0.19.0"},"peerDependencies":{"@opentelemetry/api":"^1.0.0-rc.0"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.19.1-alpha.33_1621512758925_0.5666635334520413","host":"s3://npm-registry-packages"}},"0.19.1-alpha.41":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.19.1-alpha.41","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.19.1-alpha.41","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"4790bb18c282ef687119320a105af964fd2c0cb6","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.19.1-alpha.41.tgz","fileCount":35,"integrity":"sha512-NQ/u/VD2l/Az5VIwk57Gt4m84xxnGoTQjNZTNMQmFBQDISjONNzv0nHzdo8+T365fZ6UJf+vltCa5m8ewJBxJA==","signatures":[{"sig":"MEUCIQCKjxGnjnywLK1QNFNQTwwhU8E/F0sgc4jyl19P3ZsCNgIgX6g44hKBmvV7W/3dyo6KC8VHQ/1Uwnap+FcUmOgV6h4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":108349,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgr90zCRA9TVsSAnZWagAAB/QP/iq3fWSdojg8ubutZ6pg\n5PV99UU4ebfYEFd3dAic8mRUYBfCUFVRZM0WvA+e+ohKVR+T3bEKifXZsqgz\ntfoJdeO9Ui1lz2oRhK8JyprZU5ujGbwCvXCPv5FixGqgl34DH3S83MRCXUGp\nZ5TR4ZpkJadkmBh0CXT5t56fX47XW9oq9cQPoRLkClY9r0zAu+QWYbghhy56\nbI1F8jSqmPVwcvJMW5bfJCqUxczL6sLCBfTFPnkMH0WmztX9OUIiIo3x2kd6\n0L0Sxx0KGOtSd43jAfldoi7OCK1+IT3LbtHlA9j5Tl0r5jVtlRRMw+QVWTUr\nFLfMfLCbMj7ZzDsZO3ByvN/ttioETKGKxqJLtCPeOJFRSs0Dq83m4+oW1ZLd\nNDnb/Pn9bw2KJi/ZJy67fzZQfqGmuc4WXzZpr5IO9EibdHF7FQitRXheTmg+\n7iEBVkr6nLdgmTwZSHzBiD6tX09xQ0jcRoo+kviDTY8LZgXGt5A1twxtwkKO\n6NgITrFjsInMRqTch+miajZcMEDwJGij/Delz++i6FhxyFbh0FHyTxcIbIpI\nvyehlDm6f1qiiH0mT5pQlalINfYy+/wDJ8qXA0FffE2CdDm3LJoG4YQZNKDu\n0gx917zxNqc4DG8tdSMZi/UnGEmhgi66F6rvOPDVrzIy4H3faU8iFurR1MFA\nn9Jz\r\n=ytbE\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry Collector Exporter for node with grpc\n\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.25.0**.\n\n## Installation\n\n```bash\nnpm install --save @opentelemetry/exporter-collector-grpc\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/traces`.\n\n```js\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/tracing');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  // url is optional and can be omitted - default is localhost:4317\n  url: '<collector-hostname>:<port>',\n};\n\nconst provider = new BasicTracerProvider();\nconst exporter = new CollectorTraceExporter(collectorOptions);\nprovider.addSpanProcessor(new SimpleSpanProcessor(exporter));\n\nprovider.register();\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\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/grpc-js');\n\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/tracing');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  // url is optional and can be omitted - default is localhost:4317\n  url: '<collector-hostname>:<port>',\n  credentials: grpc.credentials.createSsl(),\n};\n\nconst provider = new BasicTracerProvider();\nconst exporter = new CollectorTraceExporter(collectorOptions);\nprovider.addSpanProcessor(new SimpleSpanProcessor(exporter));\n\nprovider.register();\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n```\n\nTo use mutual authentication, pass to the `createSsl()` constructor:\n\n```js\n  credentials: grpc.credentials.createSsl(\n    fs.readFileSync('./ca.crt'),\n    fs.readFileSync('./client.key'),\n    fs.readFileSync('./client.crt')\n  ),\n```\n\nTo generate credentials for mutual authentication, 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/grpc-js');\n\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/tracing');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst metadata = new grpc.Metadata();\n// For instance, an API key or access token might go here.\nmetadata.set('k', 'v');\n\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  // url is optional and can be omitted - default is localhost:4317\n  url: '<collector-hostname>:<port>',\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['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n```\n\nNote, that this will only work if TLS is also configured on the server.\n\n## Metrics in Node - GRPC\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-grpc');\nconst collectorOptions = {\n  serviceName: 'basic-service',\n  // url is optional and can be omitted - default is localhost:4317\n  url: '<collector-hostname>:<port>',\n};\nconst exporter = new CollectorMetricExporter(collectorOptions);\n\n// Register the exporter\nconst provider = new MeterProvider({\n  exporter,\n  interval: 60000,\n})\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n\n// Now, start recording data\nconst meter = provider.getMeter('example-meter');\nconst counter = meter.createCounter('metric_name');\ncounter.add(10, { 'key': 'value' });\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 in [GitHub Discussions][discussions-url]\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\n[discussions-url]: https://github.com/open-telemetry/opentelemetry-js/discussions\n[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/main/LICENSE\n[license-image]: https://img.shields.io/badge/license-Apache_2.0-green.svg?style=flat\n[dependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc\n[devDependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/exporter-collector-grpc\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fexporter-collector-grpc.svg\n[opentelemetry-collector-url]: https://github.com/open-telemetry/opentelemetry-collector\n","engines":{"node":">=8.0.0"},"gitHead":"7fa4ff70d1aad5875cb14c6bff99c838228447bb","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"npm run protos:copy && tsc -w","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","submodule":"git submodule sync --recursive && git submodule update --init --recursive","postcompile":"npm run submodule && npm run protos:copy","protos:copy":"cpx protos/opentelemetry/**/*.* build/protos/opentelemetry"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.0+x64 (linux)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.17.0","dependencies":{"@grpc/grpc-js":"^1.2.12","@grpc/proto-loader":"^0.6.0","@opentelemetry/core":"^0.19.0","@opentelemetry/metrics":"^0.19.0","@opentelemetry/tracing":"^0.19.1-alpha.41+7fa4ff70","@opentelemetry/resources":"^0.19.0","@opentelemetry/exporter-collector":"^0.19.1-alpha.41+7fa4ff70"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cpx":"1.5.0","nyc":"15.1.0","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","ts-loader":"8.2.0","typescript":"4.2.4","@babel/core":"7.14.0","@types/node":"14.14.43","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@opentelemetry/api":"^0.20.0","@opentelemetry/api-metrics":"^0.19.0"},"peerDependencies":{"@opentelemetry/api":"^0.20.0"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.19.1-alpha.41_1622138163311_0.14564700090634042","host":"s3://npm-registry-packages"}},"0.19.1-alpha.43":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.19.1-alpha.43","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.19.1-alpha.43","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"df71b0ef3abbd49cab110e1b87629c6c1074a079","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.19.1-alpha.43.tgz","fileCount":35,"integrity":"sha512-E0o2IId7pZ68UyB27RtC3jZGSHwdnnbyg3JODdTKR9dA5oYARpp407nTBea78mt0uRKXK46qggkOPIu26JnvqA==","signatures":[{"sig":"MEYCIQCIRqVrwbx2LxYHnPmbZqH3w+2RB4UPo0JSt6Tj6N4lhwIhAInxts8aRxG/UDbn51r1yYJiRqGNmQ0ugJBwkS4l3QXV","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":108049,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgto6NCRA9TVsSAnZWagAAwf0P/0kxOKlvgAsiOyIvSU3/\ny4+CQDQBuZCi4D8lkAUL7B2X117dBJ0UBoN26Eg/k0qoM39Sfvsw4xcvSY28\nxi//vpbKm/1ejH3dpYeVALxt+g5GzLNlurutodSR2wy7gxelmLkpU+gdNlLN\n89RiqFmIOeq7M+BqNY1Ez0bDtJG4XRm6aRLsM1+2UgTPQn5nlKa+evhFSWl5\nkV+FAG/TWMESgxqfYCzoMr5HhD/c/GJ0XINJIuB8vB7XuxVOuJHQz3pJnGwv\nmlAcA67gYu0oDtuvIJuWHjqVL+1b1jDOshJwd3EZ8pNWHbI87d8073YdOKX7\nmW8uqJNS1xqXkDELF4hC8Q16LlUGz2PsFZC4MKM3xtTXX4l88dJODZXvKRM2\ngsGZ9RnT+mHZ7+ebt13mdLnQvq+6g/j3Nptm9L8CMGAbFn9IE83Yca65q/jf\nRLNxaqUE5hMbcSjv1vKkmp+BdrLtUErlsIimZ+tIiUsJVRAloZFMgyTPyhNq\nmso2F/lF8W2ZoDBejXjVUKscHLjgco1NCJ6wJFerNEm0reznVfm5JQAUEir1\nrEIR2dWGyen4/2ysH6MP6NhE0OZIyxKehPx2c5VkcVvvZmbfq4guIMcwZqFN\njU3lYgX6LJkmcr8D9JMp6Gz5RGdBGV+lthQaY629TqvzEOEKVkI61hVtKpJR\n9bt6\r\n=MBpP\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry Collector Exporter for node with grpc\n\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.25.0**.\n\n## Installation\n\n```bash\nnpm install --save @opentelemetry/exporter-collector-grpc\n```\n\n## Service Name\n\nThe OpenTelemetry Collector Exporter does not have a service name configuration.\nIn order to set the service name, use the `service.name` resource attribute as prescribed in the [OpenTelemetry Resource Semantic Conventions][semconv-resource-service-name].\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/traces`.\n\n```js\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/tracing');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is localhost:4317\n  url: '<collector-hostname>:<port>',\n};\n\nconst provider = new BasicTracerProvider();\nconst exporter = new CollectorTraceExporter(collectorOptions);\nprovider.addSpanProcessor(new SimpleSpanProcessor(exporter));\n\nprovider.register();\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\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/grpc-js');\n\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/tracing');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is localhost:4317\n  url: '<collector-hostname>:<port>',\n  credentials: grpc.credentials.createSsl(),\n};\n\nconst provider = new BasicTracerProvider();\nconst exporter = new CollectorTraceExporter(collectorOptions);\nprovider.addSpanProcessor(new SimpleSpanProcessor(exporter));\n\nprovider.register();\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n```\n\nTo use mutual authentication, pass to the `createSsl()` constructor:\n\n```js\n  credentials: grpc.credentials.createSsl(\n    fs.readFileSync('./ca.crt'),\n    fs.readFileSync('./client.key'),\n    fs.readFileSync('./client.crt')\n  ),\n```\n\nTo generate credentials for mutual authentication, 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/grpc-js');\n\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/tracing');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst metadata = new grpc.Metadata();\n// For instance, an API key or access token might go here.\nmetadata.set('k', 'v');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is localhost:4317\n  url: '<collector-hostname>:<port>',\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['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n```\n\nNote, that this will only work if TLS is also configured on the server.\n\n## Metrics in Node - GRPC\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-grpc');\nconst collectorOptions = {\n  // url is optional and can be omitted - default is localhost:4317\n  url: '<collector-hostname>:<port>',\n};\nconst exporter = new CollectorMetricExporter(collectorOptions);\n\n// Register the exporter\nconst provider = new MeterProvider({\n  exporter,\n  interval: 60000,\n})\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n\n// Now, start recording data\nconst meter = provider.getMeter('example-meter');\nconst counter = meter.createCounter('metric_name');\ncounter.add(10, { 'key': 'value' });\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 in [GitHub Discussions][discussions-url]\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\n[discussions-url]: https://github.com/open-telemetry/opentelemetry-js/discussions\n[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/main/LICENSE\n[license-image]: https://img.shields.io/badge/license-Apache_2.0-green.svg?style=flat\n[dependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc\n[devDependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/exporter-collector-grpc\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fexporter-collector-grpc.svg\n[opentelemetry-collector-url]: https://github.com/open-telemetry/opentelemetry-collector\n[semconv-resource-service-name]: https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/resource/semantic_conventions/README.md#service\n","engines":{"node":">=8.0.0"},"gitHead":"d5517812b31d9206131bf1df4f8a3b5183ab07fb","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"npm run protos:copy && tsc -w","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","submodule":"git submodule sync --recursive && git submodule update --init --recursive","postcompile":"npm run submodule && npm run protos:copy","protos:copy":"cpx protos/opentelemetry/**/*.* build/protos/opentelemetry"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.0+x64 (linux)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.17.0","dependencies":{"@grpc/grpc-js":"^1.2.12","@grpc/proto-loader":"^0.6.0","@opentelemetry/core":"^0.19.1-alpha.43+d5517812","@opentelemetry/metrics":"^0.19.1-alpha.43+d5517812","@opentelemetry/tracing":"^0.19.1-alpha.43+d5517812","@opentelemetry/resources":"^0.19.1-alpha.43+d5517812","@opentelemetry/exporter-collector":"^0.19.1-alpha.43+d5517812"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cpx":"1.5.0","nyc":"15.1.0","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","ts-loader":"8.2.0","typescript":"4.3.2","@babel/core":"7.14.0","@types/node":"14.14.43","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@opentelemetry/api":"^0.20.0","@opentelemetry/api-metrics":"^0.19.1-alpha.43+d5517812"},"peerDependencies":{"@opentelemetry/api":"^0.20.0"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.19.1-alpha.43_1622576780954_0.9169358556210534","host":"s3://npm-registry-packages"}},"0.19.1-alpha.44":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.19.1-alpha.44","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.19.1-alpha.44","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"a5d6eb6345228b147228a34d7594de798b4bfb0f","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.19.1-alpha.44.tgz","fileCount":35,"integrity":"sha512-7d7VZ7dVQOxzniG9esqo1RVbrt3FeMhNjGDtV5qamhTSe2iV1Pz6uwTpP56VPrmBknPbtCc7/H8e8n0xsLNTWQ==","signatures":[{"sig":"MEUCIQD2+FC23KzsyfpRK/qY0aDTnNEG2jw0c/s1nS2LUOFMfAIgBv/nubh5AH9sx5/jx6RMz1xDBota5l97ivXCjf/exl4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":107977,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgtpbECRA9TVsSAnZWagAAs04P/ilQaW0mh8DHg+BFg9SM\nDkEAQ/Sr8o4cB5rcKYzZ3FsaK4Sxkfjrz1vS+DLXHvJkJFM0N6XAbRG158ZW\n2WGXvxqRqIlMEyyIoRqF/xP+zuK3mRslv7VLaYJb7HtnxI/MWfjnyzWO6qJX\n3hDhHeIGyxZorUp5kBS5XLc3hZ24c7UbpltnwDnIXvkig21MYSMglSOJG77G\npDjIdXmTVZP6kSd0BcLZCjBcsErGrXDSJfSSQAcA8SNFyHVZgpHq4kGKzyKY\n05n2S0UbrUdcB+ZY9zkcZ+cABJZ0Zn4hU5E/pmyuaatW3yGmNlpCTUJ7/yh+\nL3N+SVEKaBpcL5XUtZfflvKNIcdtKGvvCATIzqsvQLtIugZfH4jWfKwo9c9v\nFC+vJbwiNFZI+E1q+JqbvyFzN+VQfAGsXXHnL9pHSLLkiqQ1VlK1n7OpLMxc\nQ+m8UqhclTeKWFAU1/Dqig4r/aOniTWdoYlzx9ZCWZzs1CUPHQY5OMvWfps4\nMsa3aBtwgWwIf0yo1vXHzXLh99gjeXyyxTSzgo92y6wWkrrhYjrq+Rp+DmAK\n3GUrLXH/vXbPshjKm0RSfIzsCRw5nmKAsRsRrGAz7Fn/8ivNcApm9A5Yl+yw\n/3UXDeSgSDoVNwPlAUQZND+7r8+LxMckoe/5XuRjeM2R8aAoaP0XOdRsX70w\nb3UM\r\n=IWZ6\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry Collector Exporter for node with grpc\n\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.25.0**.\n\n## Installation\n\n```bash\nnpm install --save @opentelemetry/exporter-collector-grpc\n```\n\n## Service Name\n\nThe OpenTelemetry Collector Exporter does not have a service name configuration.\nIn order to set the service name, use the `service.name` resource attribute as prescribed in the [OpenTelemetry Resource Semantic Conventions][semconv-resource-service-name].\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/traces`.\n\n```js\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/tracing');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is localhost:4317\n  url: '<collector-hostname>:<port>',\n};\n\nconst provider = new BasicTracerProvider();\nconst exporter = new CollectorTraceExporter(collectorOptions);\nprovider.addSpanProcessor(new SimpleSpanProcessor(exporter));\n\nprovider.register();\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\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/grpc-js');\n\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/tracing');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is localhost:4317\n  url: '<collector-hostname>:<port>',\n  credentials: grpc.credentials.createSsl(),\n};\n\nconst provider = new BasicTracerProvider();\nconst exporter = new CollectorTraceExporter(collectorOptions);\nprovider.addSpanProcessor(new SimpleSpanProcessor(exporter));\n\nprovider.register();\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n```\n\nTo use mutual authentication, pass to the `createSsl()` constructor:\n\n```js\n  credentials: grpc.credentials.createSsl(\n    fs.readFileSync('./ca.crt'),\n    fs.readFileSync('./client.key'),\n    fs.readFileSync('./client.crt')\n  ),\n```\n\nTo generate credentials for mutual authentication, 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/grpc-js');\n\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/tracing');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst metadata = new grpc.Metadata();\n// For instance, an API key or access token might go here.\nmetadata.set('k', 'v');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is localhost:4317\n  url: '<collector-hostname>:<port>',\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['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n```\n\nNote, that this will only work if TLS is also configured on the server.\n\n## Metrics in Node - GRPC\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-grpc');\nconst collectorOptions = {\n  // url is optional and can be omitted - default is localhost:4317\n  url: '<collector-hostname>:<port>',\n};\nconst exporter = new CollectorMetricExporter(collectorOptions);\n\n// Register the exporter\nconst provider = new MeterProvider({\n  exporter,\n  interval: 60000,\n})\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n\n// Now, start recording data\nconst meter = provider.getMeter('example-meter');\nconst counter = meter.createCounter('metric_name');\ncounter.add(10, { 'key': 'value' });\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 in [GitHub Discussions][discussions-url]\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\n[discussions-url]: https://github.com/open-telemetry/opentelemetry-js/discussions\n[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/main/LICENSE\n[license-image]: https://img.shields.io/badge/license-Apache_2.0-green.svg?style=flat\n[dependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc\n[devDependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/exporter-collector-grpc\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fexporter-collector-grpc.svg\n[opentelemetry-collector-url]: https://github.com/open-telemetry/opentelemetry-collector\n[semconv-resource-service-name]: https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/resource/semantic_conventions/README.md#service\n","engines":{"node":">=8.0.0"},"gitHead":"aea89cf7a48395f3d403e1158122bc559b09e899","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"npm run protos:copy && tsc -w","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","submodule":"git submodule sync --recursive && git submodule update --init --recursive","postcompile":"npm run submodule && npm run protos:copy","protos:copy":"cpx protos/opentelemetry/**/*.* build/protos/opentelemetry"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.0+x64 (linux)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.17.0","dependencies":{"@grpc/grpc-js":"^1.2.12","@grpc/proto-loader":"^0.6.0","@opentelemetry/core":"^0.19.0","@opentelemetry/metrics":"^0.19.0","@opentelemetry/tracing":"^0.19.1-alpha.44+aea89cf7","@opentelemetry/resources":"^0.19.0","@opentelemetry/exporter-collector":"^0.19.1-alpha.44+aea89cf7"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cpx":"1.5.0","nyc":"15.1.0","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","ts-loader":"8.2.0","typescript":"4.3.2","@babel/core":"7.14.0","@types/node":"14.14.43","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@opentelemetry/api":"^0.20.0","@opentelemetry/api-metrics":"^0.19.0"},"peerDependencies":{"@opentelemetry/api":"^0.20.0"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.19.1-alpha.44_1622578884299_0.30414186579193725","host":"s3://npm-registry-packages"}},"0.20.1-alpha.49":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.20.1-alpha.49","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.20.1-alpha.49","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"bf0c18c0735008e4c208fd18edbc05a3be508496","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.20.1-alpha.49.tgz","fileCount":35,"integrity":"sha512-Mtaw73jgeMq2guLF+ul9/wgOwfao38xTsGCflbo0yt7FhEQ3MgaG3UgSTyXeSXzsbBTikiSJmnFSeWclRNFE7A==","signatures":[{"sig":"MEQCIGWum0b9hE0W7Kex5nIFFqReDHoeTQL2t/OeQWvG8nwoAiA62ySZwOZd5wsfasnSqu3nn+rasNOssjjFfdDP33sJ+A==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":108049,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJguQz2CRA9TVsSAnZWagAAUrkP/2ru/5JQCArLHDShQWfB\nx75zy9HT6NRM0s9Rp1ClFqU7wK/pZ0oEyNM4iy9y3vtooHSieFgldQoumsgI\nK5PGak/0s6IY3YUMfwRQKfwM0T1FEMoggj1e5ICNp9cJZL63j3EUJvPLcYSH\nv/9yO/pG+RxM/g+KUSJEL+jNNvROKnZZdTdax2D5eag12QtxDR/YQs76b6Dd\njLj/enV9dzL0k26Z62lxEKSxe0YHnEVJJvNmowLXvnMQzdj0s+LkG1D3MQDU\ny/LEwy77pqKoOqqYE7jW09H1YuKk6qoa+ChZDuFMKI00uOh5uE6S9NmGATgE\nLPs3AGEJmN3TLnZUKzNszL81qCfsDa5vYmMNVjFUXxeuxHajCjr6k28oCpzx\n3FKamtTQRNw3WulEJr7JwdvR0n4RkFLaG4ErIeDH+x4ysJbRx7OhlDGP2v3m\n+6ChhtmrsTE/NyAqwk4xTXgjyEVUyuUL68zJGvsulcKHMS9JJ217NNLwo09Q\nP9JXXBkgCBH+PPveCZfFi+FZ5r0kx5ApTiW13YwWv+74uxY9Q1SUYJr002Qd\nf9prP4EOJWTijO/bAD4QKLYR+n0daYPrfUOIgaudsG0t5xDPBqI/sgZxpjii\noEfkzmvZjIo0R339isY2HZHfVeOSDYU0BsG1Y70rSeszRHXl9W1lF+h5ut9q\n93pQ\r\n=M+wi\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry Collector Exporter for node with grpc\n\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.25.0**.\n\n## Installation\n\n```bash\nnpm install --save @opentelemetry/exporter-collector-grpc\n```\n\n## Service Name\n\nThe OpenTelemetry Collector Exporter does not have a service name configuration.\nIn order to set the service name, use the `service.name` resource attribute as prescribed in the [OpenTelemetry Resource Semantic Conventions][semconv-resource-service-name].\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/traces`.\n\n```js\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/tracing');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is localhost:4317\n  url: '<collector-hostname>:<port>',\n};\n\nconst provider = new BasicTracerProvider();\nconst exporter = new CollectorTraceExporter(collectorOptions);\nprovider.addSpanProcessor(new SimpleSpanProcessor(exporter));\n\nprovider.register();\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\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/grpc-js');\n\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/tracing');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is localhost:4317\n  url: '<collector-hostname>:<port>',\n  credentials: grpc.credentials.createSsl(),\n};\n\nconst provider = new BasicTracerProvider();\nconst exporter = new CollectorTraceExporter(collectorOptions);\nprovider.addSpanProcessor(new SimpleSpanProcessor(exporter));\n\nprovider.register();\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n```\n\nTo use mutual authentication, pass to the `createSsl()` constructor:\n\n```js\n  credentials: grpc.credentials.createSsl(\n    fs.readFileSync('./ca.crt'),\n    fs.readFileSync('./client.key'),\n    fs.readFileSync('./client.crt')\n  ),\n```\n\nTo generate credentials for mutual authentication, 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/grpc-js');\n\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/tracing');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst metadata = new grpc.Metadata();\n// For instance, an API key or access token might go here.\nmetadata.set('k', 'v');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is localhost:4317\n  url: '<collector-hostname>:<port>',\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['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n```\n\nNote, that this will only work if TLS is also configured on the server.\n\n## Metrics in Node - GRPC\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-grpc');\nconst collectorOptions = {\n  // url is optional and can be omitted - default is localhost:4317\n  url: '<collector-hostname>:<port>',\n};\nconst exporter = new CollectorMetricExporter(collectorOptions);\n\n// Register the exporter\nconst provider = new MeterProvider({\n  exporter,\n  interval: 60000,\n})\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n\n// Now, start recording data\nconst meter = provider.getMeter('example-meter');\nconst counter = meter.createCounter('metric_name');\ncounter.add(10, { 'key': 'value' });\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 in [GitHub Discussions][discussions-url]\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\n[discussions-url]: https://github.com/open-telemetry/opentelemetry-js/discussions\n[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/main/LICENSE\n[license-image]: https://img.shields.io/badge/license-Apache_2.0-green.svg?style=flat\n[dependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc\n[devDependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/exporter-collector-grpc\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fexporter-collector-grpc.svg\n[opentelemetry-collector-url]: https://github.com/open-telemetry/opentelemetry-collector\n[semconv-resource-service-name]: https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/resource/semantic_conventions/README.md#service\n","engines":{"node":">=8.0.0"},"gitHead":"f79aef422b53f1314cb0b031651875658fc17008","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"npm run protos:copy && tsc -w","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","submodule":"git submodule sync --recursive && git submodule update --init --recursive","postcompile":"npm run submodule && npm run protos:copy","protos:copy":"cpx protos/opentelemetry/**/*.* build/protos/opentelemetry"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.0+x64 (linux)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.17.0","dependencies":{"@grpc/grpc-js":"^1.2.12","@grpc/proto-loader":"^0.6.0","@opentelemetry/core":"^0.20.1-alpha.49+f79aef42","@opentelemetry/metrics":"^0.20.1-alpha.49+f79aef42","@opentelemetry/tracing":"^0.20.1-alpha.49+f79aef42","@opentelemetry/resources":"^0.20.1-alpha.49+f79aef42","@opentelemetry/exporter-collector":"^0.20.1-alpha.49+f79aef42"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cpx":"1.5.0","nyc":"15.1.0","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","ts-loader":"8.2.0","typescript":"4.3.2","@babel/core":"7.14.0","@types/node":"14.14.43","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@opentelemetry/api":"^0.20.0","@opentelemetry/api-metrics":"^0.20.1-alpha.49+f79aef42"},"peerDependencies":{"@opentelemetry/api":"^0.20.0"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.20.1-alpha.49_1622740214074_0.5732465163821325","host":"s3://npm-registry-packages"}},"0.20.0":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.20.0","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.20.0","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"3468f1e4c75c1cfcf730d9c0c69b130122471369","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.20.0.tgz","fileCount":35,"integrity":"sha512-cTkpHgHaHOxlHuuZi+B8rna1O9AuZlKNXHWYL3KFngtC18ut16DRV51hOtSRj9YyqupRSGnvc+yjrab92OINSA==","signatures":[{"sig":"MEUCIQDe1PlwkfPs+IvQNs0KDzTLKCknQkmpK5E77M8QEGwwgwIgGmrtQkl/Ogs2PSYstgCvZ9YBQXPaNtjheOrtsViGXqA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":107917,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJguR9hCRA9TVsSAnZWagAA1t4QAJV5obEIMawcFIhEdIhv\nsrv+Ax+pPupsx8sViIQDwFpFbCdNeaaRi3dKOhrufaaKnV3xfXIvDU3XNKiF\nDBK9qlPqg0dH4ZzTFNUPLmUamAmZZf95OdSIhY+XvYc1ASaJDV7QKiOljTP+\nyFGqb/HHPtrqSTXgZ87iiZFnHm88QTktnpY7809tK8EbxllCHe3pzOYxBhxG\nb+9Q/H9tqw2odGwrJEAeOgi5nZIVjOxkde/yMzdvHLw4X1iTZKC8d8UD762r\nTH9t1jKINMTMIZQ4FQbv9gm9GbkhIbhn2q6jr34YbrcQ7i6swJAVz4gDMksK\n0eFi81ia+yCE+vvq/e51Em0rrEHl3eijukjgpbPMVOfnP/ukFgdJgEuQs59d\nFhkYc+S+ajykb6rB+XO8jVDnqu3MayN4OVZn34hFPmQBxVxYYG2KAgmzr6kU\nze7qIHQLm4NPQjQwFZYO4VNXhuC5iwg8uZFICLTMJcAYUsg5nfVwHVtimd5e\nNimAwuiH0WwfRgBRBluAM8iGCvyPbp27X2aK6qEJdqcz5cs7WXzYXbrutlKC\ny9GM1AQvZhQJDK8Cqv5UGGSLyVDCwMpBJYarqiIMoCAOdifZDcnmuYFAclhB\nIhBAe1fL3t7comh0UZSrUHU2L6ZxTMMtFrsSkLSw1MLBOZVffFC7hH4YLJNP\nAS+B\r\n=kF+9\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","engines":{"node":">=8.0.0"},"gitHead":"f79aef422b53f1314cb0b031651875658fc17008","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"npm run protos:copy && tsc -w","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","submodule":"git submodule sync --recursive && git submodule update --init --recursive","postcompile":"npm run submodule && npm run protos:copy","protos:copy":"cpx protos/opentelemetry/**/*.* build/protos/opentelemetry"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.8.0+x64 (darwin)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.8.0","dependencies":{"@grpc/grpc-js":"^1.2.12","@grpc/proto-loader":"^0.6.0","@opentelemetry/core":"0.20.0","@opentelemetry/metrics":"0.20.0","@opentelemetry/tracing":"0.20.0","@opentelemetry/resources":"0.20.0","@opentelemetry/exporter-collector":"0.20.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"cpx":"1.5.0","nyc":"15.1.0","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","ts-loader":"8.2.0","typescript":"4.3.2","@babel/core":"7.14.0","@types/node":"14.14.43","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@opentelemetry/api":"^0.20.0","@opentelemetry/api-metrics":"0.20.0"},"peerDependencies":{"@opentelemetry/api":"^0.20.0"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.20.0_1622744929337_0.8702180893389155","host":"s3://npm-registry-packages"}},"0.20.1-alpha.3":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.20.1-alpha.3","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.20.1-alpha.3","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"2cc17de76e92be8c83bee256e83cbf325554e3d8","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.20.1-alpha.3.tgz","fileCount":35,"integrity":"sha512-zAxAsMl40r3bureGTYTGBdBaXF3GjonWkjiP+5YyL/oOyi5W4mGZ1QDUskeVrPS3n3AXMrV6OqXcEYl3U2rkqg==","signatures":[{"sig":"MEUCIA/7DSmQXZh2+6nRxx3UpifnCAtfuiV7+rL2aTIfItQEAiEAs1zFqQnI+aa1DfC3TB8sUOXvo1pR3AIW4tMVC4+Nyto=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":108042,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJguzXlCRA9TVsSAnZWagAA30wP+QDYI+RJJsSiOfumQi2Y\ndKAKOnoopLEQtC7bhln4XWWQz+F7w56WKYg5S6w+m8sIbc0QisopN1CpnWBr\ncxV9++wOKvJkzN/WMWGltbUx4badYCikbnfszLy28ki4yFiKq09f2it5GzWI\nS9CWE6jbhBdCdJ9Vsn2Xt1knf+Oh8TBD4Wnn0tVlCm5N9P7viWFQVnXx3zTI\nJPEDm4oV2c2q+W/Ml7iUDqdHnD9+aS7zTkDD2FcbdbIvE2puA4PGgZSh/vk6\nrrlQIz7tPRii9WHEBsFfe0JtRn6nsxFNWaWWMtXrQM3B7uhA+H3p/GQr/Zyi\nY7NHNf60/83VcjevVmfDjJ/t7bfGINJoyl166ajZ4mt+bfkEO+NVsiBe7bD/\nUgXzgfArotD/soF8uyd8Fg3UtBSDUJhprqzOMMObPHI4H/xBa1cVonwXG8BJ\nWTFqhVBTEQV5z+yQRXI8DO/eQzcWxKs1Gt/fnf9oKEtBXZ92/PkGcXnETEra\nh2EdZOET0ZQOTJuSUBBH0mgl9LhE3AfPHQpDqFIOGHYfx+wL4UceYNUkIWyI\nxcs2QN4wGEHlLq4ZCfYvlr4axytIcWiAP3EDnF8gyAAZ5q+a8Np1dfwkZc7l\nXEWLJ+Hj1iZz8yoZvBAkHlS3/MeIx7FJtW6/SqmwyUEnFK8uPwrbiNIiidZF\nXrEX\r\n=yplg\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry Collector Exporter for node with grpc\n\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.25.0**.\n\n## Installation\n\n```bash\nnpm install --save @opentelemetry/exporter-collector-grpc\n```\n\n## Service Name\n\nThe OpenTelemetry Collector Exporter does not have a service name configuration.\nIn order to set the service name, use the `service.name` resource attribute as prescribed in the [OpenTelemetry Resource Semantic Conventions][semconv-resource-service-name].\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/traces`.\n\n```js\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/tracing');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is localhost:4317\n  url: '<collector-hostname>:<port>',\n};\n\nconst provider = new BasicTracerProvider();\nconst exporter = new CollectorTraceExporter(collectorOptions);\nprovider.addSpanProcessor(new SimpleSpanProcessor(exporter));\n\nprovider.register();\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\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/grpc-js');\n\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/tracing');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is localhost:4317\n  url: '<collector-hostname>:<port>',\n  credentials: grpc.credentials.createSsl(),\n};\n\nconst provider = new BasicTracerProvider();\nconst exporter = new CollectorTraceExporter(collectorOptions);\nprovider.addSpanProcessor(new SimpleSpanProcessor(exporter));\n\nprovider.register();\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n```\n\nTo use mutual authentication, pass to the `createSsl()` constructor:\n\n```js\n  credentials: grpc.credentials.createSsl(\n    fs.readFileSync('./ca.crt'),\n    fs.readFileSync('./client.key'),\n    fs.readFileSync('./client.crt')\n  ),\n```\n\nTo generate credentials for mutual authentication, 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/grpc-js');\n\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/tracing');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst metadata = new grpc.Metadata();\n// For instance, an API key or access token might go here.\nmetadata.set('k', 'v');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is localhost:4317\n  url: '<collector-hostname>:<port>',\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['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n```\n\nNote, that this will only work if TLS is also configured on the server.\n\n## Metrics in Node - GRPC\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-grpc');\nconst collectorOptions = {\n  // url is optional and can be omitted - default is localhost:4317\n  url: '<collector-hostname>:<port>',\n};\nconst exporter = new CollectorMetricExporter(collectorOptions);\n\n// Register the exporter\nconst provider = new MeterProvider({\n  exporter,\n  interval: 60000,\n})\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n\n// Now, start recording data\nconst meter = provider.getMeter('example-meter');\nconst counter = meter.createCounter('metric_name');\ncounter.add(10, { 'key': 'value' });\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 in [GitHub Discussions][discussions-url]\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\n[discussions-url]: https://github.com/open-telemetry/opentelemetry-js/discussions\n[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/main/LICENSE\n[license-image]: https://img.shields.io/badge/license-Apache_2.0-green.svg?style=flat\n[dependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc\n[devDependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/exporter-collector-grpc\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fexporter-collector-grpc.svg\n[opentelemetry-collector-url]: https://github.com/open-telemetry/opentelemetry-collector\n[semconv-resource-service-name]: https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/resource/semantic_conventions/README.md#service\n","engines":{"node":">=8.0.0"},"gitHead":"d4df2f7ebaaaf433bd84b568c482e2788103ab71","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"npm run protos:copy && tsc -w","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","submodule":"git submodule sync --recursive && git submodule update --init --recursive","postcompile":"npm run submodule && npm run protos:copy","protos:copy":"cpx protos/opentelemetry/**/*.* build/protos/opentelemetry"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.0+x64 (linux)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.17.0","dependencies":{"@grpc/grpc-js":"^1.2.12","@grpc/proto-loader":"^0.6.0","@opentelemetry/core":"^0.20.1-alpha.3+d4df2f7e","@opentelemetry/metrics":"^0.20.1-alpha.3+d4df2f7e","@opentelemetry/tracing":"^0.20.1-alpha.3+d4df2f7e","@opentelemetry/resources":"^0.20.1-alpha.3+d4df2f7e","@opentelemetry/exporter-collector":"^0.20.1-alpha.3+d4df2f7e"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cpx":"1.5.0","nyc":"15.1.0","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.1","ts-node":"9.1.1","ts-mocha":"8.0.0","ts-loader":"8.2.0","typescript":"4.3.2","@babel/core":"7.14.0","@types/node":"14.14.43","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@opentelemetry/api":"^0.21.0","@opentelemetry/api-metrics":"^0.20.1-alpha.3+d4df2f7e"},"peerDependencies":{"@opentelemetry/api":"^0.21.0"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.20.1-alpha.3_1622881765078_0.30042168269172453","host":"s3://npm-registry-packages"}},"0.20.1-alpha.4":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.20.1-alpha.4","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.20.1-alpha.4","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"70570af6dc53f8f895fe855811a4087a2d261f48","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.20.1-alpha.4.tgz","fileCount":35,"integrity":"sha512-3wEfUZD0QiLUMn696Lqcli/GWque2ee/xszpqY+/ywnppcXJ5jyAT5oLAPEodO/mlluwrXWOmj/IL2bfLbia6w==","signatures":[{"sig":"MEQCIH3pOMUXIL+SSqa30UOiK+pcWPFxfSq55m6fWQuXsSBVAiBfWe1oBh1efmdzCRkfbOpCoEyfGBbGGNPBwd5vzlu6Mw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":108042,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgv3B0CRA9TVsSAnZWagAA5iAP/1bosu/I3lFpw6MuNtIv\ng2/3+j4AqgVDDx7kiVGwQtzkfQJy9qJjo8a5Cz/r3bLw+Vv/gFIFU+4y1H5J\n1GYeeTs/gxEKGytwczK6gN8iJX3IUERKqGV1PPSC7QkGCKUnpgIbF2lRI27m\n2fet5aWICxtxML6z+xDBHUKWmkk2yRyuXv+24OaMjZwaL6E+zV6WxlGXDq9H\nNitCUJombAWSoDPG1xbrnepFF35fgceXT1oY1JFqC5EkMwbi2S2elZ4DYHcz\nYbKB/ilOl+DU9uMYWkV4GfmOFqfKaDGkUPcNoRvM0ICYhAU076G0IfMNkIcf\nae7O3tpJ/aB6V5ZluzDrKAJidQbyKyPGicitNZ+eXEDOCbgpjwH2EFb0fytf\nHWwLLHU2/6j7+zrUQF9U96tToxKZx3UnjQRzPHOoEJk0IwyUl0fTzm3qDMX6\nG0z87DGTiykg8jxPGrzY7nq9edmSS5LINz/fGvt9jp7iPi2Q2ylYuKnyjjO+\n1FO1b0ik6nKZPQ213KYE7Jnn+ohrrbU7grGj2ooPqCQB/+EZSM940J5Yb6oK\nTMv2vyyemFtbZFOeQpsPV3DDNgBO+veZTTw6kVnS1RkhFLev5zJ9BdCygoOl\nl1DaBja/h6C3wmS7V/gfGJsIBozsaPJUSpV8v/kadlsKi6NapwHwn9yda2uW\nO7eu\r\n=TUpS\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry Collector Exporter for node with grpc\n\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.25.0**.\n\n## Installation\n\n```bash\nnpm install --save @opentelemetry/exporter-collector-grpc\n```\n\n## Service Name\n\nThe OpenTelemetry Collector Exporter does not have a service name configuration.\nIn order to set the service name, use the `service.name` resource attribute as prescribed in the [OpenTelemetry Resource Semantic Conventions][semconv-resource-service-name].\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/traces`.\n\n```js\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/tracing');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is localhost:4317\n  url: '<collector-hostname>:<port>',\n};\n\nconst provider = new BasicTracerProvider();\nconst exporter = new CollectorTraceExporter(collectorOptions);\nprovider.addSpanProcessor(new SimpleSpanProcessor(exporter));\n\nprovider.register();\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\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/grpc-js');\n\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/tracing');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is localhost:4317\n  url: '<collector-hostname>:<port>',\n  credentials: grpc.credentials.createSsl(),\n};\n\nconst provider = new BasicTracerProvider();\nconst exporter = new CollectorTraceExporter(collectorOptions);\nprovider.addSpanProcessor(new SimpleSpanProcessor(exporter));\n\nprovider.register();\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n```\n\nTo use mutual authentication, pass to the `createSsl()` constructor:\n\n```js\n  credentials: grpc.credentials.createSsl(\n    fs.readFileSync('./ca.crt'),\n    fs.readFileSync('./client.key'),\n    fs.readFileSync('./client.crt')\n  ),\n```\n\nTo generate credentials for mutual authentication, 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/grpc-js');\n\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/tracing');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst metadata = new grpc.Metadata();\n// For instance, an API key or access token might go here.\nmetadata.set('k', 'v');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is localhost:4317\n  url: '<collector-hostname>:<port>',\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['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n```\n\nNote, that this will only work if TLS is also configured on the server.\n\n## Metrics in Node - GRPC\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-grpc');\nconst collectorOptions = {\n  // url is optional and can be omitted - default is localhost:4317\n  url: '<collector-hostname>:<port>',\n};\nconst exporter = new CollectorMetricExporter(collectorOptions);\n\n// Register the exporter\nconst provider = new MeterProvider({\n  exporter,\n  interval: 60000,\n})\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n\n// Now, start recording data\nconst meter = provider.getMeter('example-meter');\nconst counter = meter.createCounter('metric_name');\ncounter.add(10, { 'key': 'value' });\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 in [GitHub Discussions][discussions-url]\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\n[discussions-url]: https://github.com/open-telemetry/opentelemetry-js/discussions\n[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/main/LICENSE\n[license-image]: https://img.shields.io/badge/license-Apache_2.0-green.svg?style=flat\n[dependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc\n[devDependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/exporter-collector-grpc\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fexporter-collector-grpc.svg\n[opentelemetry-collector-url]: https://github.com/open-telemetry/opentelemetry-collector\n[semconv-resource-service-name]: https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/resource/semantic_conventions/README.md#service\n","engines":{"node":">=8.0.0"},"gitHead":"3d98420cf530968e6a85bc4b9c2b1bb78b730b3c","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"npm run protos:copy && tsc -w","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","submodule":"git submodule sync --recursive && git submodule update --init --recursive","postcompile":"npm run submodule && npm run protos:copy","protos:copy":"cpx protos/opentelemetry/**/*.* build/protos/opentelemetry"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.0+x64 (linux)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.17.0","dependencies":{"@grpc/grpc-js":"^1.2.12","@grpc/proto-loader":"^0.6.0","@opentelemetry/core":"^0.20.1-alpha.4+3d98420c","@opentelemetry/metrics":"^0.20.1-alpha.4+3d98420c","@opentelemetry/tracing":"^0.20.1-alpha.4+3d98420c","@opentelemetry/resources":"^0.20.1-alpha.4+3d98420c","@opentelemetry/exporter-collector":"^0.20.1-alpha.4+3d98420c"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cpx":"1.5.0","nyc":"15.1.0","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.2","ts-node":"9.1.1","ts-mocha":"8.0.0","ts-loader":"8.2.0","typescript":"4.3.2","@babel/core":"7.14.0","@types/node":"14.14.43","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@opentelemetry/api":"^0.21.0","@opentelemetry/api-metrics":"^0.20.1-alpha.4+3d98420c"},"peerDependencies":{"@opentelemetry/api":"^0.21.0"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.20.1-alpha.4_1623158899922_0.9810007889702461","host":"s3://npm-registry-packages"}},"0.21.1-alpha.7":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.21.1-alpha.7","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.21.1-alpha.7","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"8180f9fd7a8cf2396a57bd9754b7de94e5e59e0d","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.21.1-alpha.7.tgz","fileCount":35,"integrity":"sha512-cnOedxe5l3CXxHW6Cn5SKn3l/o4XXEqJ8APGOooRtZjbeDnWQ8RORhZNBwnLoGd+BKXoxYSJRXk40lQogr6TsQ==","signatures":[{"sig":"MEUCICTCy+HTUMqJOP4zNHuCgOmy/ZX9BNWZtWtFBVQGlEq7AiEA9RxYA9Ym0dz+Egc6cGyBwd10dZoXbUUBrs3SxBHKOAc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":108042,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgwktFCRA9TVsSAnZWagAAP28P/1emCvxrje5u8agNxuvQ\nU0VcfsZ9FjoTC8sa+sEWsfh+INoTu85R11449HAR0pJ85DJXJEr0FUmSI499\nMMcboYPx25qfBjB93uN3y8xiFMwIfHXt3loX37HLmbvEcC3SjVE4iaR76z+c\n2NqUv2qnLKfHqIL8quaLZMfVVwghvyhcqcQNRLr+sOrkf7Gbdat8mNh4X37z\nMCGnZHGg91uibp74gHKVZ3Vl8XreIvZrdSJAA11oBKchfpZDup2xn4MuwFuq\nSeuh2ohKS+SDTHZ1zV1RTbAmuprMeZrR4yC+a9Z1OF6hCq6n0VFHFm6oXdPo\n9PHYjCG3QIcUJB9YrFFOQrppxaak7CCqSSj9Ehh9P0yC7xiMkghVo/H9e1Ht\n8a8KM+oRGsW2FNQy+Wj16n6GWOOBu7aOInDAZFuZdnb/EEyPTtogDeOBcV1t\nJ42Fvsw7QLOIe7RcyODNMigEd1Uy3cpE+jvXXx5nw8F3ZCq63gqo4MSu5IBd\n3LJy6PHKYieH4Bc5dXSOfSUxy4yeBLpKRiLoJnwa3MytJ/Ri4yjZERvj9uoc\nHKH99niuym5+w24PtIMCnRf+1NI3vBcQTjzSGoi+BnQ3N1QTsgp+Fj7l2qi3\nxhnHaAKWdfOzDrh7jYytlMsZhp2kbrM17jgOuHh2oGH8/OOG0dqagTc/RHz8\nqURE\r\n=Udyn\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry Collector Exporter for node with grpc\n\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.25.0**.\n\n## Installation\n\n```bash\nnpm install --save @opentelemetry/exporter-collector-grpc\n```\n\n## Service Name\n\nThe OpenTelemetry Collector Exporter does not have a service name configuration.\nIn order to set the service name, use the `service.name` resource attribute as prescribed in the [OpenTelemetry Resource Semantic Conventions][semconv-resource-service-name].\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/traces`.\n\n```js\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/tracing');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is localhost:4317\n  url: '<collector-hostname>:<port>',\n};\n\nconst provider = new BasicTracerProvider();\nconst exporter = new CollectorTraceExporter(collectorOptions);\nprovider.addSpanProcessor(new SimpleSpanProcessor(exporter));\n\nprovider.register();\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\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/grpc-js');\n\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/tracing');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is localhost:4317\n  url: '<collector-hostname>:<port>',\n  credentials: grpc.credentials.createSsl(),\n};\n\nconst provider = new BasicTracerProvider();\nconst exporter = new CollectorTraceExporter(collectorOptions);\nprovider.addSpanProcessor(new SimpleSpanProcessor(exporter));\n\nprovider.register();\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n```\n\nTo use mutual authentication, pass to the `createSsl()` constructor:\n\n```js\n  credentials: grpc.credentials.createSsl(\n    fs.readFileSync('./ca.crt'),\n    fs.readFileSync('./client.key'),\n    fs.readFileSync('./client.crt')\n  ),\n```\n\nTo generate credentials for mutual authentication, 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/grpc-js');\n\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/tracing');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst metadata = new grpc.Metadata();\n// For instance, an API key or access token might go here.\nmetadata.set('k', 'v');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is localhost:4317\n  url: '<collector-hostname>:<port>',\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['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n```\n\nNote, that this will only work if TLS is also configured on the server.\n\n## Metrics in Node - GRPC\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-grpc');\nconst collectorOptions = {\n  // url is optional and can be omitted - default is localhost:4317\n  url: '<collector-hostname>:<port>',\n};\nconst exporter = new CollectorMetricExporter(collectorOptions);\n\n// Register the exporter\nconst provider = new MeterProvider({\n  exporter,\n  interval: 60000,\n})\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n\n// Now, start recording data\nconst meter = provider.getMeter('example-meter');\nconst counter = meter.createCounter('metric_name');\ncounter.add(10, { 'key': 'value' });\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 in [GitHub Discussions][discussions-url]\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\n[discussions-url]: https://github.com/open-telemetry/opentelemetry-js/discussions\n[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/main/LICENSE\n[license-image]: https://img.shields.io/badge/license-Apache_2.0-green.svg?style=flat\n[dependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc\n[devDependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/exporter-collector-grpc\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fexporter-collector-grpc.svg\n[opentelemetry-collector-url]: https://github.com/open-telemetry/opentelemetry-collector\n[semconv-resource-service-name]: https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/resource/semantic_conventions/README.md#service\n","engines":{"node":">=8.0.0"},"gitHead":"7750282034ee58bdd257446c2970f01307d7522a","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"npm run protos:copy && tsc -w","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","submodule":"git submodule sync --recursive && git submodule update --init --recursive","postcompile":"npm run submodule && npm run protos:copy","protos:copy":"cpx protos/opentelemetry/**/*.* build/protos/opentelemetry"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.0+x64 (linux)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.17.0","dependencies":{"@grpc/grpc-js":"^1.2.12","@grpc/proto-loader":"^0.6.0","@opentelemetry/core":"^0.21.1-alpha.7+77502820","@opentelemetry/metrics":"^0.21.1-alpha.7+77502820","@opentelemetry/tracing":"^0.21.1-alpha.7+77502820","@opentelemetry/resources":"^0.21.1-alpha.7+77502820","@opentelemetry/exporter-collector":"^0.21.1-alpha.7+77502820"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cpx":"1.5.0","nyc":"15.1.0","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.2","ts-node":"9.1.1","ts-mocha":"8.0.0","ts-loader":"8.2.0","typescript":"4.3.2","@babel/core":"7.14.0","@types/node":"14.14.43","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@opentelemetry/api":"^0.21.0","@opentelemetry/api-metrics":"^0.21.1-alpha.7+77502820"},"peerDependencies":{"@opentelemetry/api":"^0.21.0"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.21.1-alpha.7_1623345989460_0.18978261923628081","host":"s3://npm-registry-packages"}},"0.21.0":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.21.0","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.21.0","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"03d61b6203c8929125d9cff953d5290347ed99f9","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.21.0.tgz","fileCount":35,"integrity":"sha512-9V+lI+uA+exi826qNEWShuP6jMaXqMndi5n4HDwk5xYvfujYmcPDL/BA9gHwyC83zjE5rfJCqHnga4e9GWAhJA==","signatures":[{"sig":"MEQCIFaxkQ/lpQUf12ukAkJAVnIN7YI9IRtWRvIceveNmTKMAiByWscT34caTZNq1AorfztxD0ydtAszovXWECohUkk5pw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":107917,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgwlopCRA9TVsSAnZWagAA4WoP/jBV0JmpxTWtwNUh+eRJ\nmVCyqkETMxjSsGtx3J2RIlsC2DAhudXNcmwNIyRRINoEU1hfPGbs99aIRode\nhnMYGS4lCSgVq4A0+9fTiPid0OeAG4nz5Lnmj2yT6RiqX+R2jpxHsVHrZFMx\nYDwx8CrHMJUOwrnR5B9lO2TgvB7AMstK8fHataw3OIYImc5RTWA9VYKCSUpZ\nQykIAaI2PntSp7Rl7+W4gfW9gMnF2Dji8stFY8/qPbyuYQladcYNE6aKwh1U\n96bDNnbMHgVAoGZFAape6TjiSpJ5CO4cswL4Rfdtnu7qO9p97tD2XhhOoAbn\nI995a+3JZCQ6nRakmDY+j9RcA69V+6o6jGBBd0lz3ZqYsIo53+1Ofd10KJEH\n0FWNrXgZ6c2123vI00u6c9bcvtieJ6adVdOMGY6ZZTg2zdYPZ/bTdOuyTx/H\nHVYQChGSqs6KErYaY4CTCgHkAczuV5Mphy+CP16zl1si0/FowkLbBQWY8M3N\ncmDhOQJ5UOyHBvQIfMHLnsDZJ/dTaW8CiduaH1T0TYwlG4HnfcAIkoSyU+5b\nqT1bJCwhj4xTsZYVJ4Yp3wSQyQ48o/qGMCQft9Q7u1tP4w+4DWH5nP1OGTkJ\nr77Tzy5M8XGTKCsqTSBsboELjhmzFMFonJ+CoRo1kf/o9fylSoBofqTsV8M3\ncxnE\r\n=bBz/\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","engines":{"node":">=8.0.0"},"gitHead":"7750282034ee58bdd257446c2970f01307d7522a","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"npm run protos:copy && tsc -w","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","submodule":"git submodule sync --recursive && git submodule update --init --recursive","postcompile":"npm run submodule && npm run protos:copy","protos:copy":"cpx protos/opentelemetry/**/*.* build/protos/opentelemetry"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.8.0+x64 (darwin)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.8.0","dependencies":{"@grpc/grpc-js":"^1.2.12","@grpc/proto-loader":"^0.6.0","@opentelemetry/core":"0.21.0","@opentelemetry/metrics":"0.21.0","@opentelemetry/tracing":"0.21.0","@opentelemetry/resources":"0.21.0","@opentelemetry/exporter-collector":"0.21.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"cpx":"1.5.0","nyc":"15.1.0","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.2","ts-node":"9.1.1","ts-mocha":"8.0.0","ts-loader":"8.2.0","typescript":"4.3.2","@babel/core":"7.14.0","@types/node":"14.14.43","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@opentelemetry/api":"^0.21.0","@opentelemetry/api-metrics":"0.21.0"},"peerDependencies":{"@opentelemetry/api":"^0.21.0"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.21.0_1623349801549_0.9191365644567899","host":"s3://npm-registry-packages"}},"0.21.1-alpha.1":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.21.1-alpha.1","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.21.1-alpha.1","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"63dccac69af9f6fad307a9f4c9b7da6e1330fbf1","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.21.1-alpha.1.tgz","fileCount":35,"integrity":"sha512-Phw1JIhME3K32j2wfPcu3GSvVOXH/kLnHacXg8YtnpOWkQddbKl+lHq14AT/JyxRkFOQl3k5b4wenmgDKV5kdA==","signatures":[{"sig":"MEUCIQCcP1OQchsr7yVwXV4A9ftdUVsOYGEobZgdlNtOHLhf/gIgbjuYKwhvoVGerwq/cUfm3f4exmIn86FwIl4DnYJMXgo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":108040,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgxG9ZCRA9TVsSAnZWagAAmS4P/RWNKiT4Jl/GUgSkft/u\nSYjXXILUaoisx+Nfi3L+jRRm8ME6t3E/rLQSMrrHnFI+mvwKpiNX2Ggr2Gdb\n93INY+uaYj3MTSXsxx8wHxNTQjYHNn0j1VSetmZhsq4glV68uGUufiBOtsql\ne1jXTp9W8smz6PcElyUgaPm/uDqGsh+MAwnleGdH6tiDKUUHrN+10akzqNAt\nvfXpkG+6UGdqQgyjr04E2s+2Dy0rgL38aSdBzhd/qlr7+2p+i6BUydxjA6mU\no8odJSZZGr78KRr24T4RCL/utpVoJ/hjyPL/OwmabNFw/lpVnimiel5OQmQn\n73jjpJNDruEsZ7ERpZiRUoqw98SwXrS/nuRjhsDE2/ly3VquwxbmNLsEWuhp\njM1Vunty4E240De5SJVajiTClrMn1gm8PaHYaCMYCQA2T5+kHl3j3tj6QSsP\n0Y6uw52QVcKUzxm/XHJE6erSYmm3s9Cv4oyVMbfnVsIV5YA9nbuRgHgTM+Hh\nZ6CYBqewwnbU6UZSH7rR2gBwN2P+ZMiEUumGwtsHlJ5uzcGaBPZzxNT7ay3K\no57PSRrp8aoC878sTxCP/sAXhSyhIJqeNmVM257kgL20M8Y4JGYi0yyqhwmH\nCwvhm7cS31Qx2/su02c9IjTxSDxRCto4lgqkOPVT96oSVdzsHkpNnSBJCvaX\nL6qX\r\n=FGJf\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry Collector Exporter for node with grpc\n\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.25.0**.\n\n## Installation\n\n```bash\nnpm install --save @opentelemetry/exporter-collector-grpc\n```\n\n## Service Name\n\nThe OpenTelemetry Collector Exporter does not have a service name configuration.\nIn order to set the service name, use the `service.name` resource attribute as prescribed in the [OpenTelemetry Resource Semantic Conventions][semconv-resource-service-name].\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/traces`.\n\n```js\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/tracing');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is localhost:4317\n  url: '<collector-hostname>:<port>',\n};\n\nconst provider = new BasicTracerProvider();\nconst exporter = new CollectorTraceExporter(collectorOptions);\nprovider.addSpanProcessor(new SimpleSpanProcessor(exporter));\n\nprovider.register();\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\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/grpc-js');\n\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/tracing');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is localhost:4317\n  url: '<collector-hostname>:<port>',\n  credentials: grpc.credentials.createSsl(),\n};\n\nconst provider = new BasicTracerProvider();\nconst exporter = new CollectorTraceExporter(collectorOptions);\nprovider.addSpanProcessor(new SimpleSpanProcessor(exporter));\n\nprovider.register();\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n```\n\nTo use mutual authentication, pass to the `createSsl()` constructor:\n\n```js\n  credentials: grpc.credentials.createSsl(\n    fs.readFileSync('./ca.crt'),\n    fs.readFileSync('./client.key'),\n    fs.readFileSync('./client.crt')\n  ),\n```\n\nTo generate credentials for mutual authentication, 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/grpc-js');\n\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/tracing');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst metadata = new grpc.Metadata();\n// For instance, an API key or access token might go here.\nmetadata.set('k', 'v');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is localhost:4317\n  url: '<collector-hostname>:<port>',\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['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n```\n\nNote, that this will only work if TLS is also configured on the server.\n\n## Metrics in Node - GRPC\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-grpc');\nconst collectorOptions = {\n  // url is optional and can be omitted - default is localhost:4317\n  url: '<collector-hostname>:<port>',\n};\nconst exporter = new CollectorMetricExporter(collectorOptions);\n\n// Register the exporter\nconst provider = new MeterProvider({\n  exporter,\n  interval: 60000,\n})\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n\n// Now, start recording data\nconst meter = provider.getMeter('example-meter');\nconst counter = meter.createCounter('metric_name');\ncounter.add(10, { 'key': 'value' });\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 in [GitHub Discussions][discussions-url]\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\n[discussions-url]: https://github.com/open-telemetry/opentelemetry-js/discussions\n[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/main/LICENSE\n[license-image]: https://img.shields.io/badge/license-Apache_2.0-green.svg?style=flat\n[dependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc\n[devDependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/exporter-collector-grpc\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fexporter-collector-grpc.svg\n[opentelemetry-collector-url]: https://github.com/open-telemetry/opentelemetry-collector\n[semconv-resource-service-name]: https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/resource/semantic_conventions/README.md#service\n","engines":{"node":">=8.0.0"},"gitHead":"5b6573eeff537ab49d8d8d42217e5cc794f9ad70","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"npm run protos:copy && tsc -w","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","submodule":"git submodule sync --recursive && git submodule update --init --recursive","postcompile":"npm run submodule && npm run protos:copy","protos:copy":"cpx protos/opentelemetry/**/*.* build/protos/opentelemetry"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.0+x64 (linux)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.17.0","dependencies":{"@grpc/grpc-js":"^1.2.12","@grpc/proto-loader":"^0.6.0","@opentelemetry/core":"^0.21.1-alpha.1+5b6573ee","@opentelemetry/metrics":"^0.21.1-alpha.1+5b6573ee","@opentelemetry/tracing":"^0.21.1-alpha.1+5b6573ee","@opentelemetry/resources":"^0.21.1-alpha.1+5b6573ee","@opentelemetry/exporter-collector":"^0.21.1-alpha.1+5b6573ee"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cpx":"1.5.0","nyc":"15.1.0","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.2","ts-node":"9.1.1","ts-mocha":"8.0.0","ts-loader":"8.2.0","typescript":"4.3.2","@babel/core":"7.14.0","@types/node":"14.14.43","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@opentelemetry/api":"^1.0.0","@opentelemetry/api-metrics":"^0.21.1-alpha.1+5b6573ee"},"peerDependencies":{"@opentelemetry/api":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.21.1-alpha.1_1623486297404_0.1660862295854182","host":"s3://npm-registry-packages"}},"0.21.1-alpha.2":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.21.1-alpha.2","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.21.1-alpha.2","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"d091055a6569ed91ed4c0d2b410b2542c8a2d3fc","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.21.1-alpha.2.tgz","fileCount":35,"integrity":"sha512-GbKW7+8AsD7V0DsX6G9/SadVl6TTDIIauWK7HuGI4Aq3kUikVosroE0FHMAkDC8s1qjdzCG2uDAaOGLGzJQKkQ==","signatures":[{"sig":"MEUCIQDqY7zb8IKwoqmN8DdgNM7lMA6EgbSgBfgPxWEcxa4n3QIgbE5N8w8ad4y47ZPiWpboayhzFAx61PzmE6D7edNPL7A=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":108023,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgxHHZCRA9TVsSAnZWagAAULQP/iIblAacQ4txSSqCmEfI\nld+PSCjOi6LxAy8aIZn+5WzRd2OEN15wlKj/HaKJkJJKjfqLRtYp3odgq/Wp\nVNQgpwq51u2mMks2+87PCQtBjHEUH0EyhCQYHBdBKBOVEBQzXdFDiZacLCX7\ntvrtKYDf3T6SZW11k1W4/IaoGYt8TgubBpxoYXsLxfm/5XQB8LkiSt336LZ+\nqOU7MDSfBETSLGjvX8sWTWb4mbED0qXtnJj7YVPEiyim0WqBZ5HAHgMutAJa\ny5OdafEqEMjUX6kzVR05t36fG/DYH9ZICj52kZ7erVKxfrQXpdOhoKqO2jja\nWoSp5zaSQvtnvG9oFwHhrfBCaoVD/05tDI48GjK1Dg6XvenS2ocmbphq6C61\ny8VPqlTGjIX8YFsQtQwj9d9rpRH8n46o20SFldR5wOuiaw5OH2JrlKN5h2iX\nZHV46/OaNUFl+y/m2XIhtrQrvv57jmrXcAt/9X+vZUklcvsuwswC05tJbRfd\n2WM/lU1T0RGb+qJqx91FiVeoY5ZYu0n3fgbMLHIuCaaf3iPqYI1WMH17J7+1\nN97DkSHOWAF+F2IuWp2/dLi5XufGDLZXqLupLjVPCT/nkAnhvyeVb2D6Uc6I\nS6m74gijEXbnRnoQdYMsKf+M8D/+qN4vBpCXDXihGzNhUDlNPtOhcFKYUQRH\nyet8\r\n=TbUf\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry Collector Exporter for node with grpc\n\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.25.0**.\n\n## Installation\n\n```bash\nnpm install --save @opentelemetry/exporter-collector-grpc\n```\n\n## Service Name\n\nThe OpenTelemetry Collector Exporter does not have a service name configuration.\nIn order to set the service name, use the `service.name` resource attribute as prescribed in the [OpenTelemetry Resource Semantic Conventions][semconv-resource-service-name].\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/traces`.\n\n```js\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/tracing');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is localhost:4317\n  url: '<collector-hostname>:<port>',\n};\n\nconst provider = new BasicTracerProvider();\nconst exporter = new CollectorTraceExporter(collectorOptions);\nprovider.addSpanProcessor(new SimpleSpanProcessor(exporter));\n\nprovider.register();\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\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/grpc-js');\n\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/tracing');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is localhost:4317\n  url: '<collector-hostname>:<port>',\n  credentials: grpc.credentials.createSsl(),\n};\n\nconst provider = new BasicTracerProvider();\nconst exporter = new CollectorTraceExporter(collectorOptions);\nprovider.addSpanProcessor(new SimpleSpanProcessor(exporter));\n\nprovider.register();\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n```\n\nTo use mutual authentication, pass to the `createSsl()` constructor:\n\n```js\n  credentials: grpc.credentials.createSsl(\n    fs.readFileSync('./ca.crt'),\n    fs.readFileSync('./client.key'),\n    fs.readFileSync('./client.crt')\n  ),\n```\n\nTo generate credentials for mutual authentication, 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/grpc-js');\n\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/tracing');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst metadata = new grpc.Metadata();\n// For instance, an API key or access token might go here.\nmetadata.set('k', 'v');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is localhost:4317\n  url: '<collector-hostname>:<port>',\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['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n```\n\nNote, that this will only work if TLS is also configured on the server.\n\n## Metrics in Node - GRPC\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-grpc');\nconst collectorOptions = {\n  // url is optional and can be omitted - default is localhost:4317\n  url: '<collector-hostname>:<port>',\n};\nconst exporter = new CollectorMetricExporter(collectorOptions);\n\n// Register the exporter\nconst provider = new MeterProvider({\n  exporter,\n  interval: 60000,\n})\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n\n// Now, start recording data\nconst meter = provider.getMeter('example-meter');\nconst counter = meter.createCounter('metric_name');\ncounter.add(10, { 'key': 'value' });\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 in [GitHub Discussions][discussions-url]\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\n[discussions-url]: https://github.com/open-telemetry/opentelemetry-js/discussions\n[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/main/LICENSE\n[license-image]: https://img.shields.io/badge/license-Apache_2.0-green.svg?style=flat\n[dependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc\n[devDependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/exporter-collector-grpc\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fexporter-collector-grpc.svg\n[opentelemetry-collector-url]: https://github.com/open-telemetry/opentelemetry-collector\n[semconv-resource-service-name]: https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/resource/semantic_conventions/README.md#service\n","engines":{"node":">=8.0.0"},"gitHead":"a3b77387012a5f53c193efdefcbf5f6272876e4d","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"npm run protos:copy && tsc -w","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","submodule":"git submodule sync --recursive && git submodule update --init --recursive","postcompile":"npm run submodule && npm run protos:copy","protos:copy":"cpx protos/opentelemetry/**/*.* build/protos/opentelemetry"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.0+x64 (linux)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.17.0","dependencies":{"@grpc/grpc-js":"^1.2.12","@grpc/proto-loader":"^0.6.0","@opentelemetry/core":"^0.21.1-alpha.2+a3b77387","@opentelemetry/metrics":"^0.21.1-alpha.2+a3b77387","@opentelemetry/tracing":"^0.21.1-alpha.2+a3b77387","@opentelemetry/resources":"^0.21.1-alpha.2+a3b77387","@opentelemetry/exporter-collector":"^0.21.1-alpha.2+a3b77387"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cpx":"1.5.0","nyc":"15.1.0","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.2","ts-node":"9.1.1","ts-mocha":"8.0.0","ts-loader":"8.2.0","typescript":"4.3.2","@babel/core":"7.14.0","@types/node":"14.14.43","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@opentelemetry/api":"^1.0.0","@opentelemetry/api-metrics":"^0.21.0"},"peerDependencies":{"@opentelemetry/api":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.21.1-alpha.2_1623486937809_0.4364044246640697","host":"s3://npm-registry-packages"}},"0.21.1-alpha.3":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.21.1-alpha.3","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.21.1-alpha.3","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"0b6d599b7fce3446ef872195b1fdb36a19bcb8b7","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.21.1-alpha.3.tgz","fileCount":35,"integrity":"sha512-5oSUypl2ylwYm/Ixei/kdJ33a9WzruDgKrQazgbst8LyjMQfSW0FFoRh/1QSgQC3rq9fRRuz72GZc26WzLyRJQ==","signatures":[{"sig":"MEYCIQCpgsawSNzviHJ4fAXeqBAePKgFn4lZtxtPc4ixNWBqYAIhAPSaoAavdMn0wioJrj3GWYG4RPJgggJ6g6QIF+7Q/DWr","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":107972,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgyfWiCRA9TVsSAnZWagAAJ64P/2ljmsL/eQliZJDpJiP/\nhzRYzIOY63dRGOtvX80UfSl6oKAsOa60x9rB2/TStL3ulRWDD1y0zz3jnmzg\ngyihO29ydAdE1JvY4EbUpwMctm7RQl8hpnUwQ81LsXMib2n2nTgBsFvvCI1P\nobVWNQgA7lVbAMnOe8gAWVmM1wLg8AguqgxPtlR8wtjLzBMS/ywbdYpzi0nW\nLLmij3gG9Dh4ljBWci703359sYoLapJECuNagspQseoz3BlXvasknIwaWYZ4\nxLNbzhztu+x+UxlP5HAzgtWEuO1u1EBKDEYRq8o30WyLtQwKubSl6yqNBBiE\n7dZ1MqooloV+geyuBafpoZt0ulQxt8tUOJDLYLlqKwJuuWXUyTizs6cm8YDN\nOLLzEbDfah6Mx+sI03wYSdjJRbgunQG0KT3uvLpFynwH2DkYnU0IgpUHMqm1\ncERD3L5oGIYbxm8kPsCiRlsBuVOTQFaNmn/PC6i/JzGgLMIc+ZHBZi6CgTzH\nLVLOMCEgM+gdckgXiel/au/INM8tkiUat32+6ExTZQK0+Tds9/ZyqXbk6sre\nTCyZLwN1GKmr5fI1psdqDZ13CA0HSQLQwQB29pwVX9iZ/UdJOd7FyVuHtHae\n1q5uZw2+/KdJ+ebEdZwSOSGEEKbhVdMNlShMWcD9gqWcX1P9Vfq6u1TvntPD\nCls2\r\n=UGPD\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry Collector Exporter for node with grpc\n\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.25.0**.\n\n## Installation\n\n```bash\nnpm install --save @opentelemetry/exporter-collector-grpc\n```\n\n## Service Name\n\nThe OpenTelemetry Collector Exporter does not have a service name configuration.\nIn order to set the service name, use the `service.name` resource attribute as prescribed in the [OpenTelemetry Resource Semantic Conventions][semconv-resource-service-name].\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/traces`.\n\n```js\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/tracing');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is localhost:4317\n  url: '<collector-hostname>:<port>',\n};\n\nconst provider = new BasicTracerProvider();\nconst exporter = new CollectorTraceExporter(collectorOptions);\nprovider.addSpanProcessor(new SimpleSpanProcessor(exporter));\n\nprovider.register();\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\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/grpc-js');\n\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/tracing');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is localhost:4317\n  url: '<collector-hostname>:<port>',\n  credentials: grpc.credentials.createSsl(),\n};\n\nconst provider = new BasicTracerProvider();\nconst exporter = new CollectorTraceExporter(collectorOptions);\nprovider.addSpanProcessor(new SimpleSpanProcessor(exporter));\n\nprovider.register();\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n```\n\nTo use mutual authentication, pass to the `createSsl()` constructor:\n\n```js\n  credentials: grpc.credentials.createSsl(\n    fs.readFileSync('./ca.crt'),\n    fs.readFileSync('./client.key'),\n    fs.readFileSync('./client.crt')\n  ),\n```\n\nTo generate credentials for mutual authentication, 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/grpc-js');\n\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/tracing');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst metadata = new grpc.Metadata();\n// For instance, an API key or access token might go here.\nmetadata.set('k', 'v');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is localhost:4317\n  url: '<collector-hostname>:<port>',\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['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n```\n\nNote, that this will only work if TLS is also configured on the server.\n\n## Metrics in Node - GRPC\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-grpc');\nconst collectorOptions = {\n  // url is optional and can be omitted - default is localhost:4317\n  url: '<collector-hostname>:<port>',\n};\nconst exporter = new CollectorMetricExporter(collectorOptions);\n\n// Register the exporter\nconst provider = new MeterProvider({\n  exporter,\n  interval: 60000,\n})\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n\n// Now, start recording data\nconst meter = provider.getMeter('example-meter');\nconst counter = meter.createCounter('metric_name');\ncounter.add(10, { 'key': 'value' });\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 in [GitHub Discussions][discussions-url]\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\n[discussions-url]: https://github.com/open-telemetry/opentelemetry-js/discussions\n[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/main/LICENSE\n[license-image]: https://img.shields.io/badge/license-Apache_2.0-green.svg?style=flat\n[dependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc\n[devDependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/exporter-collector-grpc\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fexporter-collector-grpc.svg\n[opentelemetry-collector-url]: https://github.com/open-telemetry/opentelemetry-collector\n[semconv-resource-service-name]: https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/resource/semantic_conventions/README.md#service\n","engines":{"node":">=8.0.0"},"gitHead":"23db7f0ba383a3043964eb03be11c09df3f7453a","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"npm run protos:copy && tsc -w","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","submodule":"git submodule sync --recursive && git submodule update --init --recursive","postcompile":"npm run submodule && npm run protos:copy","protos:copy":"cpx protos/opentelemetry/**/*.* build/protos/opentelemetry"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.0+x64 (linux)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.17.0","dependencies":{"@grpc/grpc-js":"^1.2.12","@grpc/proto-loader":"^0.6.0","@opentelemetry/core":"^0.21.0","@opentelemetry/metrics":"^0.21.0","@opentelemetry/tracing":"^0.21.1-alpha.3+23db7f0b","@opentelemetry/resources":"^0.21.0","@opentelemetry/exporter-collector":"^0.21.1-alpha.3+23db7f0b"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cpx":"1.5.0","nyc":"15.1.0","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.2","ts-node":"9.1.1","ts-mocha":"8.0.0","ts-loader":"8.2.0","typescript":"4.3.2","@babel/core":"7.14.0","@types/node":"14.14.43","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@opentelemetry/api":"^1.0.0","@opentelemetry/api-metrics":"^0.21.0"},"peerDependencies":{"@opentelemetry/api":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.21.1-alpha.3_1623848354082_0.2970916301618187","host":"s3://npm-registry-packages"}},"0.22.1-alpha.5":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.22.1-alpha.5","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.22.1-alpha.5","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"83e1f1d1d0811ffa389651c7827fe0238983df6e","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.22.1-alpha.5.tgz","fileCount":35,"integrity":"sha512-RB4/VyC+rFr8/xweb1PT//P2z9CX+LLAWgeLrOvTehg74sj71pQEMIm2yrmmbWD2T8Rxi4/ZsY6TjMMHgpuuwA==","signatures":[{"sig":"MEUCIQCHaZixA+zRlxNRd241oXNQ2/lPxYCCEz8N/F6irxxfkwIgTceSlh0wQ2tkdV4wKfNCuK2p4ld/68dlHiNHWQt4X/A=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":108040,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgy4DhCRA9TVsSAnZWagAA2xAQAJd3uWAYZINyrkkT/Ab0\nmfxr+5bpKGSa8sNm2usKH+d28I7Ea4QQIB8Oxfqhz8K/MOl65sdZz02soJZC\nthA3ZAE9SfjlPaTf4AdpkTGOmVkRuaeSS6wYh15hP20jIbDfYSA8WAK4CKL2\nx/cp2oCVIjMGmUH4917av8aMJxS30xsj0A6f6XuiLA0PQx9dPiDxp4EUHfTV\nvWHCVmWqP0CmxWIntd1OPzgCcV4rLeskKc4YdpeSZl343+1aPx/YHswlc77A\nK/rhQvVMWmbMA9RRW8bbrA1xV7Zvw2yRgDYKGNUPIblNZhE4NK0B3wW4DoyB\nAqzPGhRzKlMqv4/BHfqjEJd0IVaKwViA92FCpfRJ8Z8DsrmiECnQeuyGIgOd\n7B23iAwJHnQX75/rlzvyrKkUgaGZt69xhnHSzztcvMUw2Z9UvuvZ2LnqxiUs\nsKobfPXCmEXLbsSIHSHL+MZszlpuD+WMAR6fa4CnkLBkXxgqlv+lIZ0DmDC9\niE51RuAO62zWuqAR/jb3YMdv8QOatGbjlwilxUwTGISEsWETG7pjNsLRgy5p\nn7URUJInVL7v1m7TxzyLROtukHs28v93hOzS8S5Fxq/XGvisa/iZvtPyOfQX\ndFfcIxcRfnVFat8frUHIUvqLUXIgWoMeQEZci9PZ/NXKLFLn12YqcV3jU2uP\nVrKd\r\n=DKrR\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry Collector Exporter for node with grpc\n\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.25.0**.\n\n## Installation\n\n```bash\nnpm install --save @opentelemetry/exporter-collector-grpc\n```\n\n## Service Name\n\nThe OpenTelemetry Collector Exporter does not have a service name configuration.\nIn order to set the service name, use the `service.name` resource attribute as prescribed in the [OpenTelemetry Resource Semantic Conventions][semconv-resource-service-name].\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/traces`.\n\n```js\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/tracing');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is localhost:4317\n  url: '<collector-hostname>:<port>',\n};\n\nconst provider = new BasicTracerProvider();\nconst exporter = new CollectorTraceExporter(collectorOptions);\nprovider.addSpanProcessor(new SimpleSpanProcessor(exporter));\n\nprovider.register();\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\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/grpc-js');\n\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/tracing');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is localhost:4317\n  url: '<collector-hostname>:<port>',\n  credentials: grpc.credentials.createSsl(),\n};\n\nconst provider = new BasicTracerProvider();\nconst exporter = new CollectorTraceExporter(collectorOptions);\nprovider.addSpanProcessor(new SimpleSpanProcessor(exporter));\n\nprovider.register();\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n```\n\nTo use mutual authentication, pass to the `createSsl()` constructor:\n\n```js\n  credentials: grpc.credentials.createSsl(\n    fs.readFileSync('./ca.crt'),\n    fs.readFileSync('./client.key'),\n    fs.readFileSync('./client.crt')\n  ),\n```\n\nTo generate credentials for mutual authentication, 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/grpc-js');\n\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/tracing');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst metadata = new grpc.Metadata();\n// For instance, an API key or access token might go here.\nmetadata.set('k', 'v');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is localhost:4317\n  url: '<collector-hostname>:<port>',\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['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n```\n\nNote, that this will only work if TLS is also configured on the server.\n\n## Metrics in Node - GRPC\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-grpc');\nconst collectorOptions = {\n  // url is optional and can be omitted - default is localhost:4317\n  url: '<collector-hostname>:<port>',\n};\nconst exporter = new CollectorMetricExporter(collectorOptions);\n\n// Register the exporter\nconst provider = new MeterProvider({\n  exporter,\n  interval: 60000,\n})\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n\n// Now, start recording data\nconst meter = provider.getMeter('example-meter');\nconst counter = meter.createCounter('metric_name');\ncounter.add(10, { 'key': 'value' });\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 in [GitHub Discussions][discussions-url]\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\n[discussions-url]: https://github.com/open-telemetry/opentelemetry-js/discussions\n[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/main/LICENSE\n[license-image]: https://img.shields.io/badge/license-Apache_2.0-green.svg?style=flat\n[dependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc\n[devDependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/exporter-collector-grpc\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fexporter-collector-grpc.svg\n[opentelemetry-collector-url]: https://github.com/open-telemetry/opentelemetry-collector\n[semconv-resource-service-name]: https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/resource/semantic_conventions/README.md#service\n","engines":{"node":">=8.0.0"},"gitHead":"7860344eca83449170bafd03fd288e1a3deebacf","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"npm run protos:copy && tsc -w","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","submodule":"git submodule sync --recursive && git submodule update --init --recursive","postcompile":"npm run submodule && npm run protos:copy","protos:copy":"cpx protos/opentelemetry/**/*.* build/protos/opentelemetry"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.0+x64 (linux)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.17.0","dependencies":{"@grpc/grpc-js":"^1.2.12","@grpc/proto-loader":"^0.6.0","@opentelemetry/core":"^0.22.1-alpha.5+7860344e","@opentelemetry/metrics":"^0.22.1-alpha.5+7860344e","@opentelemetry/tracing":"^0.22.1-alpha.5+7860344e","@opentelemetry/resources":"^0.22.1-alpha.5+7860344e","@opentelemetry/exporter-collector":"^0.22.1-alpha.5+7860344e"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cpx":"1.5.0","nyc":"15.1.0","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.2","ts-node":"9.1.1","ts-mocha":"8.0.0","ts-loader":"8.2.0","typescript":"4.3.2","@babel/core":"7.14.0","@types/node":"14.14.43","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@opentelemetry/api":"^1.0.0","@opentelemetry/api-metrics":"^0.22.1-alpha.5+7860344e"},"peerDependencies":{"@opentelemetry/api":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.22.1-alpha.5_1623949536878_0.1011282300297891","host":"s3://npm-registry-packages"}},"0.22.0":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.22.0","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.22.0","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"cd30ebada94411626950d3a0071ab04935e19d51","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.22.0.tgz","fileCount":35,"integrity":"sha512-K3Z3jOeVqCK3HVndHNB/aXOfR04QU/dQAleKkQXFq+yKS7qkfQy44hv/DFGMcy0w06v7zHWcrkW6WEmNMaRrmw==","signatures":[{"sig":"MEUCIATLVSvF3fpGK4AVgc76XQeaca9n6ZD0nPHlvpTCVCGaAiEA04TAgKblTeVcNACp+avmllKAaVktcMfkyzrshIYTNfo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":107915,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgy41cCRA9TVsSAnZWagAA+doP/2R/3E0/8zqxv2xQjRWt\nx5YgacyA2ziUfbECULHkWxLujXCUU7ru0/dBTxVO59Y+bom5S2q8/6dWFAn0\nCYGIdsFoLzixYaKYWQ/WPTnYoyYFd8AObSf27+50N2IVCuSeCyItp/FZ5uf3\nO0huRjivJ7vR0UU/r1qc39CKl7MoejOrWl1RUbRF9uztPsw+i8BcwdYhkHRG\nwPsujNtcCvv3XPiJd91aFq4yY255SpesJRyV+23wxEL2kCeRY7VgufgSqUQt\nL+Llac89cotTgDZ5S2+2C8lTV8bmwGQ4HpfA6+YM7QQqp6B2nyWob541ESsQ\nIEqhBeWEYirrB4gg9BaW/Vp7YiRhCp92ZqQk/i3ieLj5ji824Hzxnw0zPclK\nHKF/UpjqxzdVY/++UXiGTWVazbpV+s5bn0z9wVcoJo5ntmShzkA36twk3MLb\nUY0QsCkZM1KXACLokgg4bwTcM0kOgJAurP88XvHZv98MU6s9/PJB8UIJxFDB\n6EZPiS/YLakLJeO200wGBkuxe3Cy9xRih9VZWMfp9YCUbpARdnp0UECmGkk1\newVxetlc+HziAtmcKhNLwxsWbV5Azdti4Ij3qsWo6hWNAkwOcFa044GZzzFz\nKibuypbOrx3MXUAONG1Jvln2xcCDDF6mkQcffOQUHpzejiV6naT6kl4UyvEt\n69K8\r\n=qn0b\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","engines":{"node":">=8.0.0"},"gitHead":"7860344eca83449170bafd03fd288e1a3deebacf","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"npm run protos:copy && tsc -w","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","submodule":"git submodule sync --recursive && git submodule update --init --recursive","postcompile":"npm run submodule && npm run protos:copy","protos:copy":"cpx protos/opentelemetry/**/*.* build/protos/opentelemetry"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.8.0+x64 (darwin)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.8.0","dependencies":{"@grpc/grpc-js":"^1.2.12","@grpc/proto-loader":"^0.6.0","@opentelemetry/core":"0.22.0","@opentelemetry/metrics":"0.22.0","@opentelemetry/tracing":"0.22.0","@opentelemetry/resources":"0.22.0","@opentelemetry/exporter-collector":"0.22.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"cpx":"1.5.0","nyc":"15.1.0","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.2","ts-node":"9.1.1","ts-mocha":"8.0.0","ts-loader":"8.2.0","typescript":"4.3.2","@babel/core":"7.14.0","@types/node":"14.14.43","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@opentelemetry/api":"^1.0.0","@opentelemetry/api-metrics":"0.22.0"},"peerDependencies":{"@opentelemetry/api":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.22.0_1623952731977_0.41516781673209446","host":"s3://npm-registry-packages"}},"0.22.1-alpha.2":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.22.1-alpha.2","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.22.1-alpha.2","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"96d585b0db22b2b7f9f9ff104491268bc2ff1bf6","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.22.1-alpha.2.tgz","fileCount":35,"integrity":"sha512-WkR+mBYfK7nXnRCh1vs7U2NhY/k/pk51Vc48Qn03wWVc/+fKztWKrZU/VU3vD4a9sEaGvAMQsO4Z1SlFOIog0w==","signatures":[{"sig":"MEYCIQCDoYs+0C64VJb11+tQZiIvirLLFPp9NvacihqFOBGcAgIhAPaSOBAYCsPtR5JtmSVvpRrn3Mqb8S549Mu5e5cRE9np","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":108006,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg01gHCRA9TVsSAnZWagAAKXMP/2RAgWVu2heO1TQqdmWw\n355N0akRCJKsSQHz8sHx6iynwsNnJ3EyYR8FfQJsHuzTvL8iEAQlIb5dCIFX\nztqdg/zSwBvGE93dQ+vSKR0HCQB7Wbzlgh+wMEcmnCq+UfmlP3wGo/gFAAfc\nLilZEjgiouUBOMxNWevTCVowsPVgSE+GiWP5qi0OZl243kLXG+CByaPshbv1\nayRmQJm8cG77cqmpcX3CMK9ANWII3pV6D4NAhwkxYyg7/wtE07cS3tgqu5X5\nu4mouj9gwEhU4RaO6MGv2mavcFfq6e5TBC85S/f7WWnRDjyzFZw1dGBS1V4d\n+Oi5TRfHLlB3zPEKTBHCitE+V38zZIxk5s+UyhD8KS2z7a8cWsMz/qq2r6kf\nYsFYoM5LIud0Igwl2db9okygfLjwZVPWWQM946DQOAng/Us5KNsOCTYf3s67\nBinVL3D2/D4cykPur+nGKUtDTAAgZpYgb/zLc5e2ARU3bi39u7+n4x24kjp5\nq900HL1pj6C/zTn63Nf/KFX0sGA6L+CnQAK0K/if783WCSiJUI7ciyezXIpi\nmma+fSnCpo4rxODVRbZYc2UzIPmQK5fib0Yok1TJYJydAy8Ae+jOhBR6mkJ+\nFu2S8GrM0Z91FnlmSAcn/6VdurzMyYGhjXgXLbl82w6JpwDm09gM8219JB81\nrY1p\r\n=Oprx\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry Collector Exporter for node with grpc\n\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.25.0**.\n\n## Installation\n\n```bash\nnpm install --save @opentelemetry/exporter-collector-grpc\n```\n\n## Service Name\n\nThe OpenTelemetry Collector Exporter does not have a service name configuration.\nIn order to set the service name, use the `service.name` resource attribute as prescribed in the [OpenTelemetry Resource Semantic Conventions][semconv-resource-service-name].\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/traces`.\n\n```js\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/tracing');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is localhost:4317\n  url: '<collector-hostname>:<port>',\n};\n\nconst provider = new BasicTracerProvider();\nconst exporter = new CollectorTraceExporter(collectorOptions);\nprovider.addSpanProcessor(new SimpleSpanProcessor(exporter));\n\nprovider.register();\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\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/grpc-js');\n\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/tracing');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is localhost:4317\n  url: '<collector-hostname>:<port>',\n  credentials: grpc.credentials.createSsl(),\n};\n\nconst provider = new BasicTracerProvider();\nconst exporter = new CollectorTraceExporter(collectorOptions);\nprovider.addSpanProcessor(new SimpleSpanProcessor(exporter));\n\nprovider.register();\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n```\n\nTo use mutual authentication, pass to the `createSsl()` constructor:\n\n```js\n  credentials: grpc.credentials.createSsl(\n    fs.readFileSync('./ca.crt'),\n    fs.readFileSync('./client.key'),\n    fs.readFileSync('./client.crt')\n  ),\n```\n\nTo generate credentials for mutual authentication, 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/grpc-js');\n\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/tracing');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst metadata = new grpc.Metadata();\n// For instance, an API key or access token might go here.\nmetadata.set('k', 'v');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is localhost:4317\n  url: '<collector-hostname>:<port>',\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['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n```\n\nNote, that this will only work if TLS is also configured on the server.\n\n## Metrics in Node - GRPC\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-grpc');\nconst collectorOptions = {\n  // url is optional and can be omitted - default is localhost:4317\n  url: '<collector-hostname>:<port>',\n};\nconst exporter = new CollectorMetricExporter(collectorOptions);\n\n// Register the exporter\nconst provider = new MeterProvider({\n  exporter,\n  interval: 60000,\n})\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n\n// Now, start recording data\nconst meter = provider.getMeter('example-meter');\nconst counter = meter.createCounter('metric_name');\ncounter.add(10, { 'key': 'value' });\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 in [GitHub Discussions][discussions-url]\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\n[discussions-url]: https://github.com/open-telemetry/opentelemetry-js/discussions\n[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/main/LICENSE\n[license-image]: https://img.shields.io/badge/license-Apache_2.0-green.svg?style=flat\n[dependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc\n[devDependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/exporter-collector-grpc\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fexporter-collector-grpc.svg\n[opentelemetry-collector-url]: https://github.com/open-telemetry/opentelemetry-collector\n[semconv-resource-service-name]: https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/resource/semantic_conventions/README.md#service\n","engines":{"node":">=8.0.0"},"gitHead":"bd2a005229ea7a0a64ca0ac7c2206ee40d19bfce","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"npm run protos:copy && tsc -w","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","submodule":"git submodule sync --recursive && git submodule update --init --recursive","postcompile":"npm run submodule && npm run protos:copy","protos:copy":"cpx protos/opentelemetry/**/*.* build/protos/opentelemetry"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.0+x64 (linux)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.17.0","dependencies":{"@grpc/grpc-js":"^1.2.12","@grpc/proto-loader":"^0.6.0","@opentelemetry/core":"^0.22.0","@opentelemetry/metrics":"^0.22.1-alpha.2+bd2a0052","@opentelemetry/tracing":"^0.22.1-alpha.2+bd2a0052","@opentelemetry/resources":"^0.22.1-alpha.2+bd2a0052","@opentelemetry/exporter-collector":"^0.22.1-alpha.2+bd2a0052"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cpx":"1.5.0","nyc":"15.1.0","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.2","ts-node":"9.1.1","ts-mocha":"8.0.0","ts-loader":"8.2.0","typescript":"4.3.2","@babel/core":"7.14.0","@types/node":"14.14.43","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@opentelemetry/api":"^1.0.0","@opentelemetry/api-metrics":"^0.22.0"},"peerDependencies":{"@opentelemetry/api":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.22.1-alpha.2_1624463366899_0.7084987295136873","host":"s3://npm-registry-packages"}},"0.22.1-alpha.3":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.22.1-alpha.3","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.22.1-alpha.3","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"1fd362adb9f9db3500020c343fdf2fee6006646f","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.22.1-alpha.3.tgz","fileCount":35,"integrity":"sha512-RZ6DvStIhnF33VZSL3inJSd6QKSjzQKQKUsDr3rMyuF6J8qAcHjUcW0PUTUWu0rcbdbsSER7GNsmm2vncLZBzw==","signatures":[{"sig":"MEYCIQCurRkHmV+o589RvJFKccmh8OljLnGBACJmvG6/9zr5WQIhAOPM6cw1ay1a4rkg4BsiPnnASH6O7YwXFs3A4Rz9fOMN","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":108023,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg01vCCRA9TVsSAnZWagAA948P/jUfB42Eu5f1DPx0uGOU\n+8g9Pnh/oLWKNMZyjApxPv7p0uNr5xUEGMk1uiLe19iPkztVwqi/wB1N1VLs\ngWKSVmdGzNcHQ/ldlusqJKhsoFvBmCt66KGB9+hOHbcAtKjHS0CsdUukcRtb\nXpk12B9olSkCve5UJyhdG+xR0bi7t+cyhLbZ3NZwDu0W+fl6uCoL3pkHVSJz\nI9Y3qEeUkXEd2WHnglN9n3snBYfXcEL5nwmML+uEWFRivMiZHwDzMc+EpnXV\nPA8zREYtK08l4STDUrxYpzD+1fp6tYGdMQvZBD3z8JFBSalDaj8/FK72I77h\nIBymboRowk/vu1tJkJmQ/p0IGqsLPyWtVXt9GYMLfrD0dyP+Wx3V7QvzyJbT\nZCVBh81wR4o+Jhg+lESMIhxPmx1a2+OQmrb+y+bB4cDnQCCoZqo+ZOlWFhPz\nNBqFFJl0xK1PHamtfyzq4gaKVmU9A3MBK6jgkvk1b7tAJTLAsaCPkp5QPj2W\n17BH32//MX8MymM2/mHkZT3bMZyIvVT0ylFE0tX7Z60pH8siCpe+h2RPfXRH\n4jwV7CZRBXTW7i98gIy6s69g0dzQnrPdiuGAq6WlMcEzF0OcejIhE2WqjGuI\nZe4HPClCM7rjqt03p/tf+mioLDuxoFK9WSqqWjEkRbv1NfwMMb0QABZRZH15\nWnrB\r\n=mPfF\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry Collector Exporter for node with grpc\n\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.25.0**.\n\n## Installation\n\n```bash\nnpm install --save @opentelemetry/exporter-collector-grpc\n```\n\n## Service Name\n\nThe OpenTelemetry Collector Exporter does not have a service name configuration.\nIn order to set the service name, use the `service.name` resource attribute as prescribed in the [OpenTelemetry Resource Semantic Conventions][semconv-resource-service-name].\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/traces`.\n\n```js\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/tracing');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is localhost:4317\n  url: '<collector-hostname>:<port>',\n};\n\nconst provider = new BasicTracerProvider();\nconst exporter = new CollectorTraceExporter(collectorOptions);\nprovider.addSpanProcessor(new SimpleSpanProcessor(exporter));\n\nprovider.register();\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\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/grpc-js');\n\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/tracing');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is localhost:4317\n  url: '<collector-hostname>:<port>',\n  credentials: grpc.credentials.createSsl(),\n};\n\nconst provider = new BasicTracerProvider();\nconst exporter = new CollectorTraceExporter(collectorOptions);\nprovider.addSpanProcessor(new SimpleSpanProcessor(exporter));\n\nprovider.register();\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n```\n\nTo use mutual authentication, pass to the `createSsl()` constructor:\n\n```js\n  credentials: grpc.credentials.createSsl(\n    fs.readFileSync('./ca.crt'),\n    fs.readFileSync('./client.key'),\n    fs.readFileSync('./client.crt')\n  ),\n```\n\nTo generate credentials for mutual authentication, 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/grpc-js');\n\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/tracing');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst metadata = new grpc.Metadata();\n// For instance, an API key or access token might go here.\nmetadata.set('k', 'v');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is localhost:4317\n  url: '<collector-hostname>:<port>',\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['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n```\n\nNote, that this will only work if TLS is also configured on the server.\n\n## Metrics in Node - GRPC\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-grpc');\nconst collectorOptions = {\n  // url is optional and can be omitted - default is localhost:4317\n  url: '<collector-hostname>:<port>',\n};\nconst exporter = new CollectorMetricExporter(collectorOptions);\n\n// Register the exporter\nconst provider = new MeterProvider({\n  exporter,\n  interval: 60000,\n})\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n\n// Now, start recording data\nconst meter = provider.getMeter('example-meter');\nconst counter = meter.createCounter('metric_name');\ncounter.add(10, { 'key': 'value' });\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 in [GitHub Discussions][discussions-url]\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\n[discussions-url]: https://github.com/open-telemetry/opentelemetry-js/discussions\n[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/main/LICENSE\n[license-image]: https://img.shields.io/badge/license-Apache_2.0-green.svg?style=flat\n[dependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc\n[devDependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/exporter-collector-grpc\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fexporter-collector-grpc.svg\n[opentelemetry-collector-url]: https://github.com/open-telemetry/opentelemetry-collector\n[semconv-resource-service-name]: https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/resource/semantic_conventions/README.md#service\n","engines":{"node":">=8.0.0"},"gitHead":"6fb4fd1712babdbb5de216c26e1283a94f7159ea","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"npm run protos:copy && tsc -w","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","submodule":"git submodule sync --recursive && git submodule update --init --recursive","postcompile":"npm run submodule && npm run protos:copy","protos:copy":"cpx protos/opentelemetry/**/*.* build/protos/opentelemetry"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.0+x64 (linux)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.17.0","dependencies":{"@grpc/grpc-js":"^1.2.12","@grpc/proto-loader":"^0.6.0","@opentelemetry/core":"^0.22.1-alpha.3+6fb4fd17","@opentelemetry/metrics":"^0.22.1-alpha.3+6fb4fd17","@opentelemetry/tracing":"^0.22.1-alpha.3+6fb4fd17","@opentelemetry/resources":"^0.22.1-alpha.3+6fb4fd17","@opentelemetry/exporter-collector":"^0.22.1-alpha.3+6fb4fd17"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cpx":"1.5.0","nyc":"15.1.0","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.2","ts-node":"9.1.1","ts-mocha":"8.0.0","ts-loader":"8.2.0","typescript":"4.3.2","@babel/core":"7.14.0","@types/node":"14.14.43","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@opentelemetry/api":"^1.0.0","@opentelemetry/api-metrics":"^0.22.0"},"peerDependencies":{"@opentelemetry/api":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.22.1-alpha.3_1624464322044_0.9203703678284416","host":"s3://npm-registry-packages"}},"0.22.1-alpha.10":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.22.1-alpha.10","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.22.1-alpha.10","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"6e2c117436e771eb564fe70caf6f0a7a23adbf5d","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.22.1-alpha.10.tgz","fileCount":35,"integrity":"sha512-zhG0bYVyI4v23T1+OYS6sm9ccg/Mc5QrF8PjO3kzp4a1KslaOP7ZpAq96eUOqgyKPTJ4TbczanrP9P+PjUXNFA==","signatures":[{"sig":"MEUCICbO84I7DNnuS/keorcBleFgbLhEurZ0TkgNeHiJ3RFNAiEAhzSnuzXS+Ed6JA2VkHpMCNWRAViJqJB9bEHIow5d3fU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":110100,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg3G4mCRA9TVsSAnZWagAA/1oP+wfD7EwjaL0WN3vosC1s\n5iPmZVSTEsGjms7uWlLkQzve8aBTPp5LJfaCk1p98UvZjQcCw+KNT7zROMQe\ndKZ8Wo2sJaOh1ITiEJR0V9awPvwGq5x3e9Qfpk8+/40/lvK1M4W1O4eHQ8Yd\nO0I/0uTXDbbbneHdOuTF0f5jcxo/aetifh3ftH4bH25V6phHa4HpKX28b4/O\nMvZ1013rIesHFi68XHsgWdT0AjrtNUcM9biSTNWhsHZXXOzeo9et3g82GnyX\nuR3JNmPCEF91MzTHOYMjSrU5Aj0tXXcC+TBk3VSA1vWWksLnq9QJF8RQtdGV\nlXT3q5tofrAfmWmpofq/DzflTkwf02GQXJziIpDB83A8H1X2Tm9xqyiyq+kK\n1/EY59PEHpM71amPVhDHky1D0I2Qni3feToVtsdqr9Nr4bLs/T9EceyNBdXP\n0opT5xKOEhQOvlM4iLDotc8EUY3YJKG3JM0eKQ98ZqbVJOQjbA11EyKZhVLs\nay3K9+0gY5yMCArXsl5UHGtKfVRcl6TXw5uKQUT/aLXZW/BXFcPFM4fbFnUD\n3O2Lh3NmlOVMOcvgvjq6M2aiIhtU8ePEk7t8nGGeoc7rEQpLPvdqAx9nHKoY\nu4518YaeOlJ2QMEhQWbe74WLE5a05y0QZp4k7yZRVOKAfH1iKugyO4IlLGFK\nVu1B\r\n=WNrs\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry Collector Exporter for node with grpc\n\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.25.0**.\n\n## Installation\n\n```bash\nnpm install --save @opentelemetry/exporter-collector-grpc\n```\n\n## Service Name\n\nThe OpenTelemetry Collector Exporter does not have a service name configuration.\nIn order to set the service name, use the `service.name` resource attribute as prescribed in the [OpenTelemetry Resource Semantic Conventions][semconv-resource-service-name].\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/traces`.\n\n```js\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/tracing');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is localhost:4317\n  url: '<collector-hostname>:<port>',\n};\n\nconst provider = new BasicTracerProvider();\nconst exporter = new CollectorTraceExporter(collectorOptions);\nprovider.addSpanProcessor(new SimpleSpanProcessor(exporter));\n\nprovider.register();\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\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/grpc-js');\n\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/tracing');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is localhost:4317\n  url: '<collector-hostname>:<port>',\n  credentials: grpc.credentials.createSsl(),\n};\n\nconst provider = new BasicTracerProvider();\nconst exporter = new CollectorTraceExporter(collectorOptions);\nprovider.addSpanProcessor(new SimpleSpanProcessor(exporter));\n\nprovider.register();\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n```\n\nTo use mutual authentication, pass to the `createSsl()` constructor:\n\n```js\n  credentials: grpc.credentials.createSsl(\n    fs.readFileSync('./ca.crt'),\n    fs.readFileSync('./client.key'),\n    fs.readFileSync('./client.crt')\n  ),\n```\n\nTo generate credentials for mutual authentication, 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/grpc-js');\n\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/tracing');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst metadata = new grpc.Metadata();\n// For instance, an API key or access token might go here.\nmetadata.set('k', 'v');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is localhost:4317\n  url: '<collector-hostname>:<port>',\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['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n```\n\nNote, that this will only work if TLS is also configured on the server.\n\n## Metrics in Node - GRPC\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-grpc');\nconst collectorOptions = {\n  // url is optional and can be omitted - default is localhost:4317\n  url: '<collector-hostname>:<port>',\n};\nconst exporter = new CollectorMetricExporter(collectorOptions);\n\n// Register the exporter\nconst provider = new MeterProvider({\n  exporter,\n  interval: 60000,\n})\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n\n// Now, start recording data\nconst meter = provider.getMeter('example-meter');\nconst counter = meter.createCounter('metric_name');\ncounter.add(10, { 'key': 'value' });\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 in [GitHub Discussions][discussions-url]\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\n[discussions-url]: https://github.com/open-telemetry/opentelemetry-js/discussions\n[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/main/LICENSE\n[license-image]: https://img.shields.io/badge/license-Apache_2.0-green.svg?style=flat\n[dependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc\n[devDependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/exporter-collector-grpc\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fexporter-collector-grpc.svg\n[opentelemetry-collector-url]: https://github.com/open-telemetry/opentelemetry-collector\n[semconv-resource-service-name]: https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/resource/semantic_conventions/README.md#service\n","engines":{"node":">=8.0.0"},"gitHead":"2276e4fdc63ed4b46640a9f1bb6fee8cf473ebe7","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"npm run protos:copy && tsc -w","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","submodule":"git submodule sync --recursive && git submodule update --init --recursive","postcompile":"npm run submodule && npm run protos:copy","protos:copy":"cpx protos/opentelemetry/**/*.* build/protos/opentelemetry"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.1+x64 (linux)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.17.1","dependencies":{"@grpc/grpc-js":"^1.2.12","@grpc/proto-loader":"^0.6.0","@opentelemetry/core":"^0.22.0","@opentelemetry/metrics":"^0.22.0","@opentelemetry/tracing":"^0.22.0","@opentelemetry/resources":"^0.22.0","@opentelemetry/exporter-collector":"^0.22.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cpx":"1.5.0","nyc":"15.1.0","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.2","ts-node":"9.1.1","ts-mocha":"8.0.0","ts-loader":"8.2.0","typescript":"4.3.2","@babel/core":"7.14.0","@types/node":"14.14.43","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@opentelemetry/api":"^1.0.0","@opentelemetry/api-metrics":"^0.22.0"},"peerDependencies":{"@opentelemetry/api":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.22.1-alpha.10_1625058854062_0.9605599486134615","host":"s3://npm-registry-packages"}},"0.22.1-alpha.13":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.22.1-alpha.13","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.22.1-alpha.13","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"e5e2f42bcbbc94abb2dc7156f1a72d442c794e91","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.22.1-alpha.13.tgz","fileCount":35,"integrity":"sha512-TMK6eL2DcHkCon5oxT+2HeCCKQunhOKO00TzMqQfR1z7m7TIAqYpnvi1RclQXpPuzXnNMWwifAkeDHPFddmQXQ==","signatures":[{"sig":"MEUCIGyhR+9684NWxblNlTzqrY+9z5lX4Y74VqM2ndjge1f9AiEA9jQ6Uv21PL1rTQhvS0qrEsBXiK6p6IZyHk5daK1v4nk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":110207,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg3Lq+CRA9TVsSAnZWagAA1hUP/1HpP4WIWQ6FVbG2gAkF\n9OP4frH987Y6Uj2MsgL5LmPivrhoUP7gEiPtaHEcyaAqWyJ4ZYTpKnVDZXOW\nvWxecS/JlRccIQDTwzqj8p4o3D3xJh97OFYGJfzPbCEOFY+tCY/mMJZV1tTm\n8FM0YT8hpAFJM8NBmvALeTjDBLxlAS5DG2Ats+aqfb9s68klwTZiqLZfa49L\nTU9RJ13bdfCsQcIdPq7Hx0IHjigr1CGQRKagOHURZXC8QtAEgFl2YJSo+Z4l\n3kseAzl/owzwNM/9I1LSYosw9DqOj/HSyOx7+uRN+Nmnd5KPZ+CbCZw8QXRp\nC6RQPfrxk6mT3a//zwvAO57IU4PPV8EDNmu8AxYr2M0PyKkwVvZ2uivJzUaf\nx111o/NdH6hZH+2rgFQL88kXab0RDDW8XRSF3PcddsoAzKUbkxK1iEGAiQ2g\nQTjEjregUCjUk03+9BlJ1j/ej4okAjSRxrsKxs1zC9yP21c311l28YZuNVDT\nQZR4Fs9+XIMUb0+u+37RjmL8OJ3QTM8nxFBoefNDpOftd0MYTHxOq1bZCMSL\nJ+2GZSDF0X0wFcQPrGxasQpfUzxRLoMoKk6s8devRX0TmakSJbsglD1v7A4L\n9mjb+IktRhtTmr5qMamBpJIO+PBzAszdOXC41SXUtpgDOpdsopEoD7RpS7Uy\nFupK\r\n=/ipd\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry Collector Exporter for node with grpc\n\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.25.0**.\n\n## Installation\n\n```bash\nnpm install --save @opentelemetry/exporter-collector-grpc\n```\n\n## Service Name\n\nThe OpenTelemetry Collector Exporter does not have a service name configuration.\nIn order to set the service name, use the `service.name` resource attribute as prescribed in the [OpenTelemetry Resource Semantic Conventions][semconv-resource-service-name].\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/traces`.\n\n```js\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/tracing');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is localhost:4317\n  url: '<collector-hostname>:<port>',\n};\n\nconst provider = new BasicTracerProvider();\nconst exporter = new CollectorTraceExporter(collectorOptions);\nprovider.addSpanProcessor(new SimpleSpanProcessor(exporter));\n\nprovider.register();\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\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/grpc-js');\n\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/tracing');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is localhost:4317\n  url: '<collector-hostname>:<port>',\n  credentials: grpc.credentials.createSsl(),\n};\n\nconst provider = new BasicTracerProvider();\nconst exporter = new CollectorTraceExporter(collectorOptions);\nprovider.addSpanProcessor(new SimpleSpanProcessor(exporter));\n\nprovider.register();\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n```\n\nTo use mutual authentication, pass to the `createSsl()` constructor:\n\n```js\n  credentials: grpc.credentials.createSsl(\n    fs.readFileSync('./ca.crt'),\n    fs.readFileSync('./client.key'),\n    fs.readFileSync('./client.crt')\n  ),\n```\n\nTo generate credentials for mutual authentication, 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/grpc-js');\n\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/tracing');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst metadata = new grpc.Metadata();\n// For instance, an API key or access token might go here.\nmetadata.set('k', 'v');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is localhost:4317\n  url: '<collector-hostname>:<port>',\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['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n```\n\nNote, that this will only work if TLS is also configured on the server.\n\n## Metrics in Node - GRPC\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-grpc');\nconst collectorOptions = {\n  // url is optional and can be omitted - default is localhost:4317\n  url: '<collector-hostname>:<port>',\n};\nconst exporter = new CollectorMetricExporter(collectorOptions);\n\n// Register the exporter\nconst provider = new MeterProvider({\n  exporter,\n  interval: 60000,\n})\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n\n// Now, start recording data\nconst meter = provider.getMeter('example-meter');\nconst counter = meter.createCounter('metric_name');\ncounter.add(10, { 'key': 'value' });\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 in [GitHub Discussions][discussions-url]\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\n[discussions-url]: https://github.com/open-telemetry/opentelemetry-js/discussions\n[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/main/LICENSE\n[license-image]: https://img.shields.io/badge/license-Apache_2.0-green.svg?style=flat\n[dependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc\n[devDependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/exporter-collector-grpc\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fexporter-collector-grpc.svg\n[opentelemetry-collector-url]: https://github.com/open-telemetry/opentelemetry-collector\n[semconv-resource-service-name]: https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/resource/semantic_conventions/README.md#service\n","engines":{"node":">=8.0.0"},"gitHead":"01418978e5cc15b5ec4d5283ec48910799fe2f06","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"npm run protos:copy && tsc -w","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","submodule":"git submodule sync --recursive && git submodule update --init --recursive","postcompile":"npm run submodule && npm run protos:copy","protos:copy":"cpx protos/opentelemetry/**/*.* build/protos/opentelemetry"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.1+x64 (linux)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.17.1","dependencies":{"@grpc/grpc-js":"^1.2.12","@grpc/proto-loader":"^0.6.0","@opentelemetry/core":"^0.22.1-alpha.13+01418978","@opentelemetry/metrics":"^0.22.1-alpha.13+01418978","@opentelemetry/tracing":"^0.22.1-alpha.13+01418978","@opentelemetry/resources":"^0.22.1-alpha.13+01418978","@opentelemetry/exporter-collector":"^0.22.1-alpha.13+01418978"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cpx":"1.5.0","nyc":"15.1.0","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.2","ts-node":"9.1.1","ts-mocha":"8.0.0","ts-loader":"8.3.0","typescript":"4.3.4","@babel/core":"7.14.6","@types/node":"14.17.4","@types/mocha":"8.2.2","@types/sinon":"9.0.11","@opentelemetry/api":"^1.0.1","@opentelemetry/api-metrics":"^0.22.1-alpha.13+01418978"},"peerDependencies":{"@opentelemetry/api":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.22.1-alpha.13_1625078461665_0.8178676800121936","host":"s3://npm-registry-packages"}},"0.22.1-alpha.15":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.22.1-alpha.15","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.22.1-alpha.15","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"355b46c87a93be8e14688e0e47e683026262f72b","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.22.1-alpha.15.tgz","fileCount":35,"integrity":"sha512-1wqubted7Uj2Z5n71ecFuBwJOHuMK9/wutm3tsv5W4xlqA6DKg1PCGxkudx0oARX/K0vB9lmvNJ8CskP5q5Z0Q==","signatures":[{"sig":"MEUCIBsLVrBA9g0K0pf+xMdeI43mzHiljh1zbJ64FN50Cv98AiEAl7hERW81N9pfpHOCJSmWKgJx0kuUvtN40XqrhilI41o=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":110189,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg3MFYCRA9TVsSAnZWagAA4ngP/1I+F9AM2oXb7dp4ERQl\nqeuwLYuUSVQT4Vr859V89Z3dMQ3fkC/MPAgCTMa92DxTWyV3oX+hatwR2o/F\n00LN9h5JN+ihtNwVSxKFPP4zgxFXlwyEXBv8ByTCPik7Um2ACqlI0KVkSLwA\nj0zm2wlSGPwce6X6wixrkP5zcWe0ZhOrkrQjrC0f6gSk2kh8np2k9iwankGK\nzYNhiaY3JD7m8yfqWzNUTsifDTFJVk/LCn4SJte32//BoHhPId6BlTtiwPMW\n/tQtB66/Fkj8eo4yR/XIw6cS+3ll2HyWcifN2z/AfiOO8LXFkIIPw+LvXyyp\ncFBBryoKpRygJ06zHmd0NFV5UR9IKlu6s+Xnm047Yp7ur8J4S2H4wukwkbEy\nBi0Vc3LdZtDrHXzeEuY/EWDBr7d9NMLyjjWJHbIvozOSXM2WnC7VswuIVGZF\n0Al5ookKmq6+mRU3EGUdMLl2s1mpwnqwoF+i5kvoD/Jz4bsK6XWjbD/ninph\nPmxs4/iSAaqP4wCahycGB3rKq6/Yb+7KFLGbeL4c2axahd1463rfHlXJw5TU\nLjif/p2fhry2IrbK5Wxm/x5Y6PJxVELT/KCE99Qx+GmkzdLucQz87vzorfc2\nKpf0TJtD8H/qIhvmp8gCkachl9yPviWAJFv37kPZVyUaYrjLxmOmYFWnqTXG\n4WvQ\r\n=wrtC\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry Collector Exporter for node with grpc\n\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.25.0**.\n\n## Installation\n\n```bash\nnpm install --save @opentelemetry/exporter-collector-grpc\n```\n\n## Service Name\n\nThe OpenTelemetry Collector Exporter does not have a service name configuration.\nIn order to set the service name, use the `service.name` resource attribute as prescribed in the [OpenTelemetry Resource Semantic Conventions][semconv-resource-service-name].\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/traces`.\n\n```js\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/tracing');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is localhost:4317\n  url: '<collector-hostname>:<port>',\n};\n\nconst provider = new BasicTracerProvider();\nconst exporter = new CollectorTraceExporter(collectorOptions);\nprovider.addSpanProcessor(new SimpleSpanProcessor(exporter));\n\nprovider.register();\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\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/grpc-js');\n\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/tracing');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is localhost:4317\n  url: '<collector-hostname>:<port>',\n  credentials: grpc.credentials.createSsl(),\n};\n\nconst provider = new BasicTracerProvider();\nconst exporter = new CollectorTraceExporter(collectorOptions);\nprovider.addSpanProcessor(new SimpleSpanProcessor(exporter));\n\nprovider.register();\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n```\n\nTo use mutual authentication, pass to the `createSsl()` constructor:\n\n```js\n  credentials: grpc.credentials.createSsl(\n    fs.readFileSync('./ca.crt'),\n    fs.readFileSync('./client.key'),\n    fs.readFileSync('./client.crt')\n  ),\n```\n\nTo generate credentials for mutual authentication, 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/grpc-js');\n\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/tracing');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst metadata = new grpc.Metadata();\n// For instance, an API key or access token might go here.\nmetadata.set('k', 'v');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is localhost:4317\n  url: '<collector-hostname>:<port>',\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['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n```\n\nNote, that this will only work if TLS is also configured on the server.\n\n## Metrics in Node - GRPC\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-grpc');\nconst collectorOptions = {\n  // url is optional and can be omitted - default is localhost:4317\n  url: '<collector-hostname>:<port>',\n};\nconst exporter = new CollectorMetricExporter(collectorOptions);\n\n// Register the exporter\nconst provider = new MeterProvider({\n  exporter,\n  interval: 60000,\n})\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n\n// Now, start recording data\nconst meter = provider.getMeter('example-meter');\nconst counter = meter.createCounter('metric_name');\ncounter.add(10, { 'key': 'value' });\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 in [GitHub Discussions][discussions-url]\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\n[discussions-url]: https://github.com/open-telemetry/opentelemetry-js/discussions\n[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/main/LICENSE\n[license-image]: https://img.shields.io/badge/license-Apache_2.0-green.svg?style=flat\n[dependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc\n[devDependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/exporter-collector-grpc\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fexporter-collector-grpc.svg\n[opentelemetry-collector-url]: https://github.com/open-telemetry/opentelemetry-collector\n[semconv-resource-service-name]: https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/resource/semantic_conventions/README.md#service\n","engines":{"node":">=8.0.0"},"gitHead":"c3ff9d1a6b599f01634ed2479183aca2c6d57337","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"npm run protos:copy && tsc -w","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","submodule":"git submodule sync --recursive && git submodule update --init --recursive","postcompile":"npm run submodule && npm run protos:copy","protos:copy":"cpx protos/opentelemetry/**/*.* build/protos/opentelemetry"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.1+x64 (linux)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.17.1","dependencies":{"@grpc/grpc-js":"^1.2.12","@grpc/proto-loader":"^0.6.0","@opentelemetry/core":"^0.22.1-alpha.15+c3ff9d1a","@opentelemetry/metrics":"^0.22.1-alpha.15+c3ff9d1a","@opentelemetry/tracing":"^0.22.1-alpha.15+c3ff9d1a","@opentelemetry/resources":"^0.22.1-alpha.15+c3ff9d1a","@opentelemetry/exporter-collector":"^0.22.1-alpha.15+c3ff9d1a"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cpx":"1.5.0","nyc":"15.1.0","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.2","ts-node":"9.1.1","ts-mocha":"8.0.0","ts-loader":"8.3.0","typescript":"4.3.4","@babel/core":"7.14.6","@types/node":"14.17.4","@types/mocha":"8.2.2","@types/sinon":"10.0.2","@opentelemetry/api":"^1.0.1","@opentelemetry/api-metrics":"^0.22.0"},"peerDependencies":{"@opentelemetry/api":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.22.1-alpha.15_1625080151670_0.2229587800728987","host":"s3://npm-registry-packages"}},"0.22.1-alpha.16":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.22.1-alpha.16","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.22.1-alpha.16","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"b6702e9595e6ca6e22f02228c89d6fcd1d0a62cc","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.22.1-alpha.16.tgz","fileCount":35,"integrity":"sha512-WahCu9nS+0mMSIiOiuidGPfe5UKgf8yOC+TPfmMMvAakeSmEht9yjhuJWaZG4EVeh2iFKmvRssNzl4UY3MxJxw==","signatures":[{"sig":"MEUCIE62WTUXAS7e4HFv31lWa5Gw/IbvfcajDzmzU6Gqmn3GAiEAtYGkwrZSz1Q6AFL6mqVb2uBHZxprCNWtyYZiBMnBFSM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":110190,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg3Mq5CRA9TVsSAnZWagAAroYQAIkK/npgUezszTeA7pDb\naLhqR0HLXhq74ye7EKFfL7BgptFcCJlc+C3N+pxFqC6iZ9VXV5Joa9OTB0f5\njU3cUXtLCqmxvse3dmT/SwdkLbrR32BjOwGEtscBtNNvS+FKoQ8ZZmJ9Q9UO\nNJ74lEeFxMFrI5NM3sOuILCvjXVA0xE24ngTSA4BTwdnv0MLb9YR71dnFFZP\nKvoZH1JjTq/jsQ4TOV45rl6bvmHcBKXJlmOwCtHBdBQ4FJ2NcEXqYhm39Sya\nllVLLnmuRZSmYGTJglsMJoihe6Ntcs8zjsOVNNuXV9triHnEkR4z54m3bw0K\nFxJBbQEWLxn+Og32DudsYJQEodlPq3ymkmSMmyB0iS4Nh767LqFwNbVAC75v\nl7td7NBcGIGxISxhrgPNGdBsb8nupTU40Cygrk78v8/UEh/jiwrsbUgFREz3\nfNcZvhVarD9fKk2lcPtw1BJ4WgO4Va2I0cm1l1q+NoPho19DotuPs+xY0SIX\nbt9eg+Sg86GOqU5IgEIVlnhfKCNYRUA5TY1yU1Ux1SVTac/kmecx/a4HS8Us\nn4RJyWBwSXLMYAKws+0UPhP73H/1eC/TMmjXDtZZKITCSxdvHum2fEGHHNBQ\nKnAV+O2GZMVyjCcQSNxIrdi+iNQwAtWCXf1w0ygedawCxUPQuDzKQkE56FyI\nF8pn\r\n=+fBe\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry Collector Exporter for node with grpc\n\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.25.0**.\n\n## Installation\n\n```bash\nnpm install --save @opentelemetry/exporter-collector-grpc\n```\n\n## Service Name\n\nThe OpenTelemetry Collector Exporter does not have a service name configuration.\nIn order to set the service name, use the `service.name` resource attribute as prescribed in the [OpenTelemetry Resource Semantic Conventions][semconv-resource-service-name].\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/traces`.\n\n```js\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/tracing');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is localhost:4317\n  url: '<collector-hostname>:<port>',\n};\n\nconst provider = new BasicTracerProvider();\nconst exporter = new CollectorTraceExporter(collectorOptions);\nprovider.addSpanProcessor(new SimpleSpanProcessor(exporter));\n\nprovider.register();\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\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/grpc-js');\n\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/tracing');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is localhost:4317\n  url: '<collector-hostname>:<port>',\n  credentials: grpc.credentials.createSsl(),\n};\n\nconst provider = new BasicTracerProvider();\nconst exporter = new CollectorTraceExporter(collectorOptions);\nprovider.addSpanProcessor(new SimpleSpanProcessor(exporter));\n\nprovider.register();\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n```\n\nTo use mutual authentication, pass to the `createSsl()` constructor:\n\n```js\n  credentials: grpc.credentials.createSsl(\n    fs.readFileSync('./ca.crt'),\n    fs.readFileSync('./client.key'),\n    fs.readFileSync('./client.crt')\n  ),\n```\n\nTo generate credentials for mutual authentication, 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/grpc-js');\n\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/tracing');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst metadata = new grpc.Metadata();\n// For instance, an API key or access token might go here.\nmetadata.set('k', 'v');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is localhost:4317\n  url: '<collector-hostname>:<port>',\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['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n```\n\nNote, that this will only work if TLS is also configured on the server.\n\n## Metrics in Node - GRPC\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-grpc');\nconst collectorOptions = {\n  // url is optional and can be omitted - default is localhost:4317\n  url: '<collector-hostname>:<port>',\n};\nconst exporter = new CollectorMetricExporter(collectorOptions);\n\n// Register the exporter\nconst provider = new MeterProvider({\n  exporter,\n  interval: 60000,\n})\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n\n// Now, start recording data\nconst meter = provider.getMeter('example-meter');\nconst counter = meter.createCounter('metric_name');\ncounter.add(10, { 'key': 'value' });\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 in [GitHub Discussions][discussions-url]\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\n[discussions-url]: https://github.com/open-telemetry/opentelemetry-js/discussions\n[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/main/LICENSE\n[license-image]: https://img.shields.io/badge/license-Apache_2.0-green.svg?style=flat\n[dependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc\n[devDependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/exporter-collector-grpc\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fexporter-collector-grpc.svg\n[opentelemetry-collector-url]: https://github.com/open-telemetry/opentelemetry-collector\n[semconv-resource-service-name]: https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/resource/semantic_conventions/README.md#service\n","engines":{"node":">=8.0.0"},"gitHead":"5af147b159c9dfad8d00a20a3b140d55736f1919","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"npm run protos:copy && tsc -w","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","submodule":"git submodule sync --recursive && git submodule update --init --recursive","postcompile":"npm run submodule && npm run protos:copy","protos:copy":"cpx protos/opentelemetry/**/*.* build/protos/opentelemetry"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.1+x64 (linux)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.17.1","dependencies":{"@grpc/grpc-js":"^1.2.12","@grpc/proto-loader":"^0.6.0","@opentelemetry/core":"^0.22.1-alpha.16+5af147b1","@opentelemetry/metrics":"^0.22.1-alpha.16+5af147b1","@opentelemetry/tracing":"^0.22.1-alpha.16+5af147b1","@opentelemetry/resources":"^0.22.1-alpha.16+5af147b1","@opentelemetry/exporter-collector":"^0.22.1-alpha.16+5af147b1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cpx":"1.5.0","nyc":"15.1.0","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.2","ts-node":"10.0.0","ts-mocha":"8.0.0","ts-loader":"8.3.0","typescript":"4.3.4","@babel/core":"7.14.6","@types/node":"14.17.4","@types/mocha":"8.2.2","@types/sinon":"10.0.2","@opentelemetry/api":"^1.0.1","@opentelemetry/api-metrics":"^0.22.0"},"peerDependencies":{"@opentelemetry/api":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.22.1-alpha.16_1625082552568_0.02656214581203975","host":"s3://npm-registry-packages"}},"0.23.1-alpha.17":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.23.1-alpha.17","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.23.1-alpha.17","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"d78b62526a9b70a35ec973e1f357fe235b2387d8","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.23.1-alpha.17.tgz","fileCount":35,"integrity":"sha512-0r7gvdoTKIY1ZHZQNYIuelPoMhXkIwTarlGY/Fd9nCTY/+oscG4NGp9lY0XN71OmzvTdYkl5nF3REN7m4/GgeA==","signatures":[{"sig":"MEUCIQD3d/yf6XcJceD/1S0EdeFd10OAY20pdKtPMd0nvztHJQIgZcJ5U4hGEjHLFOg0qHbKvGK2jWoFqt2Vroa5RhLJ8+0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":110208,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg3M8jCRA9TVsSAnZWagAA6UcP/2gRlbkJ3CWGCC68hDpN\nHLcNjQmBcwG0S5LWmUV1eJnJS0VYkQ6gmOgGhgyfulUijf6NEx4DEQprElR4\nh5efiSd0lRlPtGNG/Puh6U7HOgx1bHDlY832u6QJwcj0m0JK5X03sPAG6lZU\nxndSlJpHMixDx9jJabEOPgMhlmK6PRdmhJ/uw2ZbwnoxuGMI5+3IPLN+s0/p\nSqWrndEB3wn/Y0ivdTAWFgI60oggxpXsGg21N1Ba8/reX45ywIrDx653BAXW\nr2KknnxoKQaqBF1Ch5pAR4fNyqmODbzITmWCznU1BFGWn4Rb76Jm325s0n3H\nxt/59Yt6ygJ8OTPhpBtd3ffKeUfOTgD4aEPXpCy9j/7mGOsKj3Swyv8v9JGT\nHV+6HqMotdsaL0cEkeDyQ7CTy+Y2kr9PnJ4jW55rklJJ/wOQkwiDgjcWjcfk\nzX9Cy5b4oWPJAypU6ERL/EQyELdtyPySyih4OyYMHH7zWygQX2Z8DTaBg9Z2\nRPI8VALRN+v4LE2PVQux726LJX1Qph+Y0eFRqhOCrOWcuEqEZ1jqMbn1VS1f\n3rf+Xk4fxDYBtAR3BtfL3S2goDTRZ5slz+ZSiPsI9SS7LlpJRb4kBmC75d/t\n7uEtjhNGumMzn6NErywN4KuQivgeWOxN37R0Doo7tpVupDvRyQ/YfA3DFqXX\nLmtI\r\n=lavs\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry Collector Exporter for node with grpc\n\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.25.0**.\n\n## Installation\n\n```bash\nnpm install --save @opentelemetry/exporter-collector-grpc\n```\n\n## Service Name\n\nThe OpenTelemetry Collector Exporter does not have a service name configuration.\nIn order to set the service name, use the `service.name` resource attribute as prescribed in the [OpenTelemetry Resource Semantic Conventions][semconv-resource-service-name].\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/traces`.\n\n```js\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/tracing');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is localhost:4317\n  url: '<collector-hostname>:<port>',\n};\n\nconst provider = new BasicTracerProvider();\nconst exporter = new CollectorTraceExporter(collectorOptions);\nprovider.addSpanProcessor(new SimpleSpanProcessor(exporter));\n\nprovider.register();\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\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/grpc-js');\n\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/tracing');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is localhost:4317\n  url: '<collector-hostname>:<port>',\n  credentials: grpc.credentials.createSsl(),\n};\n\nconst provider = new BasicTracerProvider();\nconst exporter = new CollectorTraceExporter(collectorOptions);\nprovider.addSpanProcessor(new SimpleSpanProcessor(exporter));\n\nprovider.register();\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n```\n\nTo use mutual authentication, pass to the `createSsl()` constructor:\n\n```js\n  credentials: grpc.credentials.createSsl(\n    fs.readFileSync('./ca.crt'),\n    fs.readFileSync('./client.key'),\n    fs.readFileSync('./client.crt')\n  ),\n```\n\nTo generate credentials for mutual authentication, 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/grpc-js');\n\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/tracing');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst metadata = new grpc.Metadata();\n// For instance, an API key or access token might go here.\nmetadata.set('k', 'v');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is localhost:4317\n  url: '<collector-hostname>:<port>',\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['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n```\n\nNote, that this will only work if TLS is also configured on the server.\n\n## Metrics in Node - GRPC\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-grpc');\nconst collectorOptions = {\n  // url is optional and can be omitted - default is localhost:4317\n  url: '<collector-hostname>:<port>',\n};\nconst exporter = new CollectorMetricExporter(collectorOptions);\n\n// Register the exporter\nconst provider = new MeterProvider({\n  exporter,\n  interval: 60000,\n})\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n\n// Now, start recording data\nconst meter = provider.getMeter('example-meter');\nconst counter = meter.createCounter('metric_name');\ncounter.add(10, { 'key': 'value' });\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 in [GitHub Discussions][discussions-url]\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\n[discussions-url]: https://github.com/open-telemetry/opentelemetry-js/discussions\n[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/main/LICENSE\n[license-image]: https://img.shields.io/badge/license-Apache_2.0-green.svg?style=flat\n[dependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc\n[devDependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/exporter-collector-grpc\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fexporter-collector-grpc.svg\n[opentelemetry-collector-url]: https://github.com/open-telemetry/opentelemetry-collector\n[semconv-resource-service-name]: https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/resource/semantic_conventions/README.md#service\n","engines":{"node":">=8.0.0"},"gitHead":"f2a958dfeead4f6ae20901ab3fac04e4fc424a3f","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"npm run protos:copy && tsc -w","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","submodule":"git submodule sync --recursive && git submodule update --init --recursive","postcompile":"npm run submodule && npm run protos:copy","protos:copy":"cpx protos/opentelemetry/**/*.* build/protos/opentelemetry"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.1+x64 (linux)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.17.1","dependencies":{"@grpc/grpc-js":"^1.2.12","@grpc/proto-loader":"^0.6.0","@opentelemetry/core":"^0.23.1-alpha.17+f2a958df","@opentelemetry/metrics":"^0.23.1-alpha.17+f2a958df","@opentelemetry/tracing":"^0.23.1-alpha.17+f2a958df","@opentelemetry/resources":"^0.23.1-alpha.17+f2a958df","@opentelemetry/exporter-collector":"^0.23.1-alpha.17+f2a958df"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cpx":"1.5.0","nyc":"15.1.0","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.2","ts-node":"10.0.0","ts-mocha":"8.0.0","ts-loader":"8.3.0","typescript":"4.3.4","@babel/core":"7.14.6","@types/node":"14.17.4","@types/mocha":"8.2.2","@types/sinon":"10.0.2","@opentelemetry/api":"^1.0.1","@opentelemetry/api-metrics":"^0.23.1-alpha.17+f2a958df"},"peerDependencies":{"@opentelemetry/api":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.23.1-alpha.17_1625083682837_0.8110973091301255","host":"s3://npm-registry-packages"}},"0.23.0":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.23.0","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.23.0","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"63fac7a96226e68f1b8c4bb5e267a34d1b4e825f","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.23.0.tgz","fileCount":35,"integrity":"sha512-vWRvH+AM3f51PcG0/GehXuCGEEYBEvla8AYDv4GtZJ4NDoJbJQ/Z+3qiP94GG3keA+tlz1A2K2Fson2IIRMEUQ==","signatures":[{"sig":"MEQCIBP1/7ANmj+avDbZe/R8WfS2wTODQnwwTC8U2t9A+gA+AiA8QMsjfKZIQrktnybgC0U6o7qwIeG+IXrHL/Oej6x60w==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":110076,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg3NDJCRA9TVsSAnZWagAAYkIP/2cPq9OJOIXSiUZg85VB\nk5AgngWevkmsDuOfsmuwZwz6cGe28pUM6CpOMI6dtyWyU7mw9GdgOUGciZ2U\njge5276c+H15/zFcJDK91/o2ypgqgjVjdTEDt4jL2zO5LhRNCGejwnbObtOm\n0rnYzqSQiKv1ee4Dtz28vOxZ6pv3w/clThF7HXQaSRfYprYhmRub1tJ7t5RD\nWETKtat8FGPoevsxOmvhyD5Xrbj25phS5XOA2tCCx4HldTXO5GPnNoKmRT4a\nCRd2pVU5DG0Grwx1Fueig+PsB7fiqQV5spUHsbNRU9VVPsj+Lm8tW4EQAhhS\nP1RLeyyRXySwLQIlxy8zAC2JI36tcBN5wHpx90gSdPMDg2KHHGAFcfZ+Yerd\n9afRzxzsWDoMAAdOHrasyn90VJIf8+SMj8KjetP1CJmruRxM3u9trlF4OXxZ\nAoc6m7oZMxoejQGjFp7xQqMaRqclCVyq47gTyDYDO+y1jaHcoICnWq4Opt5Y\nmvka1jkeceT7HxLaR/ALg6o057DLgMMgGZnAZEFWcAOkWGm3AMx0QtcaeT73\nxy/RmwekhqBVjlBZ27MI4jcKzNN/fA6QYXudaD5s/bFP1NVT8LG+liAhJ/E2\nz++aGvH5em0V6z0to8xWWbUD8c/icp8KSVO0PAinl2LURZJbx8BHfm+0kDHm\n1sQk\r\n=5InZ\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","engines":{"node":">=8.0.0"},"gitHead":"f2a958dfeead4f6ae20901ab3fac04e4fc424a3f","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"npm run protos:copy && tsc -w","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","submodule":"git submodule sync --recursive && git submodule update --init --recursive","postcompile":"npm run submodule && npm run protos:copy","protos:copy":"cpx protos/opentelemetry/**/*.* build/protos/opentelemetry"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.8.0+x64 (darwin)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.8.0","dependencies":{"@grpc/grpc-js":"^1.2.12","@grpc/proto-loader":"^0.6.0","@opentelemetry/core":"0.23.0","@opentelemetry/metrics":"0.23.0","@opentelemetry/tracing":"0.23.0","@opentelemetry/resources":"0.23.0","@opentelemetry/exporter-collector":"0.23.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"cpx":"1.5.0","nyc":"15.1.0","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.2","ts-node":"10.0.0","ts-mocha":"8.0.0","ts-loader":"8.3.0","typescript":"4.3.4","@babel/core":"7.14.6","@types/node":"14.17.4","@types/mocha":"8.2.2","@types/sinon":"10.0.2","@opentelemetry/api":"^1.0.1","@opentelemetry/api-metrics":"0.23.0"},"peerDependencies":{"@opentelemetry/api":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.23.0_1625084105528_0.759521546780082","host":"s3://npm-registry-packages"}},"0.23.1-alpha.18":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.23.1-alpha.18","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.23.1-alpha.18","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"8ddd9eee2ee7b38b964858661432c55433d771a4","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.23.1-alpha.18.tgz","fileCount":35,"integrity":"sha512-Ud6AmLw+zNUaF5LyCMHs/OGL749i4tJtmAsRxAaH3x+RXdk2sStSlpXyj1ZFjfS7gKRE8w9Bm8IN89ZipbYnGg==","signatures":[{"sig":"MEYCIQCYvxDClKV5j9Pza9UhXBP7a2Qew14i0p0hqicWikBH0QIhAKR3tSJ4VNsO1fOpfs3JBva0tpaTtkWIlxdAUDazHcN4","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":110208,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg3yToCRA9TVsSAnZWagAArTcP+QG+7rSrI5/zXDRWbA1B\nKpCIUxyWYX7DbEiqbuczJA1CJbjGavL+JijY5Xt+rQ4LoN1L/FFCz/Li3g2F\nM05yZ8jhDAgp+cobiv+83rBOx+XKdpocZLQ0IUeLSXYvToCUQH4CThaeB2tz\noahtJ+JC7KkC5x9KZEVzPaGgfwl6rLq+1GZXGIhA7tkcR3wlENXpSFQxFL07\ntlgY8kltnQ1JHL1/QcA6aW3kqOiZ/aA4ECqCn/FDpJslmxSdL1JvKpScEcDq\nIsG+8pbkZzt56d4J9YzIux0RpVw5AUW4ZWRA7hjkmLR+lDtPJ2TosKUROKsp\n/kjSrGFi1Y3ciihysK8rpabWrJ8ynvh93S5DeaqBAGYza1d1jiUIv+3BtGcW\nFkFXEDn9e7LDdECDAGFTbf9W3A67As5pdGCpLX87Lu8C36KzXhZRzBWZPhJJ\npezE3+kRYNbkGYa0KD6owyqV1bvDnuEbeO2OxODu55+d9ppqfJc6YwoPC6nB\n2pFtLkVU+qp81TZdxgmg6/kYTf4CdaFPtkK10KU+rJD0eocaMOCW7GX+gwJl\n81lj/HVZ+CkmmpCvyIEeyAWKTbbcguWvyX1mjoz0vPTHo1ZA6Co1MRrL/mU7\n21G2zlvihaCqZetSe/2bofvrzivtx9kJs7PDjRfcEvs8PI110Odwjc4VrlS5\nl67O\r\n=fBD6\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry Collector Exporter for node with grpc\n\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.25.0**.\n\n## Installation\n\n```bash\nnpm install --save @opentelemetry/exporter-collector-grpc\n```\n\n## Service Name\n\nThe OpenTelemetry Collector Exporter does not have a service name configuration.\nIn order to set the service name, use the `service.name` resource attribute as prescribed in the [OpenTelemetry Resource Semantic Conventions][semconv-resource-service-name].\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/traces`.\n\n```js\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/tracing');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is localhost:4317\n  url: '<collector-hostname>:<port>',\n};\n\nconst provider = new BasicTracerProvider();\nconst exporter = new CollectorTraceExporter(collectorOptions);\nprovider.addSpanProcessor(new SimpleSpanProcessor(exporter));\n\nprovider.register();\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\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/grpc-js');\n\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/tracing');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is localhost:4317\n  url: '<collector-hostname>:<port>',\n  credentials: grpc.credentials.createSsl(),\n};\n\nconst provider = new BasicTracerProvider();\nconst exporter = new CollectorTraceExporter(collectorOptions);\nprovider.addSpanProcessor(new SimpleSpanProcessor(exporter));\n\nprovider.register();\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n```\n\nTo use mutual authentication, pass to the `createSsl()` constructor:\n\n```js\n  credentials: grpc.credentials.createSsl(\n    fs.readFileSync('./ca.crt'),\n    fs.readFileSync('./client.key'),\n    fs.readFileSync('./client.crt')\n  ),\n```\n\nTo generate credentials for mutual authentication, 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/grpc-js');\n\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/tracing');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst metadata = new grpc.Metadata();\n// For instance, an API key or access token might go here.\nmetadata.set('k', 'v');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is localhost:4317\n  url: '<collector-hostname>:<port>',\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['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n```\n\nNote, that this will only work if TLS is also configured on the server.\n\n## Metrics in Node - GRPC\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-grpc');\nconst collectorOptions = {\n  // url is optional and can be omitted - default is localhost:4317\n  url: '<collector-hostname>:<port>',\n};\nconst exporter = new CollectorMetricExporter(collectorOptions);\n\n// Register the exporter\nconst provider = new MeterProvider({\n  exporter,\n  interval: 60000,\n})\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n\n// Now, start recording data\nconst meter = provider.getMeter('example-meter');\nconst counter = meter.createCounter('metric_name');\ncounter.add(10, { 'key': 'value' });\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 in [GitHub Discussions][discussions-url]\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\n[discussions-url]: https://github.com/open-telemetry/opentelemetry-js/discussions\n[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/main/LICENSE\n[license-image]: https://img.shields.io/badge/license-Apache_2.0-green.svg?style=flat\n[dependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc\n[devDependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/exporter-collector-grpc\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fexporter-collector-grpc.svg\n[opentelemetry-collector-url]: https://github.com/open-telemetry/opentelemetry-collector\n[semconv-resource-service-name]: https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/resource/semantic_conventions/README.md#service\n","engines":{"node":">=8.0.0"},"gitHead":"4b3425dd09f0a7087c9d741d25c7a9a0be42770c","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"npm run protos:copy && tsc -w","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","submodule":"git submodule sync --recursive && git submodule update --init --recursive","postcompile":"npm run submodule && npm run protos:copy","protos:copy":"cpx protos/opentelemetry/**/*.* build/protos/opentelemetry"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.1+x64 (linux)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.17.1","dependencies":{"@grpc/grpc-js":"^1.2.12","@grpc/proto-loader":"^0.6.0","@opentelemetry/core":"^0.23.1-alpha.18+4b3425dd","@opentelemetry/metrics":"^0.23.1-alpha.18+4b3425dd","@opentelemetry/tracing":"^0.23.1-alpha.18+4b3425dd","@opentelemetry/resources":"^0.23.1-alpha.18+4b3425dd","@opentelemetry/exporter-collector":"^0.23.1-alpha.18+4b3425dd"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cpx":"1.5.0","nyc":"15.1.0","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.2","ts-node":"10.0.0","ts-mocha":"8.0.0","ts-loader":"8.3.0","typescript":"4.3.5","@babel/core":"7.14.6","@types/node":"14.17.4","@types/mocha":"8.2.2","@types/sinon":"10.0.2","@opentelemetry/api":"^1.0.1","@opentelemetry/api-metrics":"^0.23.1-alpha.18+4b3425dd"},"peerDependencies":{"@opentelemetry/api":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.23.1-alpha.18_1625236712436_0.3812020056979717","host":"s3://npm-registry-packages"}},"0.23.1-alpha.3":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.23.1-alpha.3","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.23.1-alpha.3","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"189b47e2ced2958a50393da37feb600b6bebd8f6","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.23.1-alpha.3.tgz","fileCount":35,"integrity":"sha512-HtYlQMm5FRrhcs6gZyjpjbkPtmb4vQPsMi2LnMQr6mwf7NNwECDJqYS0vDJstxECCYlQDorwBEurOIM2aFB79w==","signatures":[{"sig":"MEYCIQC9zmGzr71cXpLkamTjMth5rAICvyHay3R/iGb5gm9AzgIhAPJZ9UCVrvrsjRrT8KdWJjK3wsBlqgg9GwWtxFYyYaKt","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":110159,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg44drCRA9TVsSAnZWagAA9ocP/1qntHA5c+5oXuzEXzR/\nFZadcedoIkK9yUjGvX+8CW2Hw10MCPJGWYLatS1Pkjahnxi+etJYkMgZ5lX5\n4lqOll0XF2jTtzixkG/ypiFVnd7lCqiFGbnDBDio3n3aNW6qDskZSbJqdNBP\nQ84kWptIoIgZUNkb/C5zXl/kOlrs08hksbJ9dq8pKD3cztWumm56TE2SJ5Tt\ntz9B2+8G/zs3JvtDIF9hNo91sliU7repGbjXhByPuAHCDKQnDAQ00q3yAGKH\nwM+8r5DhJHWTPvH7HVdpdJ1VuanAfYVdbUK9uxRM9cu6SjhJ7MpkaAegsEhi\nGLv5VcdxPo0uD6iQJYyFD8t9hRf4xbABwFjM1IBTJT5aew/oq9FlOlIhDwQK\nrGwiIlhC30Z7xy/lABkMW04kg1xY2Acrf1qEEwa2WgrgckLaDoJQSStyz0za\niQQxxKXZkr+mkqeZaL4vbLboamqZZstiCmPI1UGcpIJW+xFSsC5qfJIaRb3P\nsCPX6iJCQS4zEllCOLGGCyZr0ggTgJTxCgH90vp5gnH6EIPaeFx795uKx8Tj\ntvVn0C54nsLTEQhkZ16sKJkewsbW86zyMuko1ObLcwbGMbkJigOXXDLEAWzq\nlahR55n1KnDK0Vcvak3D8KwWjtNnvvsr+sfmSRawUGncifJGglXYR2tY+UJx\n9pWb\r\n=HXdK\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry Collector Exporter for node with grpc\n\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.25.0**.\n\n## Installation\n\n```bash\nnpm install --save @opentelemetry/exporter-collector-grpc\n```\n\n## Service Name\n\nThe OpenTelemetry Collector Exporter does not have a service name configuration.\nIn order to set the service name, use the `service.name` resource attribute as prescribed in the [OpenTelemetry Resource Semantic Conventions][semconv-resource-service-name].\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/traces`.\n\n```js\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/tracing');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is localhost:4317\n  url: '<collector-hostname>:<port>',\n};\n\nconst provider = new BasicTracerProvider();\nconst exporter = new CollectorTraceExporter(collectorOptions);\nprovider.addSpanProcessor(new SimpleSpanProcessor(exporter));\n\nprovider.register();\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\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/grpc-js');\n\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/tracing');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is localhost:4317\n  url: '<collector-hostname>:<port>',\n  credentials: grpc.credentials.createSsl(),\n};\n\nconst provider = new BasicTracerProvider();\nconst exporter = new CollectorTraceExporter(collectorOptions);\nprovider.addSpanProcessor(new SimpleSpanProcessor(exporter));\n\nprovider.register();\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n```\n\nTo use mutual authentication, pass to the `createSsl()` constructor:\n\n```js\n  credentials: grpc.credentials.createSsl(\n    fs.readFileSync('./ca.crt'),\n    fs.readFileSync('./client.key'),\n    fs.readFileSync('./client.crt')\n  ),\n```\n\nTo generate credentials for mutual authentication, 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/grpc-js');\n\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/tracing');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst metadata = new grpc.Metadata();\n// For instance, an API key or access token might go here.\nmetadata.set('k', 'v');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is localhost:4317\n  url: '<collector-hostname>:<port>',\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['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n```\n\nNote, that this will only work if TLS is also configured on the server.\n\n## Metrics in Node - GRPC\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-grpc');\nconst collectorOptions = {\n  // url is optional and can be omitted - default is localhost:4317\n  url: '<collector-hostname>:<port>',\n};\nconst exporter = new CollectorMetricExporter(collectorOptions);\n\n// Register the exporter\nconst provider = new MeterProvider({\n  exporter,\n  interval: 60000,\n})\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n\n// Now, start recording data\nconst meter = provider.getMeter('example-meter');\nconst counter = meter.createCounter('metric_name');\ncounter.add(10, { 'key': 'value' });\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 in [GitHub Discussions][discussions-url]\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\n[discussions-url]: https://github.com/open-telemetry/opentelemetry-js/discussions\n[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/main/LICENSE\n[license-image]: https://img.shields.io/badge/license-Apache_2.0-green.svg?style=flat\n[dependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc\n[devDependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/exporter-collector-grpc\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fexporter-collector-grpc.svg\n[opentelemetry-collector-url]: https://github.com/open-telemetry/opentelemetry-collector\n[semconv-resource-service-name]: https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/resource/semantic_conventions/README.md#service\n","engines":{"node":">=8.0.0"},"gitHead":"6ed8d92559df68ef1fd3273598a1860ee5197e53","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"npm run protos:copy && tsc -w","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","submodule":"git submodule sync --recursive && git submodule update --init --recursive","postcompile":"npm run submodule && npm run protos:copy","protos:copy":"cpx protos/opentelemetry/**/*.* build/protos/opentelemetry"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.1+x64 (linux)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.17.1","dependencies":{"@grpc/grpc-js":"^1.2.12","@grpc/proto-loader":"^0.6.0","@opentelemetry/core":"^0.23.1-alpha.3+6ed8d925","@opentelemetry/metrics":"^0.23.1-alpha.3+6ed8d925","@opentelemetry/tracing":"^0.23.1-alpha.3+6ed8d925","@opentelemetry/resources":"^0.23.1-alpha.3+6ed8d925","@opentelemetry/exporter-collector":"^0.23.1-alpha.3+6ed8d925"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cpx":"1.5.0","nyc":"15.1.0","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.2","ts-mocha":"8.0.0","ts-loader":"8.3.0","typescript":"4.3.5","@babel/core":"7.14.6","@types/node":"14.17.4","@types/mocha":"8.2.2","@types/sinon":"10.0.2","@opentelemetry/api":"^1.0.1","@opentelemetry/api-metrics":"^0.23.0"},"peerDependencies":{"@opentelemetry/api":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.23.1-alpha.3_1625524074967_0.41867131624365217","host":"s3://npm-registry-packages"}},"0.23.1-alpha.6":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.23.1-alpha.6","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.23.1-alpha.6","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"765d7eb110b58348f7095ce2cbbc49b24b317d85","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.23.1-alpha.6.tgz","fileCount":35,"integrity":"sha512-pIUDUV2jIfW1P6oXI8QXNoOGOUtO6VKscYYNC3ttwv3WQf6KhQpFu4MnNu1hT6tP0zSH6tZh7J0mEWGJpa4xtA==","signatures":[{"sig":"MEUCIBYXt+T80XBiRmGubo1vZL1UvGjMhx5+4GBjKFhCKarWAiEA23V2Hfk/3yGZx9NyLbA3sdzntwSIAq4/EGJr1cUaaN0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":110130,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg6qT2CRA9TVsSAnZWagAAM3sQAIjdscg6ETBIR3Q25+bx\nHEfVAI3H6HnF/cPngLOauS+Lh8Z3WRzQqok4iaRipAgRNY4KbbGETMKIK04R\nIBBmSdkhLbukgGU6+LYwSPmL4OXCdeuWmxQQMb/G0DUXY8CTxGK25B5xhOUL\nSFt0DH6NZmpld6QtKg1a34X5HJ+nZwB5vu7NB5bkKLSMSJgPPhJT1V83j/tr\ng3EtZSki47XhSw+/sbvhNK1aGtiJHzO1c9quHyxVrBrN7gx+aVWG5wgPuU4L\nkrrMUwQQxrfmtZaDVmP4uFVA/hJEO0hdIIRofa5ApBYrxAmc4mSVpUstulDC\nmsO+/g3+tWWYOSQDKyVPrR3An6VntlWG/WvJ8EYvbbAivguF2I8fyjIFToql\n/SBWhLtXcyIIl9h1zDkEf3rYhEnvLl3xuIYFphvbSjMnklS6Fabi0U/cMCU0\neEzAHVVgBWhVR0fvqK2qqQ3+TlQdU2MR8aWAxWNjElus0Q1ifJKjPFzzUnzN\nPimtEN2jZdHfyTQoZoJiSKNjxMxpIKV/aWIGAS+xitoFQ3QlRJq2VH/FF6Ar\ncx2PD5JBapGCIiZqntt7F468dkEyEe0KtVpiM4PtYfxm7XRFCLlJWLQr29Z5\n+y8+CqhlCia09dFE6yfwo7arp8QBQKNcpyXi4G91WMudMWzX/VopSX/dtE79\nTk2W\r\n=i25B\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry Collector Exporter for node with grpc\n\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.25.0**.\n\n## Installation\n\n```bash\nnpm install --save @opentelemetry/exporter-collector-grpc\n```\n\n## Service Name\n\nThe OpenTelemetry Collector Exporter does not have a service name configuration.\nIn order to set the service name, use the `service.name` resource attribute as prescribed in the [OpenTelemetry Resource Semantic Conventions][semconv-resource-service-name].\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/traces`.\n\n```js\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/tracing');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is grpc://localhost:4317\n  url: 'grpc://<collector-hostname>:<port>',\n};\n\nconst provider = new BasicTracerProvider();\nconst exporter = new CollectorTraceExporter(collectorOptions);\nprovider.addSpanProcessor(new SimpleSpanProcessor(exporter));\n\nprovider.register();\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\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/grpc-js');\n\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/tracing');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is grpc://localhost:4317\n  url: 'grpc://<collector-hostname>:<port>',\n  credentials: grpc.credentials.createSsl(),\n};\n\nconst provider = new BasicTracerProvider();\nconst exporter = new CollectorTraceExporter(collectorOptions);\nprovider.addSpanProcessor(new SimpleSpanProcessor(exporter));\n\nprovider.register();\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n```\n\nTo use mutual authentication, pass to the `createSsl()` constructor:\n\n```js\n  credentials: grpc.credentials.createSsl(\n    fs.readFileSync('./ca.crt'),\n    fs.readFileSync('./client.key'),\n    fs.readFileSync('./client.crt')\n  ),\n```\n\nTo generate credentials for mutual authentication, 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/grpc-js');\n\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/tracing');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst metadata = new grpc.Metadata();\n// For instance, an API key or access token might go here.\nmetadata.set('k', 'v');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is grpc://localhost:4317\n  url: 'grpc://<collector-hostname>:<port>',\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['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n```\n\nNote, that this will only work if TLS is also configured on the server.\n\n## Metrics in Node - GRPC\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-grpc');\nconst collectorOptions = {\n  // url is optional and can be omitted - default is grpc://localhost:4317\n  url: 'grpc://<collector-hostname>:<port>',\n};\nconst exporter = new CollectorMetricExporter(collectorOptions);\n\n// Register the exporter\nconst provider = new MeterProvider({\n  exporter,\n  interval: 60000,\n})\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n\n// Now, start recording data\nconst meter = provider.getMeter('example-meter');\nconst counter = meter.createCounter('metric_name');\ncounter.add(10, { 'key': 'value' });\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 in [GitHub Discussions][discussions-url]\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\n[discussions-url]: https://github.com/open-telemetry/opentelemetry-js/discussions\n[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/main/LICENSE\n[license-image]: https://img.shields.io/badge/license-Apache_2.0-green.svg?style=flat\n[dependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc\n[devDependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/exporter-collector-grpc\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fexporter-collector-grpc.svg\n[opentelemetry-collector-url]: https://github.com/open-telemetry/opentelemetry-collector\n[semconv-resource-service-name]: https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/resource/semantic_conventions/README.md#service\n","engines":{"node":">=8.0.0"},"gitHead":"8ed5cd19766cc1ab501cfef4558b6553c4de5973","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"npm run protos:copy && tsc -w","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","submodule":"git submodule sync --recursive && git submodule update --init --recursive","postcompile":"npm run submodule && npm run protos:copy","protos:copy":"cpx protos/opentelemetry/**/*.* build/protos/opentelemetry"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.1+x64 (linux)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.17.1","dependencies":{"@grpc/grpc-js":"^1.2.12","@grpc/proto-loader":"^0.6.0","@opentelemetry/core":"^0.23.0","@opentelemetry/metrics":"^0.23.0","@opentelemetry/tracing":"^0.23.0","@opentelemetry/resources":"^0.23.0","@opentelemetry/exporter-collector":"^0.23.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cpx":"1.5.0","nyc":"15.1.0","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.2","ts-mocha":"8.0.0","ts-loader":"8.3.0","typescript":"4.3.5","@babel/core":"7.14.6","@types/node":"14.17.4","@types/mocha":"8.2.2","@types/sinon":"10.0.2","@opentelemetry/api":"^1.0.1","@opentelemetry/api-metrics":"^0.23.0"},"peerDependencies":{"@opentelemetry/api":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.23.1-alpha.6_1625990390341_0.215943527014145","host":"s3://npm-registry-packages"}},"0.23.1-alpha.15":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.23.1-alpha.15","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.23.1-alpha.15","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"c73761d299a51e5ec577e4495bccba0757278153","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.23.1-alpha.15.tgz","fileCount":35,"integrity":"sha512-XlZuJl1VlFSCzq9KBuwrBpED7xb0TajQK0dTi9xnM6dsvW2Rp/fz25+fynyFMdyWj+c5rhRHQWIMcghd6oLj4g==","signatures":[{"sig":"MEYCIQCsVmtjfqno6kMzA715Q/KPQ7OGQyu7yiXZG7jeXYC/AAIhAJb7i6xeiifrtay3Ux+P+dzQZPRRWpM989LVu1eP2pJb","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":110239,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg8qBnCRA9TVsSAnZWagAACLUP/0BoGrfCtjoXtMQG5bTG\ny8V4+qEkAt+sgQQAle56o0vDqQusNdKmEELrs6ULwQKqUcj1HQUP++m+2T9X\nwhnqxVgGIEcTnAaf5lN7xNeEVko4nBf825hEpGq0blgP0V8z3hh3ZwX66Z/T\n24aPVYu+lbhi2tr916oSVmdtrggEYOs+SepeywJTC0Knmdm3bBfofnGQeomO\ng7fuJ06IzSDcb8LmP3PHFj/xag0zOW7VOoYtlpmY/pHjlE7uHbLZYkycLqxB\nV21lPj77NWVY6rcncQg4pRCEMyBjXrjQoBAkC0lA5hTuBjjT41wHZVFNnvQt\nzI6BdOGhzs+ls0dHS1KoaezlZ6eN5NB2HrnMsy80lmFZKmJKIKpT15h2zCxg\ncshmOrcx1fIQ4/QjO0DiNy9tXO8A+zy6r8ey0CgfMNY1bIWeZrpwAT1Vlms8\nUy7BcHSV336u9pYOc+btUO6041yh9nT4Awfmp6byZ9gq1cw5GJWA24hbpnIo\nhvADJmn92i9zwSGlHXhsLbZTqMTUbU9yTZyvjYVAHJrmrnpprmR9oyhv1WsU\neeBaM460u+OYc6mPgE/Dr09Z7W9uBNrKPE420gR/AFB6yP/Hq3vy6ihaclA0\nuYJTUTnMdj2mICRJ1i1swaoUU4lFOCuCa/IbQsStW6L6oMiBQ+OtmuJzSW4l\nm8r8\r\n=FJBf\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry Collector Exporter for node with grpc\n\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.25.0**.\n\n## Installation\n\n```bash\nnpm install --save @opentelemetry/exporter-collector-grpc\n```\n\n## Service Name\n\nThe OpenTelemetry Collector Exporter does not have a service name configuration.\nIn order to set the service name, use the `service.name` resource attribute as prescribed in the [OpenTelemetry Resource Semantic Conventions][semconv-resource-service-name].\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/traces`.\n\n```js\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/tracing');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is grpc://localhost:4317\n  url: 'grpc://<collector-hostname>:<port>',\n};\n\nconst provider = new BasicTracerProvider();\nconst exporter = new CollectorTraceExporter(collectorOptions);\nprovider.addSpanProcessor(new SimpleSpanProcessor(exporter));\n\nprovider.register();\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\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/grpc-js');\n\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/tracing');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is grpc://localhost:4317\n  url: 'grpc://<collector-hostname>:<port>',\n  credentials: grpc.credentials.createSsl(),\n};\n\nconst provider = new BasicTracerProvider();\nconst exporter = new CollectorTraceExporter(collectorOptions);\nprovider.addSpanProcessor(new SimpleSpanProcessor(exporter));\n\nprovider.register();\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n```\n\nTo use mutual authentication, pass to the `createSsl()` constructor:\n\n```js\n  credentials: grpc.credentials.createSsl(\n    fs.readFileSync('./ca.crt'),\n    fs.readFileSync('./client.key'),\n    fs.readFileSync('./client.crt')\n  ),\n```\n\nTo generate credentials for mutual authentication, 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/grpc-js');\n\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/tracing');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst metadata = new grpc.Metadata();\n// For instance, an API key or access token might go here.\nmetadata.set('k', 'v');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is grpc://localhost:4317\n  url: 'grpc://<collector-hostname>:<port>',\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['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n```\n\nNote, that this will only work if TLS is also configured on the server.\n\n## Metrics in Node - GRPC\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-grpc');\nconst collectorOptions = {\n  // url is optional and can be omitted - default is grpc://localhost:4317\n  url: 'grpc://<collector-hostname>:<port>',\n};\nconst exporter = new CollectorMetricExporter(collectorOptions);\n\n// Register the exporter\nconst provider = new MeterProvider({\n  exporter,\n  interval: 60000,\n})\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n\n// Now, start recording data\nconst meter = provider.getMeter('example-meter');\nconst counter = meter.createCounter('metric_name');\ncounter.add(10, { 'key': 'value' });\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 in [GitHub Discussions][discussions-url]\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\n[discussions-url]: https://github.com/open-telemetry/opentelemetry-js/discussions\n[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/main/LICENSE\n[license-image]: https://img.shields.io/badge/license-Apache_2.0-green.svg?style=flat\n[dependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc\n[devDependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/exporter-collector-grpc\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fexporter-collector-grpc.svg\n[opentelemetry-collector-url]: https://github.com/open-telemetry/opentelemetry-collector\n[semconv-resource-service-name]: https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/resource/semantic_conventions/README.md#service\n","engines":{"node":">=8.0.0"},"gitHead":"b67ca0568c333e5d841c9b614ed40b3e107682e9","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"npm run protos:copy && tsc -w","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","submodule":"git submodule sync --recursive && git submodule update --init --recursive","postcompile":"npm run submodule && npm run protos:copy","protos:copy":"cpx protos/opentelemetry/**/*.* build/protos/opentelemetry"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.3+x64 (linux)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.17.3","dependencies":{"@grpc/grpc-js":"^1.2.12","@grpc/proto-loader":"^0.6.0","@opentelemetry/core":"^0.23.1-alpha.15+b67ca056","@opentelemetry/metrics":"^0.23.1-alpha.15+b67ca056","@opentelemetry/tracing":"^0.23.1-alpha.15+b67ca056","@opentelemetry/resources":"^0.23.1-alpha.15+b67ca056","@opentelemetry/exporter-collector":"^0.23.1-alpha.15+b67ca056"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cpx":"1.5.0","nyc":"15.1.0","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.2","ts-mocha":"8.0.0","ts-loader":"8.3.0","typescript":"4.3.5","@babel/core":"7.14.6","@types/node":"14.17.5","@types/mocha":"8.2.3","@types/sinon":"10.0.2","@opentelemetry/api":"^1.0.1","@opentelemetry/api-metrics":"^0.23.1-alpha.15+b67ca056"},"peerDependencies":{"@opentelemetry/api":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.23.1-alpha.15_1626513511568_0.7384232179322257","host":"s3://npm-registry-packages"}},"0.23.1-alpha.19":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.23.1-alpha.19","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.23.1-alpha.19","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"ea746ef32c9fb234f29b432cbb620ebed437ece5","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.23.1-alpha.19.tgz","fileCount":35,"integrity":"sha512-9o8l0ftV/X3OChmdSZOSBJxy+V6cgFrWot6MMGzaxxxhnqVDpUbIeRH8olxMpkYGFyFEKZL8DzpV0w8/o81DZw==","signatures":[{"sig":"MEQCIGduPSwEWpAU7BhebamhRSPfY3ceCBPdCAVsc26Aggl1AiBOEafhsr2oXHoxMBzlBJEcffwz0MOLCZMsXVg85d08FQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":110415,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg+EDeCRA9TVsSAnZWagAAKogP/1AjNemEJO4c+YSWwAHQ\nY+zLoe/OXmFHORvzGrt82j+LKf4wqYKyySyLEh9HAFcznw0GRaMyEawuiDBk\niMIFCuK6fPa27kPvLpLqJF0hfictLNQO8mMNFq/iVaooO1mvZwEUwOTx0Yw/\nQAJDUGGkNFfelW8eQLargyrOxTjcexL3+kEpdJG625FofYnh2xWqhb+IAVPY\nGSQTRm6BBgiZoUcXOYMCprTrrT0Cba2ZnP+W6Yog2d+cRi7IKcE0YyVn0r07\nD/BuHm7PZEcmy0HjEb2RP4r0mbq0ZME36FvSwLfdNblnpmSCkxdtL1mpi4qT\nbwUB6RUJ4Gm4usPyQdEHOhOO9RAyG8tmFQrsQ57OjgkzJcxhAaeyyr0LjQx/\nDxiIvQLNH8UdkcYZzGTY71+Ql7+RZmW5zYKAIvEc/ub41tFudKtRviE+jkeP\n1K0FU/y4XZGe/u2PB/OH/PQ3KW6eCzsh1yyjZfBfvRfaplHfy+/gSVdfeegq\nxxQZP3i14xM9wnFZZplh0KSQoDRwt4Vr0B9RxKIc8t+qORbxJMTbFQK1CaKZ\nLRNhUW5xFKRMzKIC0BiocYtUNz3Ed3vIBxtO2T4U+kEPeCBavNYuDas3eBtd\nVYS2EaXkurXqgBMxau07WmCcAnsm2T9B3tZdD5zMVXyIGyoxjoMVjmDU43Yp\n0gxr\r\n=HdWo\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry Collector Exporter for node with grpc\n\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.25.0**.\n\n## Installation\n\n```bash\nnpm install --save @opentelemetry/exporter-collector-grpc\n```\n\n## Service Name\n\nThe OpenTelemetry Collector Exporter does not have a service name configuration.\nIn order to set the service name, use the `service.name` resource attribute as prescribed in the [OpenTelemetry Resource Semantic Conventions][semconv-resource-service-name].\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/traces`.\n\n```js\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/tracing');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is grpc://localhost:4317\n  url: 'grpc://<collector-hostname>:<port>',\n};\n\nconst provider = new BasicTracerProvider();\nconst exporter = new CollectorTraceExporter(collectorOptions);\nprovider.addSpanProcessor(new SimpleSpanProcessor(exporter));\n\nprovider.register();\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\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/grpc-js');\n\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/tracing');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is grpc://localhost:4317\n  url: 'grpc://<collector-hostname>:<port>',\n  credentials: grpc.credentials.createSsl(),\n};\n\nconst provider = new BasicTracerProvider();\nconst exporter = new CollectorTraceExporter(collectorOptions);\nprovider.addSpanProcessor(new SimpleSpanProcessor(exporter));\n\nprovider.register();\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n```\n\nTo use mutual authentication, pass to the `createSsl()` constructor:\n\n```js\n  credentials: grpc.credentials.createSsl(\n    fs.readFileSync('./ca.crt'),\n    fs.readFileSync('./client.key'),\n    fs.readFileSync('./client.crt')\n  ),\n```\n\nTo generate credentials for mutual authentication, 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/grpc-js');\n\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/tracing');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst metadata = new grpc.Metadata();\n// For instance, an API key or access token might go here.\nmetadata.set('k', 'v');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is grpc://localhost:4317\n  url: 'grpc://<collector-hostname>:<port>',\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['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n```\n\nNote, that this will only work if TLS is also configured on the server.\n\n## Metrics in Node - GRPC\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-grpc');\nconst collectorOptions = {\n  // url is optional and can be omitted - default is grpc://localhost:4317\n  url: 'grpc://<collector-hostname>:<port>',\n};\nconst exporter = new CollectorMetricExporter(collectorOptions);\n\n// Register the exporter\nconst provider = new MeterProvider({\n  exporter,\n  interval: 60000,\n})\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n\n// Now, start recording data\nconst meter = provider.getMeter('example-meter');\nconst counter = meter.createCounter('metric_name');\ncounter.add(10, { 'key': 'value' });\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 in [GitHub Discussions][discussions-url]\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\n[discussions-url]: https://github.com/open-telemetry/opentelemetry-js/discussions\n[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/main/LICENSE\n[license-image]: https://img.shields.io/badge/license-Apache_2.0-green.svg?style=flat\n[dependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc\n[devDependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/exporter-collector-grpc\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fexporter-collector-grpc.svg\n[opentelemetry-collector-url]: https://github.com/open-telemetry/opentelemetry-collector\n[semconv-resource-service-name]: https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/resource/semantic_conventions/README.md#service\n","engines":{"node":">=8.0.0"},"gitHead":"c55142f88a1bca6999e9ac3d3463f312f1525b42","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"npm run protos:copy && tsc -w","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","submodule":"git submodule sync --recursive && git submodule update --init --recursive","postcompile":"npm run submodule && npm run protos:copy","protos:copy":"cpx protos/opentelemetry/**/*.* build/protos/opentelemetry"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.3+x64 (linux)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.17.3","dependencies":{"@grpc/grpc-js":"^1.2.12","@grpc/proto-loader":"^0.6.0","@opentelemetry/core":"^0.23.0","@opentelemetry/metrics":"^0.23.0","@opentelemetry/tracing":"^0.23.0","@opentelemetry/resources":"^0.23.0","@opentelemetry/exporter-collector":"^0.23.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cpx":"1.5.0","nyc":"15.1.0","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.2","ts-mocha":"8.0.0","ts-loader":"8.3.0","typescript":"4.3.5","@babel/core":"7.14.6","@types/node":"14.17.5","@types/mocha":"8.2.3","@types/sinon":"10.0.2","@opentelemetry/api":"^1.0.1","@opentelemetry/api-metrics":"^0.23.0"},"peerDependencies":{"@opentelemetry/api":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.23.1-alpha.19_1626882270176_0.9668117746627578","host":"s3://npm-registry-packages"}},"0.23.1-alpha.20":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.23.1-alpha.20","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.23.1-alpha.20","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"5e4fc2e6bd67d31dd185157b6aadd7ac69aa0ca3","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.23.1-alpha.20.tgz","fileCount":35,"integrity":"sha512-Jco7lkD44Qf6qdxCpvwLcVnCHZ6HcsxvNQFYQYxfgzYUr+RCo2ZLhiw+3LxjPraaUUsil1Wx9bSV9zgcnxg5tA==","signatures":[{"sig":"MEQCIDtkYUDLNq8pIIaODtbd8S1QQthZ/9r4mnVhvQK5u9ggAiAUIsqnHLfTpQ+9cKE2UM9cwiFT6zn07CuTwQoxlwDQ/Q==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":110433,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg+ES8CRA9TVsSAnZWagAANxYP/2JDOY6g3IW8UGdGhQ3t\nkdwBf415qoJBe8FI8MirxXt+rKPAdkQ8CJA0QB2q3bkhs5PV65A5ME4WT7dm\nEg/pdrRAnLB1Im9S3BBicnZu9SZN4Qhjn93dDwdzSjek2wknivZAGcmnIQV3\nlhgsMyusLd0g3dEt5DgEv1hn8DCu4XcHGjc1FYGL1zGGaKSLwTSCQkjh07a9\ndvz6wXJs/XMsGOzPPRebmv4O5KiLroQo+YIFIDRhvhAhP6bod5McUid2QegH\nFE7lBFCVTZY0Rs3+yzYe7T3DzEuzVRCWbluMhRconuN1iayKwNKKfIAeAYaZ\nmr08yBOxrVobgl4MLX+6gj4hzNb9zEOJjBnjoCDLMzvIdLZaGQur9SPtrj5K\nvVPFDSdqrrLOX4wYTQch/ApJCb1pmvirAIHBC4+ZUpdDtyv32wfDGDB2kUeJ\nVTC+QNDghvEikafC04HT6e35GmOHmzOZfKXOnzpi6GWXumXXUi1sUQez6LCN\ngMw7jAM+FbK6NnFzM2Qx1Yo+gIvqgb7MWGruTayCVAUWtluTMH5qN938E3Z2\nRHEemHPH24eBxl2O4PhR9bqfD8iycJOLRfIlJNATaj38EwEYBC5JDzxmzLzE\nTQYqINYnB8sHnj/GCcFfRYlwCmgrTbxcSvPiXvGoM7jr4O3OlnGdtfM8Fwfr\nZZIQ\r\n=TkQA\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry Collector Exporter for node with grpc\n\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.25.0**.\n\n## Installation\n\n```bash\nnpm install --save @opentelemetry/exporter-collector-grpc\n```\n\n## Service Name\n\nThe OpenTelemetry Collector Exporter does not have a service name configuration.\nIn order to set the service name, use the `service.name` resource attribute as prescribed in the [OpenTelemetry Resource Semantic Conventions][semconv-resource-service-name].\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/traces`.\n\n```js\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/tracing');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is grpc://localhost:4317\n  url: 'grpc://<collector-hostname>:<port>',\n};\n\nconst provider = new BasicTracerProvider();\nconst exporter = new CollectorTraceExporter(collectorOptions);\nprovider.addSpanProcessor(new SimpleSpanProcessor(exporter));\n\nprovider.register();\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\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/grpc-js');\n\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/tracing');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is grpc://localhost:4317\n  url: 'grpc://<collector-hostname>:<port>',\n  credentials: grpc.credentials.createSsl(),\n};\n\nconst provider = new BasicTracerProvider();\nconst exporter = new CollectorTraceExporter(collectorOptions);\nprovider.addSpanProcessor(new SimpleSpanProcessor(exporter));\n\nprovider.register();\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n```\n\nTo use mutual authentication, pass to the `createSsl()` constructor:\n\n```js\n  credentials: grpc.credentials.createSsl(\n    fs.readFileSync('./ca.crt'),\n    fs.readFileSync('./client.key'),\n    fs.readFileSync('./client.crt')\n  ),\n```\n\nTo generate credentials for mutual authentication, 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/grpc-js');\n\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/tracing');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst metadata = new grpc.Metadata();\n// For instance, an API key or access token might go here.\nmetadata.set('k', 'v');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is grpc://localhost:4317\n  url: 'grpc://<collector-hostname>:<port>',\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['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n```\n\nNote, that this will only work if TLS is also configured on the server.\n\n## Metrics in Node - GRPC\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-grpc');\nconst collectorOptions = {\n  // url is optional and can be omitted - default is grpc://localhost:4317\n  url: 'grpc://<collector-hostname>:<port>',\n};\nconst exporter = new CollectorMetricExporter(collectorOptions);\n\n// Register the exporter\nconst provider = new MeterProvider({\n  exporter,\n  interval: 60000,\n})\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n\n// Now, start recording data\nconst meter = provider.getMeter('example-meter');\nconst counter = meter.createCounter('metric_name');\ncounter.add(10, { 'key': 'value' });\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 in [GitHub Discussions][discussions-url]\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\n[discussions-url]: https://github.com/open-telemetry/opentelemetry-js/discussions\n[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/main/LICENSE\n[license-image]: https://img.shields.io/badge/license-Apache_2.0-green.svg?style=flat\n[dependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc\n[devDependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/exporter-collector-grpc\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fexporter-collector-grpc.svg\n[opentelemetry-collector-url]: https://github.com/open-telemetry/opentelemetry-collector\n[semconv-resource-service-name]: https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/resource/semantic_conventions/README.md#service\n","engines":{"node":">=8.0.0"},"gitHead":"cb06b788b27ff080326b74bf4c3d08f419a06529","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"npm run protos:copy && tsc -w","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","submodule":"git submodule sync --recursive && git submodule update --init --recursive","postcompile":"npm run submodule && npm run protos:copy","protos:copy":"cpx protos/opentelemetry/**/*.* build/protos/opentelemetry"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.3+x64 (linux)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.17.3","dependencies":{"@grpc/grpc-js":"^1.2.12","@grpc/proto-loader":"^0.6.0","@opentelemetry/core":"^0.23.0","@opentelemetry/metrics":"^0.23.0","@opentelemetry/tracing":"^0.23.0","@opentelemetry/resources":"^0.23.0","@opentelemetry/exporter-collector":"^0.23.1-alpha.20+cb06b788"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cpx":"1.5.0","nyc":"15.1.0","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.2","ts-mocha":"8.0.0","ts-loader":"8.3.0","typescript":"4.3.5","@babel/core":"7.14.6","@types/node":"14.17.5","@types/mocha":"8.2.3","@types/sinon":"10.0.2","@opentelemetry/api":"^1.0.1","@opentelemetry/api-metrics":"^0.23.0"},"peerDependencies":{"@opentelemetry/api":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.23.1-alpha.20_1626883259796_0.3010956814077539","host":"s3://npm-registry-packages"}},"0.23.1-alpha.23":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.23.1-alpha.23","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.23.1-alpha.23","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"bb1b7126afb76dc3d1abe7a06d07bc1d038b2ef6","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.23.1-alpha.23.tgz","fileCount":35,"integrity":"sha512-a5/ifhlAoE7+h8U5be09S4rExCjR2GugX5hiXC0qMBBeLN1TBvkxgnhlvBJaqqidUR2qFlZBvoM7dyDQNRcEXQ==","signatures":[{"sig":"MEUCIDbV6mtbAQuBIVcdPUt/rOymkT/jjyWvEFX9rC5ZmxjkAiEA9CRJyda/32q8Q26B4hfQa5wk/jMJN0l3Mo6Gvkt+nxY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":110523,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg+wB/CRA9TVsSAnZWagAAbFcP/0Hg7kauz23johf3EfrI\nZtbNckXK3xcqKfstusEOE+CuDhuyfSJo+1J2Pt+j7M6NskC/1CjO/+UNuZ1y\nSBrJAYC0Wjs1uOZ0z+8D36XFhUH+uJyD6UCKYsAL//sh8aP3OhlNZuOJGaWq\nS+wVY3cZnB7wRIzgQJCWyZDxtM8y47MXmOJRdo7tbaQKb6ihkJGED1ziTtyu\nb6J/LwsrtbrDvbRmUVddXX81hPhSB0Pe2AlUrPZEWWHJ4gmy3z/QTwA6l6DC\nj11LkzJdUAbjnTx42vEMUmqO1GOZ8Gs1ZhiQ+kuSpztVAiKiFCUBcS7nCLjz\nPPBaNqQgEVxg9SCXx5yXmJu4diDsCRAOBPg7HKHnNROEu2sug98RzfFpm0um\n7ZdGnaqc7sMmn0/U24niGIrdR/LlCkB8Q3QDBXMEvWhSgYhIgbIB0QZb3vcQ\nycqtcS6Na/C1QMJ1OH52ycw6fqULJmOCRQugqBKZxTyvGENB9/XPtNaddxcS\n503N2OuyLguIMZ0OgLOSd8hvFkZ2qPePAvCLUSus2Z6M+v06zL+n322bjVYg\nTBkZ3w0NKE6F+V3u4RBvEnA5fcIsV4JA1VpVlhYW1jkmElVNt0Hqu1znF62q\nrsnTbQWaVIz68x69e+a2GD0sUL8p9a0pM/oNWhBzqIzr1y6j8h5LMGvVwWFP\nupGX\r\n=IP6H\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry Collector Exporter for node with grpc\n\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.25.0**.\n\n## Installation\n\n```bash\nnpm install --save @opentelemetry/exporter-collector-grpc\n```\n\n## Service Name\n\nThe OpenTelemetry Collector Exporter does not have a service name configuration.\nIn order to set the service name, use the `service.name` resource attribute as prescribed in the [OpenTelemetry Resource Semantic Conventions][semconv-resource-service-name].\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/traces`.\n\n```js\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/tracing');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is grpc://localhost:4317\n  url: 'grpc://<collector-hostname>:<port>',\n};\n\nconst provider = new BasicTracerProvider();\nconst exporter = new CollectorTraceExporter(collectorOptions);\nprovider.addSpanProcessor(new SimpleSpanProcessor(exporter));\n\nprovider.register();\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\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/grpc-js');\n\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/tracing');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is grpc://localhost:4317\n  url: 'grpc://<collector-hostname>:<port>',\n  credentials: grpc.credentials.createSsl(),\n};\n\nconst provider = new BasicTracerProvider();\nconst exporter = new CollectorTraceExporter(collectorOptions);\nprovider.addSpanProcessor(new SimpleSpanProcessor(exporter));\n\nprovider.register();\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n```\n\nTo use mutual authentication, pass to the `createSsl()` constructor:\n\n```js\n  credentials: grpc.credentials.createSsl(\n    fs.readFileSync('./ca.crt'),\n    fs.readFileSync('./client.key'),\n    fs.readFileSync('./client.crt')\n  ),\n```\n\nTo generate credentials for mutual authentication, 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/grpc-js');\n\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/tracing');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst metadata = new grpc.Metadata();\n// For instance, an API key or access token might go here.\nmetadata.set('k', 'v');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is grpc://localhost:4317\n  url: 'grpc://<collector-hostname>:<port>',\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['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n```\n\nNote, that this will only work if TLS is also configured on the server.\n\n## Metrics in Node - GRPC\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-grpc');\nconst collectorOptions = {\n  // url is optional and can be omitted - default is grpc://localhost:4317\n  url: 'grpc://<collector-hostname>:<port>',\n};\nconst exporter = new CollectorMetricExporter(collectorOptions);\n\n// Register the exporter\nconst provider = new MeterProvider({\n  exporter,\n  interval: 60000,\n})\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n\n// Now, start recording data\nconst meter = provider.getMeter('example-meter');\nconst counter = meter.createCounter('metric_name');\ncounter.add(10, { 'key': 'value' });\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 in [GitHub Discussions][discussions-url]\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\n[discussions-url]: https://github.com/open-telemetry/opentelemetry-js/discussions\n[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/main/LICENSE\n[license-image]: https://img.shields.io/badge/license-Apache_2.0-green.svg?style=flat\n[dependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc\n[devDependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/exporter-collector-grpc\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fexporter-collector-grpc.svg\n[opentelemetry-collector-url]: https://github.com/open-telemetry/opentelemetry-collector\n[semconv-resource-service-name]: https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/resource/semantic_conventions/README.md#service\n","engines":{"node":">=8.0.0"},"gitHead":"884d20ab417bf0283ec84a72b9a0fae8ebcb82a1","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"npm run protos:copy && tsc -w","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","submodule":"git submodule sync --recursive && git submodule update --init --recursive","postcompile":"npm run submodule && npm run protos:copy","protos:copy":"cpx protos/opentelemetry/**/*.* build/protos/opentelemetry"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.3+x64 (linux)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.17.3","dependencies":{"@grpc/grpc-js":"^1.2.12","@grpc/proto-loader":"^0.6.0","@opentelemetry/core":"^0.23.1-alpha.23+884d20ab","@opentelemetry/metrics":"^0.23.1-alpha.23+884d20ab","@opentelemetry/tracing":"^0.23.1-alpha.23+884d20ab","@opentelemetry/resources":"^0.23.1-alpha.23+884d20ab","@opentelemetry/exporter-collector":"^0.23.1-alpha.23+884d20ab"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cpx":"1.5.0","nyc":"15.1.0","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.3","ts-mocha":"8.0.0","ts-loader":"8.3.0","typescript":"4.3.5","@babel/core":"7.14.8","@types/node":"14.17.5","@types/mocha":"8.2.3","@types/sinon":"10.0.2","@opentelemetry/api":"^1.0.1","@opentelemetry/api-metrics":"^0.23.1-alpha.23+884d20ab"},"peerDependencies":{"@opentelemetry/api":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.23.1-alpha.23_1627062399200_0.9627444920625281","host":"s3://npm-registry-packages"}},"0.23.1-alpha.24":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.23.1-alpha.24","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.23.1-alpha.24","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"0d98caace47c3444b1525921756476dca30c2945","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.23.1-alpha.24.tgz","fileCount":35,"integrity":"sha512-zVcKmkxhyHy0yHtjB1xACCsMYsP5HiMyfoWK463T68Eepc50P3D4F8Tq9aI2uP1Bv/2N+wa6nGxZ32+vZ3CxAQ==","signatures":[{"sig":"MEYCIQDp0f6Oj5iYP9NLxTgnwpJiNynpqEbm3vvuRkE+YYqA8AIhALgqycgobqVgJaCFe1Q8INiAOsUZdTZY01nzWn/e4G2b","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":110505,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg/QiTCRA9TVsSAnZWagAAKncQAJeve2aDB+970FKXkj7m\newe+EsQiuW0jwaDkcmKwHA/3/PgHHluTxSzi+P1NyLxvI0QspMLDS8xHYNjy\nuEOYAsbPp3+y/TH16SxMxgiSBJ7qbzDR5FmbrBgCGJY8AF66ylAzBodu4yDw\nqC1BZrNca8xAXQrGeZTrwmg+s9r5jjAYi67r5hdND4mTa2i3Kbh9sv0+egtC\nhFX8zclV0cocmcwwjoR6u/4go3taSZrAFVIo1lVNxPyRNIB2IsdnigjklCLW\nhEvoJ/Ec01CqPyYxrUpCQGw4wF4y3w0wzkbKnwR2Tee2h6kmXsojbMT1Wfn7\nae6xIosQfbCxOcmDxgNZIDoMe98aZEJENhSbQfyMiNEXbjufjbAQbEBg7D8L\nDvENNvBHDllLcbsbId+JIt+GaULXQ7Zjuv3jDO6B5QzUDSTTB7E79/sY4D+u\n1wRglglf4kW2t14lSc3OYZq40oxpPXb7YLttg/xveODTBQXBpmPKZ3k7f84R\nbjLyAJwlizZr7Eja0gV6p31P6AvbogH7PqoSFW1B3oZEGXsdokytrYhL/67d\nr7osSGcWhlg2dcg0Qoj9PLOJnjjyfhsw55wTY67dlLZp248Yg0neHcVZVNts\nkLrsNhZMzJNui0VPq7tyu6ovwldEM7/dLDIAbASuZNkLxny7wod4XjZ3KqoE\nwvRi\r\n=7dI1\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry Collector Exporter for node with grpc\n\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.25.0**.\n\n## Installation\n\n```bash\nnpm install --save @opentelemetry/exporter-collector-grpc\n```\n\n## Service Name\n\nThe OpenTelemetry Collector Exporter does not have a service name configuration.\nIn order to set the service name, use the `service.name` resource attribute as prescribed in the [OpenTelemetry Resource Semantic Conventions][semconv-resource-service-name].\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/traces`.\n\n```js\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/tracing');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is grpc://localhost:4317\n  url: 'grpc://<collector-hostname>:<port>',\n};\n\nconst provider = new BasicTracerProvider();\nconst exporter = new CollectorTraceExporter(collectorOptions);\nprovider.addSpanProcessor(new SimpleSpanProcessor(exporter));\n\nprovider.register();\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\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/grpc-js');\n\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/tracing');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is grpc://localhost:4317\n  url: 'grpc://<collector-hostname>:<port>',\n  credentials: grpc.credentials.createSsl(),\n};\n\nconst provider = new BasicTracerProvider();\nconst exporter = new CollectorTraceExporter(collectorOptions);\nprovider.addSpanProcessor(new SimpleSpanProcessor(exporter));\n\nprovider.register();\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n```\n\nTo use mutual authentication, pass to the `createSsl()` constructor:\n\n```js\n  credentials: grpc.credentials.createSsl(\n    fs.readFileSync('./ca.crt'),\n    fs.readFileSync('./client.key'),\n    fs.readFileSync('./client.crt')\n  ),\n```\n\nTo generate credentials for mutual authentication, 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/grpc-js');\n\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/tracing');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst metadata = new grpc.Metadata();\n// For instance, an API key or access token might go here.\nmetadata.set('k', 'v');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is grpc://localhost:4317\n  url: 'grpc://<collector-hostname>:<port>',\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['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n```\n\nNote, that this will only work if TLS is also configured on the server.\n\n## Metrics in Node - GRPC\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-grpc');\nconst collectorOptions = {\n  // url is optional and can be omitted - default is grpc://localhost:4317\n  url: 'grpc://<collector-hostname>:<port>',\n};\nconst exporter = new CollectorMetricExporter(collectorOptions);\n\n// Register the exporter\nconst provider = new MeterProvider({\n  exporter,\n  interval: 60000,\n})\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n\n// Now, start recording data\nconst meter = provider.getMeter('example-meter');\nconst counter = meter.createCounter('metric_name');\ncounter.add(10, { 'key': 'value' });\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 in [GitHub Discussions][discussions-url]\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\n[discussions-url]: https://github.com/open-telemetry/opentelemetry-js/discussions\n[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/main/LICENSE\n[license-image]: https://img.shields.io/badge/license-Apache_2.0-green.svg?style=flat\n[dependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc\n[devDependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/exporter-collector-grpc\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fexporter-collector-grpc.svg\n[opentelemetry-collector-url]: https://github.com/open-telemetry/opentelemetry-collector\n[semconv-resource-service-name]: https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/resource/semantic_conventions/README.md#service\n","engines":{"node":">=8.0.0"},"gitHead":"3bc3452814e30274d7eea1f3c9da968b88b1a197","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"npm run protos:copy && tsc -w","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","submodule":"git submodule sync --recursive && git submodule update --init --recursive","postcompile":"npm run submodule && npm run protos:copy","protos:copy":"cpx protos/opentelemetry/**/*.* build/protos/opentelemetry"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.3+x64 (linux)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.17.3","dependencies":{"@grpc/grpc-js":"^1.2.12","@grpc/proto-loader":"^0.6.0","@opentelemetry/core":"^0.23.1-alpha.24+3bc34528","@opentelemetry/metrics":"^0.23.1-alpha.24+3bc34528","@opentelemetry/tracing":"^0.23.1-alpha.24+3bc34528","@opentelemetry/resources":"^0.23.1-alpha.24+3bc34528","@opentelemetry/exporter-collector":"^0.23.1-alpha.24+3bc34528"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cpx":"1.5.0","nyc":"15.1.0","mocha":"7.2.0","sinon":"10.0.0","rimraf":"3.0.2","codecov":"3.8.3","ts-mocha":"8.0.0","ts-loader":"8.3.0","typescript":"4.3.5","@babel/core":"7.14.8","@types/node":"14.17.5","@types/mocha":"8.2.3","@types/sinon":"10.0.2","@opentelemetry/api":"^1.0.1","@opentelemetry/api-metrics":"^0.23.0"},"peerDependencies":{"@opentelemetry/api":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.23.1-alpha.24_1627195539312_0.813281925422221","host":"s3://npm-registry-packages"}},"0.23.1-alpha.28":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.23.1-alpha.28","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.23.1-alpha.28","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"d9c11f9df7035f5f5f85e36a32d62fc503b4e037","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.23.1-alpha.28.tgz","fileCount":35,"integrity":"sha512-KRBg7ChyZ/EF4y/vzKn944zCNSUnK0pM3OA6hq/NEluODqBRQkfD26QVJLRd9GJ5fvO62a+lDJdbmp5fAZ+R6A==","signatures":[{"sig":"MEUCIQCXualeqzriObS4pJLwKHfJuzVCIsmvFFt0CVxAPJnfGAIgQhvGtZYfwW1gjQdJTc8HOrH5qLEDbA4tUs8151M/ya8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":110505,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhAGImCRA9TVsSAnZWagAAs9IP/jZUzHt6KFF5giWk9izA\n2mkPXPomas30ctTFywrhWx+R+aRZbpTQfhOW2qG7fEmZa6/ujUCiblhwHj2D\nrL3vQuZzzSoaWcen4nA4t+++KeF6mzL4hfhN3KWwwE+haif086Zmi2e6TPCf\nAihkPHTqrzh79KUvXYfyiVW9C3B4zQug3lzx/l+V9QOSdEb/G7ZIKJ0GbivT\nIMrpWBDg4w7zCaf+sVFNT0udrIYT4qHJRBiV/9ydRvQYDbIXHtHBotQrQclW\nM/PtJ+HbP5/HpMX4vckUImJTTHu/yUohkWEIJmM1CTgSSlldUrVIyLruogkS\nPc7b4NPzLHxxLYT8whZpz6xuwtX1kX+yl1H3S1sdgaNkuOlmbttVffuTjBmD\nhFakkiMKL493zcjOFTIe/xqGo6stiAEkPJ13UPB/HJ2qSTc1mKN/q44I9i6G\nZ0CaIoXdxGgsgm/1fU7XyB4JsenpzssbZ6iXFVj7GZL/0K5wWhwUppn0p0PN\n0b05uUeJcxt6c2rbpFkkrRWcRM+oYr/xEXxRDoTNLhJAvOcPuDOt+wySUJ69\nAA53UYsFV21uzYdAJWaApAm+1YXVkjHNLtpxDe6osAOEAttLiVPd9db4PLHt\nF3hXOR5HDrj7l4e+4MRtvwhWqTOj4lQSd/1q1VlwkF/1xi7sopw3Ejl/8yXJ\nV+Ao\r\n=NwXl\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry Collector Exporter for node with grpc\n\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.25.0**.\n\n## Installation\n\n```bash\nnpm install --save @opentelemetry/exporter-collector-grpc\n```\n\n## Service Name\n\nThe OpenTelemetry Collector Exporter does not have a service name configuration.\nIn order to set the service name, use the `service.name` resource attribute as prescribed in the [OpenTelemetry Resource Semantic Conventions][semconv-resource-service-name].\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/traces`.\n\n```js\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/tracing');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is grpc://localhost:4317\n  url: 'grpc://<collector-hostname>:<port>',\n};\n\nconst provider = new BasicTracerProvider();\nconst exporter = new CollectorTraceExporter(collectorOptions);\nprovider.addSpanProcessor(new SimpleSpanProcessor(exporter));\n\nprovider.register();\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\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/grpc-js');\n\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/tracing');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is grpc://localhost:4317\n  url: 'grpc://<collector-hostname>:<port>',\n  credentials: grpc.credentials.createSsl(),\n};\n\nconst provider = new BasicTracerProvider();\nconst exporter = new CollectorTraceExporter(collectorOptions);\nprovider.addSpanProcessor(new SimpleSpanProcessor(exporter));\n\nprovider.register();\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n```\n\nTo use mutual authentication, pass to the `createSsl()` constructor:\n\n```js\n  credentials: grpc.credentials.createSsl(\n    fs.readFileSync('./ca.crt'),\n    fs.readFileSync('./client.key'),\n    fs.readFileSync('./client.crt')\n  ),\n```\n\nTo generate credentials for mutual authentication, 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/grpc-js');\n\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/tracing');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst metadata = new grpc.Metadata();\n// For instance, an API key or access token might go here.\nmetadata.set('k', 'v');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is grpc://localhost:4317\n  url: 'grpc://<collector-hostname>:<port>',\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['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n```\n\nNote, that this will only work if TLS is also configured on the server.\n\n## Metrics in Node - GRPC\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-grpc');\nconst collectorOptions = {\n  // url is optional and can be omitted - default is grpc://localhost:4317\n  url: 'grpc://<collector-hostname>:<port>',\n};\nconst exporter = new CollectorMetricExporter(collectorOptions);\n\n// Register the exporter\nconst provider = new MeterProvider({\n  exporter,\n  interval: 60000,\n})\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n\n// Now, start recording data\nconst meter = provider.getMeter('example-meter');\nconst counter = meter.createCounter('metric_name');\ncounter.add(10, { 'key': 'value' });\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 in [GitHub Discussions][discussions-url]\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\n[discussions-url]: https://github.com/open-telemetry/opentelemetry-js/discussions\n[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/main/LICENSE\n[license-image]: https://img.shields.io/badge/license-Apache_2.0-green.svg?style=flat\n[dependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc\n[devDependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/exporter-collector-grpc\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fexporter-collector-grpc.svg\n[opentelemetry-collector-url]: https://github.com/open-telemetry/opentelemetry-collector\n[semconv-resource-service-name]: https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/resource/semantic_conventions/README.md#service\n","engines":{"node":">=8.0.0"},"gitHead":"d8fbeddacce3e27aab40b24c2ca3c271155e74ea","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"npm run protos:copy && tsc -w","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","submodule":"git submodule sync --recursive && git submodule update --init --recursive","postcompile":"npm run submodule && npm run protos:copy","protos:copy":"cpx protos/opentelemetry/**/*.* build/protos/opentelemetry"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.3+x64 (linux)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.17.3","dependencies":{"@grpc/grpc-js":"^1.2.12","@grpc/proto-loader":"^0.6.0","@opentelemetry/core":"^0.23.1-alpha.28+d8fbedda","@opentelemetry/metrics":"^0.23.1-alpha.28+d8fbedda","@opentelemetry/tracing":"^0.23.1-alpha.28+d8fbedda","@opentelemetry/resources":"^0.23.1-alpha.28+d8fbedda","@opentelemetry/exporter-collector":"^0.23.1-alpha.28+d8fbedda"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cpx":"1.5.0","nyc":"15.1.0","mocha":"7.2.0","sinon":"11.1.2","rimraf":"3.0.2","codecov":"3.8.3","ts-mocha":"8.0.0","ts-loader":"8.3.0","typescript":"4.3.5","@babel/core":"7.14.8","@types/node":"14.17.5","@types/mocha":"8.2.3","@types/sinon":"10.0.2","@opentelemetry/api":"^1.0.1","@opentelemetry/api-metrics":"^0.23.0"},"peerDependencies":{"@opentelemetry/api":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.23.1-alpha.28_1627415078789_0.023441579682023983","host":"s3://npm-registry-packages"}},"0.23.1-alpha.29":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.23.1-alpha.29","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.23.1-alpha.29","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"aefaff4c2e67c800d2226b7416a9b075af9ab168","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.23.1-alpha.29.tgz","fileCount":35,"integrity":"sha512-A+YB4aAwmvAA3GgGGwKKeBqpRg2f7AQB0DexjEqX8ms34hSCINVUb4d6A2WY+a8GVnnNJaPGqhyDW+G8kNzW3g==","signatures":[{"sig":"MEYCIQCSdhoLyzQPR9lXv0A2eASdNNLUW05WMO3NEhZMtEHrzAIhAMlxiIevEMrQr8EWXzhqSS+ye8kZlzp3r11saIs5ydm4","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":110433,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhAGkwCRA9TVsSAnZWagAAiJwP/jg9E+5yfJIVjJ3O6Yqt\nyPpN0if46QOpiLyYu8X7dSO/k/D2sCES4mXUlN0K/Ray53q722TP/IzP6jlq\nGo9WArdbEBFo4WyoQGXkLgR5Ajn58jKxUhrcaN6Wtric41WJs84JqEnRNpqu\ncnhqwFp4U5kahuK1lfSzpI11hPpYuw3yBVfTi7p6VYv7CeIbpo6W8DeU5Uzo\najhsSexwscgAhZRbAHdoRwSnuNcPAEN9Gqo2ItrNXeHpnB5vJ6usylbPbJlk\nMP7UP/Dqm7Do0BlHYfeKVAF8mBL6Xqh+546ACm3r85LH8Ixmjp2rkXuol0v8\ne47hYECyVFfdd2tsSW0CQXdBGhwPqHiFe7109NCGSPHzqWTTFLoeY3XBEn0D\nNN6FpaNb0d4I7ri+Y0ot19yj0YJOHN4fVH59yzF6pfissfwg0SbzWe4HZRdI\n0HEJMjV/id79U6zfTvHIoQzKqGcMVLJi9OE616Kjb1mpmR8cciUOzKFIxTi5\nFN20L2HRRe3iHp2GJnT0652mTAk6N2kGeOLIYdsRB2rW7gcM324fUt15CDQo\nKRVvhhYWkp312SFPY5ky1LPgPDtRiuAB43NTCTJe+YZPy641jAo/yXo68G+2\n7IF/X9y9DGok9D/WeVXOBN/86slyjtDHQnEoS3QsH1+4FWoga7smDac7KBEg\nMFeT\r\n=IxSC\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry Collector Exporter for node with grpc\n\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.25.0**.\n\n## Installation\n\n```bash\nnpm install --save @opentelemetry/exporter-collector-grpc\n```\n\n## Service Name\n\nThe OpenTelemetry Collector Exporter does not have a service name configuration.\nIn order to set the service name, use the `service.name` resource attribute as prescribed in the [OpenTelemetry Resource Semantic Conventions][semconv-resource-service-name].\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/traces`.\n\n```js\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/tracing');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is grpc://localhost:4317\n  url: 'grpc://<collector-hostname>:<port>',\n};\n\nconst provider = new BasicTracerProvider();\nconst exporter = new CollectorTraceExporter(collectorOptions);\nprovider.addSpanProcessor(new SimpleSpanProcessor(exporter));\n\nprovider.register();\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\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/grpc-js');\n\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/tracing');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is grpc://localhost:4317\n  url: 'grpc://<collector-hostname>:<port>',\n  credentials: grpc.credentials.createSsl(),\n};\n\nconst provider = new BasicTracerProvider();\nconst exporter = new CollectorTraceExporter(collectorOptions);\nprovider.addSpanProcessor(new SimpleSpanProcessor(exporter));\n\nprovider.register();\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n```\n\nTo use mutual authentication, pass to the `createSsl()` constructor:\n\n```js\n  credentials: grpc.credentials.createSsl(\n    fs.readFileSync('./ca.crt'),\n    fs.readFileSync('./client.key'),\n    fs.readFileSync('./client.crt')\n  ),\n```\n\nTo generate credentials for mutual authentication, 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/grpc-js');\n\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/tracing');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst metadata = new grpc.Metadata();\n// For instance, an API key or access token might go here.\nmetadata.set('k', 'v');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is grpc://localhost:4317\n  url: 'grpc://<collector-hostname>:<port>',\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['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n```\n\nNote, that this will only work if TLS is also configured on the server.\n\n## Metrics in Node - GRPC\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-grpc');\nconst collectorOptions = {\n  // url is optional and can be omitted - default is grpc://localhost:4317\n  url: 'grpc://<collector-hostname>:<port>',\n};\nconst exporter = new CollectorMetricExporter(collectorOptions);\n\n// Register the exporter\nconst provider = new MeterProvider({\n  exporter,\n  interval: 60000,\n})\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n\n// Now, start recording data\nconst meter = provider.getMeter('example-meter');\nconst counter = meter.createCounter('metric_name');\ncounter.add(10, { 'key': 'value' });\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 in [GitHub Discussions][discussions-url]\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\n[discussions-url]: https://github.com/open-telemetry/opentelemetry-js/discussions\n[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/main/LICENSE\n[license-image]: https://img.shields.io/badge/license-Apache_2.0-green.svg?style=flat\n[dependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc\n[devDependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/exporter-collector-grpc\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fexporter-collector-grpc.svg\n[opentelemetry-collector-url]: https://github.com/open-telemetry/opentelemetry-collector\n[semconv-resource-service-name]: https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/resource/semantic_conventions/README.md#service\n","engines":{"node":">=8.0.0"},"gitHead":"ec8834442a4c15c268f0ca1c07a236fc3fa2210a","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"npm run protos:copy && tsc -w","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","submodule":"git submodule sync --recursive && git submodule update --init --recursive","postcompile":"npm run submodule && npm run protos:copy","protos:copy":"cpx protos/opentelemetry/**/*.* build/protos/opentelemetry"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.3+x64 (linux)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.17.3","dependencies":{"@grpc/grpc-js":"^1.2.12","@grpc/proto-loader":"^0.6.0","@opentelemetry/core":"^0.23.0","@opentelemetry/metrics":"^0.23.0","@opentelemetry/tracing":"^0.23.0","@opentelemetry/resources":"^0.23.0","@opentelemetry/exporter-collector":"^0.23.1-alpha.29+ec883444"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cpx":"1.5.0","nyc":"15.1.0","mocha":"7.2.0","sinon":"11.1.2","rimraf":"3.0.2","codecov":"3.8.3","ts-mocha":"8.0.0","ts-loader":"8.3.0","typescript":"4.3.5","@babel/core":"7.14.8","@types/node":"14.17.5","@types/mocha":"8.2.3","@types/sinon":"10.0.2","@opentelemetry/api":"^1.0.1","@opentelemetry/api-metrics":"^0.23.0"},"peerDependencies":{"@opentelemetry/api":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.23.1-alpha.29_1627416879989_0.5377852657621471","host":"s3://npm-registry-packages"}},"0.24.1-alpha.31":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.24.1-alpha.31","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.24.1-alpha.31","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"e7ee91eabfac1d84cfd150e05b74efdceec6325e","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.24.1-alpha.31.tgz","fileCount":35,"integrity":"sha512-77Nenh/5NrgDVRGhFR4bzbaFmDhYMsKFD1HOm5oMFN4teuCkblcqF4cSC8vdUdGf4RgHDBqAfeZxQGn1bRONhQ==","signatures":[{"sig":"MEYCIQDglyzZyvN6RqhxqMrBxUvzVeOyMeMryJhmveGDEa3bzQIhAPEOYN2B+o0jbsNtCGihs8WEPVspQE+OVRv4Lxfrk1oe","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":110523,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhAWSlCRA9TVsSAnZWagAAsm8P/RHld9x7z73h/BhXbuhi\nx62Ef7C04EdRSDf4PtRHHw2rQ2v60Fccw7hYt47seDJwBXlwBEkAqbcH8vma\n+vgC6zqw4htx4fCLP+MzBBeO4ni+Q46z9qIzJR4bdxGobeL5jCkeXaN6nzin\nYHj7PK//MtDIWfQKKCVdBfvvXj7aDWCjq3p3R/xPo8cOaU4QwFZzYriG14TC\neZb8skWQZnSoRCLKty1J2zYa6FpWhfKUChRvTLvkg6DgLzPDKtnN7W5MQfdG\nDWREQGi4zi4ffCidrsU3ODqNiJdDniX/1wowK96L84VLz42zBPSJ9dFg9PgV\n36SREOTPnfPpboLJz7isRd4YW2ZBc474YxqqZkgOLHJRjmfmf9SQ//ZKL0Oo\nrN875ZJ2mdT956xKcFGZgpnLpV2EMgcvIapdhxlrMFj26DNrMO8rPdm3vQdR\nSGm7ItZog5XkcvsogwNIamjdV6eR/slmzNZwJwhCbzoIFuM0BfJE9VO7bdKA\nrULq4pb/q8fei1pF/Qg9lc8Un5GNDqmnMsyFlG68xbIJhi2YU7B5SX+HGGcW\nfCHEK+1DlRKKcOSXqdRw3/MfFZBVk874iQvYhI+23XuRohwPwtbYDNHwNPGt\nCLpchpfL9Rx3OR6INSLj3U/RM+R6xsSuVSqNiSjCiUtyPi4d6mNgG23AbsoI\nEyJU\r\n=Yr0P\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry Collector Exporter for node with grpc\n\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.25.0**.\n\n## Installation\n\n```bash\nnpm install --save @opentelemetry/exporter-collector-grpc\n```\n\n## Service Name\n\nThe OpenTelemetry Collector Exporter does not have a service name configuration.\nIn order to set the service name, use the `service.name` resource attribute as prescribed in the [OpenTelemetry Resource Semantic Conventions][semconv-resource-service-name].\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/traces`.\n\n```js\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/tracing');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is grpc://localhost:4317\n  url: 'grpc://<collector-hostname>:<port>',\n};\n\nconst provider = new BasicTracerProvider();\nconst exporter = new CollectorTraceExporter(collectorOptions);\nprovider.addSpanProcessor(new SimpleSpanProcessor(exporter));\n\nprovider.register();\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\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/grpc-js');\n\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/tracing');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is grpc://localhost:4317\n  url: 'grpc://<collector-hostname>:<port>',\n  credentials: grpc.credentials.createSsl(),\n};\n\nconst provider = new BasicTracerProvider();\nconst exporter = new CollectorTraceExporter(collectorOptions);\nprovider.addSpanProcessor(new SimpleSpanProcessor(exporter));\n\nprovider.register();\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n```\n\nTo use mutual authentication, pass to the `createSsl()` constructor:\n\n```js\n  credentials: grpc.credentials.createSsl(\n    fs.readFileSync('./ca.crt'),\n    fs.readFileSync('./client.key'),\n    fs.readFileSync('./client.crt')\n  ),\n```\n\nTo generate credentials for mutual authentication, 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/grpc-js');\n\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/tracing');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst metadata = new grpc.Metadata();\n// For instance, an API key or access token might go here.\nmetadata.set('k', 'v');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is grpc://localhost:4317\n  url: 'grpc://<collector-hostname>:<port>',\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['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n```\n\nNote, that this will only work if TLS is also configured on the server.\n\n## Metrics in Node - GRPC\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-grpc');\nconst collectorOptions = {\n  // url is optional and can be omitted - default is grpc://localhost:4317\n  url: 'grpc://<collector-hostname>:<port>',\n};\nconst exporter = new CollectorMetricExporter(collectorOptions);\n\n// Register the exporter\nconst provider = new MeterProvider({\n  exporter,\n  interval: 60000,\n})\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n\n// Now, start recording data\nconst meter = provider.getMeter('example-meter');\nconst counter = meter.createCounter('metric_name');\ncounter.add(10, { 'key': 'value' });\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 in [GitHub Discussions][discussions-url]\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\n[discussions-url]: https://github.com/open-telemetry/opentelemetry-js/discussions\n[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/main/LICENSE\n[license-image]: https://img.shields.io/badge/license-Apache_2.0-green.svg?style=flat\n[dependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc\n[devDependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/exporter-collector-grpc\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fexporter-collector-grpc.svg\n[opentelemetry-collector-url]: https://github.com/open-telemetry/opentelemetry-collector\n[semconv-resource-service-name]: https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/resource/semantic_conventions/README.md#service\n","engines":{"node":">=8.0.0"},"gitHead":"fd2410cc9e8d43210b6ea44b8193fa70ee900499","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"npm run protos:copy && tsc -w","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","submodule":"git submodule sync --recursive && git submodule update --init --recursive","postcompile":"npm run submodule && npm run protos:copy","protos:copy":"cpx protos/opentelemetry/**/*.* build/protos/opentelemetry"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.3+x64 (linux)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.17.3","dependencies":{"@grpc/grpc-js":"^1.2.12","@grpc/proto-loader":"^0.6.0","@opentelemetry/core":"^0.24.1-alpha.31+fd2410cc","@opentelemetry/metrics":"^0.24.1-alpha.31+fd2410cc","@opentelemetry/tracing":"^0.24.1-alpha.31+fd2410cc","@opentelemetry/resources":"^0.24.1-alpha.31+fd2410cc","@opentelemetry/exporter-collector":"^0.24.1-alpha.31+fd2410cc"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cpx":"1.5.0","nyc":"15.1.0","mocha":"7.2.0","sinon":"11.1.2","rimraf":"3.0.2","codecov":"3.8.3","ts-mocha":"8.0.0","ts-loader":"8.3.0","typescript":"4.3.5","@babel/core":"7.14.8","@types/node":"14.17.5","@types/mocha":"8.2.3","@types/sinon":"10.0.2","@opentelemetry/api":"^1.0.1","@opentelemetry/api-metrics":"^0.24.1-alpha.31+fd2410cc"},"peerDependencies":{"@opentelemetry/api":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.24.1-alpha.31_1627481253509_0.21876849641692764","host":"s3://npm-registry-packages"}},"0.24.0":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.24.0","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.24.0","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"46ee41e503dd1d2c00d4c574a771813d948551b1","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.24.0.tgz","fileCount":35,"integrity":"sha512-1KSur/+42QuzMyncK4dzKyBgwBheyrTGee0zhd7bBKe9/QjRDyQeCoCc1G+FchpMZKBVNe7zVQTnm+H6BTixDA==","signatures":[{"sig":"MEUCIQC4g+MCvSQUXeoaQFr8x9Cl2wc5ePmrsEww5WTFYQ+9hgIgazvZUIaxeObd1FED+IW2XOZfpoyhT3VEPMo6ixoU3cg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":110391,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhAWYzCRA9TVsSAnZWagAACqMP/3Smas4drQebm/2na7ck\nm5Dp1YmnRxS4DxeRVUUujuhSrJlw22eI6vJvNYHq7b7NQp/XqSkDjAVOS3Ff\nfifFBa77RDNpM8SVHI8PcxBKN6HfsZmvIKrVv1wCjkZa/Ffq9XsdWAI5hcEB\nQbR+eH7ULbEBFdgjVtHFMM8UFXLbBjpoiPK/QohMFMDOz0OJuwHWTDIHV7MW\nT1ZFtwqPcpsCZKbMzG5DIDOMwEwNGgzZbzI+6J9GHwLeqcI95Gv2GS+9VmEa\n5TZE4xVSrcvFIK221j54Uz3nEcr9S1g03bIBUjtpoew+uUxytwr5fjkwyyCT\ngYjbtJy9peX7rMWz1tHXqL8Bqa10XNIflnl6RcI5rMnZHidPw5dTPgEaICk4\nIFk/hkTFGdeHWoHv4YIA3tMx1wWuxuHEMPP8mCrDCSaaSVqPbRAEYf+dD/ED\nCT0t7C6p9bqhA51Sw3O7eSi80HRzYEeb28Mlvhea0s+y3yOotPXZeHlGsNh0\novtgnqAmui6LdIwWpwH59WmwbNjsatON6EDeElzcJhrknvUYO/9UxNoBkD5I\n4eGDpmie9ktYMlwz2UIkt6XlVQ/tYx5miipaoMOFoYOa1hLb+jdksqYDtKuH\nvj/Q6565aaMdVBDE+f25LVUXzzgIPhchXpU5Fcu0dZhHrtwp86TdxMR+W7Lm\nk/Uw\r\n=kLLU\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","engines":{"node":">=8.0.0"},"gitHead":"fd2410cc9e8d43210b6ea44b8193fa70ee900499","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"npm run protos:copy && tsc -w","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","submodule":"git submodule sync --recursive && git submodule update --init --recursive","postcompile":"npm run submodule && npm run protos:copy","protos:copy":"cpx protos/opentelemetry/**/*.* build/protos/opentelemetry"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.8.0+x64 (darwin)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.8.0","dependencies":{"@grpc/grpc-js":"^1.2.12","@grpc/proto-loader":"^0.6.0","@opentelemetry/core":"0.24.0","@opentelemetry/metrics":"0.24.0","@opentelemetry/tracing":"0.24.0","@opentelemetry/resources":"0.24.0","@opentelemetry/exporter-collector":"0.24.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"cpx":"1.5.0","nyc":"15.1.0","mocha":"7.2.0","sinon":"11.1.2","rimraf":"3.0.2","codecov":"3.8.3","ts-mocha":"8.0.0","ts-loader":"8.3.0","typescript":"4.3.5","@babel/core":"7.14.8","@types/node":"14.17.5","@types/mocha":"8.2.3","@types/sinon":"10.0.2","@opentelemetry/api":"^1.0.1","@opentelemetry/api-metrics":"0.24.0"},"peerDependencies":{"@opentelemetry/api":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.24.0_1627481651684_0.36636656663559086","host":"s3://npm-registry-packages"}},"0.24.1-alpha.1":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.24.1-alpha.1","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.24.1-alpha.1","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"7250d445dc3b33d1cf479824fb552ed17fee6baa","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.24.1-alpha.1.tgz","fileCount":35,"integrity":"sha512-NQTR2dKAYsMECb2B+lxUuOFb3EYD/CsEUdYIx1PRiJjbbSxjBTfgWg6i49kXeXjWIsnwgnOKSTrl3zCybg8m9g==","signatures":[{"sig":"MEYCIQCUa9LYB1dNhypTzA3pG5Nt8IQe7eZDJqM5I9q+ccDd9gIhAObPLU28JeiPYR8CauTZpLO/+VXpK3oq8cyakyUy7Gsv","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":110516,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhBFY/CRA9TVsSAnZWagAA3b0P/A3ljpZmjQP8uSLCBTML\nKZGjlbcJDQE2NSs4MPboAr00NNeFXGIc9w1e1q9i0SoA67WJvCus5T7tZnHB\nuVLG1Lbss1KzjFO/NO14LndyIrAOXKOAC/qBHTnYXnVEGSLv4x5/GENIIxNQ\nndSuNscOz7pKlvLbFa3juHEnD2XsQRWoHh/aDAj3pvzuzGOjbAEQ1fBZGQ6d\nLFEHLn5b1obHxg/Cn4fHxw9LNcG+QHmU0HHA2sW9mme1SpPP77BDU8Y4/P8v\nHqp6a7SHf94f0sMp4SMgsKScdiGsGRCZ1aTqCnJP5f+g+OyjncjWb89DedMR\nHlIhOs7hfDghTv7hDtcZ0lhfQ8vtvVHP9DV3fGMtCHbsEaB5ZjdVS0rOVfrP\nz4+3fZIiLoSb3k1y8pbkUbsXdpqFEhjW1EB8ySoy4L4CGffdytGXcBqhVd0Z\nYQnUxcY035yYa4Bs+ISVuI4kwC+zzI6rUKgLT9R3WUXDDmaK0yoSkLOrOCDd\nYsEKkcucbtjVGQoXXg4tj2CCNoZ/ervegBAWjhfr6w/KEqpCYX0YkExmOZe1\n50vRO8cgSxavE0vYxK19Fq0A5gy1wQs3Wjkp5lZL38MBcgnnqWSTLbWYQmFM\nIls7mCixRmCOg+HA7Txuy7OW8pYjumUSNyrbUC0IDrllYisFs1dx2ugf2qcR\nqV8b\r\n=HLtL\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry Collector Exporter for node with grpc\n\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.25.0**.\n\n## Installation\n\n```bash\nnpm install --save @opentelemetry/exporter-collector-grpc\n```\n\n## Service Name\n\nThe OpenTelemetry Collector Exporter does not have a service name configuration.\nIn order to set the service name, use the `service.name` resource attribute as prescribed in the [OpenTelemetry Resource Semantic Conventions][semconv-resource-service-name].\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/traces`.\n\n```js\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/tracing');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is grpc://localhost:4317\n  url: 'grpc://<collector-hostname>:<port>',\n};\n\nconst provider = new BasicTracerProvider();\nconst exporter = new CollectorTraceExporter(collectorOptions);\nprovider.addSpanProcessor(new SimpleSpanProcessor(exporter));\n\nprovider.register();\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\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/grpc-js');\n\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/tracing');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is grpc://localhost:4317\n  url: 'grpc://<collector-hostname>:<port>',\n  credentials: grpc.credentials.createSsl(),\n};\n\nconst provider = new BasicTracerProvider();\nconst exporter = new CollectorTraceExporter(collectorOptions);\nprovider.addSpanProcessor(new SimpleSpanProcessor(exporter));\n\nprovider.register();\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n```\n\nTo use mutual authentication, pass to the `createSsl()` constructor:\n\n```js\n  credentials: grpc.credentials.createSsl(\n    fs.readFileSync('./ca.crt'),\n    fs.readFileSync('./client.key'),\n    fs.readFileSync('./client.crt')\n  ),\n```\n\nTo generate credentials for mutual authentication, 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/grpc-js');\n\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/tracing');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst metadata = new grpc.Metadata();\n// For instance, an API key or access token might go here.\nmetadata.set('k', 'v');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is grpc://localhost:4317\n  url: 'grpc://<collector-hostname>:<port>',\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['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n```\n\nNote, that this will only work if TLS is also configured on the server.\n\n## Metrics in Node - GRPC\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-grpc');\nconst collectorOptions = {\n  // url is optional and can be omitted - default is grpc://localhost:4317\n  url: 'grpc://<collector-hostname>:<port>',\n};\nconst exporter = new CollectorMetricExporter(collectorOptions);\n\n// Register the exporter\nconst provider = new MeterProvider({\n  exporter,\n  interval: 60000,\n})\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n\n// Now, start recording data\nconst meter = provider.getMeter('example-meter');\nconst counter = meter.createCounter('metric_name');\ncounter.add(10, { 'key': 'value' });\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 in [GitHub Discussions][discussions-url]\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\n[discussions-url]: https://github.com/open-telemetry/opentelemetry-js/discussions\n[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/main/LICENSE\n[license-image]: https://img.shields.io/badge/license-Apache_2.0-green.svg?style=flat\n[dependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc\n[devDependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/exporter-collector-grpc\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fexporter-collector-grpc.svg\n[opentelemetry-collector-url]: https://github.com/open-telemetry/opentelemetry-collector\n[semconv-resource-service-name]: https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/resource/semantic_conventions/README.md#service\n","engines":{"node":">=8.0.0"},"gitHead":"3b9cd16a8eeed7a262bdfea4c93098861b4c1ba0","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"npm run protos:copy && tsc -w","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","submodule":"git submodule sync --recursive && git submodule update --init --recursive","postcompile":"npm run submodule && npm run protos:copy","protos:copy":"cpx protos/opentelemetry/**/*.* build/protos/opentelemetry"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.3+x64 (linux)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.17.3","dependencies":{"@grpc/grpc-js":"^1.2.12","@grpc/proto-loader":"^0.6.0","@opentelemetry/core":"^0.24.1-alpha.1+3b9cd16a","@opentelemetry/metrics":"^0.24.1-alpha.1+3b9cd16a","@opentelemetry/tracing":"^0.24.1-alpha.1+3b9cd16a","@opentelemetry/resources":"^0.24.1-alpha.1+3b9cd16a","@opentelemetry/exporter-collector":"^0.24.1-alpha.1+3b9cd16a"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cpx":"1.5.0","nyc":"15.1.0","mocha":"7.2.0","sinon":"11.1.2","rimraf":"3.0.2","codecov":"3.8.3","ts-mocha":"8.0.0","ts-loader":"8.3.0","typescript":"4.3.5","@babel/core":"7.14.8","@types/node":"14.17.6","@types/mocha":"8.2.3","@types/sinon":"10.0.2","@opentelemetry/api":"^1.0.2","@opentelemetry/api-metrics":"^0.24.1-alpha.1+3b9cd16a"},"peerDependencies":{"@opentelemetry/api":"^1.0.2"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.24.1-alpha.1_1627674175083_0.684093693158065","host":"s3://npm-registry-packages"}},"0.24.1-alpha.4":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.24.1-alpha.4","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.24.1-alpha.4","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"388548374bbee9f5877b371a629ec39efb7003e1","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.24.1-alpha.4.tgz","fileCount":35,"integrity":"sha512-ouKxXOTOAkeLU/B520jWLmov/HWUbFr9TilmjUmRsapDjcnOb87oSh4JYPAB9E2LPhCJTcXdzGra+rPmYKKRMg==","signatures":[{"sig":"MEYCIQCVyZ4T8DdfAD6QVXVoU/a0PO9nyT2GuwaBJdwUdLqMjgIhAPEm9XXXPaAedtlTdw4Gn8scZDFlsLNDZgcuAe+hQF1u","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":110578,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhDDvhCRA9TVsSAnZWagAAypQP/0TLppmkGLQDxDizQlg3\nNuaCyLD7DbZgGF6nq+FfKAiWTzMMUpuewkSERHAI7Hzjdd01BeQy379op7M7\nXDF5pOFmJ4JbgP6qHJf5J3j26rC2S5LhlinqB3BJ0uLrdB9kLsBhFcg4zfC6\nme4buT4p6sezMIPqJ+OlRyX8IE0ppCr3ZzWA75sNNpDan8/y1j3ZSW7ao6zn\n+Q8hW1TXq7nUoEbkMl6MtNgbBQETp+Kv07Zjrk89nfqkuDhsHtEc4ooFrPL5\ndHBxhGD34h+ZY3eDhPCKd1SO1oXMxKtV+1KNfw5bR7f4HGqaB8j6/pguK+p/\nSlXJerhCphS2/m/LT47tGWUVPc1ujiT90OSTTrKiybKltO37Rk49qtMqq8M9\nXpxIFlAOcGMEOz7K+n/VA49bWMJlJVm9f35I41e3RiYK3mYeb2B8qhBCe7jw\n3MF00jJXAPq9fXDxbqjnzFBUvKpz3bYbQwYxPCSGIjzvWJa1EN4oz4cDymmX\nkVMdiFgtMxxZb9fjDsrvPBBa/SOLDtLh+teSfALe8Kv3gc4rflb/rRbGzO+B\n+0gvsnd2d+VfLGfgG45BaX2MQLeZPlqsOLeB7rchRaKFwLd8kmefJ3jpO/VK\nZgkuz40owTmN3AxOYGy9dAPpQTBgCgBYqWmp7uJz7v6v08+QhIXI4vnqNEKf\n0tl3\r\n=HEBg\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry Collector Exporter for node with grpc\n\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.25.0**.\n\n## Installation\n\n```bash\nnpm install --save @opentelemetry/exporter-collector-grpc\n```\n\n## Service Name\n\nThe OpenTelemetry Collector Exporter does not have a service name configuration.\nIn order to set the service name, use the `service.name` resource attribute as prescribed in the [OpenTelemetry Resource Semantic Conventions][semconv-resource-service-name].\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/traces`.\n\n```js\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/sdk-trace-base');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is grpc://localhost:4317\n  url: 'grpc://<collector-hostname>:<port>',\n};\n\nconst provider = new BasicTracerProvider();\nconst exporter = new CollectorTraceExporter(collectorOptions);\nprovider.addSpanProcessor(new SimpleSpanProcessor(exporter));\n\nprovider.register();\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\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/grpc-js');\n\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/sdk-trace-base');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is grpc://localhost:4317\n  url: 'grpc://<collector-hostname>:<port>',\n  credentials: grpc.credentials.createSsl(),\n};\n\nconst provider = new BasicTracerProvider();\nconst exporter = new CollectorTraceExporter(collectorOptions);\nprovider.addSpanProcessor(new SimpleSpanProcessor(exporter));\n\nprovider.register();\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n```\n\nTo use mutual authentication, pass to the `createSsl()` constructor:\n\n```js\n  credentials: grpc.credentials.createSsl(\n    fs.readFileSync('./ca.crt'),\n    fs.readFileSync('./client.key'),\n    fs.readFileSync('./client.crt')\n  ),\n```\n\nTo generate credentials for mutual authentication, 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/grpc-js');\n\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/sdk-trace-base');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst metadata = new grpc.Metadata();\n// For instance, an API key or access token might go here.\nmetadata.set('k', 'v');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is grpc://localhost:4317\n  url: 'grpc://<collector-hostname>:<port>',\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['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n```\n\nNote, that this will only work if TLS is also configured on the server.\n\n## Metrics in Node - GRPC\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/sdk-metrics-base');\nconst { CollectorMetricExporter } =  require('@opentelemetry/exporter-collector-grpc');\nconst collectorOptions = {\n  // url is optional and can be omitted - default is grpc://localhost:4317\n  url: 'grpc://<collector-hostname>:<port>',\n};\nconst exporter = new CollectorMetricExporter(collectorOptions);\n\n// Register the exporter\nconst provider = new MeterProvider({\n  exporter,\n  interval: 60000,\n})\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n\n// Now, start recording data\nconst meter = provider.getMeter('example-meter');\nconst counter = meter.createCounter('metric_name');\ncounter.add(10, { 'key': 'value' });\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 in [GitHub Discussions][discussions-url]\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\n[discussions-url]: https://github.com/open-telemetry/opentelemetry-js/discussions\n[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/main/LICENSE\n[license-image]: https://img.shields.io/badge/license-Apache_2.0-green.svg?style=flat\n[dependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc\n[devDependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/exporter-collector-grpc\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fexporter-collector-grpc.svg\n[opentelemetry-collector-url]: https://github.com/open-telemetry/opentelemetry-collector\n[semconv-resource-service-name]: https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/resource/semantic_conventions/README.md#service\n","engines":{"node":">=8.0.0"},"gitHead":"a8d39317b5daad727f2116ca314db0d1420ec488","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"npm run protos:copy && tsc -w","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","submodule":"git submodule sync --recursive && git submodule update --init --recursive","postcompile":"npm run submodule && npm run protos:copy","protos:copy":"cpx protos/opentelemetry/**/*.* build/protos/opentelemetry"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.4+x64 (linux)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.17.4","dependencies":{"@grpc/grpc-js":"^1.2.12","@grpc/proto-loader":"^0.6.0","@opentelemetry/core":"^0.24.1-alpha.4+a8d39317","@opentelemetry/resources":"^0.24.1-alpha.4+a8d39317","@opentelemetry/sdk-trace-base":"^0.24.1-alpha.4+a8d39317","@opentelemetry/sdk-metrics-base":"^0.24.1-alpha.4+a8d39317","@opentelemetry/exporter-collector":"^0.24.1-alpha.4+a8d39317"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cpx":"1.5.0","nyc":"15.1.0","mocha":"7.2.0","sinon":"11.1.2","rimraf":"3.0.2","codecov":"3.8.3","ts-mocha":"8.0.0","ts-loader":"8.3.0","typescript":"4.3.5","@babel/core":"7.14.8","@types/node":"14.17.6","@types/mocha":"8.2.3","@types/sinon":"10.0.2","@opentelemetry/api":"^1.0.2","@opentelemetry/api-metrics":"^0.24.1-alpha.4+a8d39317"},"peerDependencies":{"@opentelemetry/api":"^1.0.2"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.24.1-alpha.4_1628191713193_0.5010303106211873","host":"s3://npm-registry-packages"}},"0.24.1-alpha.5":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.24.1-alpha.5","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.24.1-alpha.5","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"4c92155d42904d3abc54cbd6a4fe4f42426bac22","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.24.1-alpha.5.tgz","fileCount":35,"integrity":"sha512-ORtAugquPkRL+AzHxHv6fauTTJWZoJCswR4emFOpFfQJUR/SChpqO1ux64KN8BzKO6nn2nPgOC8kcOk/UYzo5w==","signatures":[{"sig":"MEUCIBjms8iWfkl3UGDBRafkQBYeSwM/YNwkYtcobAbaO1KCAiEAiypmTS4xpBrN6XOa2I2YKtRJoY9XlpOapUQpmr75pzs=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":110578,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhDR2lCRA9TVsSAnZWagAAP0gQAIa6QrX2J8mrRv/POBwV\n1cPY6UryaUL+/yJQgzglGjgscQoockC6ahc7OVZDfvd5UDxlAkz2DsqL+A9K\neXG/kGBsYKpz4KmrqR5GfzDXiYWorWM+kQZZCSYdJgXbPxmYysSlcLmRWrfd\n9nV9/9yfeZROW3AP5J2zgzi20Om+AwWszFue8Q6LdZRiyyjLfEYDcG4oHRbD\ntXNRMe4292Rur2aQDdj1XIiEzraHD8vCrCgCT3ApzVE+opkA0bYeCxS69PFk\nSQjMTltD72MKrB4nLdeZKnq9AOHSlZqUJNY8tkQ1JBamOZ6aklB27TSkyx6B\nPRhtW71r+yA7vlyKvHHS1dEG9n/JohEOezgaKdnnSSOTjHnGQRPzQb9mNkfx\nkeNU7yPQxEUOqn08WDJ8TfzlnJS7pG+VyxICCSgGBIhBETOtWPX9b306c99o\n9FmyMAwkkFP94XmImYq/bRbra8lO5XqBWnjjvsnrFjIE+8G9jsWDFsUtnAL5\nVbyKbFi0RbsHWZw5DVEbUtNP9I9QBh/CY2LjOf6QmuzuYAiLKs5KHkjrc8ZP\np2Pzjufy6ohjbSzg9/TXqptxzQYDgxU3L32ZqqyCLCebxsBkF5K5kzQg+qaO\ndTgxJNviYrrE+Aa5fTVCx1nk5L26UnZpop9OvB30ei/yzUEFEoneV2VrdYSE\n4wVm\r\n=IOwV\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry Collector Exporter for node with grpc\n\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.25.0**.\n\n## Installation\n\n```bash\nnpm install --save @opentelemetry/exporter-collector-grpc\n```\n\n## Service Name\n\nThe OpenTelemetry Collector Exporter does not have a service name configuration.\nIn order to set the service name, use the `service.name` resource attribute as prescribed in the [OpenTelemetry Resource Semantic Conventions][semconv-resource-service-name].\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/traces`.\n\n```js\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/sdk-trace-base');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is grpc://localhost:4317\n  url: 'grpc://<collector-hostname>:<port>',\n};\n\nconst provider = new BasicTracerProvider();\nconst exporter = new CollectorTraceExporter(collectorOptions);\nprovider.addSpanProcessor(new SimpleSpanProcessor(exporter));\n\nprovider.register();\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\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/grpc-js');\n\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/sdk-trace-base');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is grpc://localhost:4317\n  url: 'grpc://<collector-hostname>:<port>',\n  credentials: grpc.credentials.createSsl(),\n};\n\nconst provider = new BasicTracerProvider();\nconst exporter = new CollectorTraceExporter(collectorOptions);\nprovider.addSpanProcessor(new SimpleSpanProcessor(exporter));\n\nprovider.register();\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n```\n\nTo use mutual authentication, pass to the `createSsl()` constructor:\n\n```js\n  credentials: grpc.credentials.createSsl(\n    fs.readFileSync('./ca.crt'),\n    fs.readFileSync('./client.key'),\n    fs.readFileSync('./client.crt')\n  ),\n```\n\nTo generate credentials for mutual authentication, 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/grpc-js');\n\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/sdk-trace-base');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst metadata = new grpc.Metadata();\n// For instance, an API key or access token might go here.\nmetadata.set('k', 'v');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is grpc://localhost:4317\n  url: 'grpc://<collector-hostname>:<port>',\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['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n```\n\nNote, that this will only work if TLS is also configured on the server.\n\n## Metrics in Node - GRPC\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/sdk-metrics-base');\nconst { CollectorMetricExporter } =  require('@opentelemetry/exporter-collector-grpc');\nconst collectorOptions = {\n  // url is optional and can be omitted - default is grpc://localhost:4317\n  url: 'grpc://<collector-hostname>:<port>',\n};\nconst exporter = new CollectorMetricExporter(collectorOptions);\n\n// Register the exporter\nconst provider = new MeterProvider({\n  exporter,\n  interval: 60000,\n})\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n\n// Now, start recording data\nconst meter = provider.getMeter('example-meter');\nconst counter = meter.createCounter('metric_name');\ncounter.add(10, { 'key': 'value' });\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 in [GitHub Discussions][discussions-url]\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\n[discussions-url]: https://github.com/open-telemetry/opentelemetry-js/discussions\n[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/main/LICENSE\n[license-image]: https://img.shields.io/badge/license-Apache_2.0-green.svg?style=flat\n[dependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc\n[devDependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/exporter-collector-grpc\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fexporter-collector-grpc.svg\n[opentelemetry-collector-url]: https://github.com/open-telemetry/opentelemetry-collector\n[semconv-resource-service-name]: https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/resource/semantic_conventions/README.md#service\n","engines":{"node":">=8.0.0"},"gitHead":"b69ff35e90a33d20a0154dcd326f1467dfd39e2a","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"npm run protos:copy && tsc -w","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","submodule":"git submodule sync --recursive && git submodule update --init --recursive","postcompile":"npm run submodule && npm run protos:copy","protos:copy":"cpx protos/opentelemetry/**/*.* build/protos/opentelemetry"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.4+x64 (linux)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.17.4","dependencies":{"@grpc/grpc-js":"^1.2.12","@grpc/proto-loader":"^0.6.0","@opentelemetry/core":"^0.24.1-alpha.5+b69ff35e","@opentelemetry/resources":"^0.24.1-alpha.5+b69ff35e","@opentelemetry/sdk-trace-base":"^0.24.1-alpha.5+b69ff35e","@opentelemetry/sdk-metrics-base":"^0.24.1-alpha.5+b69ff35e","@opentelemetry/exporter-collector":"^0.24.1-alpha.5+b69ff35e"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cpx":"1.5.0","nyc":"15.1.0","mocha":"7.2.0","sinon":"11.1.2","rimraf":"3.0.2","codecov":"3.8.3","ts-mocha":"8.0.0","ts-loader":"8.3.0","typescript":"4.3.5","@babel/core":"7.15.0","@types/node":"14.17.9","@types/mocha":"8.2.3","@types/sinon":"10.0.2","@opentelemetry/api":"^1.0.2","@opentelemetry/api-metrics":"^0.24.1-alpha.5+b69ff35e"},"peerDependencies":{"@opentelemetry/api":"^1.0.2"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.24.1-alpha.5_1628249509758_0.41861275564043243","host":"s3://npm-registry-packages"}},"0.24.1-alpha.6":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.24.1-alpha.6","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.24.1-alpha.6","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"8f89c2b9dc31108118734e25def0489f488107db","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.24.1-alpha.6.tgz","fileCount":35,"integrity":"sha512-Gg3rkdsVZNI2jMCPCS6vkAwXqL8/uYsQQbajE9mec+/WtT4mVw3mI1t3+paRiBoV213Wshm0MdA8nX6EYWjs4g==","signatures":[{"sig":"MEUCIHMwWXg2RLtm8sPwKX1Jqu5VwtuXgnH22GfLFxxmI2VHAiEAwqDsaVkbE/sdvlXB+7lSz10V58n0Lape9e+3WlgEbJ8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":110527,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhDTs+CRA9TVsSAnZWagAAGFcP/0WNu4U5TPuwNgmaeFvj\n5PVMa61Lg+G/5VVoa7kgxg0+CuhlvGUexfU534fW5hJNoo4xQDmDLIfe23Xy\ngNsYawb+FwXc6dGmm50oA42BwGoP7Gz/eqrMvj7zW/KeLTt34eEwsFhpEtXZ\n+jXyiimyICOL0OKqa1NII5NBueAP5iBP7LiC4EdFgUe8rSE/9e8ln/IyxkG3\nROjnoIX2vS56+/2iArnfKOi4cvzFy+GgRfbzOLrhWpKoBfSmfSTV5Kw8Y+iQ\nUnpywj46jrZ+bt/dOmb10SCBzafn7pWM3vY/d9g8NBSLPXDXZQ6VZig1UlvN\nEX+upH0wwldZyn9pmmLEmZKpyy8SmTTgqM1zm2nEan3qoO2LefEWhd46xb8o\n5no5S88FiDZ0wN0Z3v43XOa8lhqyNqNnkoKe0vnZO7oQBmqwTPGPFXg4yFMU\nH3za/6sX+32vr1sYcOu8MgWgAeHvy9SOiiafZvhte34qzcdhWxrdcQ1jnrLa\nIgK7AlhxXLEmDfeo45u0jffCUK9GrnZRHmrg8fiRHGI6CQrEUWjZPAC0n30v\njEBPvoCq7B1A77luIlmBgQAjgfEPcJ2zHzvjGU7LS+FkwWqmaDv00n8LWHve\nH3DqZ9ZHZSCEcfHWDH81hkY6cztfb7QdvvRnKKNHaCaHRHqeShZpu7HIMWg1\nKsrw\r\n=gnVH\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry Collector Exporter for node with grpc\n\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.25.0**.\n\n## Installation\n\n```bash\nnpm install --save @opentelemetry/exporter-collector-grpc\n```\n\n## Service Name\n\nThe OpenTelemetry Collector Exporter does not have a service name configuration.\nIn order to set the service name, use the `service.name` resource attribute as prescribed in the [OpenTelemetry Resource Semantic Conventions][semconv-resource-service-name].\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/traces`.\n\n```js\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/sdk-trace-base');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is grpc://localhost:4317\n  url: 'grpc://<collector-hostname>:<port>',\n};\n\nconst provider = new BasicTracerProvider();\nconst exporter = new CollectorTraceExporter(collectorOptions);\nprovider.addSpanProcessor(new SimpleSpanProcessor(exporter));\n\nprovider.register();\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\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/grpc-js');\n\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/sdk-trace-base');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is grpc://localhost:4317\n  url: 'grpc://<collector-hostname>:<port>',\n  credentials: grpc.credentials.createSsl(),\n};\n\nconst provider = new BasicTracerProvider();\nconst exporter = new CollectorTraceExporter(collectorOptions);\nprovider.addSpanProcessor(new SimpleSpanProcessor(exporter));\n\nprovider.register();\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n```\n\nTo use mutual authentication, pass to the `createSsl()` constructor:\n\n```js\n  credentials: grpc.credentials.createSsl(\n    fs.readFileSync('./ca.crt'),\n    fs.readFileSync('./client.key'),\n    fs.readFileSync('./client.crt')\n  ),\n```\n\nTo generate credentials for mutual authentication, 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/grpc-js');\n\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/sdk-trace-base');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst metadata = new grpc.Metadata();\n// For instance, an API key or access token might go here.\nmetadata.set('k', 'v');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is grpc://localhost:4317\n  url: 'grpc://<collector-hostname>:<port>',\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['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n```\n\nNote, that this will only work if TLS is also configured on the server.\n\n## Metrics in Node - GRPC\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/sdk-metrics-base');\nconst { CollectorMetricExporter } =  require('@opentelemetry/exporter-collector-grpc');\nconst collectorOptions = {\n  // url is optional and can be omitted - default is grpc://localhost:4317\n  url: 'grpc://<collector-hostname>:<port>',\n};\nconst exporter = new CollectorMetricExporter(collectorOptions);\n\n// Register the exporter\nconst provider = new MeterProvider({\n  exporter,\n  interval: 60000,\n})\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n\n// Now, start recording data\nconst meter = provider.getMeter('example-meter');\nconst counter = meter.createCounter('metric_name');\ncounter.add(10, { 'key': 'value' });\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 in [GitHub Discussions][discussions-url]\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\n[discussions-url]: https://github.com/open-telemetry/opentelemetry-js/discussions\n[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/main/LICENSE\n[license-image]: https://img.shields.io/badge/license-Apache_2.0-green.svg?style=flat\n[dependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc\n[devDependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/exporter-collector-grpc\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fexporter-collector-grpc.svg\n[opentelemetry-collector-url]: https://github.com/open-telemetry/opentelemetry-collector\n[semconv-resource-service-name]: https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/resource/semantic_conventions/README.md#service\n","engines":{"node":">=8.0.0"},"gitHead":"08828b4c6583a71ed42a341f16a18a41ed1307f5","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"npm run protos:copy && tsc -w","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","submodule":"git submodule sync --recursive && git submodule update --init --recursive","postcompile":"npm run submodule && npm run protos:copy","protos:copy":"cpx protos/opentelemetry/**/*.* build/protos/opentelemetry"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.4+x64 (linux)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.17.4","dependencies":{"@grpc/grpc-js":"^1.2.12","@grpc/proto-loader":"^0.6.0","@opentelemetry/core":"^0.24.0","@opentelemetry/resources":"^0.24.0","@opentelemetry/sdk-trace-base":"^0.24.0","@opentelemetry/sdk-metrics-base":"^0.24.1-alpha.6+08828b4c","@opentelemetry/exporter-collector":"^0.24.1-alpha.6+08828b4c"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cpx":"1.5.0","nyc":"15.1.0","mocha":"7.2.0","sinon":"11.1.2","rimraf":"3.0.2","codecov":"3.8.3","ts-mocha":"8.0.0","ts-loader":"8.3.0","typescript":"4.3.5","@babel/core":"7.15.0","@types/node":"14.17.9","@types/mocha":"8.2.3","@types/sinon":"10.0.2","@opentelemetry/api":"^1.0.2","@opentelemetry/api-metrics":"^0.24.1-alpha.6+08828b4c"},"peerDependencies":{"@opentelemetry/api":"^1.0.2"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.24.1-alpha.6_1628257086417_0.4816806995027365","host":"s3://npm-registry-packages"}},"0.24.1-alpha.7":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.24.1-alpha.7","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.24.1-alpha.7","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"8a59949db706b19166570f933b4530a9fee7f68b","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.24.1-alpha.7.tgz","fileCount":35,"integrity":"sha512-K2TKo9YxHjhBcjoBrn4za1B9g7eYLVlNdHBNmENZDjjGFNqZQyqcGJZAMe5bMA7IqCVhReZO0Wwsnm7n/3T9Ew==","signatures":[{"sig":"MEUCIFRbrmFpowlqRcI311LQqnekchrhWJhQ5mZB+glTDmfYAiEAqBloD/l+bLNyN4Hn6jbBz6OQ36OivO7Xefz0EOLrQck=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":110561,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhDoucCRA9TVsSAnZWagAAlKoQAIhL7lIv3AUYOQ2LSOH2\nJwZ63yIducWxw4/Tb8pOkbU8SOtNrzQm8U8OejPoM6T1iXJvMSkoCV/VdlUf\nCnBHSsrOG6yvR+CSwx680Hnj4wgu5osiFw6pJhBCwnEjAKV+HBphGjhrlI5C\nMribHVF+APHnxJtFrlXsbnd3JnnjGmbonPPXow2f6SA4qjfWfcpmV629aq5t\n8Es7+B7RcZT4iE0SEuOb0m/WTR/J19kc8BVt924rXi1gmip7rlRaAUlFJpcF\nbC7kqr5YQ6jV7BMmsnJ/y2IF/uRpcgR+DYj8Ashp3fNQU51QPAXOkYjdwzfT\nu16xq7L9b8p6sNocXHFrgiHz4/SSF/TZkG15dxtLksC+Uoa36L7JX5PvPqtR\n3wpYR2KXcDSZEbAcTf8Y54sG3uv0WYyA5L2eYfEbrVAM5Bb+XPdQhDDe+1RO\nIArBwCYs+XWb3qwQnYIi+kJ773ZwZ7+rBle7xwJcnd8iFLtiwL5qB2JCZ4DM\nCVOIQvbDUskC+mNJc/80p/wU9uDbRv3L+2NOQLcQ2QcXTB0vgHEfvgWh4e9F\ncV7AcZ5e9jHpyd0PW93WvOKmEAqM+Echg2vfHk7tv5UlLXgLH6aQunE2CK89\n09g7Qg7bK2TPQuJGDu1VVcjCtEwjZW1N8JbpWPjqksV1s7hf0Usu+zS4FZDM\nEbDa\r\n=X5RS\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry Collector Exporter for node with grpc\n\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.25.0**.\n\n## Installation\n\n```bash\nnpm install --save @opentelemetry/exporter-collector-grpc\n```\n\n## Service Name\n\nThe OpenTelemetry Collector Exporter does not have a service name configuration.\nIn order to set the service name, use the `service.name` resource attribute as prescribed in the [OpenTelemetry Resource Semantic Conventions][semconv-resource-service-name].\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/traces`.\n\n```js\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/sdk-trace-base');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is grpc://localhost:4317\n  url: 'grpc://<collector-hostname>:<port>',\n};\n\nconst provider = new BasicTracerProvider();\nconst exporter = new CollectorTraceExporter(collectorOptions);\nprovider.addSpanProcessor(new SimpleSpanProcessor(exporter));\n\nprovider.register();\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\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/grpc-js');\n\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/sdk-trace-base');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is grpc://localhost:4317\n  url: 'grpc://<collector-hostname>:<port>',\n  credentials: grpc.credentials.createSsl(),\n};\n\nconst provider = new BasicTracerProvider();\nconst exporter = new CollectorTraceExporter(collectorOptions);\nprovider.addSpanProcessor(new SimpleSpanProcessor(exporter));\n\nprovider.register();\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n```\n\nTo use mutual authentication, pass to the `createSsl()` constructor:\n\n```js\n  credentials: grpc.credentials.createSsl(\n    fs.readFileSync('./ca.crt'),\n    fs.readFileSync('./client.key'),\n    fs.readFileSync('./client.crt')\n  ),\n```\n\nTo generate credentials for mutual authentication, 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/grpc-js');\n\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/sdk-trace-base');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst metadata = new grpc.Metadata();\n// For instance, an API key or access token might go here.\nmetadata.set('k', 'v');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is grpc://localhost:4317\n  url: 'grpc://<collector-hostname>:<port>',\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['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n```\n\nNote, that this will only work if TLS is also configured on the server.\n\n## Metrics in Node - GRPC\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/sdk-metrics-base');\nconst { CollectorMetricExporter } =  require('@opentelemetry/exporter-collector-grpc');\nconst collectorOptions = {\n  // url is optional and can be omitted - default is grpc://localhost:4317\n  url: 'grpc://<collector-hostname>:<port>',\n};\nconst exporter = new CollectorMetricExporter(collectorOptions);\n\n// Register the exporter\nconst provider = new MeterProvider({\n  exporter,\n  interval: 60000,\n})\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n\n// Now, start recording data\nconst meter = provider.getMeter('example-meter');\nconst counter = meter.createCounter('metric_name');\ncounter.add(10, { 'key': 'value' });\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 in [GitHub Discussions][discussions-url]\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\n[discussions-url]: https://github.com/open-telemetry/opentelemetry-js/discussions\n[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/main/LICENSE\n[license-image]: https://img.shields.io/badge/license-Apache_2.0-green.svg?style=flat\n[dependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc\n[devDependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/exporter-collector-grpc\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fexporter-collector-grpc.svg\n[opentelemetry-collector-url]: https://github.com/open-telemetry/opentelemetry-collector\n[semconv-resource-service-name]: https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/resource/semantic_conventions/README.md#service\n","engines":{"node":">=8.0.0"},"gitHead":"365d502eaa0ba1f9799998f050d36073e943032e","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"npm run protos:copy && tsc -w","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","submodule":"git submodule sync --recursive && git submodule update --init --recursive","postcompile":"npm run submodule && npm run protos:copy","protos:copy":"cpx protos/opentelemetry/**/*.* build/protos/opentelemetry"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.4+x64 (linux)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.17.4","dependencies":{"@grpc/grpc-js":"^1.2.12","@grpc/proto-loader":"^0.6.0","@opentelemetry/core":"^0.24.1-alpha.7+365d502e","@opentelemetry/resources":"^0.24.1-alpha.7+365d502e","@opentelemetry/sdk-trace-base":"^0.24.1-alpha.7+365d502e","@opentelemetry/sdk-metrics-base":"^0.24.1-alpha.7+365d502e","@opentelemetry/exporter-collector":"^0.24.1-alpha.7+365d502e"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cpx":"1.5.0","nyc":"15.1.0","mocha":"7.2.0","sinon":"11.1.2","rimraf":"3.0.2","codecov":"3.8.3","ts-mocha":"8.0.0","ts-loader":"8.3.0","typescript":"4.3.5","@babel/core":"7.15.0","@types/node":"14.17.9","@types/mocha":"8.2.3","@types/sinon":"10.0.2","@opentelemetry/api":"^1.0.2","@opentelemetry/api-metrics":"^0.24.0"},"peerDependencies":{"@opentelemetry/api":"^1.0.2"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.24.1-alpha.7_1628343196006_0.4800481879742051","host":"s3://npm-registry-packages"}},"0.24.1-alpha.8":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.24.1-alpha.8","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.24.1-alpha.8","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"ff6290394451ba7461b0f196b4cd785628ef9e8f","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.24.1-alpha.8.tgz","fileCount":35,"integrity":"sha512-fmPXb6sf8nHVZsoO2yfFlbAg/k9wAOlHlcA0VA8/P0jCoGCdBNL/uX3IwM46FxfJlt6x+P2TwxXUm+Xq5zDuaQ==","signatures":[{"sig":"MEQCIG3bo1e0ejARh2xDAGsknxLvqsV5hvELEpW29xizgCApAiA1zvI5XCOR2gwAXOHWpKEO8OBpe3uIdwC1kaI+kPpg8w==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":110493,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhDo2TCRA9TVsSAnZWagAArPIP/2N0hiiimdbZbV1FTkF1\nxVdswkF8LJa24tTS7OhhFX7sd7YpPNx1F1TBoxtFgjJrpAvdT+tDSMiXjk7R\nVtfQLEX3ucusXapUgGvGUVDZxnIXsx1UKKVe/hr/Q143lXHkVVKM9SCTDwaX\n5jYizlYdXNkbfbuUzdkA6vtO/sFk60UbO3Ih4uAUi7fBOnBzX3944TuUDtNi\n2loenrJfYk/j07zpBYCSVsHTS8AcUb7R6BBMo+iikorcz9OMYeRGdJfkND9U\nCDaPsRYNybBmrD+EoG62aFEaFzMCdObQvxAYaDVOk2deZ2Q6JsdIDl5Jff5Y\nE47cf1n2xFm8s468tZhKXxvJOcLxI69EYm8wLUO4hF0cs4IhSpXTn3Jslfgs\nZ7a/HbgCc286NJLgOoh5BT++UUAwXZBhm0jBOGBMjnezjF2EjL+N/zwvE/ap\n1c49HVgmstJmdzec0JpCMz6elWyiMqFaXKpP0/nsj13q8g8YeRWaC9xEuaKT\nle21BxCgGWWZK5WBFJIV15b2AjACbnNGm3XgxtqpzsYYNunI6CPBskzM6N7e\nQZGOrIU/OnLiXrAU+WiPmmK3sZ1hJlV5v48FGiXUMAb9G1ZfAyq6jMH3qM3d\n1KW/WJke0MdhW0SavKp0TVm1MICsvJfFbQ7GuKZW0xrx+ghZqgYMSWhkNTtF\n85Qj\r\n=vPPf\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry Collector Exporter for node with grpc\n\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.25.0**.\n\n## Installation\n\n```bash\nnpm install --save @opentelemetry/exporter-collector-grpc\n```\n\n## Service Name\n\nThe OpenTelemetry Collector Exporter does not have a service name configuration.\nIn order to set the service name, use the `service.name` resource attribute as prescribed in the [OpenTelemetry Resource Semantic Conventions][semconv-resource-service-name].\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/traces`.\n\n```js\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/sdk-trace-base');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is grpc://localhost:4317\n  url: 'grpc://<collector-hostname>:<port>',\n};\n\nconst provider = new BasicTracerProvider();\nconst exporter = new CollectorTraceExporter(collectorOptions);\nprovider.addSpanProcessor(new SimpleSpanProcessor(exporter));\n\nprovider.register();\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\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/grpc-js');\n\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/sdk-trace-base');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is grpc://localhost:4317\n  url: 'grpc://<collector-hostname>:<port>',\n  credentials: grpc.credentials.createSsl(),\n};\n\nconst provider = new BasicTracerProvider();\nconst exporter = new CollectorTraceExporter(collectorOptions);\nprovider.addSpanProcessor(new SimpleSpanProcessor(exporter));\n\nprovider.register();\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n```\n\nTo use mutual authentication, pass to the `createSsl()` constructor:\n\n```js\n  credentials: grpc.credentials.createSsl(\n    fs.readFileSync('./ca.crt'),\n    fs.readFileSync('./client.key'),\n    fs.readFileSync('./client.crt')\n  ),\n```\n\nTo generate credentials for mutual authentication, 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/grpc-js');\n\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/sdk-trace-base');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst metadata = new grpc.Metadata();\n// For instance, an API key or access token might go here.\nmetadata.set('k', 'v');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is grpc://localhost:4317\n  url: 'grpc://<collector-hostname>:<port>',\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['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n```\n\nNote, that this will only work if TLS is also configured on the server.\n\n## Metrics in Node - GRPC\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/sdk-metrics-base');\nconst { CollectorMetricExporter } =  require('@opentelemetry/exporter-collector-grpc');\nconst collectorOptions = {\n  // url is optional and can be omitted - default is grpc://localhost:4317\n  url: 'grpc://<collector-hostname>:<port>',\n};\nconst exporter = new CollectorMetricExporter(collectorOptions);\n\n// Register the exporter\nconst provider = new MeterProvider({\n  exporter,\n  interval: 60000,\n})\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n\n// Now, start recording data\nconst meter = provider.getMeter('example-meter');\nconst counter = meter.createCounter('metric_name');\ncounter.add(10, { 'key': 'value' });\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 in [GitHub Discussions][discussions-url]\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\n[discussions-url]: https://github.com/open-telemetry/opentelemetry-js/discussions\n[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/main/LICENSE\n[license-image]: https://img.shields.io/badge/license-Apache_2.0-green.svg?style=flat\n[dependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc\n[devDependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/exporter-collector-grpc\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fexporter-collector-grpc.svg\n[opentelemetry-collector-url]: https://github.com/open-telemetry/opentelemetry-collector\n[semconv-resource-service-name]: https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/resource/semantic_conventions/README.md#service\n","engines":{"node":">=8.0.0"},"gitHead":"f18087030b3efe31fbc207c74af46e29264878e5","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"npm run protos:copy && tsc -w","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","submodule":"git submodule sync --recursive && git submodule update --init --recursive","postcompile":"npm run submodule && npm run protos:copy","protos:copy":"cpx protos/opentelemetry/**/*.* build/protos/opentelemetry"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.4+x64 (linux)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.17.4","dependencies":{"@grpc/grpc-js":"^1.2.12","@grpc/proto-loader":"^0.6.0","@opentelemetry/core":"^0.24.0","@opentelemetry/resources":"^0.24.0","@opentelemetry/sdk-trace-base":"^0.24.0","@opentelemetry/sdk-metrics-base":"^0.24.0","@opentelemetry/exporter-collector":"^0.24.1-alpha.8+f1808703"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cpx":"1.5.0","nyc":"15.1.0","mocha":"7.2.0","sinon":"11.1.2","rimraf":"3.0.2","codecov":"3.8.3","ts-mocha":"8.0.0","ts-loader":"8.3.0","typescript":"4.3.5","@babel/core":"7.15.0","@types/node":"14.17.9","@types/mocha":"8.2.3","@types/sinon":"10.0.2","@opentelemetry/api":"^1.0.2","@opentelemetry/api-metrics":"^0.24.0"},"peerDependencies":{"@opentelemetry/api":"^1.0.2"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.24.1-alpha.8_1628343699822_0.18989256844607438","host":"s3://npm-registry-packages"}},"0.24.1-alpha.9":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.24.1-alpha.9","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.24.1-alpha.9","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"0350bdca15ca0bbfd40c788747bfe8bb19cd7660","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.24.1-alpha.9.tgz","fileCount":35,"integrity":"sha512-knM06NxM/cResiltlbsIXsGRuwr4OtiDiqsNIpGNQxKhvVMlVWSNdgc6l2YonnSa/saJajiVn9v9dDJaCRyo5w==","signatures":[{"sig":"MEUCIQCBz5LmZeOhN3vC4Ue2kL9OHBAvB1HmlMNeh4a1farSpwIgZxQHAfvDo4fWqhPIiKqT0w+Kv6PVZ5aDojNL8iBC5zc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":110510,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhDpRLCRA9TVsSAnZWagAATEwP/i0AxZLLpHwspsyBojmV\nZtG7y3flNo3E1Uv6cQUrpllrvPsnJ2dXACO5Mwkh8JpKfPMu0ZayiA5LEjaZ\nMKVwpctq6NRb3xXOym7Nkdp8qnNx9vQlZ6ETE9J9n918rfQCPLDNykA1J83s\nUa7YQBs5XUnjhfB/Odrni57kdyXZUEs83bcvRrzt6jcakGCcdr4DfmeM/eAJ\nSi1wNXfBme4LkuWCOzBVbk83he2LveOdZ4Y+sQVCRdaOL4RGmO8fy5WPoT0+\n7aAk2QdNl0OTwC9VTZwRKoxA1k7Uq3refPJJ/TYMp9vGUaiCxOQT23+OdOyB\nGb562Qh2U3jK55HzneRHE9tdSR7CUMDUy8pI9Sbc8TlE4ttQUzKYSnX7aVkp\nlajTr6LkzAPl4xyWIuI3LgMbT95QZYDyXzGSQrEmHiy/Pmji3WCAcXSKgCD2\nyFAAe+iUj8zEFl2ioGM2bGRi+tmyDarTuwVObX0CiqHV4fT2TUZ6d4zKlhdE\niYzd7AsHhFYMObAD2LVNW7z9EQKNNNqLH3nAFKGodbbQI6Eak7UIFCuDubfe\nsAUK2ibXMF1cWzEptPaGxpyCvsImphdtCwIzRkX1clEX8xy1XOhRgnlt+MYk\nI3AIOxJJys5UDH4TGYe9w2GVaHcHMpzBO+07DIYOO4AMtRqKJ+m27+r1qkjo\n8S1s\r\n=6S9b\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry Collector Exporter for node with grpc\n\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.25.0**.\n\n## Installation\n\n```bash\nnpm install --save @opentelemetry/exporter-collector-grpc\n```\n\n## Service Name\n\nThe OpenTelemetry Collector Exporter does not have a service name configuration.\nIn order to set the service name, use the `service.name` resource attribute as prescribed in the [OpenTelemetry Resource Semantic Conventions][semconv-resource-service-name].\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/traces`.\n\n```js\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/sdk-trace-base');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is grpc://localhost:4317\n  url: 'grpc://<collector-hostname>:<port>',\n};\n\nconst provider = new BasicTracerProvider();\nconst exporter = new CollectorTraceExporter(collectorOptions);\nprovider.addSpanProcessor(new SimpleSpanProcessor(exporter));\n\nprovider.register();\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\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/grpc-js');\n\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/sdk-trace-base');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is grpc://localhost:4317\n  url: 'grpc://<collector-hostname>:<port>',\n  credentials: grpc.credentials.createSsl(),\n};\n\nconst provider = new BasicTracerProvider();\nconst exporter = new CollectorTraceExporter(collectorOptions);\nprovider.addSpanProcessor(new SimpleSpanProcessor(exporter));\n\nprovider.register();\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n```\n\nTo use mutual authentication, pass to the `createSsl()` constructor:\n\n```js\n  credentials: grpc.credentials.createSsl(\n    fs.readFileSync('./ca.crt'),\n    fs.readFileSync('./client.key'),\n    fs.readFileSync('./client.crt')\n  ),\n```\n\nTo generate credentials for mutual authentication, 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/grpc-js');\n\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/sdk-trace-base');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst metadata = new grpc.Metadata();\n// For instance, an API key or access token might go here.\nmetadata.set('k', 'v');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is grpc://localhost:4317\n  url: 'grpc://<collector-hostname>:<port>',\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['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n```\n\nNote, that this will only work if TLS is also configured on the server.\n\n## Metrics in Node - GRPC\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/sdk-metrics-base');\nconst { CollectorMetricExporter } =  require('@opentelemetry/exporter-collector-grpc');\nconst collectorOptions = {\n  // url is optional and can be omitted - default is grpc://localhost:4317\n  url: 'grpc://<collector-hostname>:<port>',\n};\nconst exporter = new CollectorMetricExporter(collectorOptions);\n\n// Register the exporter\nconst provider = new MeterProvider({\n  exporter,\n  interval: 60000,\n})\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n\n// Now, start recording data\nconst meter = provider.getMeter('example-meter');\nconst counter = meter.createCounter('metric_name');\ncounter.add(10, { 'key': 'value' });\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 in [GitHub Discussions][discussions-url]\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\n[discussions-url]: https://github.com/open-telemetry/opentelemetry-js/discussions\n[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/main/LICENSE\n[license-image]: https://img.shields.io/badge/license-Apache_2.0-green.svg?style=flat\n[dependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc\n[devDependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/exporter-collector-grpc\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fexporter-collector-grpc.svg\n[opentelemetry-collector-url]: https://github.com/open-telemetry/opentelemetry-collector\n[semconv-resource-service-name]: https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/resource/semantic_conventions/README.md#service\n","engines":{"node":">=8.0.0"},"gitHead":"46a42a18570da8a0b2ae027c80018ebfb6c8096f","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"npm run protos:copy && tsc -w","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","submodule":"git submodule sync --recursive && git submodule update --init --recursive","postcompile":"npm run submodule && npm run protos:copy","protos:copy":"cpx protos/opentelemetry/**/*.* build/protos/opentelemetry"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.4+x64 (linux)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.17.4","dependencies":{"@grpc/grpc-js":"^1.2.12","@grpc/proto-loader":"^0.6.0","@opentelemetry/core":"^0.24.0","@opentelemetry/resources":"^0.24.0","@opentelemetry/sdk-trace-base":"^0.24.1-alpha.9+46a42a18","@opentelemetry/sdk-metrics-base":"^0.24.0","@opentelemetry/exporter-collector":"^0.24.1-alpha.9+46a42a18"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cpx":"1.5.0","nyc":"15.1.0","mocha":"7.2.0","sinon":"11.1.2","rimraf":"3.0.2","codecov":"3.8.3","ts-mocha":"8.0.0","ts-loader":"8.3.0","typescript":"4.3.5","@babel/core":"7.15.0","@types/node":"14.17.9","@types/mocha":"8.2.3","@types/sinon":"10.0.2","@opentelemetry/api":"^1.0.2","@opentelemetry/api-metrics":"^0.24.0"},"peerDependencies":{"@opentelemetry/api":"^1.0.2"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.24.1-alpha.9_1628345419297_0.3523864102627554","host":"s3://npm-registry-packages"}},"0.24.1-alpha.14":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.24.1-alpha.14","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.24.1-alpha.14","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"18a8eff94ee4975544ed787e36d861838f7dcf58","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.24.1-alpha.14.tgz","fileCount":35,"integrity":"sha512-8u8UhlB7WkgL/DlK6xSDyJfEqF/dfD0l1xqxrgJL3JusncQe0tLu2VK+U0mgYfu/v8mACsRdkZm7nloCzA7C/g==","signatures":[{"sig":"MEUCIFMTSWMA0V5YvQOoWovYTfoPsn5yhhj7TKlJ3axK+eSgAiEApOSvThFDnqAShUPrwAdDB8RsTQ5oMPxcHLhmGsSfzTc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":110567,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhE+PaCRA9TVsSAnZWagAAc8wQAI5hN552gQlVf1R/VSwt\nzL4cYDkA4tYJkHf3KegDThkDIewH4NVWXJMP+mEexLagVrjFdqwaFEmzhcay\nPXtVMmda+lXvBApKvFTBrwHaGmuLxMKZNEI3XHu0HE2ShxY8iU5/chppiUov\nTcVp5xNzztmzFue7ZpezlXcfHwS6YuTE4zO9yrb2VuLVc7jpQSomnPmHI9EB\nQGsX5PRG4O4Os/Qeq+3TNMS8AzouhYzuihQJVe7+7w89OI9c0ZkYaC5gtC4s\nSkxIbcgHbQzucz6B9MZbypVbkb3GYLhT7bOW5zvZsTrK1p9ztPqtDfENICRm\nnP2mYe0Y8m4U1eKCeAvX94A99vIk8qzMuZOzxHzXt6GWzLggWFFVTO8O9Rlw\nYVLWJCxtjvmVp1iIZR67kBUWPAfnP1wSVuE6+EJycfKZg2iihCq0Q65kIvw7\njVnpkGsOasrvK7HwKI3n7q9t8BEqCqy+P45x+qeSbFpwG9r6kaKuQ23z12JA\nR/bdf3LXyzO3Gv8HT6Ld8SzxqTukqfJp9AoKrbOxuWPkgRvhmPGDX8AlxbuP\n7f4yV4S1ZjiqW7F9uGtZtH9ZCbBJPzSY588aLvmOEGxRIsjbun5dKiV8WZC+\nZ4tKdl8rz9GhO+spoHhmKbzHpuzTN8f0R/a4uekBSuCUUvbbLMbS4uEXYXPn\n2SkY\r\n=6kUx\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry Collector Exporter for node with grpc\n\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.25.0**.\n\n## Installation\n\n```bash\nnpm install --save @opentelemetry/exporter-collector-grpc\n```\n\n## Service Name\n\nThe OpenTelemetry Collector Exporter does not have a service name configuration.\nIn order to set the service name, use the `service.name` resource attribute as prescribed in the [OpenTelemetry Resource Semantic Conventions][semconv-resource-service-name].\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/traces`.\n\n```js\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/sdk-trace-base');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is grpc://localhost:4317\n  url: 'grpc://<collector-hostname>:<port>',\n};\n\nconst provider = new BasicTracerProvider();\nconst exporter = new CollectorTraceExporter(collectorOptions);\nprovider.addSpanProcessor(new SimpleSpanProcessor(exporter));\n\nprovider.register();\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\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/grpc-js');\n\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/sdk-trace-base');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is grpc://localhost:4317\n  url: 'grpc://<collector-hostname>:<port>',\n  credentials: grpc.credentials.createSsl(),\n};\n\nconst provider = new BasicTracerProvider();\nconst exporter = new CollectorTraceExporter(collectorOptions);\nprovider.addSpanProcessor(new SimpleSpanProcessor(exporter));\n\nprovider.register();\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n```\n\nTo use mutual authentication, pass to the `createSsl()` constructor:\n\n```js\n  credentials: grpc.credentials.createSsl(\n    fs.readFileSync('./ca.crt'),\n    fs.readFileSync('./client.key'),\n    fs.readFileSync('./client.crt')\n  ),\n```\n\nTo generate credentials for mutual authentication, 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/grpc-js');\n\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/sdk-trace-base');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst metadata = new grpc.Metadata();\n// For instance, an API key or access token might go here.\nmetadata.set('k', 'v');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is grpc://localhost:4317\n  url: 'grpc://<collector-hostname>:<port>',\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['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n```\n\nNote, that this will only work if TLS is also configured on the server.\n\n## Metrics in Node - GRPC\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/sdk-metrics-base');\nconst { CollectorMetricExporter } =  require('@opentelemetry/exporter-collector-grpc');\nconst collectorOptions = {\n  // url is optional and can be omitted - default is grpc://localhost:4317\n  url: 'grpc://<collector-hostname>:<port>',\n};\nconst exporter = new CollectorMetricExporter(collectorOptions);\n\n// Register the exporter\nconst provider = new MeterProvider({\n  exporter,\n  interval: 60000,\n})\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n\n// Now, start recording data\nconst meter = provider.getMeter('example-meter');\nconst counter = meter.createCounter('metric_name');\ncounter.add(10, { 'key': 'value' });\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 in [GitHub Discussions][discussions-url]\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\n[discussions-url]: https://github.com/open-telemetry/opentelemetry-js/discussions\n[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/main/LICENSE\n[license-image]: https://img.shields.io/badge/license-Apache_2.0-green.svg?style=flat\n[dependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc\n[devDependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/exporter-collector-grpc\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fexporter-collector-grpc.svg\n[opentelemetry-collector-url]: https://github.com/open-telemetry/opentelemetry-collector\n[semconv-resource-service-name]: https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/resource/semantic_conventions/README.md#service\n","engines":{"node":">=8.0.0"},"gitHead":"4553b29d4a04b5b7e4bf87cad64dc2fc8c740d8e","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"npm run protos:copy && tsc -w","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","submodule":"git submodule sync --recursive && git submodule update --init --recursive","postcompile":"npm run submodule && npm run protos:copy","protos:copy":"cpx protos/opentelemetry/**/*.* build/protos/opentelemetry"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.4+x64 (linux)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.17.4","dependencies":{"@grpc/grpc-js":"^1.2.12","@grpc/proto-loader":"^0.6.0","@opentelemetry/core":"^0.24.1-alpha.14+4553b29d","@opentelemetry/resources":"^0.24.1-alpha.14+4553b29d","@opentelemetry/sdk-trace-base":"^0.24.1-alpha.14+4553b29d","@opentelemetry/sdk-metrics-base":"^0.24.1-alpha.14+4553b29d","@opentelemetry/exporter-collector":"^0.24.1-alpha.14+4553b29d"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cpx":"1.5.0","nyc":"15.1.0","mocha":"7.2.0","sinon":"11.1.2","rimraf":"3.0.2","codecov":"3.8.3","ts-mocha":"8.0.0","ts-loader":"8.3.0","typescript":"4.3.5","@babel/core":"7.15.0","@types/node":"14.17.9","@types/mocha":"8.2.3","@types/sinon":"10.0.2","@opentelemetry/api":"^1.0.2","@opentelemetry/api-metrics":"^0.24.0"},"peerDependencies":{"@opentelemetry/api":"^1.0.2"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.24.1-alpha.14_1628693465869_0.02285602423803912","host":"s3://npm-registry-packages"}},"0.24.1-alpha.15":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.24.1-alpha.15","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.24.1-alpha.15","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"d80a791d5028f91f8a9ebbbcb83e27463f902819","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.24.1-alpha.15.tgz","fileCount":35,"integrity":"sha512-m01Rf1pLfmWkVr5/frz1w9CD/S5D5IpVMZqxwgksKh/lMZtunePSWIclDkclfThmr5DljzGqF14UPmaiEB+VzQ==","signatures":[{"sig":"MEYCIQCMs45Q29T3XaB9wFlaQYarEJoCluYo6Y6GPAXjJcb7DAIhANSfvlbx8Yal+S0YQ91xw6MF6+3nprYD1D3rfNJBYmU9","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":110194,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhE/SYCRA9TVsSAnZWagAAMtcP/1Y1rd5HKT2rJIOFTu5b\nJAGXnJmbO6Jc2O6KfOG3U9XvfJfNA64PLr2BZVrwZ076piKbqV7/bi7o6xZI\nlieLhSE4VuLJbs9/bJmReV+ScsvU65VnTr9t6OTJDCdhkbtM3N+e7//SHxzs\negOTXvz8cmOfHYMI7vZLDAPuqtkVY8PjOIq27IEokTSE6NoDOQDsxJy7FeN0\nW3pn8SYtSs+cR81y7rYxJphqu7l2KfaG9qqy2XBc4QqjS+2LoV6pQoZ3y38l\nFU2qfeDlLlwf8k5tO4MrQgm+akO15r1V45Slqwy8TVR0ZJLTHP8Ikf4w2z4S\nPh6abb8+GssIwSYVge3aF7mJlz8JJQU+8yqz/XzKSSrtjYWVuSsqKZsT5gyW\nAk6twdBPxDNDpT9p5++OenkrVEzXZCmWpNEICCxC7Ve3Dgp5x16KKDOH8T+w\nkG8w86fRiJTKE3upXabesvqMRwOK8n5WqjjO0u+Uzvau63m9xqQG8jW1k0vD\nbGLgsEGEOYw0wpKEqdkXrBhQMiHZuAu96B++SNPXWxvPezPlHntpavmhMpyc\n3Q82sh+OeyhazTnIHNeSohacTTb089AFrMLqMiCuo+oz5b4ln+La1zojLJwy\nNjGmUDfSBkcEZalZqCFNgmfgkpRTQ/3TOYfSJjcgEW7gFX4PAHZDFJ24p/T8\n76MP\r\n=fwjU\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry Collector Exporter for node with grpc\n\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.25.0**.\n\n## Installation\n\n```bash\nnpm install --save @opentelemetry/exporter-collector-grpc\n```\n\n## Service Name\n\nThe OpenTelemetry Collector Exporter does not have a service name configuration.\nIn order to set the service name, use the `service.name` resource attribute as prescribed in the [OpenTelemetry Resource Semantic Conventions][semconv-resource-service-name].\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/traces`.\n\n```js\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/sdk-trace-base');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is grpc://localhost:4317\n  url: 'grpc://<collector-hostname>:<port>',\n};\n\nconst provider = new BasicTracerProvider();\nconst exporter = new CollectorTraceExporter(collectorOptions);\nprovider.addSpanProcessor(new SimpleSpanProcessor(exporter));\n\nprovider.register();\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\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/grpc-js');\n\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/sdk-trace-base');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is grpc://localhost:4317\n  url: 'grpc://<collector-hostname>:<port>',\n  credentials: grpc.credentials.createSsl(),\n};\n\nconst provider = new BasicTracerProvider();\nconst exporter = new CollectorTraceExporter(collectorOptions);\nprovider.addSpanProcessor(new SimpleSpanProcessor(exporter));\n\nprovider.register();\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n```\n\nTo use mutual authentication, pass to the `createSsl()` constructor:\n\n```js\n  credentials: grpc.credentials.createSsl(\n    fs.readFileSync('./ca.crt'),\n    fs.readFileSync('./client.key'),\n    fs.readFileSync('./client.crt')\n  ),\n```\n\nTo generate credentials for mutual authentication, 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/grpc-js');\n\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/sdk-trace-base');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst metadata = new grpc.Metadata();\n// For instance, an API key or access token might go here.\nmetadata.set('k', 'v');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is grpc://localhost:4317\n  url: 'grpc://<collector-hostname>:<port>',\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['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n```\n\nNote, that this will only work if TLS is also configured on the server.\n\n## Metrics in Node - GRPC\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/sdk-metrics-base');\nconst { CollectorMetricExporter } =  require('@opentelemetry/exporter-collector-grpc');\nconst collectorOptions = {\n  // url is optional and can be omitted - default is grpc://localhost:4317\n  url: 'grpc://<collector-hostname>:<port>',\n};\nconst exporter = new CollectorMetricExporter(collectorOptions);\n\n// Register the exporter\nconst provider = new MeterProvider({\n  exporter,\n  interval: 60000,\n})\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n\n// Now, start recording data\nconst meter = provider.getMeter('example-meter');\nconst counter = meter.createCounter('metric_name');\ncounter.add(10, { 'key': 'value' });\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 in [GitHub Discussions][discussions-url]\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\n[discussions-url]: https://github.com/open-telemetry/opentelemetry-js/discussions\n[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/main/LICENSE\n[license-image]: https://img.shields.io/badge/license-Apache_2.0-green.svg?style=flat\n[dependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc\n[devDependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/exporter-collector-grpc\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fexporter-collector-grpc.svg\n[opentelemetry-collector-url]: https://github.com/open-telemetry/opentelemetry-collector\n[semconv-resource-service-name]: https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/resource/semantic_conventions/README.md#service\n","engines":{"node":">=8.0.0"},"gitHead":"90ea0fed52f406005550862f9b645803f89e36a9","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"npm run protos:copy && tsc -w","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","submodule":"git submodule sync --recursive && git submodule update --init --recursive","postcompile":"npm run submodule && npm run protos:copy","protos:copy":"cpx protos/opentelemetry/**/*.* build/protos/opentelemetry"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.4+x64 (linux)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.17.4","dependencies":{"@grpc/grpc-js":"^1.2.12","@grpc/proto-loader":"^0.6.0","@opentelemetry/core":"^0.24.0","@opentelemetry/resources":"^0.24.0","@opentelemetry/sdk-trace-base":"^0.24.0","@opentelemetry/sdk-metrics-base":"^0.24.0","@opentelemetry/exporter-collector":"^0.24.1-alpha.15+90ea0fed"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cpx":"1.5.0","nyc":"15.1.0","mocha":"7.2.0","sinon":"11.1.2","rimraf":"3.0.2","codecov":"3.8.3","ts-mocha":"8.0.0","ts-loader":"8.3.0","typescript":"4.3.5","@babel/core":"7.15.0","@types/node":"14.17.9","@types/mocha":"8.2.3","@types/sinon":"10.0.2","@opentelemetry/api":"^1.0.2","@opentelemetry/api-metrics":"^0.24.0"},"peerDependencies":{"@opentelemetry/api":"^1.0.2"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.24.1-alpha.15_1628697752071_0.5372709020219795","host":"s3://npm-registry-packages"}},"0.24.1-alpha.18":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.24.1-alpha.18","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.24.1-alpha.18","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"046de414e56e88ad4b0169fb14a496f863b008cb","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.24.1-alpha.18.tgz","fileCount":35,"integrity":"sha512-/r50OiZrpUHh2ID3bnNp1H9ceuhXkBr3Ici3X6iGaLimrK3i+ADIzOAjqqBNJzAY/cJKC8pM0GYLGhRgocY/2w==","signatures":[{"sig":"MEUCIAylsuaL6xvTdL5K20hMgU+d2LkN5kJW5m3jjMiHyR+3AiEA3qGpEcTMiSRZCfNiTHmMEl9uaRHHUg2MpeoUpo5G6cc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":110248,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhF3vWCRA9TVsSAnZWagAAZOwQAIxvjbiNXJcbtgFyAONm\n32VVIMjTgDiD/rNSLnZKyFGW9A/5NbPYa26EXqBJaNKD/uWMzEQp5dP7Zus+\n1VgsyWy8Hos8FkShzo+qnSMLDrIoAjLixCufejdSBVhHvhf/qYdMXIN0mILn\n/rU7r8IdU3nVPj5c/7gWWzB0ID/QXa3PIjVtamXfWuD3qq3y/33m6KHRI3K7\nMnxM6uOqK3GFDCxF9VB+M/HDxvsxmWekRk/sh0027s20FZNBkJGY0+99Z+xq\nLRxqbNihxsjMglsSSj/8M2kC7TnkPgZM1lgzct9zsZbAK5pe/G+jO0f7xemA\nMpLt9kbATOmM0j1FlNHJFxJdLI/kul5LZcVRQTFbmm2M2uE3H7T7+ZX4XY+t\nY2mJa9CK9uO1BA6/9K0kxAKNhFRcIZ/f7ptQVVJDnUU9ifX9D6R5K2xABq7T\n0D2IP3xRahBis1fJM31UhfMpesPk0I1FAsFmMTnf5cKHgSslxxI4/ow1yuMk\nGhSMTK7swiByWB9WK7uE7gamy70ro9bytBvGNsdB+B44gTJgJGQ68U5SMp+G\nzjdwMdFmzNFYK6VuKTt1oziZEuSGqDC4rg43pdyqmNAxV6ZaWKfH5KxqrYQJ\noIQl0uKWGBPKS1fg15Z0oK5WaOBQMmdeMDjtIKaxvMNZL9kHiCigMgcIikDn\nPcQs\r\n=Bny3\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry Collector Exporter for node with grpc\n\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.25.0**.\n\n## Installation\n\n```bash\nnpm install --save @opentelemetry/exporter-collector-grpc\n```\n\n## Service Name\n\nThe OpenTelemetry Collector Exporter does not have a service name configuration.\nIn order to set the service name, use the `service.name` resource attribute as prescribed in the [OpenTelemetry Resource Semantic Conventions][semconv-resource-service-name].\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/traces`.\n\n```js\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/sdk-trace-base');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is grpc://localhost:4317\n  url: 'grpc://<collector-hostname>:<port>',\n};\n\nconst provider = new BasicTracerProvider();\nconst exporter = new CollectorTraceExporter(collectorOptions);\nprovider.addSpanProcessor(new SimpleSpanProcessor(exporter));\n\nprovider.register();\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\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/grpc-js');\n\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/sdk-trace-base');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is grpc://localhost:4317\n  url: 'grpc://<collector-hostname>:<port>',\n  credentials: grpc.credentials.createSsl(),\n};\n\nconst provider = new BasicTracerProvider();\nconst exporter = new CollectorTraceExporter(collectorOptions);\nprovider.addSpanProcessor(new SimpleSpanProcessor(exporter));\n\nprovider.register();\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n```\n\nTo use mutual authentication, pass to the `createSsl()` constructor:\n\n```js\n  credentials: grpc.credentials.createSsl(\n    fs.readFileSync('./ca.crt'),\n    fs.readFileSync('./client.key'),\n    fs.readFileSync('./client.crt')\n  ),\n```\n\nTo generate credentials for mutual authentication, 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/grpc-js');\n\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/sdk-trace-base');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst metadata = new grpc.Metadata();\n// For instance, an API key or access token might go here.\nmetadata.set('k', 'v');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is grpc://localhost:4317\n  url: 'grpc://<collector-hostname>:<port>',\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['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n```\n\nNote, that this will only work if TLS is also configured on the server.\n\n## Metrics in Node - GRPC\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/sdk-metrics-base');\nconst { CollectorMetricExporter } =  require('@opentelemetry/exporter-collector-grpc');\nconst collectorOptions = {\n  // url is optional and can be omitted - default is grpc://localhost:4317\n  url: 'grpc://<collector-hostname>:<port>',\n};\nconst exporter = new CollectorMetricExporter(collectorOptions);\n\n// Register the exporter\nconst provider = new MeterProvider({\n  exporter,\n  interval: 60000,\n})\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n\n// Now, start recording data\nconst meter = provider.getMeter('example-meter');\nconst counter = meter.createCounter('metric_name');\ncounter.add(10, { 'key': 'value' });\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 in [GitHub Discussions][discussions-url]\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\n[discussions-url]: https://github.com/open-telemetry/opentelemetry-js/discussions\n[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/main/LICENSE\n[license-image]: https://img.shields.io/badge/license-Apache_2.0-green.svg?style=flat\n[dependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc\n[devDependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/exporter-collector-grpc\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fexporter-collector-grpc.svg\n[opentelemetry-collector-url]: https://github.com/open-telemetry/opentelemetry-collector\n[semconv-resource-service-name]: https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/resource/semantic_conventions/README.md#service\n","engines":{"node":">=8.0.0"},"gitHead":"bdb12daeb2e4ca3761d1411125f5d883471709ce","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"npm run protos:copy && tsc -w","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","submodule":"git submodule sync --recursive && git submodule update --init --recursive","postcompile":"npm run submodule && npm run protos:copy","protos:copy":"cpx protos/opentelemetry/**/*.* build/protos/opentelemetry"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.4+x64 (linux)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.17.4","dependencies":{"@grpc/grpc-js":"^1.2.12","@grpc/proto-loader":"^0.6.0","@opentelemetry/core":"^0.24.0","@opentelemetry/resources":"^0.24.1-alpha.18+bdb12dae","@opentelemetry/sdk-trace-base":"^0.24.1-alpha.18+bdb12dae","@opentelemetry/sdk-metrics-base":"^0.24.1-alpha.18+bdb12dae","@opentelemetry/exporter-collector":"^0.24.1-alpha.18+bdb12dae"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cpx":"1.5.0","nyc":"15.1.0","mocha":"7.2.0","sinon":"11.1.2","rimraf":"3.0.2","codecov":"3.8.3","ts-mocha":"8.0.0","ts-loader":"8.3.0","typescript":"4.3.5","@babel/core":"7.15.0","@types/node":"14.17.9","@types/mocha":"8.2.3","@types/sinon":"10.0.2","@opentelemetry/api":"^1.0.2","@opentelemetry/api-metrics":"^0.24.0"},"peerDependencies":{"@opentelemetry/api":"^1.0.2"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.24.1-alpha.18_1628928982233_0.613822016082628","host":"s3://npm-registry-packages"}},"0.24.1-alpha.19":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.24.1-alpha.19","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.24.1-alpha.19","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"e8b7305876f04d79835b0abc780115f110797417","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.24.1-alpha.19.tgz","fileCount":35,"integrity":"sha512-lmfvqngmdMCj5neB1QKtBT+m/PgjV0GDGf5sd2aWKsmUa6IPwO3r31TxY6NvMnro2iiQVrkh+3ogqR/Tfil4Gw==","signatures":[{"sig":"MEUCIQCqzOTiDMgTKICLfJiGyj5TXVm3qHlXTifaCEi75pcx9gIgdBWdO0Xy7Pt9kKofgDDJ/DzYBs609g/2B0Sj6kf+7kk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":110194,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhGqdaCRA9TVsSAnZWagAAaWAP/iZZ0XCLrnPJFsTf9+rE\nXlel9xFiEPNtVfwyYDOWXk2WQ/zcBCC2tV+gRcwa689MR//f4ffi93c8Ikin\nQbkfCflzp2W5zuHgBCctpXrP4HArjhXU1YNDujfrmRMgoFeulL4sfWAt4BVy\nCx6CSjByKmvacW4FUIRlVaY9VAhV3SQcM70u1h/HxKlDwk550rRcuV1zp1gJ\nUDOZJpNyrRJBDdgrn3lPxpuQDIJsV8FfI7ROV+F3blEZlaOW42s5K7HNR9GX\n7RPkyQEL0jxAj8YSnRp5mxyaWIBy+QkQURtJhGwQ9i2U9xqsuCVDCpsSX1Mh\ntGcw4nSYo7YSnBNuYVAn8oN2NFvnTOiZwOJmxkqjkIO+z8ltxDh/gEhX1/O2\nj0JKi2O4kEzKczjiqRyCqJ+ZhZoutB3NLc2oDlYFa7jkWINgdTAet9HPq0Qo\nUjcpC/FL036pZov4r+S9dnirV0ljjhk4bzXfmQ0JNZrnspQPb3EEwYy7A3hc\niRLT323v5s6PHUwrU+gQ95JQPvpjeI86LUsObJxrUgL6WqoYkjqe/zaRDk3R\nUyhN3/p+4tbkzz8UNHtlBX3f/lAghJvXcB5YhwtOMcW00o/XCWtoMq8TuH8S\n1ZKRVv2KnvTsiJXf23g/7xYQjVN7/61YjfJgKyg7vUrpAC/XK4h/wdR9E8IY\n95nE\r\n=hJa6\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry Collector Exporter for node with grpc\n\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.25.0**.\n\n## Installation\n\n```bash\nnpm install --save @opentelemetry/exporter-collector-grpc\n```\n\n## Service Name\n\nThe OpenTelemetry Collector Exporter does not have a service name configuration.\nIn order to set the service name, use the `service.name` resource attribute as prescribed in the [OpenTelemetry Resource Semantic Conventions][semconv-resource-service-name].\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/traces`.\n\n```js\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/sdk-trace-base');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is grpc://localhost:4317\n  url: 'grpc://<collector-hostname>:<port>',\n};\n\nconst provider = new BasicTracerProvider();\nconst exporter = new CollectorTraceExporter(collectorOptions);\nprovider.addSpanProcessor(new SimpleSpanProcessor(exporter));\n\nprovider.register();\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\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/grpc-js');\n\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/sdk-trace-base');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is grpc://localhost:4317\n  url: 'grpc://<collector-hostname>:<port>',\n  credentials: grpc.credentials.createSsl(),\n};\n\nconst provider = new BasicTracerProvider();\nconst exporter = new CollectorTraceExporter(collectorOptions);\nprovider.addSpanProcessor(new SimpleSpanProcessor(exporter));\n\nprovider.register();\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n```\n\nTo use mutual authentication, pass to the `createSsl()` constructor:\n\n```js\n  credentials: grpc.credentials.createSsl(\n    fs.readFileSync('./ca.crt'),\n    fs.readFileSync('./client.key'),\n    fs.readFileSync('./client.crt')\n  ),\n```\n\nTo generate credentials for mutual authentication, 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/grpc-js');\n\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/sdk-trace-base');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst metadata = new grpc.Metadata();\n// For instance, an API key or access token might go here.\nmetadata.set('k', 'v');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is grpc://localhost:4317\n  url: 'grpc://<collector-hostname>:<port>',\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['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n```\n\nNote, that this will only work if TLS is also configured on the server.\n\n## Metrics in Node - GRPC\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/sdk-metrics-base');\nconst { CollectorMetricExporter } =  require('@opentelemetry/exporter-collector-grpc');\nconst collectorOptions = {\n  // url is optional and can be omitted - default is grpc://localhost:4317\n  url: 'grpc://<collector-hostname>:<port>',\n};\nconst exporter = new CollectorMetricExporter(collectorOptions);\n\n// Register the exporter\nconst provider = new MeterProvider({\n  exporter,\n  interval: 60000,\n})\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n\n// Now, start recording data\nconst meter = provider.getMeter('example-meter');\nconst counter = meter.createCounter('metric_name');\ncounter.add(10, { 'key': 'value' });\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 in [GitHub Discussions][discussions-url]\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\n[discussions-url]: https://github.com/open-telemetry/opentelemetry-js/discussions\n[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/main/LICENSE\n[license-image]: https://img.shields.io/badge/license-Apache_2.0-green.svg?style=flat\n[dependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc\n[devDependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/exporter-collector-grpc\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fexporter-collector-grpc.svg\n[opentelemetry-collector-url]: https://github.com/open-telemetry/opentelemetry-collector\n[semconv-resource-service-name]: https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/resource/semantic_conventions/README.md#service\n","engines":{"node":">=8.0.0"},"gitHead":"40d0423b4be19969085b583b6a08f3e82552c362","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"npm run protos:copy && tsc -w","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","submodule":"git submodule sync --recursive && git submodule update --init --recursive","postcompile":"npm run submodule && npm run protos:copy","protos:copy":"cpx protos/opentelemetry/**/*.* build/protos/opentelemetry"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.4+x64 (linux)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.17.4","dependencies":{"@grpc/grpc-js":"^1.2.12","@grpc/proto-loader":"^0.6.0","@opentelemetry/core":"^0.24.0","@opentelemetry/resources":"^0.24.0","@opentelemetry/sdk-trace-base":"^0.24.0","@opentelemetry/sdk-metrics-base":"^0.24.0","@opentelemetry/exporter-collector":"^0.24.1-alpha.19+40d0423b"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cpx":"1.5.0","nyc":"15.1.0","mocha":"7.2.0","sinon":"11.1.2","rimraf":"3.0.2","codecov":"3.8.3","ts-mocha":"8.0.0","ts-loader":"8.3.0","typescript":"4.3.5","@babel/core":"7.15.0","@types/node":"14.17.9","@types/mocha":"8.2.3","@types/sinon":"10.0.2","@opentelemetry/api":"^1.0.2","@opentelemetry/api-metrics":"^0.24.0"},"peerDependencies":{"@opentelemetry/api":"^1.0.2"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.24.1-alpha.19_1629136730190_0.975192574159879","host":"s3://npm-registry-packages"}},"0.24.1-alpha.20":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.24.1-alpha.20","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.24.1-alpha.20","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"4286b33feefd436b94f6fe50617d3ceef42f17ae","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.24.1-alpha.20.tgz","fileCount":35,"integrity":"sha512-+N+fWQwVKXHUColkz/gDTX/L7Zrz7sncn2muvc3e2Ca/GuIpr+Ay3/T6Cy/MrF13s8IyLVE+yYRIPNIQ+hDzxg==","signatures":[{"sig":"MEYCIQD9UhrVsZLh/y6L/we2ESoMvtOzXmbKFTqRgrtKoOrNAQIhAKlA5T24lQ+4yld4sE0ZvqF3ZyfdquoTglUpkGUB03Id","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":110265,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhHCUFCRA9TVsSAnZWagAAdPoP/3UVKsPLYcLaJ2SSaV0N\n3c4qUu6Tt7tYy/ax2egtLKQNIgod0I+NHe9cWeEDmjWH4fYwW46ccJA/3nLw\nqEkRPb8QvzglyxL6AeaiBObPbuemfB9iymymfYbAe+0AuI16jLn+lAC5UsJ1\nVZFlvTM2olqQcQPD03Mp8UqY7siT5giFiRYihvUSa0hfJpaH71V6XeTla0+h\nr+1hGq1c/05I5BMvty9i9Z1kJfWlF2ompQx8gHy854JZM4sgzYq7UAfPYiqe\n9CZ6qf8XrA62f52XqnepG3Wi/L7ySZMM+MOkEJdPhXg5N6HH3o4t4F1bp29D\nNL0JgrI5Y7jwq5o+nsgJos5D5YFF6RpP1zYZlV+3EtzHQewydGegauS9Lu5G\nOy7pAIEjFL8MUXZjHiH4TXfBKiEWkKDIR1D+sQ22hEgksfUF6OgR+8onV3by\neVnQGbqNBOfw5RThAmlgnC/uWg0hloWhgR/7K7Kbi/9+hyoDJvEv/EfYS3wc\nBm6b3FokAZw9ZbmefJDU11Zs0E9YOVKx2dBHNhjEXJjioH/+7txY4N+REcyX\nuh/A0vTU7JOYPRVJp03b7IOWyiwP1rWRa/WrKaAQbMCyKQv2xMYxfo/GIYds\nQEORuQ2Prh3vK0GVOPj/YDMgJzTf2OaFVx5BKeR0+WcljtkgzoAbFLEix/mU\nGhP7\r\n=y1hF\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry Collector Exporter for node with grpc\n\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.25.0**.\n\n## Installation\n\n```bash\nnpm install --save @opentelemetry/exporter-collector-grpc\n```\n\n## Service Name\n\nThe OpenTelemetry Collector Exporter does not have a service name configuration.\nIn order to set the service name, use the `service.name` resource attribute as prescribed in the [OpenTelemetry Resource Semantic Conventions][semconv-resource-service-name].\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/traces`.\n\n```js\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/sdk-trace-base');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is grpc://localhost:4317\n  url: 'grpc://<collector-hostname>:<port>',\n};\n\nconst provider = new BasicTracerProvider();\nconst exporter = new CollectorTraceExporter(collectorOptions);\nprovider.addSpanProcessor(new SimpleSpanProcessor(exporter));\n\nprovider.register();\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\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/grpc-js');\n\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/sdk-trace-base');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is grpc://localhost:4317\n  url: 'grpc://<collector-hostname>:<port>',\n  credentials: grpc.credentials.createSsl(),\n};\n\nconst provider = new BasicTracerProvider();\nconst exporter = new CollectorTraceExporter(collectorOptions);\nprovider.addSpanProcessor(new SimpleSpanProcessor(exporter));\n\nprovider.register();\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n```\n\nTo use mutual authentication, pass to the `createSsl()` constructor:\n\n```js\n  credentials: grpc.credentials.createSsl(\n    fs.readFileSync('./ca.crt'),\n    fs.readFileSync('./client.key'),\n    fs.readFileSync('./client.crt')\n  ),\n```\n\nTo generate credentials for mutual authentication, 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/grpc-js');\n\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/sdk-trace-base');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst metadata = new grpc.Metadata();\n// For instance, an API key or access token might go here.\nmetadata.set('k', 'v');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is grpc://localhost:4317\n  url: 'grpc://<collector-hostname>:<port>',\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['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n```\n\nNote, that this will only work if TLS is also configured on the server.\n\n## Metrics in Node - GRPC\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/sdk-metrics-base');\nconst { CollectorMetricExporter } =  require('@opentelemetry/exporter-collector-grpc');\nconst collectorOptions = {\n  // url is optional and can be omitted - default is grpc://localhost:4317\n  url: 'grpc://<collector-hostname>:<port>',\n};\nconst exporter = new CollectorMetricExporter(collectorOptions);\n\n// Register the exporter\nconst provider = new MeterProvider({\n  exporter,\n  interval: 60000,\n})\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n\n// Now, start recording data\nconst meter = provider.getMeter('example-meter');\nconst counter = meter.createCounter('metric_name');\ncounter.add(10, { 'key': 'value' });\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 in [GitHub Discussions][discussions-url]\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\n[discussions-url]: https://github.com/open-telemetry/opentelemetry-js/discussions\n[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/main/LICENSE\n[license-image]: https://img.shields.io/badge/license-Apache_2.0-green.svg?style=flat\n[dependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc\n[devDependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/exporter-collector-grpc\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fexporter-collector-grpc.svg\n[opentelemetry-collector-url]: https://github.com/open-telemetry/opentelemetry-collector\n[semconv-resource-service-name]: https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/resource/semantic_conventions/README.md#service\n","engines":{"node":">=8.0.0"},"gitHead":"f12913899ff5c588e10830e5ba7183d9115c3442","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"npm run protos:copy && tsc -w","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","submodule":"git submodule sync --recursive && git submodule update --init --recursive","postcompile":"npm run submodule && npm run protos:copy","protos:copy":"cpx protos/opentelemetry/**/*.* build/protos/opentelemetry"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.4+x64 (linux)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.17.4","dependencies":{"@grpc/grpc-js":"^1.3.7","@grpc/proto-loader":"^0.6.4","@opentelemetry/core":"^0.24.1-alpha.20+f1291389","@opentelemetry/resources":"^0.24.1-alpha.20+f1291389","@opentelemetry/sdk-trace-base":"^0.24.1-alpha.20+f1291389","@opentelemetry/sdk-metrics-base":"^0.24.1-alpha.20+f1291389","@opentelemetry/exporter-collector":"^0.24.1-alpha.20+f1291389"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cpx":"1.5.0","nyc":"15.1.0","mocha":"7.2.0","sinon":"11.1.2","rimraf":"3.0.2","codecov":"3.8.3","ts-mocha":"8.0.0","ts-loader":"8.3.0","typescript":"4.3.5","@babel/core":"7.15.0","@types/node":"14.17.9","@types/mocha":"8.2.3","@types/sinon":"10.0.2","@opentelemetry/api":"^1.0.2","@opentelemetry/api-metrics":"^0.24.0"},"peerDependencies":{"@opentelemetry/api":"^1.0.2"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.24.1-alpha.20_1629234437390_0.29743820201011717","host":"s3://npm-registry-packages"}},"0.25.1-alpha.21":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.25.1-alpha.21","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.25.1-alpha.21","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"21ef3b2aaa713de1be8d7fa05fd7377720330fb0","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.25.1-alpha.21.tgz","fileCount":35,"integrity":"sha512-jXl2ui7cLJJrXLaGCLpRgNopnlH5Vp7LxGVxzjkT9JA55mmzbOW02IF/gYQNm+eZ3ZJBEvvlSBl0teNvnzHRHw==","signatures":[{"sig":"MEQCIGlvrdFi2FnuoJlNYzLqT+jZrDvmd9oNpmKkgTUwsNhrAiAZMJn3tgg/ae9zsLm39F6soWY4Vwd9Meq5fRHPx7ZLqw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":110283,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhHWq0CRA9TVsSAnZWagAAez8P/0hLDJh8y5yG0lidovWq\nusMR6fxgo6jdDdLYEX3/d+L5D8hHLWpz1aCEGnt60VmRTRrdSnu32dSykCSV\nq23gWJlg5TxlKpX+MvojJ6mcfuRRhQ1Jud+j1xyy5rh8Ez3rC73WCQM+Vcpe\no1FU/d6w4oDNO2d/F537YQRnmD6I2SPOLKwoSjwOyPOIUJRqqIhgMCuZlg7L\n3UhC3/6CmjA28hHuCxwi5T3JNw4p+/RfjhE8chNWQCi+jlInkkbZ+FR/bfMb\nR6fWRzwNQ2MDMsEHZPwL5m6ZaHvkV2Pa/FRso2bmnUyItqYELZVwilBuRQDw\nDMnq3VDWJenhgo6yttC/JKUlRAgkYkL4Zq1DRCQQ3EbxzCDjHwaYn23fTcC4\nzkfBsZ8XwBcG3WeSZt0z19ynTO576Rsvv8Rz1MAbLOYJNAyPL4cf7e3s1K+Q\nbUq6hAT6hQrAjZiBhcmq2Z3x6UAnRX3Wjbhmrd8Kw8vUHxwjeAXPv95zjVsb\nuwZ2fQnnbR7pMj18BWkFWVJMrdBwGWGrWeUxETLpA2U/42Spbl0jE1r8c2lv\nuQV92YncbB3zb+mKHmVQW66/G+n6YaQ3dcGywgzHC+kTRjmZqk6TJ/yKMznG\n27GxiE2OZDD9pApBoe1+TESlGHHJMTn3r+XGIrYWQjab+jrczLYu60dP6h4d\nUle3\r\n=Z2+k\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry Collector Exporter for node with grpc\n\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.25.0**.\n\n## Installation\n\n```bash\nnpm install --save @opentelemetry/exporter-collector-grpc\n```\n\n## Service Name\n\nThe OpenTelemetry Collector Exporter does not have a service name configuration.\nIn order to set the service name, use the `service.name` resource attribute as prescribed in the [OpenTelemetry Resource Semantic Conventions][semconv-resource-service-name].\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/traces`.\n\n```js\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/sdk-trace-base');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is grpc://localhost:4317\n  url: 'grpc://<collector-hostname>:<port>',\n};\n\nconst provider = new BasicTracerProvider();\nconst exporter = new CollectorTraceExporter(collectorOptions);\nprovider.addSpanProcessor(new SimpleSpanProcessor(exporter));\n\nprovider.register();\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\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/grpc-js');\n\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/sdk-trace-base');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is grpc://localhost:4317\n  url: 'grpc://<collector-hostname>:<port>',\n  credentials: grpc.credentials.createSsl(),\n};\n\nconst provider = new BasicTracerProvider();\nconst exporter = new CollectorTraceExporter(collectorOptions);\nprovider.addSpanProcessor(new SimpleSpanProcessor(exporter));\n\nprovider.register();\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n```\n\nTo use mutual authentication, pass to the `createSsl()` constructor:\n\n```js\n  credentials: grpc.credentials.createSsl(\n    fs.readFileSync('./ca.crt'),\n    fs.readFileSync('./client.key'),\n    fs.readFileSync('./client.crt')\n  ),\n```\n\nTo generate credentials for mutual authentication, 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/grpc-js');\n\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/sdk-trace-base');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst metadata = new grpc.Metadata();\n// For instance, an API key or access token might go here.\nmetadata.set('k', 'v');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is grpc://localhost:4317\n  url: 'grpc://<collector-hostname>:<port>',\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['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n```\n\nNote, that this will only work if TLS is also configured on the server.\n\n## Metrics in Node - GRPC\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/sdk-metrics-base');\nconst { CollectorMetricExporter } =  require('@opentelemetry/exporter-collector-grpc');\nconst collectorOptions = {\n  // url is optional and can be omitted - default is grpc://localhost:4317\n  url: 'grpc://<collector-hostname>:<port>',\n};\nconst exporter = new CollectorMetricExporter(collectorOptions);\n\n// Register the exporter\nconst provider = new MeterProvider({\n  exporter,\n  interval: 60000,\n})\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n\n// Now, start recording data\nconst meter = provider.getMeter('example-meter');\nconst counter = meter.createCounter('metric_name');\ncounter.add(10, { 'key': 'value' });\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 in [GitHub Discussions][discussions-url]\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\n[discussions-url]: https://github.com/open-telemetry/opentelemetry-js/discussions\n[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/main/LICENSE\n[license-image]: https://img.shields.io/badge/license-Apache_2.0-green.svg?style=flat\n[dependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc\n[devDependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/exporter-collector-grpc\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fexporter-collector-grpc.svg\n[opentelemetry-collector-url]: https://github.com/open-telemetry/opentelemetry-collector\n[semconv-resource-service-name]: https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/resource/semantic_conventions/README.md#service\n","engines":{"node":">=8.0.0"},"gitHead":"0ef1fc28d366b74d98b73b5d6334ffdc75342fe2","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"npm run protos:copy && tsc -w","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","submodule":"git submodule sync --recursive && git submodule update --init --recursive","postcompile":"npm run submodule && npm run protos:copy","protos:copy":"cpx protos/opentelemetry/**/*.* build/protos/opentelemetry"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.4+x64 (linux)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.17.4","dependencies":{"@grpc/grpc-js":"^1.3.7","@grpc/proto-loader":"^0.6.4","@opentelemetry/core":"^0.25.1-alpha.21+0ef1fc28","@opentelemetry/resources":"^0.25.1-alpha.21+0ef1fc28","@opentelemetry/sdk-trace-base":"^0.25.1-alpha.21+0ef1fc28","@opentelemetry/sdk-metrics-base":"^0.25.1-alpha.21+0ef1fc28","@opentelemetry/exporter-collector":"^0.25.1-alpha.21+0ef1fc28"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cpx":"1.5.0","nyc":"15.1.0","mocha":"7.2.0","sinon":"11.1.2","rimraf":"3.0.2","codecov":"3.8.3","ts-mocha":"8.0.0","ts-loader":"8.3.0","typescript":"4.3.5","@babel/core":"7.15.0","@types/node":"14.17.9","@types/mocha":"8.2.3","@types/sinon":"10.0.2","@opentelemetry/api":"^1.0.2","@opentelemetry/api-metrics":"^0.25.1-alpha.21+0ef1fc28"},"peerDependencies":{"@opentelemetry/api":"^1.0.2"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.25.1-alpha.21_1629317812715_0.007138063879884138","host":"s3://npm-registry-packages"}},"0.25.0":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.25.0","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.25.0","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"48ba46d3c07de4b28497f3b88d23a85d4e1d5a9a","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.25.0.tgz","fileCount":35,"integrity":"sha512-Mqkdh89pC1NxX5BngxHmDqMQ6WVCFuMr1PvwRZmJBBR2MXaStO5qIxELHuHgkDZEXpIFJbqNC7JAfDklXm8o1w==","signatures":[{"sig":"MEUCIQC22eyoWgsfTK0XEEi4TNGxKtZWaXblVAzfNrZWkPX5AwIgB8nwnvcMj2YhZyReJjkLm0zYWjfPVqZ/iUpNV5nluak=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":110151,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhHXjFCRA9TVsSAnZWagAAoUIP/iiEhQfDK2Lsr3Y3Pdzt\nvcW/jyexF6DsGChHWO6wCLnhtzan8UB0JDjKdfiMm+PoKM4N7ter3pP/CUnS\nxksxcyJMVfxJB1jJBRs1QeCYRDS23GFiFuEJ8HjF8Zik21P6AsVfJjfNMst/\nl2bMMoP4Ks5ZuYgUNa7qgNIEefEVVG7e94xuFL9waSGsguMuCUS/QeqQbBWY\nbOfhNVsWHP+ZuOgnuNuweB1n/8b8/60pMmqyeUCLDUK90IcN8EXDVfNGrnKa\nztfp6178GlcYFieE6GPUvqNdEGSn4ZxU6trFdn4WjZbUFVmU+fj4jniCcmWp\n5dm3YPgI2Vz8DvmLwUyMbvjx7ojxGAfxvjFXOjiFgCJLj3ybl8g4vI5X4tFU\nnW3ggEMIRAtWbUSOHXXQy9EZFoysEPl132u8B1tE5cMCfrSV/eTY8e83OmgN\nrtBImTA7btRtP/soMPVH6XfN1FXXQMgMacx7L56S6DdjRcQpImdKfn2384e6\ng4GVVdaHofF7Go/7hNhjoIfoaRu7ql4gN5TRcSKFRLkT9sUWrs5s6TWhIOVf\n3/5UXER7P+yyvWr9kR/1Odi3+3Xj8T0GAC4KxqghMuGo7P3NfVn1bEEGiIYD\n+7DxAUlxl3SxkPDkPV0vS8Uhfie/e0q1KCFUd/3gLHfLIVr4wm2qv1lqRiGm\n2j40\r\n=bhac\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry Collector Exporter for node with grpc\n\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.25.0**.\n\n## Installation\n\n```bash\nnpm install --save @opentelemetry/exporter-collector-grpc\n```\n\n## Service Name\n\nThe OpenTelemetry Collector Exporter does not have a service name configuration.\nIn order to set the service name, use the `service.name` resource attribute as prescribed in the [OpenTelemetry Resource Semantic Conventions][semconv-resource-service-name].\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/traces`.\n\n```js\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/sdk-trace-base');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is grpc://localhost:4317\n  url: 'grpc://<collector-hostname>:<port>',\n};\n\nconst provider = new BasicTracerProvider();\nconst exporter = new CollectorTraceExporter(collectorOptions);\nprovider.addSpanProcessor(new SimpleSpanProcessor(exporter));\n\nprovider.register();\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\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/grpc-js');\n\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/sdk-trace-base');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is grpc://localhost:4317\n  url: 'grpc://<collector-hostname>:<port>',\n  credentials: grpc.credentials.createSsl(),\n};\n\nconst provider = new BasicTracerProvider();\nconst exporter = new CollectorTraceExporter(collectorOptions);\nprovider.addSpanProcessor(new SimpleSpanProcessor(exporter));\n\nprovider.register();\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n```\n\nTo use mutual authentication, pass to the `createSsl()` constructor:\n\n```js\n  credentials: grpc.credentials.createSsl(\n    fs.readFileSync('./ca.crt'),\n    fs.readFileSync('./client.key'),\n    fs.readFileSync('./client.crt')\n  ),\n```\n\nTo generate credentials for mutual authentication, 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/grpc-js');\n\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/sdk-trace-base');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst metadata = new grpc.Metadata();\n// For instance, an API key or access token might go here.\nmetadata.set('k', 'v');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is grpc://localhost:4317\n  url: 'grpc://<collector-hostname>:<port>',\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['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n```\n\nNote, that this will only work if TLS is also configured on the server.\n\n## Metrics in Node - GRPC\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/sdk-metrics-base');\nconst { CollectorMetricExporter } =  require('@opentelemetry/exporter-collector-grpc');\nconst collectorOptions = {\n  // url is optional and can be omitted - default is grpc://localhost:4317\n  url: 'grpc://<collector-hostname>:<port>',\n};\nconst exporter = new CollectorMetricExporter(collectorOptions);\n\n// Register the exporter\nconst provider = new MeterProvider({\n  exporter,\n  interval: 60000,\n})\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n\n// Now, start recording data\nconst meter = provider.getMeter('example-meter');\nconst counter = meter.createCounter('metric_name');\ncounter.add(10, { 'key': 'value' });\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 in [GitHub Discussions][discussions-url]\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\n[discussions-url]: https://github.com/open-telemetry/opentelemetry-js/discussions\n[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/main/LICENSE\n[license-image]: https://img.shields.io/badge/license-Apache_2.0-green.svg?style=flat\n[dependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc\n[devDependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/exporter-collector-grpc\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fexporter-collector-grpc.svg\n[opentelemetry-collector-url]: https://github.com/open-telemetry/opentelemetry-collector\n[semconv-resource-service-name]: https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/resource/semantic_conventions/README.md#service\n","engines":{"node":">=8.0.0"},"gitHead":"0ef1fc28d366b74d98b73b5d6334ffdc75342fe2","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"npm run protos:copy && tsc -w","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","submodule":"git submodule sync --recursive && git submodule update --init --recursive","postcompile":"npm run submodule && npm run protos:copy","protos:copy":"cpx protos/opentelemetry/**/*.* build/protos/opentelemetry"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.8.0+x64 (darwin)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.8.0","dependencies":{"@grpc/grpc-js":"^1.3.7","@grpc/proto-loader":"^0.6.4","@opentelemetry/core":"0.25.0","@opentelemetry/resources":"0.25.0","@opentelemetry/sdk-trace-base":"0.25.0","@opentelemetry/sdk-metrics-base":"0.25.0","@opentelemetry/exporter-collector":"0.25.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cpx":"1.5.0","nyc":"15.1.0","mocha":"7.2.0","sinon":"11.1.2","rimraf":"3.0.2","codecov":"3.8.3","ts-mocha":"8.0.0","ts-loader":"8.3.0","typescript":"4.3.5","@babel/core":"7.15.0","@types/node":"14.17.9","@types/mocha":"8.2.3","@types/sinon":"10.0.2","@opentelemetry/api":"^1.0.2","@opentelemetry/api-metrics":"0.25.0"},"peerDependencies":{"@opentelemetry/api":"^1.0.2"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.25.0_1629321413467_0.43164980152901755","host":"s3://npm-registry-packages"}},"0.25.1-alpha.2":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.25.1-alpha.2","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.25.1-alpha.2","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"ec01992c5e4d3cd4ecfba73d45b97e5b3a0a5c94","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.25.1-alpha.2.tgz","fileCount":35,"integrity":"sha512-VBF89Gvyf3A4QZNo34k/bDWWAQtR7W+4Ig3kCr1TGtIFT0HfCsaWZTTMk4Ih2H7S1iewe7kD7ZjC/2oMD7Wmvg==","signatures":[{"sig":"MEQCIDVKaldlNVt5XTTvMQuw9JxZemzTgEwD9U8uF8hqB/GgAiA4AFOx7Z1SywSVVfM+MStI7+fdEwP9AdTSV8BdC9A2Nw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":110259,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhJBYACRA9TVsSAnZWagAA3coP/2U9YbF6QpIVeZFnvZvO\nAnCy5LOl+k9g+f/S5qQNSgX9olQ6qAiOFs2tMuO78mcsU+d9rRviSOn6R9TF\nUvQQDnb2vNDzKcNIE38j1ZpKh9w4gJzPxk7NvYJAkZgXa6atLhqaqQxl4FPJ\n4JRt68WQeaO8/pEGne4OFxXVJ+6z6ugRbRTfwtjm0/s1zKTZZiv76mwhbJuM\nc2mjYix4aLHF5zM4Gx2X8S/gkiia0hXNwyrl47eOD6mC6Blq9sDBCJropEWv\nbralusjo9QX0Us+6umOUQEc8k/LsH597/Lo/UQJX0qLS50BhRC9zPyOV8CII\nc/Y8jDSNYjy3wZ7/yoXwpCbj4dRofbpIEQxwcQNYsGzEPUSxYAbxiMrGueJK\n/glQ521YGbSzVoh+xqiDe0K+AX7CXLXh2dJ3mOeNMjl4f6onboNYI2w86JOZ\nvFZ2gCVMh/yF73r2l/wL56bJIx4CqfQdzB0Be3uozV6sr0nXGhjzjU7T2YAI\nbIbar5meNS4yik5N79wd6bweWleGIeq5CK7HrQNACCPZYK425Hac2qmDOxTu\nlAQt7ggtereSkfpzUANmGToI3c6W3yLlShhuzzxYCF2TE7EHUJjIni/8Gz+5\nptSDVGVCS7uAVGHpIZ0uzE+3OsjOvUR47wGswZiBzHK+3V9mHRrg1DiW4BU8\nErFV\r\n=1miA\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry Collector Exporter for node with grpc\n\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.25.0**.\n\n## Installation\n\n```bash\nnpm install --save @opentelemetry/exporter-collector-grpc\n```\n\n## Service Name\n\nThe OpenTelemetry Collector Exporter does not have a service name configuration.\nIn order to set the service name, use the `service.name` resource attribute as prescribed in the [OpenTelemetry Resource Semantic Conventions][semconv-resource-service-name].\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/traces`.\n\n```js\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/sdk-trace-base');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is grpc://localhost:4317\n  url: 'grpc://<collector-hostname>:<port>',\n};\n\nconst provider = new BasicTracerProvider();\nconst exporter = new CollectorTraceExporter(collectorOptions);\nprovider.addSpanProcessor(new SimpleSpanProcessor(exporter));\n\nprovider.register();\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\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/grpc-js');\n\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/sdk-trace-base');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is grpc://localhost:4317\n  url: 'grpc://<collector-hostname>:<port>',\n  credentials: grpc.credentials.createSsl(),\n};\n\nconst provider = new BasicTracerProvider();\nconst exporter = new CollectorTraceExporter(collectorOptions);\nprovider.addSpanProcessor(new SimpleSpanProcessor(exporter));\n\nprovider.register();\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n```\n\nTo use mutual authentication, pass to the `createSsl()` constructor:\n\n```js\n  credentials: grpc.credentials.createSsl(\n    fs.readFileSync('./ca.crt'),\n    fs.readFileSync('./client.key'),\n    fs.readFileSync('./client.crt')\n  ),\n```\n\nTo generate credentials for mutual authentication, 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/grpc-js');\n\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/sdk-trace-base');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst metadata = new grpc.Metadata();\n// For instance, an API key or access token might go here.\nmetadata.set('k', 'v');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is grpc://localhost:4317\n  url: 'grpc://<collector-hostname>:<port>',\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['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n```\n\nNote, that this will only work if TLS is also configured on the server.\n\n## Metrics in Node - GRPC\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/sdk-metrics-base');\nconst { CollectorMetricExporter } =  require('@opentelemetry/exporter-collector-grpc');\nconst collectorOptions = {\n  // url is optional and can be omitted - default is grpc://localhost:4317\n  url: 'grpc://<collector-hostname>:<port>',\n};\nconst exporter = new CollectorMetricExporter(collectorOptions);\n\n// Register the exporter\nconst provider = new MeterProvider({\n  exporter,\n  interval: 60000,\n})\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n\n// Now, start recording data\nconst meter = provider.getMeter('example-meter');\nconst counter = meter.createCounter('metric_name');\ncounter.add(10, { 'key': 'value' });\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 in [GitHub Discussions][discussions-url]\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\n[discussions-url]: https://github.com/open-telemetry/opentelemetry-js/discussions\n[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/main/LICENSE\n[license-image]: https://img.shields.io/badge/license-Apache_2.0-green.svg?style=flat\n[dependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc\n[devDependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/exporter-collector-grpc\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fexporter-collector-grpc.svg\n[opentelemetry-collector-url]: https://github.com/open-telemetry/opentelemetry-collector\n[semconv-resource-service-name]: https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/resource/semantic_conventions/README.md#service\n","engines":{"node":">=8.0.0"},"gitHead":"78a78c093c2df24b66c47af4e037da9a6098fedb","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"npm run protos:copy && tsc -w","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","submodule":"git submodule sync --recursive && git submodule update --init --recursive","postcompile":"npm run submodule && npm run protos:copy","protos:copy":"cpx protos/opentelemetry/**/*.* build/protos/opentelemetry"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.5+x64 (linux)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.17.5","dependencies":{"@grpc/grpc-js":"^1.3.7","@grpc/proto-loader":"^0.6.4","@opentelemetry/core":"^0.25.1-alpha.2+78a78c09","@opentelemetry/resources":"^0.25.1-alpha.2+78a78c09","@opentelemetry/sdk-trace-base":"^0.25.1-alpha.2+78a78c09","@opentelemetry/sdk-metrics-base":"^0.25.1-alpha.2+78a78c09","@opentelemetry/exporter-collector":"^0.25.1-alpha.2+78a78c09"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cpx":"1.5.0","nyc":"15.1.0","mocha":"7.2.0","sinon":"11.1.2","rimraf":"3.0.2","codecov":"3.8.3","ts-mocha":"8.0.0","ts-loader":"8.3.0","typescript":"4.3.5","@babel/core":"7.15.0","@types/node":"14.17.9","@types/mocha":"8.2.3","@types/sinon":"10.0.2","@opentelemetry/api":"^1.0.2","@opentelemetry/api-metrics":"^0.25.0"},"peerDependencies":{"@opentelemetry/api":"^1.0.2"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.25.1-alpha.2_1629754880476_0.2953648206012709","host":"s3://npm-registry-packages"}},"0.25.1-alpha.4":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.25.1-alpha.4","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.25.1-alpha.4","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"d008b9e3e4db9c15a63f24a0accbd16dd6b8dd74","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.25.1-alpha.4.tgz","fileCount":35,"integrity":"sha512-TbfWPPtpo5ZHi4TwyiNtRvNO4jU+svdWF1PF5obkysk78YhCgx+CZan2gQIOjKq4G+WVTXsrdL9m8WJXsD0/4A==","signatures":[{"sig":"MEUCIHBi01V4O2t84E7jG6V+6KZPj9FJb7o+eC9FyxG4p3WlAiEAr5/j4L0aymFoKx/6Z8a0Mit2Nc3iAzK8fPbcYegzD7w=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":110277,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhJUmICRA9TVsSAnZWagAAN9cP/2S2gfpXvxI7Pd9J+l7U\npcePoWek7hqbPquxgg00IEo/Oxbe+DjBL+S+LP4FGXXxXOCFxkatCIz21Ojr\nEs2wZwYVthhAUNDdakyKvaw3FHWlv7TTRujzvnZ7nNxuot/OXekSyjPLwkB+\nJDhAoQssTuIw2Z/+xOg1oxEV8M29imJa6upVso27azlImrocYJVSIqJeo/GG\nrhlcrbtwW6cFTLTrMmA42O+L7ugxsF5sRUewfu1e5W7H7AO7srxyvYClgRCD\ndh5zXpwBQZU1QPfYFmpXquiSD/lxkYUWdymmcaMYvk+t9sfmNwLFo1MS+qZr\nXwNIjy/eKi7afQUNyOpUFCXnqN7F3Noo+48NXc9go7qP4xvFBvQL463aelOe\n2LiwntH0/w0ysjxYFLysbX7cdcQDbzPVb/X6WWRb6v/pzQHAzK99ncWE5Wmc\npCHkoboaLu7jYgOKhvtYVzMiqjYfgJ/DUf7k9rEsVhpmtST4wMB/fkmqVuP/\nWt9lT3V8s/LRILej4boshmcxStOVWj/l8wY4i1qcYJ8DFu3aiHCIsTqfUdAL\nqADkRgFJIIaUb0ulwfkI8rLZV5U5+RgfTkXOjYQWlsV4Gyk6TT6HPTc3UJGz\nSAE4v5brz/LcKOCSHOrwvR0Gh12l0Vxd+ycBgmViJqMFOvmuyFd44F33x+Gc\nKjwQ\r\n=Z8D9\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry Collector Exporter for node with grpc\n\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.25.0**.\n\n## Installation\n\n```bash\nnpm install --save @opentelemetry/exporter-collector-grpc\n```\n\n## Service Name\n\nThe OpenTelemetry Collector Exporter does not have a service name configuration.\nIn order to set the service name, use the `service.name` resource attribute as prescribed in the [OpenTelemetry Resource Semantic Conventions][semconv-resource-service-name].\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/traces`.\n\n```js\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/sdk-trace-base');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is grpc://localhost:4317\n  url: 'grpc://<collector-hostname>:<port>',\n};\n\nconst provider = new BasicTracerProvider();\nconst exporter = new CollectorTraceExporter(collectorOptions);\nprovider.addSpanProcessor(new SimpleSpanProcessor(exporter));\n\nprovider.register();\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\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/grpc-js');\n\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/sdk-trace-base');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is grpc://localhost:4317\n  url: 'grpc://<collector-hostname>:<port>',\n  credentials: grpc.credentials.createSsl(),\n};\n\nconst provider = new BasicTracerProvider();\nconst exporter = new CollectorTraceExporter(collectorOptions);\nprovider.addSpanProcessor(new SimpleSpanProcessor(exporter));\n\nprovider.register();\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n```\n\nTo use mutual authentication, pass to the `createSsl()` constructor:\n\n```js\n  credentials: grpc.credentials.createSsl(\n    fs.readFileSync('./ca.crt'),\n    fs.readFileSync('./client.key'),\n    fs.readFileSync('./client.crt')\n  ),\n```\n\nTo generate credentials for mutual authentication, 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/grpc-js');\n\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/sdk-trace-base');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst metadata = new grpc.Metadata();\n// For instance, an API key or access token might go here.\nmetadata.set('k', 'v');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is grpc://localhost:4317\n  url: 'grpc://<collector-hostname>:<port>',\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['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n```\n\nNote, that this will only work if TLS is also configured on the server.\n\n## Metrics in Node - GRPC\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/sdk-metrics-base');\nconst { CollectorMetricExporter } =  require('@opentelemetry/exporter-collector-grpc');\nconst collectorOptions = {\n  // url is optional and can be omitted - default is grpc://localhost:4317\n  url: 'grpc://<collector-hostname>:<port>',\n};\nconst exporter = new CollectorMetricExporter(collectorOptions);\n\n// Register the exporter\nconst provider = new MeterProvider({\n  exporter,\n  interval: 60000,\n})\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n\n// Now, start recording data\nconst meter = provider.getMeter('example-meter');\nconst counter = meter.createCounter('metric_name');\ncounter.add(10, { 'key': 'value' });\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 in [GitHub Discussions][discussions-url]\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\n[discussions-url]: https://github.com/open-telemetry/opentelemetry-js/discussions\n[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/main/LICENSE\n[license-image]: https://img.shields.io/badge/license-Apache_2.0-green.svg?style=flat\n[dependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc\n[devDependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/exporter-collector-grpc\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fexporter-collector-grpc.svg\n[opentelemetry-collector-url]: https://github.com/open-telemetry/opentelemetry-collector\n[semconv-resource-service-name]: https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/resource/semantic_conventions/README.md#service\n","engines":{"node":">=8.0.0"},"gitHead":"3cbd530f2ee5c06376210402eb87ec9e362853c5","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"npm run protos:copy && tsc -w","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","submodule":"git submodule sync --recursive && git submodule update --init --recursive","postcompile":"npm run submodule && npm run protos:copy","protos:copy":"cpx protos/opentelemetry/**/*.* build/protos/opentelemetry"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.5+x64 (linux)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.17.5","dependencies":{"@grpc/grpc-js":"^1.3.7","@grpc/proto-loader":"^0.6.4","@opentelemetry/core":"^0.25.1-alpha.4+3cbd530f","@opentelemetry/resources":"^0.25.1-alpha.4+3cbd530f","@opentelemetry/sdk-trace-base":"^0.25.1-alpha.4+3cbd530f","@opentelemetry/sdk-metrics-base":"^0.25.1-alpha.4+3cbd530f","@opentelemetry/exporter-collector":"^0.25.1-alpha.4+3cbd530f"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cpx":"1.5.0","nyc":"15.1.0","mocha":"7.2.0","sinon":"11.1.2","rimraf":"3.0.2","codecov":"3.8.3","ts-mocha":"8.0.0","ts-loader":"8.3.0","typescript":"4.3.5","@babel/core":"7.15.0","@types/node":"14.17.11","@types/mocha":"8.2.3","@types/sinon":"10.0.2","@opentelemetry/api":"^1.0.2","@opentelemetry/api-metrics":"^0.25.1-alpha.4+3cbd530f"},"peerDependencies":{"@opentelemetry/api":"^1.0.2"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.25.1-alpha.4_1629833607986_0.7347937117133738","host":"s3://npm-registry-packages"}},"0.25.1-alpha.7":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.25.1-alpha.7","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.25.1-alpha.7","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"fc1f6160714cc2d52e0933b36313f1219a0202a7","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.25.1-alpha.7.tgz","fileCount":35,"integrity":"sha512-zlF8Z7ZefHNS18vY0munuZn1u9V4YbQEnfQRa9U0ACmXRp+6JUQedfrcjcYmlOd70NPxTn2FLHbBwWy0DbVqWw==","signatures":[{"sig":"MEQCIA6HHDoQz2vklAycYWXiDtkM5ILgIR1qFccp5/F9kco/AiBYLb70i2DZRIJ2YYRCaMBhgk1gZZa5zcGUkCqIlFpZhg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":110209,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhKSzcCRA9TVsSAnZWagAAkO4P/0NfPoV45nei7/hbMQby\nvE3Mi4iokvq7xcMaEYcIRt4N14m5/XOzLG9hECE7MDB0LC1vc7DDBNUWGHXl\nXQTOWEv+KmgLYJNT/dHJ+wHRziAHOXXQ+aFGNvnpo3KLt9PWp+aobXJtpZpB\nq0wHeMlbXFpMoU001c43bGNlpLQTWO9X8LAjGVXqiHkihEsMNR1lYdC+yu+n\nzWUkobNFtTdLjti3PD4mmOjYXZyuEvtg6MlFVML2cR9gTCycgYhRFcvRatao\nvFe8D2e7PXfeIcAU7+nYpjPVmPBC1q04GS5Bba3W3F3gfVxgECFccpTtejyl\nWcCbyLTqeJ2Zl3kTy3G+0Qm6UJ32owZHjmvbEOFoYPBiVogIWCqFSEnh5Tb3\nP/TEOuA1ts4pihIH0K6YgW6udfSbtDqaMoiIYNquSIofYOL5V0eVSJSBDhRs\nOZbVzL3NaEMKJttIN2ALj6Fpys+NzhjML71cNQDjcPHfputbsJlgZa0Ci2a0\ncjIfjaiNzEShOAtvnUHiKsC7+BqBGzV5NXAlvPLxokG2WIqJf69/FgKc1gR6\nva7pM8aBmrySeRRVzBZCX7JMhTWk1z2zf7vOIaur48N3xfQ03wD1YSrfEaBA\nxtJn8Fd4Jz2Jh+WWuKwPM/4vNPMC76tn4dtbeio6h1HnSZwgbVQQGKDVi3+i\nmluF\r\n=w2pn\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry Collector Exporter for node with grpc\n\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.25.0**.\n\n## Installation\n\n```bash\nnpm install --save @opentelemetry/exporter-collector-grpc\n```\n\n## Service Name\n\nThe OpenTelemetry Collector Exporter does not have a service name configuration.\nIn order to set the service name, use the `service.name` resource attribute as prescribed in the [OpenTelemetry Resource Semantic Conventions][semconv-resource-service-name].\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/traces`.\n\n```js\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/sdk-trace-base');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is grpc://localhost:4317\n  url: 'grpc://<collector-hostname>:<port>',\n};\n\nconst provider = new BasicTracerProvider();\nconst exporter = new CollectorTraceExporter(collectorOptions);\nprovider.addSpanProcessor(new SimpleSpanProcessor(exporter));\n\nprovider.register();\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\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/grpc-js');\n\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/sdk-trace-base');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is grpc://localhost:4317\n  url: 'grpc://<collector-hostname>:<port>',\n  credentials: grpc.credentials.createSsl(),\n};\n\nconst provider = new BasicTracerProvider();\nconst exporter = new CollectorTraceExporter(collectorOptions);\nprovider.addSpanProcessor(new SimpleSpanProcessor(exporter));\n\nprovider.register();\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n```\n\nTo use mutual authentication, pass to the `createSsl()` constructor:\n\n```js\n  credentials: grpc.credentials.createSsl(\n    fs.readFileSync('./ca.crt'),\n    fs.readFileSync('./client.key'),\n    fs.readFileSync('./client.crt')\n  ),\n```\n\nTo generate credentials for mutual authentication, 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/grpc-js');\n\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/sdk-trace-base');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst metadata = new grpc.Metadata();\n// For instance, an API key or access token might go here.\nmetadata.set('k', 'v');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is grpc://localhost:4317\n  url: 'grpc://<collector-hostname>:<port>',\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['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n```\n\nNote, that this will only work if TLS is also configured on the server.\n\n## Metrics in Node - GRPC\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/sdk-metrics-base');\nconst { CollectorMetricExporter } =  require('@opentelemetry/exporter-collector-grpc');\nconst collectorOptions = {\n  // url is optional and can be omitted - default is grpc://localhost:4317\n  url: 'grpc://<collector-hostname>:<port>',\n};\nconst exporter = new CollectorMetricExporter(collectorOptions);\n\n// Register the exporter\nconst provider = new MeterProvider({\n  exporter,\n  interval: 60000,\n})\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n\n// Now, start recording data\nconst meter = provider.getMeter('example-meter');\nconst counter = meter.createCounter('metric_name');\ncounter.add(10, { 'key': 'value' });\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 in [GitHub Discussions][discussions-url]\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\n[discussions-url]: https://github.com/open-telemetry/opentelemetry-js/discussions\n[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/main/LICENSE\n[license-image]: https://img.shields.io/badge/license-Apache_2.0-green.svg?style=flat\n[dependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc\n[devDependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/exporter-collector-grpc\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fexporter-collector-grpc.svg\n[opentelemetry-collector-url]: https://github.com/open-telemetry/opentelemetry-collector\n[semconv-resource-service-name]: https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/resource/semantic_conventions/README.md#service\n","engines":{"node":">=8.0.0"},"gitHead":"dfb597def863b15b37b24d965018e8c92d2ee70c","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"npm run protos:copy && tsc -w","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","submodule":"git submodule sync --recursive && git submodule update --init --recursive","postcompile":"npm run submodule && npm run protos:copy","protos:copy":"cpx protos/opentelemetry/**/*.* build/protos/opentelemetry"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.5+x64 (linux)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.17.5","dependencies":{"@grpc/grpc-js":"^1.3.7","@grpc/proto-loader":"^0.6.4","@opentelemetry/core":"^0.25.0","@opentelemetry/resources":"^0.25.0","@opentelemetry/sdk-trace-base":"^0.25.1-alpha.7+dfb597de","@opentelemetry/sdk-metrics-base":"^0.25.0","@opentelemetry/exporter-collector":"^0.25.1-alpha.7+dfb597de"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cpx":"1.5.0","nyc":"15.1.0","mocha":"7.2.0","sinon":"11.1.2","rimraf":"3.0.2","codecov":"3.8.3","ts-mocha":"8.0.0","ts-loader":"8.3.0","typescript":"4.3.5","@babel/core":"7.15.0","@types/node":"14.17.11","@types/mocha":"8.2.3","@types/sinon":"10.0.2","@opentelemetry/api":"^1.0.2","@opentelemetry/api-metrics":"^0.25.0"},"peerDependencies":{"@opentelemetry/api":"^1.0.2"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.25.1-alpha.7_1630088412527_0.6516698149727622","host":"s3://npm-registry-packages"}},"0.25.1-alpha.12":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.25.1-alpha.12","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.25.1-alpha.12","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"9864c21b41ad8e286ca8ac9cfa01c5cb78bd552b","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.25.1-alpha.12.tgz","fileCount":35,"integrity":"sha512-hmZHZNINNvhYjBG9ewszwbgFzGAy7BuEvxFep9ufvtiMRHtWOGQkn50W0SqsxVLj1mA080RYX/aKMoU8rGrfJQ==","signatures":[{"sig":"MEUCIQC8FQSfUgZAnlIs/FM2mgy5aqC2ycc7zP7Vkn+t9SUUggIgTSCmndFVlf1ecpHd88NtK5ypZbpaInT80cTWIbXtEQw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":110266,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhLT37CRA9TVsSAnZWagAAynYP/0BzscW6ecvO3+VIyspt\n1z0ZCM/7v+ph2wZdDWXC9WCqtiDASnBF1+pxPX41YHYNZr0RAD2aZ9liGd6h\nDuzjWa53KZVmp9U8T235Z5FCPIhkAYpX7pzWbeb2X2sJjdxxRkR5//ubFJhV\nTWbnAOynYtvGq8zPSUXvX8tfapSplxrPnghNzIoEYkyEGr+knDacLIIvD+rz\n5VPa0OpFMZ3yq3jTKSC1s1WK6dFNUwc3MyD1lg45VJu+gGThw2ifkpRiW2De\nyas+SNQEQKA5T4F1An2n4xwvJun1JlvBOWIopYBlyVL1dgrBqLz3QTLNkMKY\n+klmWLj1PVecGi5Qoc/hx8zIU5RfAlfnIhtQ6PCUElRopy5DI7Oywjvtof3/\nzbEDoyIke5yH3PT3W4HpRmXn73m/I0VlWf+iwvNKo1VNIvAgtm9LHeqpCNgK\nRBjA2pGbVHZdRU41IQNx/ckXhfIpHMKtL8cMfxODbX/ZFVcevfMCQmnPMDfj\naZY6jAPZJFTqtTKzmwk/DQwjPylTdzd0M6+H4znafn12m09SvmVL7rzXXc7z\ndIh4x7fj6GlfyMz+f0zN/Waq+d8QRvB/Gkf1jFSenBOVKOpMO+jlUK5AZGMH\nA33NSWouChMOpKppTddMA+eKFcHtoM0tPPqJMYiWZJkntO0O55uXXAYePLAB\nqCI1\r\n=rWOq\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry Collector Exporter for node with grpc\n\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.25.0**.\n\n## Installation\n\n```bash\nnpm install --save @opentelemetry/exporter-collector-grpc\n```\n\n## Service Name\n\nThe OpenTelemetry Collector Exporter does not have a service name configuration.\nIn order to set the service name, use the `service.name` resource attribute as prescribed in the [OpenTelemetry Resource Semantic Conventions][semconv-resource-service-name].\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/traces`.\n\n```js\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/sdk-trace-base');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is grpc://localhost:4317\n  url: 'grpc://<collector-hostname>:<port>',\n};\n\nconst provider = new BasicTracerProvider();\nconst exporter = new CollectorTraceExporter(collectorOptions);\nprovider.addSpanProcessor(new SimpleSpanProcessor(exporter));\n\nprovider.register();\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\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/grpc-js');\n\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/sdk-trace-base');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is grpc://localhost:4317\n  url: 'grpc://<collector-hostname>:<port>',\n  credentials: grpc.credentials.createSsl(),\n};\n\nconst provider = new BasicTracerProvider();\nconst exporter = new CollectorTraceExporter(collectorOptions);\nprovider.addSpanProcessor(new SimpleSpanProcessor(exporter));\n\nprovider.register();\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n```\n\nTo use mutual authentication, pass to the `createSsl()` constructor:\n\n```js\n  credentials: grpc.credentials.createSsl(\n    fs.readFileSync('./ca.crt'),\n    fs.readFileSync('./client.key'),\n    fs.readFileSync('./client.crt')\n  ),\n```\n\nTo generate credentials for mutual authentication, 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/grpc-js');\n\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/sdk-trace-base');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst metadata = new grpc.Metadata();\n// For instance, an API key or access token might go here.\nmetadata.set('k', 'v');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is grpc://localhost:4317\n  url: 'grpc://<collector-hostname>:<port>',\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['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n```\n\nNote, that this will only work if TLS is also configured on the server.\n\n## Metrics in Node - GRPC\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/sdk-metrics-base');\nconst { CollectorMetricExporter } =  require('@opentelemetry/exporter-collector-grpc');\nconst collectorOptions = {\n  // url is optional and can be omitted - default is grpc://localhost:4317\n  url: 'grpc://<collector-hostname>:<port>',\n};\nconst exporter = new CollectorMetricExporter(collectorOptions);\n\n// Register the exporter\nconst provider = new MeterProvider({\n  exporter,\n  interval: 60000,\n})\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n\n// Now, start recording data\nconst meter = provider.getMeter('example-meter');\nconst counter = meter.createCounter('metric_name');\ncounter.add(10, { 'key': 'value' });\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 in [GitHub Discussions][discussions-url]\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\n[discussions-url]: https://github.com/open-telemetry/opentelemetry-js/discussions\n[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/main/LICENSE\n[license-image]: https://img.shields.io/badge/license-Apache_2.0-green.svg?style=flat\n[dependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc\n[devDependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/exporter-collector-grpc\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fexporter-collector-grpc.svg\n[opentelemetry-collector-url]: https://github.com/open-telemetry/opentelemetry-collector\n[semconv-resource-service-name]: https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/resource/semantic_conventions/README.md#service\n","engines":{"node":">=8.0.0"},"gitHead":"7d2c4aaeb08e6c680f8b46cefcdfe955d7abe4b2","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"npm run protos:copy && tsc -w","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","submodule":"git submodule sync --recursive && git submodule update --init --recursive","postcompile":"npm run submodule && npm run protos:copy","protos:copy":"cpx protos/opentelemetry/**/*.* build/protos/opentelemetry"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.5+x64 (linux)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.17.5","dependencies":{"@grpc/grpc-js":"^1.3.7","@grpc/proto-loader":"^0.6.4","@opentelemetry/core":"^0.25.1-alpha.12+7d2c4aae","@opentelemetry/resources":"^0.25.1-alpha.12+7d2c4aae","@opentelemetry/sdk-trace-base":"^0.25.1-alpha.12+7d2c4aae","@opentelemetry/sdk-metrics-base":"^0.25.1-alpha.12+7d2c4aae","@opentelemetry/exporter-collector":"^0.25.1-alpha.12+7d2c4aae"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cpx":"1.5.0","nyc":"15.1.0","mocha":"7.2.0","sinon":"11.1.2","rimraf":"3.0.2","codecov":"3.8.3","ts-mocha":"8.0.0","ts-loader":"8.3.0","typescript":"4.3.5","@babel/core":"7.15.0","@types/node":"14.17.11","@types/mocha":"8.2.3","@types/sinon":"10.0.2","@opentelemetry/api":"^1.0.2","@opentelemetry/api-metrics":"^0.25.0"},"peerDependencies":{"@opentelemetry/api":"^1.0.2"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.25.1-alpha.12_1630354939419_0.971822745925971","host":"s3://npm-registry-packages"}},"0.25.1-alpha.13":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.25.1-alpha.13","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.25.1-alpha.13","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"3fadbde0deda45984cdd691a4f6a17521594f448","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.25.1-alpha.13.tgz","fileCount":35,"integrity":"sha512-BvoRIupcHESrWcfgu1/VUjouUR7Ij/6fN0HVNI0mf3LDi2O0gnt1Xfk7ceihlpCdz5eR/YwmpfPL9zvUxnYR0Q==","signatures":[{"sig":"MEUCIGCuqWapyj/SlFIWkCjDhM4D0ZngBs4KOKTc2FbBlDavAiEA2rQUQcmLCZG1Tlq9hzj2tQ5p0l8vsd0sJ+FfT48E4r8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":110421,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhLUKGCRA9TVsSAnZWagAA9gIP/0N5iiNowKGuOrBtOFP5\nmavCrHEyEZBqWXpYNbakC5OwIda4Aj12OovNqgyXEhatDsZZClp9umUVAXBR\nj/gk5Ts9j7k9dI9Dg+raylAmCaU9i34YjS2gvxLNtX0QDinc0mMucnTg2ZLz\nJsNpt5kgOPvlw3zzqLGlUEGeW9IQfcYiKIlFQrngyNhbrVWlYctbHKU8+p5s\n/VABrzT0c/gl+G9J7/C2dsTIkqYslFapIX2HCiQFBtvVGSv6tBz51gufWnJ6\nkEMub/v1+KNxH8ZOzm1Edzy5bX518CRBu2KXqT0WmkdNXh8epXPaizb/Umd/\nh4SWUde5NOPT9Vllk8MGVcpAPHJb4uR08sQX5voPTGs+KyA1JApsVFWobH0l\nOb5j5HXvBZBbwFmqpIXjEGJgN3yuT181Ez3eOZ2cbyC/qrrmiNeVbD1otCTd\n6pLxhi07UnHcKaXSPzAB7IIaQLCMq14cNJO7nXKygOrMt19X/ga2T7xtieS/\na8h51EU9a60o6acGGSaity55RdWG7plL5igYCXJUOG2+anJggiZoQ0ZUuumL\n+FzgoJVk1ONQXGdq/Q2DHQpVxjCGJIICeNYgk5BNA/VcecESkToNIM0K10aM\no1ZraBqANN7Ut8547YB3h4yfuQkOLAlzobZ/J7LBgLkHUQMqCvAGpVpQag+w\nnTQF\r\n=zuT2\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry Collector Exporter for node with grpc\n\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.25.0**.\n\n## Installation\n\n```bash\nnpm install --save @opentelemetry/exporter-collector-grpc\n```\n\n## Service Name\n\nThe OpenTelemetry Collector Exporter does not have a service name configuration.\nIn order to set the service name, use the `service.name` resource attribute as prescribed in the [OpenTelemetry Resource Semantic Conventions][semconv-resource-service-name].\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/traces`.\n\n```js\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/sdk-trace-base');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is grpc://localhost:4317\n  url: 'grpc://<collector-hostname>:<port>',\n};\n\nconst provider = new BasicTracerProvider();\nconst exporter = new CollectorTraceExporter(collectorOptions);\nprovider.addSpanProcessor(new SimpleSpanProcessor(exporter));\n\nprovider.register();\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\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/grpc-js');\n\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/sdk-trace-base');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is grpc://localhost:4317\n  url: 'grpc://<collector-hostname>:<port>',\n  credentials: grpc.credentials.createSsl(),\n};\n\nconst provider = new BasicTracerProvider();\nconst exporter = new CollectorTraceExporter(collectorOptions);\nprovider.addSpanProcessor(new SimpleSpanProcessor(exporter));\n\nprovider.register();\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n```\n\nTo use mutual authentication, pass to the `createSsl()` constructor:\n\n```js\n  credentials: grpc.credentials.createSsl(\n    fs.readFileSync('./ca.crt'),\n    fs.readFileSync('./client.key'),\n    fs.readFileSync('./client.crt')\n  ),\n```\n\nTo generate credentials for mutual authentication, 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/grpc-js');\n\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/sdk-trace-base');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst metadata = new grpc.Metadata();\n// For instance, an API key or access token might go here.\nmetadata.set('k', 'v');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is grpc://localhost:4317\n  url: 'grpc://<collector-hostname>:<port>',\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['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n```\n\nNote, that this will only work if TLS is also configured on the server.\n\n## Metrics in Node - GRPC\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/sdk-metrics-base');\nconst { CollectorMetricExporter } =  require('@opentelemetry/exporter-collector-grpc');\nconst collectorOptions = {\n  // url is optional and can be omitted - default is grpc://localhost:4317\n  url: 'grpc://<collector-hostname>:<port>',\n};\nconst exporter = new CollectorMetricExporter(collectorOptions);\n\n// Register the exporter\nconst provider = new MeterProvider({\n  exporter,\n  interval: 60000,\n})\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n\n// Now, start recording data\nconst meter = provider.getMeter('example-meter');\nconst counter = meter.createCounter('metric_name');\ncounter.add(10, { 'key': 'value' });\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 in [GitHub Discussions][discussions-url]\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\n[discussions-url]: https://github.com/open-telemetry/opentelemetry-js/discussions\n[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/main/LICENSE\n[license-image]: https://img.shields.io/badge/license-Apache_2.0-green.svg?style=flat\n[dependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc\n[devDependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/exporter-collector-grpc\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fexporter-collector-grpc.svg\n[opentelemetry-collector-url]: https://github.com/open-telemetry/opentelemetry-collector\n[semconv-resource-service-name]: https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/resource/semantic_conventions/README.md#service\n","engines":{"node":">=8.0.0"},"gitHead":"f0caa22ffcb26af2a2f05260f138a494e120a955","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"npm run protos:copy && tsc -w","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","submodule":"git submodule sync --recursive && git submodule update --init --recursive","precompile":"lerna run version --scope $(npm pkg get name) --include-filtered-dependencies","postcompile":"npm run submodule && npm run protos:copy","protos:copy":"cpx protos/opentelemetry/**/*.* build/protos/opentelemetry"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.5+x64 (linux)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.17.5","dependencies":{"@grpc/grpc-js":"^1.3.7","@grpc/proto-loader":"^0.6.4","@opentelemetry/core":"^0.25.1-alpha.13+f0caa22f","@opentelemetry/resources":"^0.25.1-alpha.13+f0caa22f","@opentelemetry/sdk-trace-base":"^0.25.1-alpha.13+f0caa22f","@opentelemetry/sdk-metrics-base":"^0.25.1-alpha.13+f0caa22f","@opentelemetry/exporter-collector":"^0.25.1-alpha.13+f0caa22f"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cpx":"1.5.0","nyc":"15.1.0","mocha":"7.2.0","sinon":"11.1.2","rimraf":"3.0.2","codecov":"3.8.3","ts-mocha":"8.0.0","ts-loader":"8.3.0","typescript":"4.3.5","@babel/core":"7.15.0","@types/node":"14.17.11","@types/mocha":"8.2.3","@types/sinon":"10.0.2","@opentelemetry/api":"^1.0.2","@opentelemetry/api-metrics":"^0.25.1-alpha.13+f0caa22f"},"peerDependencies":{"@opentelemetry/api":"^1.0.2"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.25.1-alpha.13_1630356101766_0.9012623666128319","host":"s3://npm-registry-packages"}},"0.25.1-alpha.14":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.25.1-alpha.14","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.25.1-alpha.14","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"a1a32f3b2dfaec877c2b5642ee9f2dcb91e61825","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.25.1-alpha.14.tgz","fileCount":35,"integrity":"sha512-VOol9SBN1YClcuHzDMzSXvS4M0ztEoxic8cfoQuz2OXeR9ML16a6RQ+jIXKmSIoFuqBCSsID1ywJbLIWl1SdOg==","signatures":[{"sig":"MEMCH0Szo+knxTucVGPq6ZuhN2a1Lyddl9zJThts1IuDfAICIGUL9gdI3w3tXfAaAjJyQghypSXr8BqxUi9CSHvgX9Kf","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":110331,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhLnNqCRA9TVsSAnZWagAAfdEP/RPEryFyRwkPhqs79a4k\n1p0G28yxJCKmk/BMi6psABOm0qfh4iwdxzsMEj1WN/cRj3yVzLd7uQzjFsvy\n2T1u1967WP7IsDporM40ORwsnCepiK/LZ/42SJ7DgxoLNyjVeXDqgeQHP2k/\nDnawnZAir5+zKkjDtZ2B1Kgw8cIvZVJoCwh1ZH15qjQF8aTjiLyzXxkUS8Uj\nOGLGfzXCQ+eaiYCj/tC26QSWGiV6fHHSuNYoE+YUwi+7Jkc8CAfOeLVdY51F\nrULtLqVfi3m/uX89pVq2e7fwNeUhVuGjxiSPVFPBQNEehKynTe9OOJY0gNY6\n7buqnFhsFHwKJIEjeNS9PhAsN0XGJDQtbWRjOlOQg1DuKmqHpbjyD2mPanQO\ngSzCsYckpO8Y+lq6MyVY40NnRr1dVtOxkcAbRbbjDx21/2GJqC7JFqkC+7C1\nSK/8S/NbWJzP07ZCUyLh09biFLEB5qjbCiunhCtuU4fP8AgUYi4RJixzLcje\nSKxhmxy2pcVyKpH35PgpqnOzSseQCHwBzqxPMpdIKVviqs3Orb+J3yHPai0a\nKUp8nMEkvdLS6oz+EtNBttX4MvMvmP831/s/lfmYq2i5SxJzg2MyzOSWgXuT\noooe7Qmys9KGrqqCOKAo4V+iJR1F8S/FzElGhmqH7j2nodC2qtEM/fSXEVr1\nGBI9\r\n=6c8e\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry Collector Exporter for node with grpc\n\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.25.0**.\n\n## Installation\n\n```bash\nnpm install --save @opentelemetry/exporter-collector-grpc\n```\n\n## Service Name\n\nThe OpenTelemetry Collector Exporter does not have a service name configuration.\nIn order to set the service name, use the `service.name` resource attribute as prescribed in the [OpenTelemetry Resource Semantic Conventions][semconv-resource-service-name].\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/traces`.\n\n```js\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/sdk-trace-base');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is grpc://localhost:4317\n  url: 'grpc://<collector-hostname>:<port>',\n};\n\nconst provider = new BasicTracerProvider();\nconst exporter = new CollectorTraceExporter(collectorOptions);\nprovider.addSpanProcessor(new SimpleSpanProcessor(exporter));\n\nprovider.register();\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\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/grpc-js');\n\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/sdk-trace-base');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is grpc://localhost:4317\n  url: 'grpc://<collector-hostname>:<port>',\n  credentials: grpc.credentials.createSsl(),\n};\n\nconst provider = new BasicTracerProvider();\nconst exporter = new CollectorTraceExporter(collectorOptions);\nprovider.addSpanProcessor(new SimpleSpanProcessor(exporter));\n\nprovider.register();\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n```\n\nTo use mutual authentication, pass to the `createSsl()` constructor:\n\n```js\n  credentials: grpc.credentials.createSsl(\n    fs.readFileSync('./ca.crt'),\n    fs.readFileSync('./client.key'),\n    fs.readFileSync('./client.crt')\n  ),\n```\n\nTo generate credentials for mutual authentication, 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/grpc-js');\n\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/sdk-trace-base');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst metadata = new grpc.Metadata();\n// For instance, an API key or access token might go here.\nmetadata.set('k', 'v');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is grpc://localhost:4317\n  url: 'grpc://<collector-hostname>:<port>',\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['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n```\n\nNote, that this will only work if TLS is also configured on the server.\n\n## Metrics in Node - GRPC\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/sdk-metrics-base');\nconst { CollectorMetricExporter } =  require('@opentelemetry/exporter-collector-grpc');\nconst collectorOptions = {\n  // url is optional and can be omitted - default is grpc://localhost:4317\n  url: 'grpc://<collector-hostname>:<port>',\n};\nconst exporter = new CollectorMetricExporter(collectorOptions);\n\n// Register the exporter\nconst provider = new MeterProvider({\n  exporter,\n  interval: 60000,\n})\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n\n// Now, start recording data\nconst meter = provider.getMeter('example-meter');\nconst counter = meter.createCounter('metric_name');\ncounter.add(10, { 'key': 'value' });\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 in [GitHub Discussions][discussions-url]\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\n[discussions-url]: https://github.com/open-telemetry/opentelemetry-js/discussions\n[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/main/LICENSE\n[license-image]: https://img.shields.io/badge/license-Apache_2.0-green.svg?style=flat\n[dependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc\n[devDependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/exporter-collector-grpc\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fexporter-collector-grpc.svg\n[opentelemetry-collector-url]: https://github.com/open-telemetry/opentelemetry-collector\n[semconv-resource-service-name]: https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/resource/semantic_conventions/README.md#service\n","engines":{"node":">=8.0.0"},"gitHead":"dc574f71685b90c3541c8ede9a91f852c8345fe7","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"npm run protos:copy && tsc -w","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","submodule":"git submodule sync --recursive && git submodule update --init --recursive","precompile":"lerna run version --scope $(npm pkg get name) --include-filtered-dependencies","postcompile":"npm run submodule && npm run protos:copy","protos:copy":"cpx protos/opentelemetry/**/*.* build/protos/opentelemetry"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.5+x64 (linux)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.17.5","dependencies":{"@grpc/grpc-js":"^1.3.7","@grpc/proto-loader":"^0.6.4","@opentelemetry/core":"^0.25.0","@opentelemetry/resources":"^0.25.0","@opentelemetry/sdk-trace-base":"^0.25.0","@opentelemetry/sdk-metrics-base":"^0.25.0","@opentelemetry/exporter-collector":"^0.25.1-alpha.14+dc574f71"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cpx":"1.5.0","nyc":"15.1.0","mocha":"7.2.0","sinon":"11.1.2","rimraf":"3.0.2","codecov":"3.8.3","ts-mocha":"8.0.0","ts-loader":"8.3.0","typescript":"4.3.5","@babel/core":"7.15.0","@types/node":"14.17.11","@types/mocha":"8.2.3","@types/sinon":"10.0.2","@opentelemetry/api":"^1.0.2","@opentelemetry/api-metrics":"^0.25.0"},"peerDependencies":{"@opentelemetry/api":"^1.0.2"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.25.1-alpha.14_1630434154773_0.18855607698526766","host":"s3://npm-registry-packages"}},"0.25.1-alpha.16":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.25.1-alpha.16","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.25.1-alpha.16","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"5e281bf1e2f4e3fd1784124cd185095aac203357","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.25.1-alpha.16.tgz","fileCount":35,"integrity":"sha512-DdFTckmnxFDsndGz3nRfIgofueI0zbitbw6zDTs2LtDYlg4fDHc2B0NJz/K2oD5V8NbS0DjpDqze5Wd3BJ5pmA==","signatures":[{"sig":"MEUCICRbGfPTss0XQuanl9muysanC2zNA1PboEG1Km6vUXsKAiEAujpSczdxrhuTx/ivtmnwmcDKblxVs6bKLoyt+qG0xj8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":110349,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhMyjACRA9TVsSAnZWagAAC1kP/i76+KMzMFYCw17ZEYs/\nAdpsN8yDJ/cPQlhps19qG19lFZ8W0QJTaNB2hOFx3QJyX/DIbXHEr9T5H1fp\nmPaO2lpHFZ8isGIS3/n7fTDczrMBHavhx+s0NWHexSiQ3oqt4iob36lifrJe\ncVRi0uRd29/rroy7xbZTEOPLuVqK4lHOKkTvtXcNUE0fGXInNhboecvqrjVE\nS9lxtefxmbpGD1OQSmlG7yD7yPkTqEe6hclHUD4kZlFS9YWX5+5VX7MI2A+y\n+wXW6wU9ct7wnnhlGsucAs+6yUWI+33dusb9POpEtAV7PXz92ozP9nThT0YU\nigSHiU+eTKPhF5ntkn6BZigbfij9dBhLnG3dDpga59ko6Lg9P2ejJucCv/5b\nJRomhNwGKLO5/mY2L5Jir6OP1qg0NV5iTZ+Ut0UEO8QQ2jP5gZ2v0EwciBpi\nQYLfK9SOP7XsnXTYooWJbGDXMCT4kTRGf67w4URm5Airn7ik4IpSpUoJagQ+\n0oLlz+TE0ChltasAfV/+ohbF67nm8wZBbQ29Y8CncGAAoykX5paQfCx6hV/m\nPc+EQBwY3ky9Fro2IduU2QTtMhZ2RqgwxBdQ/f2mkyrRIKJZunsoVWdpwKNL\ng08phJglu8PoSvHDVc4BFvioLDrMgwyOxSCYMkP+Ib1GrdNC138Y4mZdw1vg\n++qc\r\n=GeNT\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry Collector Exporter for node with grpc\n\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.25.0**.\n\n## Installation\n\n```bash\nnpm install --save @opentelemetry/exporter-collector-grpc\n```\n\n## Service Name\n\nThe OpenTelemetry Collector Exporter does not have a service name configuration.\nIn order to set the service name, use the `service.name` resource attribute as prescribed in the [OpenTelemetry Resource Semantic Conventions][semconv-resource-service-name].\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/traces`.\n\n```js\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/sdk-trace-base');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is grpc://localhost:4317\n  url: 'grpc://<collector-hostname>:<port>',\n};\n\nconst provider = new BasicTracerProvider();\nconst exporter = new CollectorTraceExporter(collectorOptions);\nprovider.addSpanProcessor(new SimpleSpanProcessor(exporter));\n\nprovider.register();\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\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/grpc-js');\n\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/sdk-trace-base');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is grpc://localhost:4317\n  url: 'grpc://<collector-hostname>:<port>',\n  credentials: grpc.credentials.createSsl(),\n};\n\nconst provider = new BasicTracerProvider();\nconst exporter = new CollectorTraceExporter(collectorOptions);\nprovider.addSpanProcessor(new SimpleSpanProcessor(exporter));\n\nprovider.register();\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n```\n\nTo use mutual authentication, pass to the `createSsl()` constructor:\n\n```js\n  credentials: grpc.credentials.createSsl(\n    fs.readFileSync('./ca.crt'),\n    fs.readFileSync('./client.key'),\n    fs.readFileSync('./client.crt')\n  ),\n```\n\nTo generate credentials for mutual authentication, 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/grpc-js');\n\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/sdk-trace-base');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst metadata = new grpc.Metadata();\n// For instance, an API key or access token might go here.\nmetadata.set('k', 'v');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is grpc://localhost:4317\n  url: 'grpc://<collector-hostname>:<port>',\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['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n```\n\nNote, that this will only work if TLS is also configured on the server.\n\n## Metrics in Node - GRPC\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/sdk-metrics-base');\nconst { CollectorMetricExporter } =  require('@opentelemetry/exporter-collector-grpc');\nconst collectorOptions = {\n  // url is optional and can be omitted - default is grpc://localhost:4317\n  url: 'grpc://<collector-hostname>:<port>',\n};\nconst exporter = new CollectorMetricExporter(collectorOptions);\n\n// Register the exporter\nconst provider = new MeterProvider({\n  exporter,\n  interval: 60000,\n})\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n\n// Now, start recording data\nconst meter = provider.getMeter('example-meter');\nconst counter = meter.createCounter('metric_name');\ncounter.add(10, { 'key': 'value' });\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 in [GitHub Discussions][discussions-url]\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\n[discussions-url]: https://github.com/open-telemetry/opentelemetry-js/discussions\n[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/main/LICENSE\n[license-image]: https://img.shields.io/badge/license-Apache_2.0-green.svg?style=flat\n[dependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc\n[devDependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/exporter-collector-grpc\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fexporter-collector-grpc.svg\n[opentelemetry-collector-url]: https://github.com/open-telemetry/opentelemetry-collector\n[semconv-resource-service-name]: https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/resource/semantic_conventions/README.md#service\n","engines":{"node":">=8.0.0"},"gitHead":"63f6701081e3e4a7eb964bb82cbd8cbc2eaad347","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"npm run protos:copy && tsc -w","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","submodule":"git submodule sync --recursive && git submodule update --init --recursive","precompile":"lerna run version --scope $(npm pkg get name) --include-filtered-dependencies","postcompile":"npm run submodule && npm run protos:copy","protos:copy":"cpx protos/opentelemetry/**/*.* build/protos/opentelemetry"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.6+x64 (linux)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.17.6","dependencies":{"@grpc/grpc-js":"^1.3.7","@grpc/proto-loader":"^0.6.4","@opentelemetry/core":"^0.25.0","@opentelemetry/resources":"^0.25.0","@opentelemetry/sdk-trace-base":"^0.25.1-alpha.16+63f67010","@opentelemetry/sdk-metrics-base":"^0.25.0","@opentelemetry/exporter-collector":"^0.25.1-alpha.16+63f67010"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cpx":"1.5.0","nyc":"15.1.0","mocha":"7.2.0","sinon":"11.1.2","rimraf":"3.0.2","codecov":"3.8.3","ts-mocha":"8.0.0","ts-loader":"8.3.0","typescript":"4.3.5","@babel/core":"7.15.0","@types/node":"14.17.11","@types/mocha":"8.2.3","@types/sinon":"10.0.2","@opentelemetry/api":"^1.0.2","@opentelemetry/api-metrics":"^0.25.0"},"peerDependencies":{"@opentelemetry/api":"^1.0.2"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.25.1-alpha.16_1630742719795_0.9129101898716594","host":"s3://npm-registry-packages"}},"0.25.1-alpha.17":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.25.1-alpha.17","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.25.1-alpha.17","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"11f3be8e8cd27b8d7cebbec2078bc4cb1b4ae455","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.25.1-alpha.17.tgz","fileCount":35,"integrity":"sha512-6moKLhUzK+PJlc6ibdsAlrPMhkthCTiU4/sr00gpmU5GL1grN36zEhuu82aUvUo1Op9L5TpKvKVu/j8OdLKw4A==","signatures":[{"sig":"MEQCIFSK9wpKsAoWjHDjCOiFZomGCV9WxL8zAMV19Pm0cuoDAiAg7m9jd6eRG7DwLvmUCTXMQ7ucD9URFmlELyZavgI8kw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":110331,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhMzeICRA9TVsSAnZWagAA8Q4P/3rjXsxKH627gBGpD4LH\nnrAG8B2zieXqnM2SDGnthZBLNz+PvhmUOMgs+1cMINg3+8e5evzd1NLUEBf8\ntUsVQNv3457ZgcF8pWXwuVO6OKE1nKNXhpFwhhRiJJXnl2L7dJkZD/umaGyg\nC0dj+YTbzOUb69eFfvQXq4LuEYQYddB2IoQ8tmnfpqnJiRKoZXXmrsT2pEZu\nFwqIGHnJkG5X39y8xMCezdsSWhxLH7u5raiFmNxHRaTUDV+qxoSi2hevXIlr\niM4qUXGnvmK3CtJTngqlGSxVqibuLW5QG8WQrkOWdAJ1+KgEr0qbJDWREcUu\nKeQwEUUtQLGswxV12sClvB9oMU70qaJxCp40SboNvWK98XNXxH9eblxV6/qj\nQMhTsfIEbtuBaFZsKbAdnnHvgY01ksWEITSBMHg8bL+nhzHOEnmoymKJLROa\nbBjlntnheMTU68GNYcF41yYQXsWNycziCQVlvU1K6A9VQZ4T4ns3z7izUnwh\nXF/OUNSYkfhZgxRqqE8xW6KmAWnA/5tdT4jzJSqne9p+BpeaJv5cmeI6e1V0\nmQ4IGlDlMJpz2XVtAAosn2wQ3UYh6yajPCp8l7W7dZaSsad7l6nhO8xfNybY\n5hIThlDsSaKHtliSjnS2EHj4rm0ETdpo4XhPDGfeRWgRw5aaYTBlQPyiWmYx\nK+Dk\r\n=NzQl\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry Collector Exporter for node with grpc\n\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.25.0**.\n\n## Installation\n\n```bash\nnpm install --save @opentelemetry/exporter-collector-grpc\n```\n\n## Service Name\n\nThe OpenTelemetry Collector Exporter does not have a service name configuration.\nIn order to set the service name, use the `service.name` resource attribute as prescribed in the [OpenTelemetry Resource Semantic Conventions][semconv-resource-service-name].\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/traces`.\n\n```js\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/sdk-trace-base');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is grpc://localhost:4317\n  url: 'grpc://<collector-hostname>:<port>',\n};\n\nconst provider = new BasicTracerProvider();\nconst exporter = new CollectorTraceExporter(collectorOptions);\nprovider.addSpanProcessor(new SimpleSpanProcessor(exporter));\n\nprovider.register();\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\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/grpc-js');\n\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/sdk-trace-base');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is grpc://localhost:4317\n  url: 'grpc://<collector-hostname>:<port>',\n  credentials: grpc.credentials.createSsl(),\n};\n\nconst provider = new BasicTracerProvider();\nconst exporter = new CollectorTraceExporter(collectorOptions);\nprovider.addSpanProcessor(new SimpleSpanProcessor(exporter));\n\nprovider.register();\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n```\n\nTo use mutual authentication, pass to the `createSsl()` constructor:\n\n```js\n  credentials: grpc.credentials.createSsl(\n    fs.readFileSync('./ca.crt'),\n    fs.readFileSync('./client.key'),\n    fs.readFileSync('./client.crt')\n  ),\n```\n\nTo generate credentials for mutual authentication, 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/grpc-js');\n\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/sdk-trace-base');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst metadata = new grpc.Metadata();\n// For instance, an API key or access token might go here.\nmetadata.set('k', 'v');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is grpc://localhost:4317\n  url: 'grpc://<collector-hostname>:<port>',\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['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n```\n\nNote, that this will only work if TLS is also configured on the server.\n\n## Metrics in Node - GRPC\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/sdk-metrics-base');\nconst { CollectorMetricExporter } =  require('@opentelemetry/exporter-collector-grpc');\nconst collectorOptions = {\n  // url is optional and can be omitted - default is grpc://localhost:4317\n  url: 'grpc://<collector-hostname>:<port>',\n};\nconst exporter = new CollectorMetricExporter(collectorOptions);\n\n// Register the exporter\nconst provider = new MeterProvider({\n  exporter,\n  interval: 60000,\n})\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n\n// Now, start recording data\nconst meter = provider.getMeter('example-meter');\nconst counter = meter.createCounter('metric_name');\ncounter.add(10, { 'key': 'value' });\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 in [GitHub Discussions][discussions-url]\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\n[discussions-url]: https://github.com/open-telemetry/opentelemetry-js/discussions\n[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/main/LICENSE\n[license-image]: https://img.shields.io/badge/license-Apache_2.0-green.svg?style=flat\n[dependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc\n[devDependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/exporter-collector-grpc\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fexporter-collector-grpc.svg\n[opentelemetry-collector-url]: https://github.com/open-telemetry/opentelemetry-collector\n[semconv-resource-service-name]: https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/resource/semantic_conventions/README.md#service\n","engines":{"node":">=8.0.0"},"gitHead":"ec90f10bf8dad45bdb6da58b31be32d1340d92a3","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"npm run protos:copy && tsc -w","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","submodule":"git submodule sync --recursive && git submodule update --init --recursive","precompile":"lerna run version --scope $(npm pkg get name) --include-filtered-dependencies","postcompile":"npm run submodule && npm run protos:copy","protos:copy":"cpx protos/opentelemetry/**/*.* build/protos/opentelemetry"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.6+x64 (linux)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.17.6","dependencies":{"@grpc/grpc-js":"^1.3.7","@grpc/proto-loader":"^0.6.4","@opentelemetry/core":"^0.25.0","@opentelemetry/resources":"^0.25.0","@opentelemetry/sdk-trace-base":"^0.25.0","@opentelemetry/sdk-metrics-base":"^0.25.0","@opentelemetry/exporter-collector":"^0.25.1-alpha.17+ec90f10b"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cpx":"1.5.0","nyc":"15.1.0","mocha":"7.2.0","sinon":"11.1.2","rimraf":"3.0.2","codecov":"3.8.3","ts-mocha":"8.0.0","ts-loader":"8.3.0","typescript":"4.3.5","@babel/core":"7.15.0","@types/node":"14.17.11","@types/mocha":"8.2.3","@types/sinon":"10.0.2","@opentelemetry/api":"^1.0.2","@opentelemetry/api-metrics":"^0.25.0"},"peerDependencies":{"@opentelemetry/api":"^1.0.2"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.25.1-alpha.17_1630746503965_0.846547539089324","host":"s3://npm-registry-packages"}},"0.25.1-alpha.23":{"name":"@opentelemetry/exporter-collector-grpc","version":"0.25.1-alpha.23","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@opentelemetry/exporter-collector-grpc@0.25.1-alpha.23","maintainers":[{"name":"mayurkale22","email":"mayurkale22@gmail.com"},{"name":"bogdandrutu","email":"bogdandrutu@gmail.com"},{"name":"dyladan","email":"dyladan@gmail.com"},{"name":"obecny","email":"bobecny@gmail.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"e7a9fbc1a6c4fae594065787ddfba2a896877e20","tarball":"https://registry.npmjs.org/@opentelemetry/exporter-collector-grpc/-/exporter-collector-grpc-0.25.1-alpha.23.tgz","fileCount":35,"integrity":"sha512-Nmc+77KYSJyDN6ISSKNXuVckhv25PWLYLfDj8knvsp6+sTqn0zo0DnMXdWh82OTApsSAIRr6+ZcHc1hcZzZL/w==","signatures":[{"sig":"MEQCIGijgwGKz/PB1N7RA5MELUS388V6d7D6BshcVJMBdmQMAiBBe+okb1oa2l7LvlchNjicAu8N98oEGs4n5yMdv+gdCw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":110403,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhOTX7CRA9TVsSAnZWagAAtIsQAIf34ChFKAKetzAm27lA\nRb8jbbIwN7cL+lVQYkkScSvgI2V/qVHZv31cup8VZAjktBTHTC7NzcD1i/80\nF9UvHUPtcv0IuAiyQ7cpzPxmCCvntu9VyB39HWvygyU7Ydk7n65pIpjrrGc+\nv8l8ctvUAt6BtiuS77DICDQ7+gb8OHbTZfsIQOPuU5HQtoivuiLfk+vmyUSQ\ngg8VBFGGpZ6Tuz3hOvzdNGz/L7FqW+QtJy6Wo6QOTyW55+I5pI/yrNvmaJTz\nnqf9VzKrqpT4T2vwls/d6UE9AsWD9uA/EvnWnGw4u0mH6khTr8PFeB/0yhsW\nJoT3u19vcPxxL+iyuEEI5cVEtYv9qgdW9W5uokOxGhzdspOhHgrmOC8BhzXX\nribT14HxODgJFVU8RiieJEp+Yf3oXTYhuTc8B5E5zLR5lzhr8v3apONG0xGY\n3vUKHSieY+5/mnhz8N/sCO1XgWEqT9IUtHEkmN29timkEF+OgaqzvpkY2ZFc\nGfhKbd2pNqEGQmqORhrwQcAIhoDeMFlVldCYwGmZAkq4W2DGoX2AX+lOQVCl\nAOmF9mF1/itQqWn9eFsAn5BaS9VMcm1ZMDlZFMJ1yNgT7buD1SPnbdqA0DMD\nmDaZ9llaDeD1j1jwrzHMpACxfKwWLQZ8KYOG8J4Yzh/cdNsmXjEOTYfs8/BQ\nhvrf\r\n=vkAV\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/src/index.js","types":"build/src/index.d.ts","readme":"# OpenTelemetry Collector Exporter for node with grpc\n\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.25.0**.\n\n## Installation\n\n```bash\nnpm install --save @opentelemetry/exporter-collector-grpc\n```\n\n## Service Name\n\nThe OpenTelemetry Collector Exporter does not have a service name configuration.\nIn order to set the service name, use the `service.name` resource attribute as prescribed in the [OpenTelemetry Resource Semantic Conventions][semconv-resource-service-name].\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/traces`.\n\n```js\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/sdk-trace-base');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is grpc://localhost:4317\n  url: 'grpc://<collector-hostname>:<port>',\n};\n\nconst provider = new BasicTracerProvider();\nconst exporter = new CollectorTraceExporter(collectorOptions);\nprovider.addSpanProcessor(new SimpleSpanProcessor(exporter));\n\nprovider.register();\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\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/grpc-js');\n\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/sdk-trace-base');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is grpc://localhost:4317\n  url: 'grpc://<collector-hostname>:<port>',\n  credentials: grpc.credentials.createSsl(),\n};\n\nconst provider = new BasicTracerProvider();\nconst exporter = new CollectorTraceExporter(collectorOptions);\nprovider.addSpanProcessor(new SimpleSpanProcessor(exporter));\n\nprovider.register();\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n```\n\nTo use mutual authentication, pass to the `createSsl()` constructor:\n\n```js\n  credentials: grpc.credentials.createSsl(\n    fs.readFileSync('./ca.crt'),\n    fs.readFileSync('./client.key'),\n    fs.readFileSync('./client.crt')\n  ),\n```\n\nTo generate credentials for mutual authentication, 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/grpc-js');\n\nconst { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/sdk-trace-base');\nconst { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector-grpc');\n\nconst metadata = new grpc.Metadata();\n// For instance, an API key or access token might go here.\nmetadata.set('k', 'v');\n\nconst collectorOptions = {\n  // url is optional and can be omitted - default is grpc://localhost:4317\n  url: 'grpc://<collector-hostname>:<port>',\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['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n```\n\nNote, that this will only work if TLS is also configured on the server.\n\n## Metrics in Node - GRPC\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/sdk-metrics-base');\nconst { CollectorMetricExporter } =  require('@opentelemetry/exporter-collector-grpc');\nconst collectorOptions = {\n  // url is optional and can be omitted - default is grpc://localhost:4317\n  url: 'grpc://<collector-hostname>:<port>',\n};\nconst exporter = new CollectorMetricExporter(collectorOptions);\n\n// Register the exporter\nconst provider = new MeterProvider({\n  exporter,\n  interval: 60000,\n})\n['SIGINT', 'SIGTERM'].forEach(signal => {\n  process.on(signal, () => provider.shutdown().catch(console.error));\n});\n\n// Now, start recording data\nconst meter = provider.getMeter('example-meter');\nconst counter = meter.createCounter('metric_name');\ncounter.add(10, { 'key': 'value' });\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 in [GitHub Discussions][discussions-url]\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\n[discussions-url]: https://github.com/open-telemetry/opentelemetry-js/discussions\n[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/main/LICENSE\n[license-image]: https://img.shields.io/badge/license-Apache_2.0-green.svg?style=flat\n[dependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc\n[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc\n[devDependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js.svg?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-exporter-collector-grpc&type=dev\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/exporter-collector-grpc\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fexporter-collector-grpc.svg\n[opentelemetry-collector-url]: https://github.com/open-telemetry/opentelemetry-collector\n[semconv-resource-service-name]: https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/resource/semantic_conventions/README.md#service\n","engines":{"node":">=8.0.0"},"gitHead":"feea5167c15c41f0aeedc60959e36c18315c7ede","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","clean":"tsc --build --clean","watch":"npm run protos:copy && tsc -w","compile":"tsc --build","version":"node ../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"npm run precompile","submodule":"git submodule sync --recursive && git submodule update --init --recursive","precompile":"lerna run version --scope $(npm pkg get name) --include-filtered-dependencies","postcompile":"npm run submodule && npm run protos:copy","protos:copy":"cpx protos/opentelemetry/**/*.* build/protos/opentelemetry"},"_npmUser":{"name":"dyladan","email":"dyladan@gmail.com"},"deprecated":"Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-grpc and @opentelemetry/exporter-metrics-otlp-grpc","repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.17.6+x64 (linux)","description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","directories":{},"_nodeVersion":"14.17.6","dependencies":{"@grpc/grpc-js":"^1.3.7","@grpc/proto-loader":"^0.6.4","@opentelemetry/core":"^0.25.1-alpha.23+feea5167","@opentelemetry/resources":"^0.25.1-alpha.23+feea5167","@opentelemetry/sdk-trace-base":"^0.25.1-alpha.23+feea5167","@opentelemetry/sdk-metrics-base":"^0.25.1-alpha.23+feea5167","@opentelemetry/exporter-collector":"^0.25.1-alpha.23+feea5167"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cpx":"1.5.0","nyc":"15.1.0","mocha":"7.2.0","sinon":"11.1.2","rimraf":"3.0.2","codecov":"3.8.3","ts-mocha":"8.0.0","ts-loader":"8.3.0","typescript":"4.3.5","@babel/core":"7.15.0","@types/node":"14.17.11","@types/mocha":"8.2.3","@types/sinon":"10.0.2","@opentelemetry/api":"^1.0.2","@opentelemetry/api-metrics":"^0.25.0"},"peerDependencies":{"@opentelemetry/api":"^1.0.2"},"_npmOperationalInternal":{"tmp":"tmp/exporter-collector-grpc_0.25.1-alpha.23_1631139323552_0.9587165053489597","host":"s3://npm-registry-packages"}}},"time":{"created":"2020-08-24T16:44:57.926Z","modified":"2026-05-01T17:14:57.365Z","0.10.3-alpha.34":"2020-08-24T16:44:58.281Z","0.10.3-alpha.35":"2020-08-24T22:45:48.807Z","0.10.3-alpha.40":"2020-08-27T14:23:57.554Z","0.10.3-alpha.41":"2020-08-27T16:09:14.208Z","0.11.1-alpha.48":"2020-09-01T19:24:48.866Z","0.11.0":"2020-09-01T19:32:45.011Z","0.11.1-alpha.13":"2020-09-21T03:25:52.639Z","0.11.1-alpha.15":"2020-09-21T03:30:37.090Z","0.11.1-alpha.35":"2020-09-30T12:22:42.706Z","0.11.1-alpha.36":"2020-09-30T12:39:25.657Z","0.11.1-alpha.44":"2020-10-07T19:55:33.001Z","0.11.1-alpha.53":"2020-10-19T11:49:05.488Z","0.12.1-alpha.54":"2020-10-19T12:50:33.075Z","0.12.0":"2020-10-19T12:54:11.146Z","0.12.1-alpha.3":"2020-10-22T16:34:49.614Z","0.12.1-alpha.4":"2020-10-26T15:40:43.075Z","0.12.1-alpha.7":"2020-10-26T21:12:37.806Z","0.13.0":"2020-12-04T21:26:40.714Z","0.14.0":"2020-12-17T20:53:20.691Z","0.15.0":"2021-01-21T22:20:20.898Z","0.16.0":"2021-02-01T22:33:55.528Z","0.16.1-alpha.10":"2021-02-08T15:50:55.270Z","0.16.1-alpha.11":"2021-02-08T16:18:46.848Z","0.16.1-alpha.12":"2021-02-08T20:11:22.674Z","0.16.1-alpha.14":"2021-02-10T16:06:46.844Z","0.16.1-alpha.15":"2021-02-10T22:18:44.396Z","0.16.1-alpha.18":"2021-02-14T18:13:04.304Z","0.16.1-alpha.20":"2021-02-17T20:52:38.289Z","0.17.0":"2021-02-17T21:16:27.659Z","0.17.1-alpha.21":"2021-02-17T21:17:27.295Z","0.17.1-alpha.2":"2021-02-20T17:37:58.318Z","0.17.1-alpha.5":"2021-02-24T17:20:23.811Z","0.17.1-alpha.7":"2021-02-25T22:45:47.232Z","0.17.1-alpha.8":"2021-03-01T13:38:51.917Z","0.17.1-alpha.10":"2021-03-02T13:22:33.914Z","0.17.1-alpha.11":"2021-03-02T13:32:12.852Z","0.18.1-alpha.12":"2021-03-02T13:54:38.273Z","0.18.0":"2021-03-02T14:01:24.629Z","0.18.1-alpha.3":"2021-03-02T19:10:01.921Z","0.18.1-alpha.13":"2021-03-18T16:26:16.074Z","0.18.1-alpha.16":"2021-03-22T13:12:07.533Z","0.18.1-alpha.20":"2021-03-24T13:11:37.566Z","0.18.1-alpha.21":"2021-03-24T14:13:31.270Z","0.18.1-alpha.23":"2021-03-24T19:17:42.643Z","0.18.1-alpha.24":"2021-03-24T19:39:19.775Z","0.18.1-alpha.26":"2021-03-24T20:09:43.131Z","0.18.1-alpha.27":"2021-03-27T09:08:20.726Z","0.18.2-alpha.81":"2021-03-29T19:52:49.905Z","0.18.1":"2021-03-29T20:04:20.249Z","0.18.2-alpha.1":"2021-03-30T13:06:49.786Z","0.18.3-alpha.2":"2021-03-30T15:27:53.879Z","0.18.2":"2021-03-30T16:16:18.082Z","0.18.3-alpha.1":"2021-03-30T17:30:12.593Z","0.18.3-alpha.3":"2021-03-31T07:38:42.815Z","0.18.3-alpha.4":"2021-04-05T16:38:27.990Z","0.18.3-alpha.5":"2021-04-05T17:55:49.478Z","0.18.3-alpha.7":"2021-04-07T16:12:54.230Z","0.18.3-alpha.9":"2021-04-08T13:14:46.481Z","0.18.3-alpha.10":"2021-04-08T14:25:59.664Z","0.18.3-alpha.11":"2021-04-08T20:22:22.919Z","0.18.3-alpha.14":"2021-04-09T09:11:49.491Z","0.18.3-alpha.16":"2021-04-09T20:08:19.230Z","0.18.3-alpha.17":"2021-04-10T09:33:53.617Z","0.18.3-alpha.18":"2021-04-10T19:01:12.850Z","0.18.3-alpha.20":"2021-04-12T15:09:12.292Z","0.18.3-alpha.23":"2021-04-12T18:13:11.377Z","0.18.3-alpha.24":"2021-04-12T19:05:45.058Z","0.18.3-alpha.25":"2021-04-12T19:42:55.896Z","0.18.3-alpha.27":"2021-04-13T19:55:13.041Z","0.18.3-alpha.28":"2021-04-14T07:52:03.609Z","0.18.3-alpha.29":"2021-04-14T10:35:33.169Z","0.18.3-alpha.30":"2021-04-19T17:01:48.061Z","0.18.3-alpha.31":"2021-04-20T15:49:08.473Z","0.19.1-alpha.36":"2021-04-22T12:20:15.094Z","0.19.0":"2021-04-22T12:29:04.303Z","0.19.1-alpha.37":"2021-04-22T18:16:25.298Z","0.19.1-alpha.39":"2021-04-22T18:45:34.321Z","0.19.1-alpha.42":"2021-04-26T19:00:57.024Z","0.19.1-alpha.7":"2021-04-28T16:14:13.880Z","0.19.1-alpha.9":"2021-04-29T08:17:56.236Z","0.19.1-alpha.11":"2021-04-29T21:07:38.660Z","0.19.1-alpha.12":"2021-04-30T20:50:08.364Z","0.19.1-alpha.13":"2021-05-01T07:06:03.786Z","0.19.1-alpha.14":"2021-05-01T07:38:16.590Z","0.19.1-alpha.16":"2021-05-03T17:44:02.064Z","0.19.1-alpha.19":"2021-05-08T07:54:21.966Z","0.19.1-alpha.21":"2021-05-11T18:50:24.734Z","0.19.1-alpha.23":"2021-05-11T20:13:28.941Z","0.19.1-alpha.25":"2021-05-12T15:54:14.749Z","0.19.1-alpha.26":"2021-05-12T16:07:12.759Z","0.19.1-alpha.27":"2021-05-13T10:01:30.257Z","0.19.1-alpha.28":"2021-05-13T10:15:32.644Z","0.19.1-alpha.29":"2021-05-13T10:24:36.726Z","0.19.1-alpha.31":"2021-05-19T18:07:21.824Z","0.19.1-alpha.32":"2021-05-20T08:12:01.713Z","0.19.1-alpha.33":"2021-05-20T12:12:39.092Z","0.19.1-alpha.41":"2021-05-27T17:56:03.460Z","0.19.1-alpha.43":"2021-06-01T19:46:21.141Z","0.19.1-alpha.44":"2021-06-01T20:21:24.446Z","0.20.1-alpha.49":"2021-06-03T17:10:14.216Z","0.20.0":"2021-06-03T18:28:49.581Z","0.20.1-alpha.3":"2021-06-05T08:29:25.257Z","0.20.1-alpha.4":"2021-06-08T13:28:20.043Z","0.21.1-alpha.7":"2021-06-10T17:26:29.612Z","0.21.0":"2021-06-10T18:30:01.704Z","0.21.1-alpha.1":"2021-06-12T08:24:57.595Z","0.21.1-alpha.2":"2021-06-12T08:35:37.908Z","0.21.1-alpha.3":"2021-06-16T12:59:14.202Z","0.22.1-alpha.5":"2021-06-17T17:05:37.020Z","0.22.0":"2021-06-17T17:58:52.089Z","0.22.1-alpha.2":"2021-06-23T15:49:27.048Z","0.22.1-alpha.3":"2021-06-23T16:05:22.189Z","0.22.1-alpha.10":"2021-06-30T13:14:14.155Z","0.22.1-alpha.13":"2021-06-30T18:41:01.830Z","0.22.1-alpha.15":"2021-06-30T19:09:11.785Z","0.22.1-alpha.16":"2021-06-30T19:49:12.786Z","0.23.1-alpha.17":"2021-06-30T20:08:02.980Z","0.23.0":"2021-06-30T20:15:05.706Z","0.23.1-alpha.18":"2021-07-02T14:38:32.575Z","0.23.1-alpha.3":"2021-07-05T22:27:55.163Z","0.23.1-alpha.6":"2021-07-11T07:59:50.443Z","0.23.1-alpha.15":"2021-07-17T09:18:31.762Z","0.23.1-alpha.19":"2021-07-21T15:44:30.349Z","0.23.1-alpha.20":"2021-07-21T16:01:00.013Z","0.23.1-alpha.23":"2021-07-23T17:46:39.376Z","0.23.1-alpha.24":"2021-07-25T06:45:39.430Z","0.23.1-alpha.28":"2021-07-27T19:44:38.968Z","0.23.1-alpha.29":"2021-07-27T20:14:40.121Z","0.24.1-alpha.31":"2021-07-28T14:07:33.718Z","0.24.0":"2021-07-28T14:14:11.902Z","0.24.1-alpha.1":"2021-07-30T19:42:55.217Z","0.24.1-alpha.4":"2021-08-05T19:28:33.358Z","0.24.1-alpha.5":"2021-08-06T11:31:49.885Z","0.24.1-alpha.6":"2021-08-06T13:38:06.661Z","0.24.1-alpha.7":"2021-08-07T13:33:16.172Z","0.24.1-alpha.8":"2021-08-07T13:41:39.961Z","0.24.1-alpha.9":"2021-08-07T14:10:19.444Z","0.24.1-alpha.14":"2021-08-11T14:51:06.024Z","0.24.1-alpha.15":"2021-08-11T16:02:32.204Z","0.24.1-alpha.18":"2021-08-14T08:16:22.418Z","0.24.1-alpha.19":"2021-08-16T17:58:50.407Z","0.24.1-alpha.20":"2021-08-17T21:07:17.580Z","0.25.1-alpha.21":"2021-08-18T20:16:52.954Z","0.25.0":"2021-08-18T21:16:53.652Z","0.25.1-alpha.2":"2021-08-23T21:41:20.641Z","0.25.1-alpha.4":"2021-08-24T19:33:28.112Z","0.25.1-alpha.7":"2021-08-27T18:20:12.702Z","0.25.1-alpha.12":"2021-08-30T20:22:19.616Z","0.25.1-alpha.13":"2021-08-30T20:41:42.095Z","0.25.1-alpha.14":"2021-08-31T18:22:34.979Z","0.25.1-alpha.16":"2021-09-04T08:05:20.005Z","0.25.1-alpha.17":"2021-09-04T09:08:24.098Z","0.25.1-alpha.23":"2021-09-08T22:15:23.720Z"},"bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"description":"OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector","maintainers":[{"email":"dyladan@gmail.com","name":"dyladan"},{"email":"marc.pichler@dynatrace.com","name":"pichlermarc"},{"email":"overbalancedev@proton.me","name":"overbalance"},{"email":"npmjs-account@opentelemetry.io","name":"npmjs-account"},{"email":"trentm@gmail.com","name":"trentm"},{"email":"martin@martinkuba.com","name":"martinkuba"}],"readme":"","readmeFilename":""}