调试 Kibana编辑

有关如何调试单元测试的信息,请参阅调试单元测试

服务器代码编辑

yarn debug 将使用 Node 的 inspect 标志启动服务器。Kibana 的开发模式将在端口 922992309231 上启动三个进程。需要将 Chrome 的开发者工具配置为连接到所有三个连接。在 Chrome 的开发者工具连接选项卡中为每个 Kibana 进程添加 localhost:<port>

使用 Elastic APM 进行检测编辑

Kibana 附带了内置的Elastic APM Node.js 代理,用于调试目的。

随着 Kibana 变得越来越多样化和复杂,提前手工制定所有可能的性能指标是不切实际或不可扩展的。因此,我们需要依靠工具来帮助我们捕捉我们可能遗漏的东西。

例如,假设您实现了一个全新的功能、插件或服务,但不太清楚它将如何影响 Kibana 的整体性能。APM 不仅可以让我们发现哪些地方运行缓慢,还可以提示我们为什么运行缓慢。例如,如果一个函数在特定类型的输入上运行缓慢,我们可以通过查看 APM UI 中该函数调用的跟踪信息来查看时间花费在哪里。

apm example trace

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 仓库提供的解决方案。您需要DockerDocker ComposePython(首选版本 3)才能使用该工具。

快速入门指南编辑
  1. 克隆elastic/apm-integration-testing 仓库。
  2. 切换到 apm-integration-testing 仓库

    cd apm-integration-testing
  3. 运行 Elasticsearch 和 APM 服务器,但不运行 Kibana

    ./scripts/compose.py start master --no-kibana
  4. 克隆elastic/kibana 仓库。
  5. 切换到 Kibana 仓库

    cd ../kibana
  6. 更改 kibana.yml 配置文件中的 elasticsearch 凭据,以匹配 elasticsearch 和 APM 服务器所需的凭据(有关为测试不同场景提供的用户,请参阅 apm-integration-testing 仓库的README)。
  7. 通过将以下配置设置添加到 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
  8. 使用以下命令启动启用了 APM 的 Kibana

    yarn start
  9. Kibana 启动后,导航到 APM 应用程序,您应该会看到一些事务。
apm ui transactions

您现在可以继续在 Kibana 中执行您想做的事情(例如,安装示例数据集、在仪表板中发出查询、构建新的可视化等)。完成后,您可以正常停止 Kibana,然后使用以下脚本停止 apm-integration-testing 克隆中的 Elasticsearch 和 APM 服务器

./scripts/compose.py stop