Fastify InfluxDB Plugin using the Official InfluxDB Driver
Installation
npm i fastify-influxdb -s
Usage
const fastify = ;// Should be first declarationfastify; fastify;
Description
This plugin adds an InfluxDB driver made available to all routes via the decorate
function. It should be used whenever an InfluxDB instance needs to communicate with a Fastify API instance.
Options
Option | Description |
---|---|
host |
Optional, the host to connect to. Defaults to localhost |
hosts |
Optional, the multiple hosts to connect to. If specified, multi-cluster setup will be passed on to influx |
database |
Optional, the database to connect to. If the database does not exist, the library will create it. |
schema |
Optional, the schema of the database we are connecting to |
username |
Optional, the username to use for authorization if any |
password |
Optional, the password to use for authorization if any |
Any schemas declared should follow the following format:
measurement: "name_of_measurement" fields: "level description": "STRING" water_level: "FLOAT" tags: "location"
The above schema should be created according to the InfluxDB Node.JS Library Schema Specification.
One should note that instead of Influx.FieldType.TYPE
and FieldType.TYPE
he/she should specify the TYPE
in string format instead. For example, the default schema presented in the above documentation link can be converted as follows:
// Before measurement: 'perf' tags: 'hostname' fields: memory_usage: FieldTypeINTEGER cpu_usage: FieldTypeFLOAT is_online: FieldTypeBOOLEAN // After measurement: 'perf' tags: 'hostname' fields: memory_usage: 'INTEGER' cpu_usage: 'FLOAT' is_online: 'BOOLEAN'
The Influx
object of the influx
npm package is also provided by default in the decorator while the InfluxDB instance can be accessed via fastify.influxdb.instance
.
Author
License
Licensed under GPLv3.