Kibana 仪表板允许你在 Elasticsearch 中索引的数据之上快速轻松地构建可视化。 然而,Elasticsearch 上的 UI 抽象可能会导致诊断单个面板中的性能问题变得棘手 —— 尤其是对于习惯于使用调试器和其他分析工具深入研究实现细节的开发人员而言。
本博客介绍了四种方法来帮助调查和诊断 Kibana 仪表板的性能问题。 具体来说,我们将介绍 Elastic 应用程序性能监控 (APM) 的使用、通过 Chrome 开发人员工具进行调试和分析、通过 Inspector 检查各个面板,以及 Elasticsearch Slow Log 以确定仪表板运行缓慢的原因。
APM
当面对缓慢的仪表板时,建议排除由 Kibana 本身中的整体仪表板加载导致的性能下降。 它可能是导致潜在问题的特定服务或插件。 这可以使用 Chrome DevTools 调试或使用 Elastic APM Node.js 代理来实现,后者内置于 Kibana 中用于调试目的。 按照开发人员指南中调试 Kibana 部分的步骤设置本地运行的 Kibana 和 APM 配置。 按照这些步骤将使用 Docker 设置本地运行的 Elasticsearch 实例和 APM 服务器:
为确保 Kibana 成功启动,请确保从每个存储库中 check out 兼容的 Elasticsearch 和 Kibana 版本的分支,并且 kibana.dev.yml 配置指向本地运行的 Elasticsearch 集群和 APM 服务器。 Kibana 的示例用户凭据(包括 admin )可用于登录,如 @elastic/apm-integration-testing 自述文件中所述。 在 Kibana 存储库上使用 yarn start 命令将为你提供一个正在运行的 Kibana 实例。 包括非性能仪表板可以通过从 Kibana 中的保存对象屏幕导出仪表板并通过同一屏幕将其导入本地运行的实例来实现。 请务必导出依赖对象,以便单独的控件和索引与仪表板一起导出:
在本地访问你的仪表板将允许 APM Node.js 代理捕获仪表板导航中的任何错误和痕迹。 你将看到 /dashboard 端点被触发以访问你的仪表板。 APM 将在 kibana-frontend 服务中捕获这些请求。