调试 Kibana
有关如何调试单元测试的信息,请参阅 调试单元测试。
yarn debug
将以 Node 的 inspect 标志启动服务器。Kibana 的开发模式将在端口 9229
、9230
和 9231
上启动三个进程。需要配置 Chrome 的开发者工具以连接到所有三个连接。为 Chrome 开发者工具连接选项卡中的每个 Kibana 进程添加 localhost:<端口>
。
Kibana 附带内置的 Elastic APM Node.js Agent,用于调试目的。
对于像 Kibana 这样多样化和复杂的应用程序来说,提前手工制作所有可能的性能测量是不切实际或不可扩展的。 因此,我们需要依靠工具来帮助我们捕捉我们可能错过的东西。
例如,假设您实现了一个全新的特性、插件或服务,但不太清楚它将如何影响 Kibana 的整体性能。 APM 不仅允许我们发现某些东西很慢,而且还提示了为什么它可能运行缓慢。 例如,如果一个函数在特定类型的输入上运行缓慢,我们可以通过查看 APM UI 中该函数调用的跟踪来查看时间花费在哪里。
APM 捕获的指标范围既广泛又深入,因为整个应用程序在运行时都会被检测,我们只需对这些指标进行采样。 这意味着我们不必提前知道我们需要测量什么,而是默认情况下我们会得到(大部分)我们可能需要的数据。
这种类型的数据可以帮助我们识别未知的瓶颈,发现何时可能引入性能回归,并告知 Kibana 的性能如何在发布之间变化。 使用 APM 允许我们主动领先于潜在的性能回归,然后再发布它们。
默认 APM 配置仅供 Kibana 核心开发人员使用,但它可以轻松地重新配置以满足您的需求。 在其默认配置中,它被禁用,一旦启用,它会将 APM 数据发送到一个集中管理的 Elasticsearch 集群,只有 Elastic 员工才能访问。
要更改数据发送的位置,请使用 serverUrl
APM 配置选项。 要激活 APM agent,请使用 active
APM 配置选项。
所有配置选项都可以通过在 config/kibana.dev.yml
下创建一个适当的配置文件来设置。
示例 config/kibana.dev.yml
文件
elastic:
apm:
active: true
Kibana 发行版中不提供 APM 真实用户监控 agent,但是可以通过将 ELASTIC_APM_ACTIVE
设置为 true
来启用 agent。标志
ELASTIC_APM_ACTIVE=true yarn start
// activates both Node.js and RUM agent
一旦 agent 处于活动状态,它将跟踪所有传入 Kibana 的 HTTP 请求,监控错误,并收集进程级别的指标。 收集的数据将发送到 APM Server,并在 Kibana 的 APM UI 中查看。
在本地运行带有 APM agent 的 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,了解为测试不同场景而提供的用户)。确保 APM agent 处于活动状态,并通过将以下配置设置添加到
config/kibana.dev.yml
下的配置文件中,将其指向本地 APM 服务器示例
config/kibana.dev.yml
文件elastic: apm: active: true serverUrl: http://localhost: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