@envelop/statsd
Version:
This plugin tracks the complete execution flow, and reports metrics using StatsD (based on `hot-shots`).
53 lines (40 loc) • 1.27 kB
Markdown
This plugin tracks the complete execution flow, and reports metrics using StatsD (based on `hot-shots`).
Compatible with:
- Datadog's DogStatsD server
- InfluxDB's Telegraf StatsD server
- Etsy's StatsD serve
Available metrics:
- `graphql.operations.count` - the number of performed operations (including failures)
- `graphql.operations.error_count` - the number of failed operations
- `graphql.operations.latency` - a histogram of response times (in milliseconds)
> You can also customize the `graphql` prefix and add custom tags to the metrics.
## Getting Started
```
yarn add hot-shots @envelop/stats
```
## Usage Example
```ts
import { parse, validate, execute, subscribe } from 'graphql'
import { envelop } from '@envelop/core'
import { useStatsD } from '@envelop/statsd'
import StatsD from 'hot-shots'
const client = new StatsD({
port: 8020,
globalTags: { env: process.env.NODE_ENV }
})
const getEnveloped = envelop({
parse,
validate,
execute,
subscribe,
plugins: [
// ... other plugins ...
useStatsD({
client,
prefix: 'gql', // results in `gql.operations.count` instead of `graphql.operations.count`,
skipIntrospection: true // if you wish to disable introspection logging
})
]
})
```