Case studies

Grafana dashboards and customer alerts as code for an energy SaaS company

Grafana across three AWS environments in Pulumi: 25 dashboards built from templates, alerts routed to each customer, and a move from Cognito to Auth0.

Client and industry

Onu Energy

Energy procurement SaaS, Germany

The problem

The client's product is Grafana: their customers log in to see energy prices, positions and consumption. Every new customer meant copying dashboards and alert rules by hand, and a mistake could send one customer's alert to another.

What we did

  • Grafana on AWS as code. Three environments defined in Pulumi, with a separate alerting-only Grafana instance in production reachable only through a bastion host. Changes ship through GitHub Actions.
  • Dashboards from templates. We built 25 dashboards. A pipeline watches template dashboards and deploys a copy for each customer folder with the right data source and variables.
  • Customer alerts as code. Alert rules are SQL files. The pipeline reads the customer table and creates contact points, notification policies and mute timings per customer for electricity, gas and futures alerts. In development every alert goes to the internal team, never to a real customer.
  • Data and reports. Pipelines load data from customer APIs into PostgreSQL, where dbt models shape it for the panels. Dashboards export to PDF reports.
  • Login. We migrated 15 customers from Amazon Cognito to Auth0 single sign-on.

Stack used

Grafana, Pulumi, AWS, GitHub Actions, PostgreSQL, dbt, Amazon Cognito and Auth0.

Duration

24 months

Outcome

Grafana became the client's product: a per-customer dashboard and alert platform that let them ship fast and win their first paying customers. It ran in production for over two years, until the company moved to its own website

Start with an Observability Audit

In one to two weeks we review your monitoring, logs and alerts and tell you what to fix first.

Request an Observability Audit