调试 Kibana
编辑调试 Kibana
编辑有关如何调试单元测试的信息,请参阅 调试单元测试。
服务器代码
编辑yarn debug
将使用 Node 的 inspect 标志启动服务器。Kibana 的开发模式将在端口 9229
、9230
和 9231
上启动三个进程。需要配置 Chrome 的开发者工具以连接到所有三个连接。在 Chrome 开发者工具的连接选项卡中为每个 Kibana 进程添加 localhost:<端口>
。
使用 Elastic APM 进行检测
编辑Kibana 附带内置的 Elastic APM Node.js 代理,用于调试目的。
随着 Kibana 变得如此多样化和复杂,提前手工制作所有可能的性能测量是不切实际或不可扩展的。因此,我们需要依赖工具来帮助我们捕捉到我们可能遗漏的内容。
例如,假设您实现了一个全新的功能、插件或服务,但不完全清楚它将如何影响 Kibana 的整体性能。APM 不仅可以让我们发现某些内容速度缓慢,还可以提示它为什么可能运行缓慢。例如,如果某个函数在特定类型的输入上速度缓慢,我们可以通过查看 APM UI 中该函数调用的跟踪来了解时间花费在哪里。
APM 捕获的指标网络既广泛又深入,因为整个应用程序在运行时都被检测,我们只是对这些指标进行采样。这意味着我们不必提前知道我们需要测量什么,而是默认情况下会获得(大部分)我们可能需要的数据。
这种类型的数据可以帮助我们识别未知的瓶颈,发现何时可能引入性能回归,并告知 Kibana 的性能在版本之间是如何变化的。使用 APM 使我们能够主动地在潜在的性能回归发布之前解决它们。
默认的 APM 配置仅供 Kibana 核心开发人员使用,但可以轻松地根据您的需要重新配置。在其默认配置中,它处于禁用状态,一旦启用,它会将 APM 数据发送到仅供 Elastic 员工访问的集中管理 Elasticsearch 集群。
要更改数据发送的位置,请使用 serverUrl
APM 配置选项。要激活 APM 代理,请使用 active
APM 配置选项。
所有配置选项都可以通过在 config/kibana.dev.yml
下创建一个适当的配置文件来设置。
示例 config/kibana.dev.yml
文件
elastic: apm: active: true
APM 真实用户监控代理 在 Kibana 发行版中不可用,但是可以通过将 ELASTIC_APM_ACTIVE
设置为 true
来启用该代理。
ELASTIC_APM_ACTIVE=true yarn start // activates both Node.js and RUM agent
一旦代理激活,它将跟踪所有进入 Kibana 的 HTTP 请求,监视错误并收集进程级指标。收集的数据将发送到 APM 服务器,并且可以在 Kibana 的 APM UI 中查看。
在本地运行带有 APM 代理的 Kibana
编辑在本地运行带有 APM 代理的 Kibana 最简单且推荐的方法是使用 apm-integration-testing 存储库提供的解决方案。您需要 Docker、Docker Compose 和 Python(首选版本 3) 来使用该工具。
快速入门指南
编辑- 克隆 elastic/apm-integration-testing 存储库。
-
进入 apm-integration-testing 存储库
cd apm-integration-testing
-
运行 Elasticsearch 和 APM 服务器,但不运行 Kibana
./scripts/compose.py start master --no-kibana
- 克隆 elastic/kibana 存储库。
-
进入 Kibana 存储库
cd ../kibana
- 更改您的
kibana.yml
配置文件中的 elasticsearch 凭据,以匹配 elasticsearch 和 APM 服务器所需的凭据(有关用于测试不同场景的用户,请参阅 apm-integration-testing 存储库的 README)。 -
通过将以下配置设置添加到
config/kibana.dev.yml
下的配置文件,确保 APM 代理已激活并指向本地 APM 服务器示例
config/kibana.dev.yml
文件elastic: apm: active: true serverUrl: https://127.0.0.1:8200 secretToken: very_secret centralConfig: true breakdownMetrics: true transactionSampleRate: 0.1
-
使用以下命令启动已激活 APM 的 Kibana
yarn start
- Kibana 启动后,导航到 APM 应用程序,您应该会在其中看到一些事务。
现在您可以继续在 Kibana 中执行您想执行的操作(例如,安装示例数据集,在仪表板中发出查询,构建新的可视化等)。完成后,您可以正常停止 Kibana,然后使用以下脚本停止 apm-integration-testing 克隆中的 Elasticsearch 和 APM 服务器
./scripts/compose.py stop