Installing Grafana with Nuon
Install Grafana and Prometheus into your customers' cloud accounts with Nuon's BYOC platform, utilizing Helm, Terraform, and Kubernetes manifest Components and Day-2 Action scripts

Mark Milligan
VP of Revenue


Installing Grafana with Nuon
This is another post in a series where we show how to install a software vendor’s product with Nuon in a Bring Your Own Cloud (BYOC) way where Grafana is installed in a customer’s cloud account for stronger security and easier management.
Grafana is an open-source platform for monitoring and observability that allows users to visualize, analyze, and understand their data through customizable dashboards and alerts.
Prometheus is an open-source monitoring and alerting toolkit that collects and stores time-series metrics from systems and applications.
Grafana connects to Prometheus as a data source, enabling users to visualize and analyze those metrics through customizable dashboards. Together, they provide powerful observability for infrastructure like PostgreSQL, especially when paired with exporters such as the Postgres exporter.
The Grafana App Config along with other example App Configs are located in a Nuon GitHub repo.
Feel free to request access to the Nuon trial and use the Nuon CLI to sync this App Config to Nuon’s cloud and install Grafana into your cloud account.
Benefits of BYOC
Self-hosting a software product requires the customer to read the vendor’s docs while being responsible for installing and upgrading the software. This requires maintaining technically-competent DevOps staff and staying current on the latest releases. On the plus side, the software and data run securely in the customer’s cloud infrastructure.
If the vendor offers its software as a multi-tenant or single-tenant cloud SaaS, the customer is free of installation and upgrade efforts, which are performed by the vendor. The customer however accepts the risk that their data is residing in the vendor’s cloud infrastructure.
Bring Your Own Cloud (BYOC) takes the best of self-hosting, specifically data sovereignty and security, and marries it with the best of cloud SaaS where customers get instant access and do not have to toil or worry about installations and upgrades.
Creating the Grafana App Config
One goal of this App Config is to demonstrate Grafana showing Prometheus metric data from a PostgreSQL database called exampledb that is not the Grafana data plane PostgreSQL database. This App Config deploys both PostgreSQL databases in different namespaces in an EKS cluster. A Postgres Exporter is deployed into the exampledb namespace and Prometheus and Grafana are deployed into a grafana namespace.
The App Config leverages Kubernetes secrets for PostgreSQL database access and there is an ALB and certificate in the VPC for cluster and Grafana dashboard access. The App Config has several Action scripts including an installation Action script that configures the default storage class and other Action scripts for day-2 operations like an ALB health check and to simulate heavy PostgreSQL usage to produce good activity in the Grafana dashboards.
Several PostgreSQL dashboards are automatically downloaded and installed as part of the Grafana Helm deployment as well as making one of the dashboards the default view when a user logs into Grafana. Managing the entire installation is the Nuon Runner which is in an EC2 VM in the same VPC as the Kubernetes cluster.
Nuon App Config Components
Both PostgreSQL instances, the PostgreSQL Exporter, Prometheus, Grafana and the Application Load Balancer are deployed with Helm. The database secrets are installed with Kubernetes Manifests and the Certificate with Terraform. The Actions are scripts using kubectl to exec into the container to perform bash and psql operations.
Example Database Foundation
- PostgreSQL Database (1-exampledb-postgres.toml) - The target database to monitor with persistent storage and connection pooling. Deployed with Helm into the exampledb namespace.
- PostgreSQL Secrets (2-exampledb-secrets.toml) - Connection credentials and datasource URLs for secure database access. Applied as a Kubernetes manifest into the grafana namespace so Grafana can connect to the exampledb database to monitor it.
Grafana Foundation
- Grafana Database (1-grafana-postgres.toml) - Dedicated PostgreSQL instance for Grafana's internal data storage. Deployed with Helm into the grafana namespace.
- Grafana Secrets (2-grafana-secrets.toml) - Database connection strings and admin credentials for Grafana configuration. Applied as a Kubernetes manifest into the grafana namespace.
Metrics Collection
- Postgres Exporter (3-postgres-exporter.toml) - Metrics collection service that exposes PostgreSQL performance data to Prometheus. Deployed with Helm into the exampledb namespace.
Monitoring & Visualization
- Prometheus (4-prometheus.toml) - Time-series database that scrapes metrics from postgres-exporter and system components. Deployed with Helm into the grafana namespace.
- Grafana (5-grafana.toml) - Visualization platform with pre-configured PostgreSQL monitoring dashboards from Grafana.com. Deployed with Helm into the grafana namespace.
External Access
- SSL Certificate (6-certificate.toml) - TLS certificate management for secure HTTPS access. Deployed with Terraform into the VPC.
- Application Load Balancer (7-alb.toml) - External access and traffic routing to Grafana with SSL termination. Deployed with Helm into the VPC.
Actions
Database Load Testing
- Simulate DB Activity (simulate-db-activity.toml) - A Bourne shell script that creates intensive database workload with 10K users, 50K orders, and up to 200 concurrent connections
- Generates targeted metrics for dashboard gauges: row operations, transactions, cache hits, and connection activity
Load Management
- Stop DB Activity (stop-db-activity.toml) - A Bourne shell script that initiates emergency termination of all simulation processes and database connections
- Comprehensive cleanup of temporary files and connection states for safe repeated testing
These Components and Actions show the proper dependency chain: databases → secrets → exporters → monitoring → visualization → external access.
Installing Grafana in a Customer Cloud
The Grafana App Config and their TOML files are validated and uploaded to your Nuon control plane using the Nuon CLI.
git clone https://github.com/nuonco/example-app-configs
cd ~/example-app-configs/grafana
nuon login
nuon apps create -n grafana
nuon apps sync .
The components are built as OCI artifacts and placed in a cloud container registry.
Through the Nuon web dashboard, an Install is kicked off and inputs provide defaults for the target installation.
A cloud provider stack is shared with the target cloud account profile which creates a VPC and a VM with the Nuon runner which phones home to get instructions or steps from the App Config to install the Grafana app.
Enterprise features include an Approvals workflow that asks the operator permission to proceed with an Apply step for each component in the App Config.
Once the installation is complete, the public URL is included in the Install’s README markdown in the Nuon dashboard and can be shared with the target cloud account user base to start using the Grafana application.
Grafana is an open-source platform for monitoring and observability that allows users to visualize, analyze, and understand their data through customizable dashboards and alerts. Grafana's user-friendly interface enables users to create interactive visualizations such as graphs, charts, and heatmaps, facilitating real-time insights and decision-making. include Uber, NVIDIA, BlackRock, Palantir, Wells Fargo, SAP, and Citi.
Prometheus is an open-source monitoring and alerting toolkit that collects and stores time-series metrics from systems and applications. Grafana connects to Prometheus as a data source, enabling users to visualize and analyze those metrics through customizable dashboards. Together, they provide powerful observability for infrastructure like PostgreSQL, especially when paired with exporters such as the Postgres exporter.
Software vendors like Grafana and Prometheus can invest in Nuon to unlock new revenue streams with customers who want a SaaS experience of instant access and no upgrade hassles while retaining their data in their cloud accounts.
Global 2000 companies and government agencies can invest in Nuon to package up and deploy all of their vendor and in-house developed apps for easier DevOps management, stronger security, and a SaaS-like multi-cloud experience.