# How to Share a Kibana Dashboard With People Who Have No Kibana Access

Canonical: https://commareports.com/share-kibana-dashboard
Published: 2026-09-04

> Kibana share links require a login, PNG and PDF reporting sits behind a paid Elastic subscription tier, and a screenshot in Slack is unquotable. The realistic options, plus the scheduled HTML digest that keeps one commentable URL.

# How to share a Kibana dashboard

The dashboard shows the error-rate spike clearly. The person who needs to see
it — the account manager writing the customer update, the compliance reviewer,
the exec on the incident bridge — does not have a Kibana account, and giving
them one means granting access to an index that contains far more than the one
chart they asked about.

## What Kibana gives you

**A permalink.** Encodes state: time range, filters, query, the exact panel
layout. Excellent for handing a colleague the *same view* you are looking at.
Not an access mechanism — the recipient still authenticates and still needs
the space and index-pattern privileges.

**Reporting (PNG / PDF).** Real and scheduled, and gated behind Elastic's paid
subscription tiers. If your deployment has it, it is the least-effort path to
a recurring artifact. What it produces is an image or a document: a record,
not something anybody can quote a row from or reply to inline.

**CSV export of a saved search.** Broadly available and genuinely useful when
the rows are the point. Not a dashboard.

**Embedding.** An iframe of the dashboard, still authenticated. Drop it into a
wiki page and most readers see a login form in a box.

## The gap

Observability data has an audience beyond the observability team, and that
audience needs three things Kibana does not give them together: a URL that
opens without a seat, numbers as text rather than as pixels, and a place to
ask "is this expected?" that stays attached to the chart.

## The digest pattern

Query Elasticsearch directly, render one self-contained HTML page, publish it
at a stable URL, and put anchored comments on top.

Going to Elasticsearch rather than screenshotting Kibana is the whole trick.
The dashboard's panels are aggregations; you can run the same aggregation and
get JSON:

```bash
curl -fsS -u "$ES_USER:$ES_PASS" \
  "$ES_URL/logs-*/_search?size=0" \
  -H 'Content-Type: application/json' -d '{
    "query": { "range": { "@timestamp": { "gte": "now-7d" } } },
    "aggs": {
      "by_day":     { "date_histogram": { "field": "@timestamp", "calendar_interval": "1d" } },
      "by_service": { "terms": { "field": "service.name", "size": 20 } }
    }
  }' > agg.json
```

Turn that into an HTML table plus two or three inlined charts, keep the file
self-contained — no runtime fetches, no external CDN — and publish it. Then
keep publishing to the same id:

```bash
python3 scripts/kibana_digest.py agg.json > digest.html

curl -fsS -X PATCH "https://commareports.com/api/v1/reports/$REPORT_ID" \
  -H "Authorization: Bearer $COMMA_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d "$(jq -n --rawfile html digest.html \
        --arg title "Error budget — week of $(date +%F)" '{title: $title, html: $html}')"
```

A [routine](/features/routines) can run this on Comma's schedule if you would
rather not add another cron to the observability stack.

## What changes

The weekly reliability numbers land at one URL that never rotates, readable
without a Kibana seat because access is a property of the report:
[private, team, domain-gated or link](/docs/sharing).

And the discussion attaches to the number. Someone highlights the 5xx row for
Tuesday and pins "deploy 1.42 rollback window, expected, INC-2214." The thread
persists across revisions, so the next person who sees the same shape finds
the previous analysis instead of reopening it.

An agent connected through [Comma's MCP server](/mcp) can read those threads
too, which makes the accumulated incident context available to whatever is
triaging next week.

## When to just use Kibana

If the reader has an account and the job is investigation — narrowing the time
range, adding a filter, pivoting to Discover — send the permalink. Nothing
static replaces a live query interface for someone who can run queries. The
digest is for everyone else, and for the weeks you want a durable, dated
record of what reliability actually looked like.

## Try it

Comma is free — unlimited reports, unlimited commenters, unlimited revision
history.

**[Create your first report →](https://commareports.com/)**

### Related

- [Share a Grafana dashboard](/share-grafana-dashboard)
- [Share a report in Slack](/share-html-report-in-slack)
- [Scheduled HTML reports](/features/routines/scheduled-html-reports)
