2018-05-21 16:28:52 +02:00
|
|
|
# InfluxDB writer
|
|
|
|
|
|
|
|
InfluxDB writer provides message repository implementation for InfluxDB.
|
|
|
|
|
|
|
|
## Configuration
|
|
|
|
|
|
|
|
The service is configured using the environment variables presented in the
|
|
|
|
following table. Note that any unset variables will be replaced with their
|
|
|
|
default values.
|
|
|
|
|
2020-04-07 12:02:17 +02:00
|
|
|
| Variable | Description | Default |
|
|
|
|
|----------------------------------|----------------------------------------------------------|------------------------|
|
|
|
|
| MF_NATS_URL | NATS instance URL | nats://localhost:4222 |
|
|
|
|
| MF_INFLUX_WRITER_LOG_LEVEL | Log level for InfluxDB writer (debug, info, warn, error) | error |
|
|
|
|
| MF_INFLUX_WRITER_PORT | Service HTTP port | 8180 |
|
|
|
|
| MF_INFLUX_WRITER_DB_HOST | InfluxDB host | localhost |
|
|
|
|
| MF_INFLUX_WRITER_DB_PORT | Default port of InfluxDB database | 8086 |
|
|
|
|
| MF_INFLUX_WRITER_DB_USER | Default user of InfluxDB database | mainflux |
|
|
|
|
| MF_INFLUX_WRITER_DB_PASS | Default password of InfluxDB user | mainflux |
|
|
|
|
| MF_INFLUX_WRITER_DB | InfluxDB database name | messages |
|
|
|
|
| MF_INFLUX_WRITER_SUBJECTS_CONFIG | Configuration file path with subjects list | /config/subjects.toml |
|
2018-05-21 16:28:52 +02:00
|
|
|
|
|
|
|
## Deployment
|
|
|
|
|
2018-05-31 12:28:00 +02:00
|
|
|
```yaml
|
2019-10-31 14:04:47 +01:00
|
|
|
version: "3.7"
|
2018-05-31 12:28:00 +02:00
|
|
|
influxdb-writer:
|
|
|
|
image: mainflux/influxdb:[version]
|
|
|
|
container_name: [instance name]
|
|
|
|
expose:
|
|
|
|
- [Service HTTP port]
|
|
|
|
restart: on-failure
|
|
|
|
environment:
|
|
|
|
MF_NATS_URL: [NATS instance URL]
|
2018-09-26 11:58:51 -05:00
|
|
|
MF_INFLUX_WRITER_LOG_LEVEL: [Influx writer log level]
|
2018-05-31 12:28:00 +02:00
|
|
|
MF_INFLUX_WRITER_PORT: [Service HTTP port]
|
2020-04-07 12:02:17 +02:00
|
|
|
MF_INFLUX_WRITER_DB: [InfluxDB name]
|
2018-06-01 15:50:23 +02:00
|
|
|
MF_INFLUX_WRITER_DB_HOST: [InfluxDB host]
|
2018-05-31 12:28:00 +02:00
|
|
|
MF_INFLUX_WRITER_DB_PORT: [InfluxDB port]
|
|
|
|
MF_INFLUX_WRITER_DB_USER: [InfluxDB admin user]
|
|
|
|
MF_INFLUX_WRITER_DB_PASS: [InfluxDB admin password]
|
2020-03-30 18:24:27 +02:00
|
|
|
MF_INFLUX_WRITER_SUBJECTS_CONFIG: [Configuration file path with subjects list]
|
2018-05-31 12:28:00 +02:00
|
|
|
ports:
|
|
|
|
- [host machine port]:[configured HTTP port]
|
2019-05-10 14:36:27 +02:00
|
|
|
volume:
|
2020-03-30 18:24:27 +02:00
|
|
|
- ./subjects.yaml:/config/subjects.yaml
|
2018-05-31 12:28:00 +02:00
|
|
|
```
|
|
|
|
|
2018-05-21 16:28:52 +02:00
|
|
|
To start the service, execute the following shell script:
|
|
|
|
|
|
|
|
```bash
|
|
|
|
# download the latest version of the service
|
2019-11-27 15:29:34 +01:00
|
|
|
git clone https://github.com/mainflux/mainflux
|
2018-05-21 16:28:52 +02:00
|
|
|
|
2019-11-27 15:29:34 +01:00
|
|
|
cd mainflux
|
2018-05-21 16:28:52 +02:00
|
|
|
|
|
|
|
# compile the influxdb
|
|
|
|
make influxdb
|
|
|
|
|
|
|
|
# copy binary to bin
|
|
|
|
make install
|
|
|
|
|
2018-05-31 12:28:00 +02:00
|
|
|
# Set the environment variables and run the service
|
2020-04-07 12:02:17 +02:00
|
|
|
MF_NATS_URL=[NATS instance URL] MF_INFLUX_WRITER_LOG_LEVEL=[Influx writer log level] MF_INFLUX_WRITER_PORT=[Service HTTP port] MF_INFLUX_WRITER_DB=[InfluxDB database name] MF_INFLUX_WRITER_DB_HOST=[InfluxDB database host] MF_INFLUX_WRITER_DB_PORT=[InfluxDB database port] MF_INFLUX_WRITER_DB_USER=[InfluxDB admin user] MF_INFLUX_WRITER_DB_PASS=[InfluxDB admin password] MF_INFLUX_WRITER_SUBJECTS_CONFIG=[Configuration file path with subjects list] $GOBIN/mainflux-influxdb
|
2018-05-31 12:28:00 +02:00
|
|
|
```
|
2018-05-21 16:28:52 +02:00
|
|
|
|
2018-06-01 11:20:44 +02:00
|
|
|
### Using docker-compose
|
|
|
|
|
|
|
|
This service can be deployed using docker containers.
|
2018-09-20 15:32:50 +02:00
|
|
|
Docker compose file is available in `<project_root>/docker/addons/influxdb-writer/docker-compose.yml`. Besides database
|
2018-06-01 11:20:44 +02:00
|
|
|
and writer service, it contains [Grafana platform](https://grafana.com/) which can be used for database
|
2018-09-23 01:53:03 +02:00
|
|
|
exploration and data visualization and analytics. In order to run Mainflux InfluxDB writer, execute the following command:
|
2018-06-01 11:20:44 +02:00
|
|
|
|
|
|
|
```bash
|
2018-09-23 01:53:03 +02:00
|
|
|
docker-compose -f docker/addons/influxdb-writer/docker-compose.yml up -d
|
2018-06-01 11:20:44 +02:00
|
|
|
```
|
|
|
|
|
2018-09-23 01:53:03 +02:00
|
|
|
_Please note that you need to start core services before the additional ones._
|
2018-06-01 11:20:44 +02:00
|
|
|
|
2018-05-21 16:28:52 +02:00
|
|
|
## Usage
|
|
|
|
|
|
|
|
Starting service will start consuming normalized messages in SenML format.
|
2018-05-31 12:28:00 +02:00
|
|
|
|
|
|
|
[doc]: http://mainflux.readthedocs.io
|