{"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","name":"@opentelemetry/exporter-collector-grpc","types":"build/src/index.d.ts","author":{"name":"OpenTelemetry Authors"},"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","license":"Apache-2.0","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","lint":"eslint . --ext .ts","test":"nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'","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"},"homepage":"https://github.com/open-telemetry/opentelemetry-js#readme","keywords":["opentelemetry","nodejs","grpc","tracing","profiling","metrics","stats"],"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":{},"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"}],"_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"},"_id":"@opentelemetry/exporter-collector-grpc@0.25.0","version":"0.25.0"}