1

我已经设置了一个带有 elasticsearch、filebeat、kibana 和 apm 服务器的弹性堆栈,以及一个带有 apm java 代理的 spring-boot-application,并在 docker compose 文件中开始了我的设置。我已启用仪表板,并且可以看到有关应用程序中进程的跟踪。但我无法过滤容器 id,因为没有 id。如何启用我的堆栈 apm 服务器/apm 代理以接收有关容器 id、pod id 等的元数据。

例如,我在哪里可以为 apm 服务器/apm 代理启用元数据以接收容器 ID。

4

1 回答 1

1

我在 docker 中通过 docker-compose elasticsearch、apm、kibana 和 tomcat 应用程序运行。在 apm- -transaction-索引中存在这个元信息:container.id。并且在 apm-- metrics- index 中也存储了这些信息。尝试通过索引模式“apm-*”在 Discover 选项卡上查看 json 结构

    {
  "_index": "apm-7.6.2-transaction-000001",
  "_type": "_doc",
  "_id": "EyeudHEBxv4GJJ2Qs6yk",
  "_version": 1,
  "_score": null,
  "_source": {
    "container": {
      "id": "100b5f0e673337f4381533d8ae9ab47ababf271e422c26f9ecc278a2aa08e3e7"
    },
    "observer": {
      "hostname": "6940719de3e8",
      "id": "7e715843-6a92-4794-99e3-beadc81cc7bc",
      "ephemeral_id": "a0676d3e-e97f-4179-8b92-88f6214ea035",
      "type": "apm-server",
      "version": "7.6.2",
      "version_major": 7
    },
...

在此处输入图像描述

于 2020-04-13T20:31:21.230 回答