当前位置: 首页 > 知识库问答 >
问题:

如何在弹性APM中查看来自OpenTelemeter的跟踪日志

公良理
2023-03-14

我收到弹性APM日志结构中来自opentelemeter收集器的日志:

“{Timestamp:HH:mm:ss}{Level:u3}trace.id={TraceId}事务。id={SpanId}{NewLine}{Message:lj}{NewLine}{Exception}”

例子:

08:27:47 INF trace.id=898a7716358b25408d4f193f1cd17831 transaction.id=4f7590e4ba80b64b SOME MSG

我试着使用管道

POST _ingest/pipeline/_simulate {   "pipeline": {   "description" : "parse multiple patterns",   "processors": [
    {
      "grok": {
        "field": "message",
        "patterns": ["%{TIMESTAMP_ISO8601:logtime} %{LOGLEVEL:loglevel} \\[trace.id=%{TRACE_ID:trace.id}(?: transaction.id=%{SPAN_ID:transaction.id})?\\] %{GREEDYDATA:message}"],
        "pattern_definitions": {
          "TRACE_ID": "[0-9A-Fa-f]{32}",
          "SPAN_ID": "[0-9A-Fa-f]{16}"
        }
      },
      "date": { "field": "logtime", "target_field": "@timestamp", "formats": ["HH:mm:ss"] }
    }   ] } }

我的目标是查看Elastic APM中的日志

 {
        "@timestamp": 2021-01-05T10:10:10",
    
        "message":  "Protocol Port MIs-Match",
        "trace": {
            "traceId": "898a7716358b25408d4f193f1cd17831",
            "spanId": "4f7590e4ba80b64b"
        }
    }

共有1个答案

红甫
2023-03-14

到目前为止干得不错。你的管道几乎是好的,但是,格罗克模式需要一些修复,你有一些孤儿卷发背带。以下是一个有效的例子:

POST _ingest/pipeline/_simulate
{
  "pipeline": {
    "description": "parse multiple patterns",
    "processors": [
      {
        "grok": {
          "field": "message",
          "patterns": [
            """%{TIME:logtime} %{WORD:loglevel} trace.id=%{TRACE_ID:trace.id}(?: transaction.id=%{SPAN_ID:transaction.id})? %{GREEDYDATA:message}"""
          ],
          "pattern_definitions": {
            "TRACE_ID": "[0-9A-Fa-f]{32}",
            "SPAN_ID": "[0-9A-Fa-f]{16}"
          }
        }
      },
      {
        "date": {
          "field": "logtime",
          "target_field": "@timestamp",
          "formats": [
            "HH:mm:ss"
          ]
        }
      }
    ]
  },
  "docs": [
    {
      "_source": {
        "message": "08:27:47 INF trace.id=898a7716358b25408d4f193f1cd17831 transaction.id=4f7590e4ba80b64b SOME MSG"
      }
    }
  ]
}

回应:

{
  "docs" : [
    {
      "doc" : {
        "_index" : "_index",
        "_type" : "_doc",
        "_id" : "_id",
        "_source" : {
          "trace" : {
            "id" : "898a7716358b25408d4f193f1cd17831"
          },
          "@timestamp" : "2021-01-01T08:27:47.000Z",
          "loglevel" : "INF",
          "message" : "SOME MSG",
          "logtime" : "08:27:47",
          "transaction" : {
            "id" : "4f7590e4ba80b64b"
          }
        },
        "_ingest" : {
          "timestamp" : "2021-03-30T11:07:52.067275598Z"
        }
      }
    }
  ]
}

请注意,缺少确切的日期,因此@timemark字段将解析为今年1月1日。

 类似资料:
  • 我正在尝试使用python应用程序(基于django)进行测试,以便能够将事务跟踪推送到Elastic APM,稍后可以使用OpenDistro Elastic中的跟踪分析工具查看。 我试过以下方法 方法1: 然后,在文件中,我添加了以下代码,以直接将跟踪发送到弹性APM。 运行代码时,出现以下错误: 方法2: 由于方法1不起作用,我尝试在两者之间使用OpenTelemetry Collector

  • 但是,问题是,我没有在日志部分得到任何消息,我没有找到如何自定义字段。 问题 这就是我的问题。是否可以将至少消息信息添加到事务日志(第一张图片),是否可以至少将自定义字段添加到日志部分(第二张图片),是否有方法使日志至少可点击?(也是第二张图片,我的意思是它只是纯文本,我必须去发现和使用这些信息,如ctrl c ctrl v)最后,为什么日志被标记为错误,如果它只是一个日志,并像日志一样使用?我试

  • 我已经开始学习Sleuth,但是我还停留在日志配置上。 我有这样的配置: 但是当我检查文件时,我缺少跟踪 Id 和 spanId。下面是示例: 这是pom.xml的片段 不知道如何在这里继续,我一直在阅读文档和堆栈溢出帖子,但仍然找不到任何答案。 提前致谢。

  • 我使用Kafka作为队列,节点服务使用Kafka节点生成和使用Kafka主题的消息。 我一直在使用自制的分布式跟踪解决方案,但现在我们正在转向弹性APM。 这似乎是为HTTP服务器量身定制的,但如何配置它以与Kafka一起使用呢? 我希望能够像下面这样跟踪事务:服务A向服务B发送一个HTTP请求,服务B向Kafka Topic C生成该请求,服务D从中使用该请求,服务D将一些数据放入Kafka T

  • 问题内容: 在Java日志中,很多时候我会得到类似以下内容的信息: 有谁知道如何显示完整的堆栈跟踪(即显示其他113行)? Throwable 的JavaDocs(用于Java 7) 对正在发生的事情有非常详细的解释。 问题答案: 当您看到“ … 113更多”时,表示“由…引起的”异常的其余行与父异常的那一点起的其余行相同。 例如,您将拥有 这两个堆栈跟踪在AbstractBatcher.exec

  • 本章介绍如何使用Zipkin或Jaeger收集启用了Istio的应用程序的调用链信息。 完成本章后,你可以理解有关应用程序的所有假设以及如何使其参与跟踪,无论您使用何种语言/框架/平台构建应用程序。 BookInfo示例用来作为此任务的示例应用程序。 环境准备 参照安装指南的说明安装Istio。 如果您在安装过程中未启动Zipkin或Jaeger插件,则可以运行以下命令启动: 启动Zipkin: