Mainflux.mainflux/readers/timescale
Washington Kigani Kamadi e2992cbede
NOISSUE - Change import name aliases (#1868)
* Change import name aliases

Signed-off-by: WashingtonKK <washingtonkigan@gmail.com>

* Change import name aliases

Signed-off-by: WashingtonKK <washingtonkigan@gmail.com>

* Change import aliases

Signed-off-by: WashingtonKK <washingtonkigan@gmail.com>

* Remove unused aliases

Signed-off-by: WashingtonKK <washingtonkigan@gmail.com>

Fix aliases

Signed-off-by: WashingtonKK <washingtonkigan@gmail.com>

FIx errors

Signed-off-by: WashingtonKK <washingtonkigan@gmail.com>

Fix error

Signed-off-by: WashingtonKK <washingtonkigan@gmail.com>

FIx merge

Signed-off-by: WashingtonKK <washingtonkigan@gmail.com>

FIx merge

Signed-off-by: WashingtonKK <washingtonkigan@gmail.com>

FIx merge

Signed-off-by: WashingtonKK <washingtonkigan@gmail.com>

* Fix import alias

Signed-off-by: WashingtonKK <washingtonkigan@gmail.com>

* Fix errors

Signed-off-by: WashingtonKK <washingtonkigan@gmail.com>

* Fix linter

Signed-off-by: WashingtonKK <washingtonkigan@gmail.com>

* Fix linter

Signed-off-by: WashingtonKK <washingtonkigan@gmail.com>

* Fix import

Signed-off-by: WashingtonKK <washingtonkigan@gmail.com>

* Add linter to CI pipeline

Signed-off-by: WashingtonKK <washingtonkigan@gmail.com>

* Changes

Signed-off-by: WashingtonKK <washingtonkigan@gmail.com>

* Remove unused aliases

Signed-off-by: WashingtonKK <washingtonkigan@gmail.com>

* Fix merge issues

Signed-off-by: WashingtonKK <washingtonkigan@gmail.com>

* Fix gci

Signed-off-by: WashingtonKK <washingtonkigan@gmail.com>

* Fix gci

Signed-off-by: WashingtonKK <washingtonkigan@gmail.com>

* Fix gci

Signed-off-by: WashingtonKK <washingtonkigan@gmail.com>

* Add gofumpt

Signed-off-by: WashingtonKK <washingtonkigan@gmail.com>

* Remove multiple gofupmt in CI

Signed-off-by: WashingtonKK <washingtonkigan@gmail.com>

* Remove unnecessary changes

Signed-off-by: WashingtonKK <washingtonkigan@gmail.com>

* Fix linter

Signed-off-by: WashingtonKK <washingtonkigan@gmail.com>

* Fix CI pipeline

Signed-off-by: WashingtonKK <washingtonkigan@gmail.com>

---------

Signed-off-by: WashingtonKK <washingtonkigan@gmail.com>
2023-08-11 11:30:25 +02:00
..
README.md NOISSUE - Sync Env Veriables With Docker Deployment (#1841) 2023-07-31 14:38:35 +02:00
doc.go MF-1478 - TimescaleDB writer and reader add-on (#1542) 2022-01-18 12:08:54 +01:00
init.go MF-1506 - Group-based Access Control (#1716) 2023-06-14 12:40:37 +02:00
messages.go MF-1361 - Add StringValue and DataValue comparison filters (#1714) 2023-07-28 02:44:15 +02:00
messages_test.go MF-1361 - Add StringValue and DataValue comparison filters (#1714) 2023-07-28 02:44:15 +02:00
setup_test.go NOISSUE - Change import name aliases (#1868) 2023-08-11 11:30:25 +02:00

README.md

Timescale reader

Timescale reader provides message repository implementation for Timescale.

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
MF_TIMESCALE_READER_LOG_LEVEL Service log level info
MF_TIMESCALE_READER_HTTP_HOST Service HTTP host localhost
MF_TIMESCALE_READER_HTTP_PORT Service HTTP port 8180
MF_TIMESCALE_READER_HTTP_SERVER_CERT Service HTTP server certificate path ""
MF_TIMESCALE_READER_HTTP_SERVER_KEY Service HTTP server key path ""
MF_TIMESCALE_HOST Timescale DB host localhost
MF_TIMESCALE_PORT Timescale DB port 5432
MF_TIMESCALE_USER Timescale user mainflux
MF_TIMESCALE_PASS Timescale password mainflux
MF_TIMESCALE_NAME Timescale database name messages
MF_TIMESCALE_SSL_MODE Timescale SSL mode disabled
MF_TIMESCALE_SSL_CERT Timescale SSL certificate path ""
MF_TIMESCALE_SSL_KEY Timescale SSL key ""
MF_TIMESCALE_SSL_ROOT_CERT Timescale SSL root certificate path ""
MF_THINGS_AUTH_GRPC_URL Things service Auth gRPC URL localhost:7000
MF_THINGS_AUTH_GRPC_TIMEOUT Things service Auth gRPC timeout in seconds 1s
MF_THINGS_AUTH_GRPC_CLIENT_TLS Things service Auth gRPC TLS enabled flag false
MF_THINGS_AUTH_GRPC_CA_CERTS Things service Auth gRPC CA certificates ""
MF_AUTH_GRPC_URL Users service gRPC URL localhost:7001
MF_AUTH_GRPC_TIMEOUT Users service gRPC timeout in seconds 1s
MF_AUTH_GRPC_CLIENT_TLS Users service gRPC TLS enabled flag false
MF_AUTH_GRPC_CA_CERT Users service gRPC CA certificate ""
MF_JAEGER_URL Jaeger server URL http://jaeger:14268/api/traces
MF_SEND_TELEMETRY Send telemetry to mainflux call home server true
MF_TIMESCALE_READER_INSTANCE_ID Timescale reader instance ID ""

Deployment

The service itself is distributed as Docker container. Check the timescale-reader service section in docker-compose 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/mainflux/mainflux

cd mainflux

# compile the timescale writer
make timescale-writer

# copy binary to bin
make install

# Set the environment variables and run the service
MF_TIMESCALE_READER_LOG_LEVEL=[Service log level] \
MF_TIMESCALE_READER_HTTP_HOST=[Service HTTP host] \
MF_TIMESCALE_READER_HTTP_PORT=[Service HTTP port] \
MF_TIMESCALE_READER_HTTP_SERVER_CERT=[Service HTTP server cert] \
MF_TIMESCALE_READER_HTTP_SERVER_KEY=[Service HTTP server key] \
MF_TIMESCALE_HOST=[Timescale host] \
MF_TIMESCALE_PORT=[Timescale port] \
MF_TIMESCALE_USER=[Timescale user] \
MF_TIMESCALE_PASS=[Timescale password] \
MF_TIMESCALE_NAME=[Timescale database name] \
MF_TIMESCALE_SSL_MODE=[Timescale SSL mode] \
MF_TIMESCALE_SSL_CERT=[Timescale SSL cert] \
MF_TIMESCALE_SSL_KEY=[Timescale SSL key] \
MF_TIMESCALE_SSL_ROOT_CERT=[Timescale SSL Root cert] \
MF_THINGS_AUTH_GRPC_URL=[Things service Auth GRPC URL] \
MF_THINGS_AUTH_GRPC_TIMEOUT=[Things service Auth gRPC request timeout in seconds] \
MF_THINGS_AUTH_GRPC_CLIENT_TLS=[Things service Auth gRPC TLS enabled flag] \
MF_THINGS_AUTH_GRPC_CA_CERTS=[Things service Auth gRPC CA certificates] \
MF_AUTH_GRPC_URL=[Users service Auth gRPC URL] \
MF_AUTH_GRPC_TIMEOUT=[Users service Auth gRPC request timeout in seconds] \
MF_AUTH_GRPC_CLIENT_TLS=[Users service Auth gRPC TLS enabled flag] \
MF_AUTH_GRPC_CA_CERT=[Users service Auth gRPC CA certificates] \
MF_JAEGER_URL=[Jaeger server URL] \
MF_SEND_TELEMETRY=[Send telemetry to mainflux call home server] \
MF_TIMESCALE_READER_INSTANCE_ID=[Timescale reader instance ID] \
$GOBIN/mainflux-timescale-reader

Usage

Starting service will start consuming normalized messages in SenML format.

Comparator Usage Guide:

Comparator Usage Example
eq Return values that are equal to the query eq["active"] -> "active"
ge Return values that are substrings of the query ge["tiv"] -> "active" and "tiv"
gt Return values that are substrings of the query and not equal to the query gt["tiv"] -> "active"
le Return values that are superstrings of the query le["active"] -> "tiv"
lt Return values that are superstrings of the query and not equal to the query lt["active"] -> "active" and "tiv"

Official docs can be found here.