influxdata / influxdata/influxdb
Public, shareable dashboards and charts
@bpalani is already working on this.
Since Mar 26, 2020.
- Dominant language
- Rust
- Stars
- 31.7k
- Forks
- 3.7k
- Avg merge
- 13h 37m
- Merged PRs (30d)
- 8
Description
__Proposal:__
Give users a way to easily share dashboards and individual charts without requiring a login.
Shared dashboards should be accessible via a relatively short, simple URL in one of the following formats.
**For InfluxDB OSS 2:**
hostname:9999/chart/GUID.js
Example:
localhost:9999/chart/33533452sfa345235scxgdsfg.js
**For InfluxDB Cloud 2:**
influxdata.com/chart/GUID.js
Example:
influxdata.com/chart/33533452sfa345235scxgdsfg.js
__Current behavior:__
Currently, sharing charts requires logging into InfluxDB, which in turn requires logging into an InfluxDB account.
__Desired behavior:__
There are two personas below:
1) **InfluxDB admin**: a person who has admin access to an InfluxDB instance and knows how to setup InfluxDB dashboards.
2) **Chart consumer**: a person who views InfluxDB charts. They don't necessarily have admin access to InfluxDB, nor how to set up InfluxDB dashboards.
An **InfluxDB admin** clicks on an icon in a dashboard or individual chart, which copies a URL to the clipboard. user can then past it into a URL, Slack message, email, text, or other location.
A **chart consumer** clicks the URL, and their browser sees a live-updated version of the chart. The chart consumer can embed the URL into a webpage using the HTML element, and the chart will be embedded into their page.
This chart is live updated, defaulting to the same parameters, refresh rate, and time window as the original.
To simplify the initial version of this feature, do not allow chart consumers to adjust the timeframe, refresh rate, or parameters.
Users should NOT, however, see the underlying query, let alone edit it, for security reasons.
Do not rely on iframes to embed this chart, since those have security risks. Here's on article: https://medium.com/@bluepnume/iframes-are-just-terrible-heres-how-they-could-be-better-974b731f0fb4
By making this a .js file, similar to GitHub gists, we should avoid these security issues.
__Alternatives considered:__
We could use the Telegraf output to DataDog, and use DataDog's public sharing capability:
https://docs.datadoghq.com/dashboards/sharing/#screenboards
... but that means a customer needs to create a DataDog account, which is time consuming and expensive.
__Use case:__
Why is this important (helps with prioritizing requests)?
Share time-series data stored in InfluxDB broadly within an organization, without requiring a login. Other charting software lets you do that. The more people who can access your charts, the more value you unlock in your data to drive smart decisions.
Ultimately, charts are a form of communication, and they need to mesh with other digital communcation mechanisms we commonly use: Slack, email, Jira, GitHub, web pages, etc.
In addition to what DataDog does (above), here's what Grafana does...
Share an entire dashboard:
https://grafana.com/docs/grafana/latest/reference/share_dashboard/
Share a panel (analogous to an InfluxDB cell):
https://grafana.com/docs/grafana/latest/reference/share_panel/
And here's what Domo does:
https://knowledge.domo.com/Engage/Sharing_Content_Outside_of_Domo/Sharing_Cards_Outside_of_Domo_Using_Domo_Embed
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.