Skip to main content

Grafana Deployment Options

Learning Objectives

  • Compare self-managed Grafana vs xScaler Managed Grafana
  • Explain the provisioning service managed Grafana provisioner
  • Describe the managed Grafana billing model
  • Choose the appropriate deployment option for a use case

Option 1: Self-Managed Grafana

You deploy and manage Grafana yourself. xScaler provides the datasource connection details (URLs and API keys); you configure them in your own Grafana instance.

Pros:

  • Full control over Grafana version, plugins, and settings
  • Integrate with existing SSO/SAML
  • No additional cost from xScaler

Cons:

  • You manage upgrades, backups, and HA
  • You manage user access separately from the xScaler portal

Setup Steps

  1. Deploy Grafana (Docker, Helm, Grafana Cloud, etc.)
  2. Get datasource connection details from xScaler portal
  3. Configure datasources (see Datasource Configuration)
  4. Configure user access within your Grafana instance

Option 2: xScaler Managed Grafana

xScaler provisions and manages a Grafana instance per tenant, deployed in the edge cluster. The portal's Managed Grafana feature handles provisioning.

provisioning service

provisioning service is the managed Grafana provisioner. It runs in the edge cluster and:

  1. Polls portal-api for the desired Grafana state per tenant
  2. Installs/upgrades Grafana using Helm
  3. Provisions datasources, API keys, and SMTP settings

Managed Grafana Billing

From docs/grafana-usage-billing-setup.md:

ParameterValue
Price$0.04/pod-hour
Minimum replicas2
Metergrafana_active_hours
Meter formulasum
Billing cadenceHourly (reported every 15 minutes)

The grafana-usage-reporter CronJob runs every 15 minutes:

# charts/portal-xscaler/values.yaml
cronJobs:
grafanaUsageReporter:
schedule: "*/15 * * * *"

Deduplication identifier format:

org_<orgID>_grafana_<grafanaID>_<YYYYMMDDHH>

This prevents double-billing when the CronJob runs within the same UTC hour.

48-hour backfill window: The reporter looks back 48 hours to catch any missed hours due to CronJob failures.


Comparison Table

FeatureSelf-ManagedManaged Grafana
Setup effortYou configurePortal handles it
UpgradesManualAutomatic
HAYou configurexScaler manages
SSO/SAMLYour IdPConfigurable via portal
CostGrafana OSS/Cloud pricing$0.04/pod-hour (min 2 pods)
DatasourcesYou configureAuto-provisioned
PluginsAnyStandard set
IsolationDepends on your setupPer-tenant namespace

Key Takeaways

Session 5.2 Summary
  • Self-managed: bring your own Grafana, configure datasources manually
  • Managed Grafana: xScaler provisions per-tenant Grafana in the edge cluster
  • provisioning service polls portal-api for desired state and applies Helm changes
  • Managed billing: $0.04/pod-hour, minimum 2 replicas, reported every 15 minutes
  • The grafana-usage-reporter CronJob deduplicates by using YYYYMMDDHH identifiers

← Previous: Grafana Overview
Next: Datasource Configuration →