概要:仪表板深度链接

导航至

如果您是 InfluxDBInfluxDB UI 用户,您几乎肯定创建过仪表板。但是,如果您在 InfluxDB UI 中构建了数十个仪表板,您可能已经遇到需要深度链接相关仪表板的情况。在本教程中,我们将学习如何使用 Flux 的表格视图、字符串插值和变量来深度链接用户到其他仪表板。

仪表板深度链接的最简单示例

深度链接仪表板的最简单方法是导航到您要链接的仪表板并部分复制 URL。

Simplest example of deep linking dashboards

接下来,继续使用以下 Flux 代码在新的仪表板中生成一个表格,其中包含指向 Earthquake Command Center 仪表板的链接。

import "array"

link = "https://us-west-2-1.aws.cloud2.influxdata.com/orgs/0437f6d51b579000/dashboards/0a13a76f3ab83000"

array.from(rows: [{"Page Link": "View the Page: ${link}"}])

Example Dashboard

深度链接同时保留时间范围

虽然上面的示例可能适用于大多数情况,但您可能还希望深度链接到另一个仪表板并保留您当前用于查看第一个仪表板的时间范围。在这里,我们结合字符串插值和变量使用 http.pathEscape() 函数,将仪表板的开始和结束时间转换为仪表板 URL 链接中的变量。http.pathEscape() 函数的作用是通过转义特殊字符和替换非 ASCII 字符来对字符串进行 URL 编码。在以下示例中使用此函数是多余的。但是,如果您想构建和链接其他需要 URL 编码的 URL,则值得注意。

import "array"
import "http"

link = "https://us-west-2-1.aws.cloud2.influxdata.com/orgs/0437f6d51b579000/dashboards/0a13a76f3ab83000"
startTime = http.pathEscape(inputString: "${v.timeRangeStart}")
stopTime = http.pathEscape(inputString: "${v.timeRangeStop}")
vars = "?lower=${startTime}&upper=${stopTime}"
dashboardLink = "${link}${vars}"
array.from(rows: [{"Page Link": "View the Page: ${dashboardLink}"}])

Deep Linking Dashboard

您可以更进一步,为您的 orgID 和 dashboardID 创建自定义变量,以使在多个位置深度链接仪表板更加简化。要了解有关创建您自己的自定义变量的更多信息,请查看以下文档

结论

我希望这篇博文能启发您利用 Flux 来深度链接仪表板。如果您需要任何帮助,请通过我们的社区网站Slack 频道与我们联系。我很乐意了解您尝试实现的目标以及您希望 InfluxDB 中的任务系统具备哪些功能。最后,如果您正在 InfluxDB 之上开发酷炫的 IoT 应用程序,我们很乐意了解,因此请务必在社交媒体上使用 #InfluxDB 分享!此外,欢迎随时在我们的社区 Slack 频道中直接与我联系,分享您的想法、疑虑或问题。我很乐意获得您的反馈并帮助您解决遇到的任何问题!