Skip to main content
[ PIER ]

Grafana

The open observability platform — dashboards, alerts, and explore.

Service #monitoring#dashboards#analytics#metrics#visualization

Grafana is the world's most-deployed open-source observability platform. It connects to Prometheus, Loki, Tempo, PostgreSQL, MySQL, Elasticsearch, CloudWatch, and 50+ other data sources to render unified dashboards, alerts, and explore views. Pier deploys the official Docker image with a strong admin password and persistent dashboard storage.

Deploy with Pier

  1. 1 Open the Pier dashboard and click Add service.
  2. 2 Pick Grafana from the template list.
  3. 3 Choose the version, set a service name, and Pier provisions the container, storage, and ports automatically.
  4. 4 Attach a domain if you want HTTPS. Traefik auto-provisions the Let's Encrypt certificate.

What is Grafana?

Grafana is the de-facto open-source dashboard platform for time-series data, metrics, logs, and traces. Started in 2014 as a fork of Kibana, it has grown into a 50+ million download project at the centre of the open observability ecosystem. It connects to virtually every data source — Prometheus, Loki, Tempo (the “LGTM” stack), Elasticsearch, PostgreSQL, MySQL, ClickHouse, InfluxDB, CloudWatch, BigQuery — and renders unified dashboards, alerts, and Explore views.

Where it shines: pulling multiple data sources into one view, building templated dashboards with variables and dropdowns, and routing alerts to the messaging platform your team already uses. Where it doesn’t: it’s a visualization layer — you still need a metrics/logs/traces backend (Prometheus, Loki, etc.) for it to consume.

How Pier deploys it

Pier uses the official grafana/grafana Docker image. Default port is 3000/tcp internally. The data volume mounts at /var/lib/grafana, holding the SQLite metadata DB and any uploaded plugins. Pier generates a strong GF_SECURITY_ADMIN_PASSWORD on creation; the username is admin.

For HTTPS, attach a domain in Pier’s Domains tab — Traefik issues a Let’s Encrypt certificate automatically. Grafana’s GF_SERVER_ROOT_URL is inferred from the X-Forwarded-* headers Traefik sends, so links and embeds work without extra config.

Plug it into other Pier services by configuring data sources in the UI: the grafana-postgresql template pre-wires a PostgreSQL data source for you; otherwise add Prometheus, Loki, ClickHouse, etc. manually.

When NOT to use Grafana

If you need a polished SaaS observability platform with built-in agents and zero setup, look at Datadog, New Relic, or Honeycomb. If you only need a simple “uptime check” dashboard, lighter tools (Uptime Kuma, Beszel) are faster. Grafana shines when you have multiple data sources and want one pane of glass.

Key features

50+ data source plugins

Prometheus, Loki, Tempo, InfluxDB, PostgreSQL, MySQL, ClickHouse, Elasticsearch, CloudWatch, Azure Monitor, Google Cloud Monitoring, MongoDB, Snowflake, BigQuery, and dozens of community plugins.

Unified dashboards

Combine metrics, logs, and traces in one panel. Variables, annotations, templating, and repeating rows for dynamic dashboards.

Alerting & on-call

Built-in alert rules with multi-step routing — Telegram, Slack, Discord, PagerDuty, Opsgenie, webhooks. Integrates with Grafana OnCall for full incident workflow.

Explore view

Ad-hoc query view for logs, metrics, and traces. Quickly correlate spikes in metrics with log lines without writing a dashboard.

Provisioning as code

Dashboards, data sources, alerts can be provisioned from YAML/JSON in the container — keep observability in your Git repo.

Auth integrations

LDAP, OAuth2 (Google, GitHub, GitLab, Azure AD, Okta, Auth0), SAML (Enterprise), and proxy auth. Pier ships the OSS edition; upgrade to Enterprise if you need SAML or fine-grained RBAC.

Use cases

Application metrics dashboards

Wire Prometheus → Grafana for system + app metrics. The canonical stack since 2014.

Self-hosted BI on SQL

Build BI dashboards on top of PostgreSQL, MySQL, ClickHouse, or BigQuery — without paying Tableau or Looker.

Log search & alerting (Loki)

Pair with Grafana Loki for log aggregation; Explore + LogQL gives an Elastic-like experience at a fraction of the storage cost.

Synthetic monitoring & SLOs

Define Service Level Objectives, track error budgets, and visualize burn rates — without buying Datadog.

IoT & industrial telemetry

Connect Grafana to TimescaleDB, InfluxDB, or MQTT brokers for real-time IoT dashboards.

Code examples

Provision a data source from YAML yaml
# /etc/grafana/provisioning/datasources/postgres.yaml
apiVersion: 1
datasources:
  - name: PostgreSQL
    type: postgres
    url: postgres-host:5432
    user: grafana_ro
    jsonData:
      database: appdb
      sslmode: disable
    secureJsonData:
      password: ${GRAFANA_PG_PASSWORD}
Provision a dashboard yaml
# /etc/grafana/provisioning/dashboards/dashboards.yaml
apiVersion: 1
providers:
  - name: 'Default'
    folder: ''
    type: file
    options:
      path: /var/lib/grafana/dashboards
Define an alert rule yaml
apiVersion: 1
groups:
  - name: app-alerts
    interval: 30s
    rules:
      - uid: high-error-rate
        title: High HTTP 5xx error rate
        condition: B
        data:
          - refId: A
            datasourceUid: PROM
            model:
              expr: sum(rate(http_requests_total{code=~"5.."}[5m]))
        for: 2m
Embed a panel via iframe html
<iframe
  src="https://grafana.example.com/d-solo/abc123/myboard?panelId=5"
  width="600" height="300" frameborder="0"></iframe>

How it compares

vs Datadog Datadog is managed, polished, and expensive ($15-31/host/month). Grafana is OSS, self-hosted, free at the base — equivalent functionality for most teams at a fraction of the cost.
vs Kibana Kibana is purpose-built for Elasticsearch. Grafana is multi-source and visually richer. Many teams use both — Kibana for log investigation, Grafana for unified dashboards.
vs Metabase / Superset Metabase and Superset focus on BI/exploration of SQL data. Grafana is stronger for time-series, real-time observability. Choose based on whether you're presenting "yesterday's report" or "right now."
vs Prometheus's built-in UI Prometheus's UI is functional but minimal. Grafana adds dashboards, variables, sharing, and alerting UI. Almost every Prometheus user installs Grafana too.

Frequently asked questions

Which Grafana version does Pier deploy?
Default `latest` (Grafana 11.x or 12.x depending on release date). `11.0` and `10.4` are pinned LTS-ish variants. Major versions sometimes break dashboard JSON; pin in production.
How do I log in for the first time?
Pier sets `GF_SECURITY_ADMIN_USER=admin` and a generated `GF_SECURITY_ADMIN_PASSWORD`. The password is visible on the service detail page. Rotate via the change-password action.
Where are dashboards persisted?
Grafana's SQLite database (or external Postgres/MySQL if configured) lives in `/var/lib/grafana`. Pier mounts that as the persistent volume — restarts preserve everything.
Can I plug in PostgreSQL or MySQL from another Pier service?
Yes — both ship as Grafana templates with built-in dashboards. The `grafana-postgresql` and `grafana-mysql` (community) templates pre-wire the data source.
How do I install plugins?
Set `GF_INSTALL_PLUGINS` env var or use the Plugins UI. The Pier service settings let you add env vars without rebuilding.
HTTPS via Traefik?
Yes — attach a domain in Pier's Domains tab. Traefik auto-issues a Let's Encrypt certificate. Grafana auto-detects the root URL from the X-Forwarded-* headers Traefik sends.
Default port?
3000/tcp internally. Pier routes through Traefik on the domain you attach; no need to expose 3000 publicly.

Related services

Deploy on your VPS

Grafana is the world's most-deployed open-source observability platform. It connects to Prometheus, Loki, Tempo, PostgreSQL, MySQL, Elasticsearch, CloudWatch, and 50+ other data sources to render unified dashboards, alerts, and explore views. Pier deploys the official Docker image with a strong admin password and persistent dashboard storage.

Deploy this service →