调试 Kibana
编辑调试 Kibana编辑
有关如何调试单元测试的信息,请参阅调试单元测试。
服务器代码编辑
yarn debug
将使用 Node 的 inspect 标志启动服务器。Kibana 的开发模式将在端口 9229
、9230
和 9231
上启动三个进程。需要将 Chrome 的开发者工具配置为连接到所有三个连接。在 Chrome 的开发者工具连接选项卡中为每个 Kibana 进程添加 localhost:<port>
。
使用 Elastic APM 进行检测编辑
Kibana 附带了内置的Elastic APM Node.js 代理,用于调试目的。
随着 Kibana 变得越来越多样化和复杂,提前手工制定所有可能的性能指标是不切实际或不可扩展的。因此,我们需要依靠工具来帮助我们捕捉我们可能遗漏的东西。
例如,假设您实现了一个全新的功能、插件或服务,但不太清楚它将如何影响 Kibana 的整体性能。APM 不仅可以让我们发现哪些地方运行缓慢,还可以提示我们为什么运行缓慢。例如,如果一个函数在特定类型的输入上运行缓慢,我们可以通过查看 APM UI 中该函数调用的跟踪信息来查看时间花费在哪里。
APM 捕获的指标网络既广泛又深入,因为整个应用程序在运行时都经过了检测,我们只是对这些指标进行抽样。这意味着我们不必提前知道我们需要测量什么,我们只需默认获取(大部分)我们可能需要的数据。
这类数据可以帮助我们识别未知的瓶颈,发现何时可能引入了性能回退,并了解 Kibana 在不同版本之间的性能变化。使用 APM 可以让我们在潜在的性能回退发布之前主动地解决它们。
默认的 APM 配置仅供 Kibana 核心开发人员使用,但可以轻松地根据您的需要重新配置。在其默认配置中,它是禁用的,一旦启用,它将向 Elasticsearch 集群发送 APM 数据,该集群仅供 Elastic 员工访问。
要更改发送数据的目标位置,请使用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