influxdb

package
v1.0.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 3, 2024 License: Apache-2.0 Imports: 10 Imported by: 0

README

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.

Variable Description Default
MG_INFLUX_WRITER_LOG_LEVEL Log level for InfluxDB writer (debug, info, warn, error) info
MG_INFLUX_WRITER_CONFIG_PATH Config file path with message broker subjects list, payload type and content-type /configs.toml
MG_INFLUX_WRITER_HTTP_HOST Service HTTP host
MG_INFLUX_WRITER_HTTP_PORT Service HTTP port 9006
MG_INFLUX_WRITER_HTTP_SERVER_CERT Path to server certificate in pem format
MG_INFLUX_WRITER_HTTP_SERVER_KEY Path to server key in pem format
MG_INFLUXDB_PROTOCOL InfluxDB protocol http
MG_INFLUXDB_HOST InfluxDB host name magistrala-influxdb
MG_INFLUXDB_PORT Default port of InfluxDB database 8086
MG_INFLUXDB_ADMIN_USER Default user of InfluxDB database magistrala
MG_INFLUXDB_ADMIN_PASSWORD Default password of InfluxDB user magistrala
MG_INFLUXDB_NAME InfluxDB database name magistrala
MG_INFLUXDB_BUCKET InfluxDB bucket name magistrala-bucket
MG_INFLUXDB_ORG InfluxDB organization name magistrala
MG_INFLUXDB_TOKEN InfluxDB API token magistrala-token
MG_INFLUXDB_DBURL InfluxDB database URL
MG_INFLUXDB_USER_AGENT InfluxDB user agent
MG_INFLUXDB_TIMEOUT InfluxDB client connection readiness timeout 1s
MG_INFLUXDB_INSECURE_SKIP_VERIFY InfluxDB client connection insecure skip verify false
MG_MESSAGE_BROKER_URL Message broker instance URL nats://localhost:4222
MG_JAEGER_URL Jaeger server URL http://jaeger:14268/api/traces
MG_SEND_TELEMETRY Send telemetry to magistrala call home server true
MG_INFLUX_WRITER_INSTANCE_ID InfluxDB writer instance ID

Deployment

The service itself is distributed as Docker container. Check the influxdb-writer service section in docker-compose file to see how service is deployed.

To start the service, execute the following shell script:

# download the latest version of the service
git clone https://github.com/andychao217/magistrala

cd magistrala

# compile the influxdb
make influxdb

# copy binary to bin
make install

# Set the environment variables and run the service
MG_INFLUX_WRITER_LOG_LEVEL=[Influx writer log level] \
MG_INFLUX_WRITER_CONFIG_PATH=[Config file path with Message broker subjects list, payload type and content-type] \
MG_INFLUX_WRITER_HTTP_HOST=[Service HTTP host] \
MG_INFLUX_WRITER_HTTP_PORT=[Service HTTP port] \
MG_INFLUX_WRITER_HTTP_SERVER_CERT=[Service HTTP server cert] \
MG_INFLUX_WRITER_HTTP_SERVER_KEY=[Service HTTP server key] \
MG_INFLUXDB_PROTOCOL=[InfluxDB protocol] \
MG_INFLUXDB_HOST=[InfluxDB database host] \
MG_INFLUXDB_PORT=[InfluxDB database port] \
MG_INFLUXDB_ADMIN_USER=[InfluxDB admin user] \
MG_INFLUXDB_ADMIN_PASSWORD=[InfluxDB admin password] \
MG_INFLUXDB_NAME=[InfluxDB database name] \
MG_INFLUXDB_BUCKET=[InfluxDB bucket] \
MG_INFLUXDB_ORG=[InfluxDB org] \
MG_INFLUXDB_TOKEN=[InfluxDB token] \
MG_INFLUXDB_DBURL=[InfluxDB database url] \
MG_INFLUXDB_USER_AGENT=[InfluxDB user agent] \
MG_INFLUXDB_TIMEOUT=[InfluxDB timeout] \
MG_INFLUXDB_INSECURE_SKIP_VERIFY=[InfluxDB insecure skip verify] \
MG_MESSAGE_BROKER_URL=[Message broker instance URL] \
MG_JAEGER_URL=[Jaeger server URL] \
MG_SEND_TELEMETRY=[Send telemetry to magistrala call home server] \
MG_INFLUX_WRITER_INSTANCE_ID=[Influx writer instance ID] \
$GOBIN/magistrala-influxdb
Using docker-compose

This service can be deployed using docker containers. Docker compose file is available in <project_root>/docker/addons/influxdb-writer/docker-compose.yml. Besides database and writer service, it contains InfluxData Web Admin Interface which can be used for database exploration and data visualization and analytics. In order to run Magistrala InfluxDB writer, execute the following command:

docker compose -f docker/addons/influxdb-writer/docker-compose.yml up -d

And, to use the default .env file, execute the following command:

docker compose -f docker/addons/influxdb-writer/docker-compose.yml up --env-file docker/.env -d

Please note that you need to start core services before the additional ones.

Usage

Starting service will start consuming normalized messages in SenML format.

Official docs can be found here.

Documentation

Overview

Package influxdb contains the domain concept definitions needed to support Magistrala InfluxDB writer service functionality.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func NewAsync

func NewAsync(client influxdb2.Client, config RepoConfig) consumers.AsyncConsumer

func NewSync

func NewSync(client influxdb2.Client, config RepoConfig) consumers.BlockingConsumer

NewSync returns new InfluxDB writer.

Types

type RepoConfig

type RepoConfig struct {
	Bucket string
	Org    string
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL