# @aspecto/plugin-mongodb

> Aspecto fork of OpenTelemetry mongodb automatic instrumentation package.

Latest version **0.0.115** (published 2021-05-10) · Apache-2.0 license · 0 weekly downloads

## Install

```sh
npm install @aspecto/plugin-mongodb
pnpm add @aspecto/plugin-mongodb
yarn add @aspecto/plugin-mongodb
bun add @aspecto/plugin-mongodb
```

## Health

**Score 40/100 (D)** — status: abandoned.

Positive: has types; no vulnerabilities; high maintenance score; high quality score.

Warnings: low downloads; no esm support; pre 1.0.

Negative: abandoned.

## Facts

| | |
|---|---|
| Version | 0.0.115 |
| Published | 2021-05-10 |
| First published | 2021-02-09 |
| Weekly downloads | 0 |
| License | Apache-2.0 |
| TypeScript types | bundled |
| Module format | CommonJS |
| Node | >=8.0.0 |
| Dependencies | 4 |
| Unpacked size | 47.4 KB |
| Known vulnerabilities | 0 (+1 in 1 direct dependencies) |
| Install scripts | no |
| GitHub stars | 3515 |
| Author | OpenTelemetry Authors |
| Maintainers | yanivd, andriy-aspecto, habmic, nirsky, mzahor, amir.aspecto, aspecto-release-bot |
| Keywords | opentelemetry, mongodb, nodejs, tracing, profiling, plugin |

## Links

- npm: https://www.npmjs.com/package/@aspecto/plugin-mongodb
- Repository: https://github.com/open-telemetry/opentelemetry-js
- Homepage: https://github.com/open-telemetry/opentelemetry-js#readme
- Issues: https://github.com/open-telemetry/opentelemetry-js/issues
- npm.io page: https://npm.io/package/@aspecto/plugin-mongodb

## Dependencies (4)

- [shimmer](https://npm.io/package/shimmer.md) ^1.2.1
- [@opentelemetry/api](https://npm.io/package/@opentelemetry/api.md) ^0.18.0
- [@opentelemetry/core](https://npm.io/package/@opentelemetry/core.md) 0.18.2
- [@opentelemetry/semantic-conventions](https://npm.io/package/@opentelemetry/semantic-conventions.md) 0.18.2

## Alternatives

- [angular-pipes](https://npm.io/package/angular-pipes.md) — 5.6K weekly downloads
- [@ng-web-apis/midi](https://npm.io/package/@ng-web-apis/midi.md) — 2.6K weekly downloads
- [happn-3](https://npm.io/package/happn-3.md) — 1.6K weekly downloads
- [@opensip-cli/lang-go](https://npm.io/package/@opensip-cli/lang-go.md) — 1.2K weekly downloads
- [mongoose-typescript](https://npm.io/package/mongoose-typescript.md) — 85 weekly downloads

## Recent versions

- 0.0.115 (latest) — 2021-05-10
- 0.0.114-alpha.0 (alpha) — 2021-04-25
- 0.0.111-otelv0.18.2.7 (canary) — 2021-04-05
- 0.0.104-dev.0 (dev) — 2021-03-03
- 0.0.114 — 2021-04-27
- 0.0.113 — 2021-04-18
- 0.0.112 — 2021-04-06
- 0.0.111 — 2021-04-06
- 0.0.111-otel-v0.18.2.7 — 2021-04-05
- 0.0.111-otel-v0.18.1.0 — 2021-03-30
- 0.0.110 — 2021-03-24
- 0.0.109-express-context.0 — 2021-03-24
- 0.0.108 — 2021-03-24
- 0.0.107 — 2021-03-11
- 0.0.106 — 2021-03-07
- … 8 more at https://npm.io/package/@aspecto/plugin-mongodb/versions

## README

# OpenTelemetry mongodb Instrumentation for Node.js
[![Gitter chat][gitter-image]][gitter-url]
[![dependencies][dependencies-image]][dependencies-url]
[![devDependencies][devDependencies-image]][devDependencies-url]
[![Apache License][license-image]][license-image]

This is a fork of the plugin, to add features required by aspecto until they are merged into the main repo and published.

This module provides automatic instrumentation for [`mongodb`](https://github.com/mongodb/node-mongodb-native).

For automatic instrumentation see the
[@opentelemetry/node](https://github.com/open-telemetry/opentelemetry-js/tree/master/packages/opentelemetry-node) package.

## Installation

```bash
npm install --save @opentelemetry/plugin-mongodb
```
### Supported Versions
 - `'>=2.0.0 <4`

## Usage

OpenTelemetry Mongodb Instrumentation allows the user to automatically collect trace data and export them to their backend of choice, to give observability to distributed systems.

To load a specific plugin (mongodb in this case), specify it in the Node Tracer's configuration.
```js
const { NodeTracerProvider } = require('@opentelemetry/node');

const provider = new NodeTracerProvider({
  plugins: {
    mongodb: {
      enabled: true,
      // You may use a package name or absolute path to the file.
      path: '@opentelemetry/plugin-mongodb',
    }
  }
});
```

To load all of the [supported plugins](https://github.com/open-telemetry/opentelemetry-js#plugins), use below approach. Each plugin is only loaded when the module that it patches is loaded; in other words, there is no computational overhead for listing plugins for unused modules.
```js
const { NodeTracerProvider } = require('@opentelemetry/node');

const provider = new NodeTracerProvider();
```

See [examples/mongodb](https://github.com/open-telemetry/opentelemetry-js-contrib/tree/master/examples/mongodb) for a short example.

### Mongo Plugin Options

Mongodb plugin has few options available to choose from. You can set the following:

| Options | Type | Description |
| ------- | ---- | ----------- |
| [`enhancedDatabaseReporting`](https://github.com/open-telemetry/opentelemetry-js/blob/master/packages/opentelemetry-api/src/trace/instrumentation/Plugin.ts#L91) | `string` | If true, additional information about query parameters and results will be attached (as `attributes`) to spans representing database operations |
| `aggregateCursorOperations` | `boolean` | Set to true if you want to aggregare spans generated by cursor opetarions within one session |

## Useful links
- For more information on OpenTelemetry, visit: <https://opentelemetry.io/>
- For more about OpenTelemetry JavaScript: <https://github.com/open-telemetry/opentelemetry-js>
- For help or feedback on this project, join us on [gitter][gitter-url]

## License

Apache 2.0 - See [LICENSE][license-url] for more information.

[gitter-image]: https://badges.gitter.im/open-telemetry/opentelemetry-js.svg
[gitter-url]: https://gitter.im/open-telemetry/opentelemetry-node?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge
[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/master/LICENSE
[license-image]: https://img.shields.io/badge/license-Apache_2.0-green.svg?style=flat
[dependencies-image]: https://david-dm.org/open-telemetry/opentelemetry-js/status.svg?path=packages/opentelemetry-plugin-mongodb
[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-plugin-mongodb
[devDependencies-image]: https://david-dm.org/open-telemetry/opentelemetry-js/dev-status.svg?path=packages/opentelemetry-plugin-mongodb
[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-plugin-mongodb&type=dev

---
_Source: https://npm.io/package/@aspecto/plugin-mongodb · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
