Home Automation Observability With Terraform and Grafana


Being a DevOps and SRE minded person professionally has a big benefit when it comes to home automation. Im constantly looking for ways to make my home automation more efficient and easier to manage. One of the important things to consider in your home automation is observability this usually comes via a some sort of Dashboard usually this is an application or two you use to interact with your smart devices. But as your ecosystem grows and more devices are brought online you need a way to see the full landscape at once. To achieve this I use a combination of Docker Containers running Grafana and InfluxDB.

InfluxDB is a free open source time-series database that helps store and organize data in a way that makes it easy to analyze and visualize. It is commonly used in IoT solutions, where it can collect data from various smart devices and provide a centralized view of the information for better understanding and control. When I started using InfluxDB I decided that my approach was one bucket purpose. So capturing data for my home computer is one bucket and capturing data for my network is another overtime this has grown two ways a large amount of buckets. To visualize and alert on the data I use Grafana.

Grafana another free open source tool is a powerful data visualization and monitoring tool used to display data in an interactive and appealing manner. It allows you to create customizable dashboards, charts, and graphs, making it easier to understand complex information. To better use these features you need data sources and instead manually setting up each data source manually I prefer to use Infrastructure as code tools like Terraform to be able to create and manage a large number of data sources within my Grafana instance.

After deploying my first two buckets by copying and pasting, I realized it would be more efficient to create a module that can cycle through a list of database names for the buckets. And that’s why you’re reading this post!

I’m thrilled to share my first Terraform Module that utilizes the Grafana provider to deploy InfluxDB data sources in a more effective manner. This module supports Grafana OSS, Cloud, and Managed Grafana on Azure, as well as InfluxDB data sources running on premises and InfluxDB Cloud. You can find it in the Terraform Registry at the following link: Terraform Registry Link. Over the next month I’ll continue to import more the IaC management of my Grafana instance into Terraform and will continue to create and release new modules when appropriate.