Dashboards can be used to visualize data collected from devices.
The data can be displayed in various ways, such as graphs, tables, or maps.
The information model defines the data format and the structure of the data.
It is the common denominator between the device and the dashboard.
Dashboard as a Service link Dashboards as a service are backend services, defining data formats and information models.
They usually provide
a device-side API used to upload data a data storage or cache (sliding window storage) a client-side API used to retrieve data a web-based user interface to view data. Examples link Self-Hosted Dashboards link Self-hosting dashboards is an alternative to using dashboards as a service.
It gives you more control over your data and allows you to use your own information model.
The following example uses InfluxDB as a database and Grafana as a dashboard.
Docker is used to orchestrate the services.
version: "3.8"
services:
db:
image: influxdb:latest
ports:
- 8086:8086
volumes:
- influx_data:/var/lib/influxdb2
env_file:
- .env
collect:
image: telegraf:latest
links:
- db
volumes:
- ./telegraf/telegraf.conf:/etc/telegraf/telegraf.conf
env_file:
- .env
dashboard:
image: grafana/grafana:latest
links:
- db
ports:
- 3000:3000
volumes:
- ./grafana/provisioning:/etc/grafana/provisioning
- grafana_data:/var/lib/grafana
env_file:
- .env
volumes:
influx_data:
grafana_data:
[[inputs.mqtt_consumer]]
servers = ["tcp://test.mosquitto.org:1883"]
topics = ["hello"]
data_format = "json"
[[outputs.influxdb_v2]]
urls = ["http://db:8086"]
insecure_skip_verify = true
bucket = "${DOCKER_INFLUXDB_INIT_BUCKET}"
organization = "${DOCKER_INFLUXDB_INIT_ORG}"
token = "${DOCKER_INFLUXDB_INIT_ADMIN_TOKEN}"
apiVersion: 1
datasources:
- name: InfluxDB
type: influxdb
url: http://db:8086
access: proxy
editable: false
isDefault: true
secureJsonData:
token: ${DOCKER_INFLUXDB_INIT_ADMIN_TOKEN}
jsonData:
version: Flux
organization: ${DOCKER_INFLUXDB_INIT_ORG}
defaultBucket: ${DOCKER_INFLUXDB_INIT_BUCKET}
timeInterval: 1s
DOCKER_INFLUXDB_INIT_MODE=setup
DOCKER_INFLUXDB_INIT_USERNAME=ifuser
DOCKER_INFLUXDB_INIT_PASSWORD=changeme
DOCKER_INFLUXDB_INIT_ORG=orgname
DOCKER_INFLUXDB_INIT_BUCKET=bucketname
DOCKER_INFLUXDB_INIT_ADMIN_TOKEN=sometoken
GF_SECURITY_ADMIN_USER=gfuser
GF_SECURITY_ADMIN_PASSWORD=changeme
GF_INSTALL_PLUGINS=