Guides

How to Set Up Grafana for Business KPI Monitoring

Arkzero ResearchApr 23, 20267 min read

Last updated Apr 23, 2026

Grafana is an open-source analytics platform used by more than 20 million people worldwide, best known for infrastructure monitoring but equally capable of tracking business KPIs. By connecting Grafana Cloud to a PostgreSQL or MySQL database and writing a few SQL queries, operations managers and analysts can build live dashboards for revenue, conversion rates, and churn without installing any server software. The free tier supports up to three active users and is enough to cover most small-team reporting needs.
Grafana dashboard showing business KPIs and metrics

What Grafana Does for Business Metrics

Grafana is most often associated with DevOps teams monitoring server uptime, but the same tool works just as well for tracking revenue by week, monitoring trial-to-paid conversion rates, or watching churn in real time. The platform connects directly to SQL databases, runs your queries on a schedule, and renders the results as charts, gauges, or tables inside a browser-based dashboard. You write SQL; Grafana handles the visualization and refresh logic.

This guide covers Grafana Cloud, the hosted version. You do not need to install or manage a server. Setup takes under 30 minutes if your database is already accessible from the internet.

What You Need Before You Start

You will need three things: a Grafana Cloud account (free tier works), a PostgreSQL or MySQL database that accepts inbound connections from external IPs, and the connection credentials for that database. If your database only allows connections from within a private network, you will need to use a Grafana private data source connect agent, which the free tier supports with some configuration. This guide assumes a standard internet-accessible PostgreSQL database.

Grafana Cloud's free plan includes three active users, 10,000 series for metrics, 50 GB of log storage, and 14-day data retention for dashboards. For most small teams tracking a handful of KPIs, this is sufficient.

Step 1: Create Your Grafana Cloud Account

Go to grafana.com and click Start for free. Enter your email, choose a subdomain for your workspace (for example, yourcompany.grafana.net), and complete account creation. Grafana will send a confirmation email. After confirming, you land in the Grafana Cloud portal.

From the portal, click Launch in the Grafana section. This opens your Grafana instance, which is the main interface where you build dashboards and manage data sources.

Step 2: Add Your PostgreSQL Database as a Data Source

In the left sidebar, click Connections, then Add new connection. Type PostgreSQL in the search field and select the PostgreSQL data source from the results. Click Add new data source in the top right.

You will see a settings form. Fill in the following fields:

  • Host: Your database host and port, for example db.yourcompany.com:5432
  • Database: The name of the database you want to query
  • User and Password: A read-only database user dedicated to Grafana (always create a read-only user rather than using admin credentials)
  • TLS/SSL Mode: Set to require if your database uses SSL, which it should for any production database

Leave the other fields at their defaults. Click Save and test at the bottom. If Grafana returns a green confirmation that the database connection is working, your data source is ready.

Step 3: Write SQL Queries for Your Business Metrics

Grafana runs the SQL you write and maps the results to a visualization. For time-series charts, your query needs to return a timestamp column and a value column. For summary tables, any column structure works.

Here is an example query for a weekly revenue trend, assuming you have an orders table with a created_at timestamp and a revenue column:

SELECT
  date_trunc('week', created_at) AS week,
  SUM(revenue) AS total_revenue
FROM orders
WHERE created_at >= NOW() - INTERVAL '90 days'
GROUP BY week
ORDER BY week;

For conversion rate from trial to paid, assuming a users table with a signed_up_at column and a converted_at column that is null until conversion:

SELECT
  date_trunc('week', signed_up_at) AS cohort_week,
  COUNT(*) AS total_signups,
  COUNT(converted_at) AS conversions,
  ROUND(100.0 * COUNT(converted_at) / COUNT(*), 1) AS conversion_rate_pct
FROM users
WHERE signed_up_at >= NOW() - INTERVAL '12 weeks'
GROUP BY cohort_week
ORDER BY cohort_week;

Grafana also supports template variables, which let dashboard viewers filter by date range, region, or product without editing SQL directly. You define a variable once, reference it in queries with the $variable_name syntax, and Grafana renders a dropdown at the top of the dashboard.

Step 4: Build Your Dashboard

From the left sidebar, click Dashboards, then New, then New dashboard. Click Add visualization. Grafana asks which data source to use; select the PostgreSQL connection you configured in Step 2.

Paste your SQL query into the query editor. In the panel editor on the right, select the visualization type: Time series for trends over time, Stat for a single summary number (total revenue this month, for example), or Table for tabular data. Grafana renders a preview as you type.

Set a meaningful panel title, adjust the Y-axis units if needed (for example, set unit to Currency for revenue panels), and click Apply. Repeat this process for each KPI you want to track. Drag and resize panels on the dashboard canvas to arrange them into a layout that makes sense for your team.

Save the dashboard with a name and optional folder. Dashboards auto-refresh at an interval you control; a 5-minute refresh is appropriate for most business metrics.

Step 5: Set Alerts on KPI Thresholds

Grafana can send an alert when a metric crosses a threshold. In the panel editor, click the Alert tab. Click New alert rule. Define the condition: for example, alert when weekly revenue drops below $10,000. Choose an evaluation interval (every 5 minutes, for instance) and a pending period (how long the condition must be true before an alert fires, to avoid false positives on brief data gaps).

Grafana sends alerts through contact points. Go to Alerting in the left sidebar, then Contact points, and configure email, Slack, or PagerDuty. Map your alert rule to a contact point, and Grafana will notify your team automatically when a KPI falls out of range.

Practical Limits and What to Watch Out For

Grafana executes your SQL against your database every time a dashboard refreshes. On a 5-minute refresh with 10 panels, that is 10 queries every 5 minutes. For large tables without the right indexes, this can create meaningful load on your database. Add indexes on timestamp columns you filter frequently, and consider using materialized views or a read replica for Grafana queries if your database serves production traffic.

Grafana does not transform or store your data. It reads directly from your database on every query. If you need to reshape or aggregate data before it reaches Grafana, do that transformation in your database layer with a view or materialized view, not in the Grafana query editor.

The free tier limits dashboard history to 14 days. Longer retention requires a paid plan starting at around $299 per month for a team of ten.

If your data lives in spreadsheets or CSV exports rather than a live database, setting up Grafana adds overhead that may not be worth it. Tools designed for file-based analysis tend to be faster to get running in that case. VSLZ, for instance, lets you upload a CSV or connect a data source and get charts and summaries from a plain-English prompt, with no SQL required.

Summary

Grafana Cloud gives business teams a free, hosted path to live KPI dashboards backed by their existing SQL database. The setup involves creating an account, adding a PostgreSQL or MySQL data source with a read-only user, writing SQL queries for each metric, and building panels inside a browser-based editor. Alerts notify your team when a KPI moves outside an expected range. The main operational concern is database query load: index your timestamp columns and consider a read replica if Grafana queries compete with production traffic.

FAQ

Is Grafana free for business use?

Grafana Cloud has a free tier that supports up to three active users, 10,000 metric series, 50 GB of log storage, and 14-day dashboard retention. The open-source self-hosted version is also free with no user limit, but requires you to manage your own server. For larger teams or longer data retention, paid plans start at around $299 per month.

Can Grafana connect to PostgreSQL and MySQL?

Yes. Grafana has built-in support for PostgreSQL, MySQL, Microsoft SQL Server, SQLite, and several other relational databases. You add the database as a data source by entering the host, port, database name, and credentials. Grafana runs SQL queries against the database and renders the results as charts or tables.

Do I need to know SQL to use Grafana?

Basic SQL knowledge is required for building custom dashboards in Grafana. You write SELECT queries that return a timestamp column and value columns, and Grafana maps those to visualizations. Grafana does not generate SQL from natural language. If you need to avoid SQL entirely, tools like VSLZ or Julius AI offer natural language querying on top of your data.

How do I set up alerts in Grafana for business metrics?

In Grafana, open the panel editor for any dashboard panel, click the Alert tab, and create a new alert rule. Define the threshold condition (for example, revenue below $10,000 per week), set an evaluation interval and a pending period to avoid false positives, then assign the rule to a contact point such as email, Slack, or PagerDuty. Grafana evaluates the condition on the interval you set and fires a notification when the threshold is crossed.

What is the difference between Grafana Cloud and self-hosted Grafana?

Grafana Cloud is a fully managed SaaS version hosted by Grafana Labs. You sign up, configure data sources, and build dashboards without managing any infrastructure. Self-hosted Grafana runs on your own server or cloud instance and gives you full control over storage and configuration, but requires ongoing maintenance. For most business teams, Grafana Cloud is the faster starting point.

Related

OpenMetadata data catalog interface showing database schema discovery
Guides

How to Set Up OpenMetadata for Data Discovery

OpenMetadata is an open-source data catalog that gives teams a single place to discover, document, and govern their data assets. Setting it up takes under 30 minutes using Docker: spin up the containers, log into the UI at localhost:8585, then connect your first data source using one of 90+ pre-built connectors. Once ingestion runs, every table, column, and owner is searchable and lineage-linked across your entire stack.

Arkzero Research · Apr 29, 2026
Streamlit logo on a clean white background
Guides

How to Build a Data Dashboard with Streamlit

Streamlit is an open-source Python library that turns a script into a shareable web dashboard without any front-end code. Install it with pip, write a Python file that loads your CSV with pandas, add sidebar widgets for filtering, and render interactive charts with Plotly. Push the file to GitHub, connect it to Streamlit Community Cloud, and anyone with the URL can view live results. No server configuration required.

Arkzero Research · Apr 29, 2026
Airbyte Cloud data integration platform
Guides

How to Set Up Airbyte Cloud for Data Syncing

Airbyte Cloud is a managed data integration platform that syncs data from SaaS tools, databases, and APIs into a central warehouse without requiring Docker, infrastructure, or engineering resources. A free 30-day trial lets you connect sources like Salesforce, HubSpot, Stripe, or Google Sheets to destinations like BigQuery, Snowflake, or Postgres in minutes. This guide walks through the full setup from account creation to your first automated sync.

Arkzero Research · Apr 29, 2026