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

分布追踪与弹性叠加可视化

冀冯浩
2023-03-14
2019-06-03 10:45:00.051  INFO [currency-exchange,411a0496b048bcf4,8d40fcfea92613ad,true] 45648 --- [x-Controller-10] logger                                   : inside exchange

这是我的控制台中的日志格式。我正在使用spring cloud stream将我的日志从应用程序传输到logstash,这是logstash中的日志解析格式

grok {
              match => { "message" => "%{TIMESTAMP_ISO8601:timestamp}\s+%{LOGLEVEL:severity}\s+\[%{DATA:service},%{DATA:trace},%{DATA:span},%{DATA:exportable}\]\s+%{DATA:pid}\s+---\s+\[%{DATA:thread}\]\s+%{DATA:class}\s+:\s+%{GREEDYDATA:rest}" }
       }

这是我的logstash.conf

输入{kafka{topics=>['zipkin']}}筛选{#pattern matching logback pattern grok{match=>{“message”=>“%{timestamp_iso8601:timestamp}\s+%{loglevel:severity}\s+\[%{data:service},%{data:trace},%{data:span},%{data:exportable}\]\s+%{data:pid}\s+---\s+\[%{data:thread}\]\s+%{data:class}\s+:\s+\[%{data:thread}\\s+%{greedydata:rest}”}}}}输出{elasticsearch{hosts=>}

这是我在log-stash控制台中的输出。这是解析异常

{“message”=>“[{\”traceid\“:\”411a0496b048bcf4\“,\”parentId\“:\”8d40fcfea92613ad\“,\”id\“:\”f14c1c332d2ef077\“,\”kind\“:\”client\“,\”name\“:\”get\“,\”timestamp\“:1559538900053889,\”duration\“:16783\”localendpoint\“:{\”serviceName\“:\”currency-exchange\“,\”ipv4\“:\”10.8.0.7\“},\”tags\“:{\”http.method\“:\”get\“,\”http.path\“:\”/convert/1/to/4\“}},{\”traceId\“:\”411a0496b048bcf4\“,\”parentId\“:\”411a0496b048bcf4\“,\”id\“:\”8d40fcfea92613ad\“,\”name\“:\”hystrix\“,\”timestamp\“:1559538900050039,\”duration\“:34500,\”localendpoint\“:{\”serviceName\“:\”currency-exchange\“,\”IPv4\“:”10.8.0.7\“}},{\”traceId\“:\”411a0496b048bcf4\“,\”id\“:\”411a0496b048bcf4\“,\”kind\“:\”server\“,\”name\“:\”get/convert\“,\”timestamp\“:1559538900041446,\”duration\“:44670,\”localendpoint\“:{\”serviceName\“:\”currency-exchange\“,\”ipv4\“:\”10.8.0.7\“},\”remoteEndpoint\“:{\”ipv6\“:\”::1\“,\”port\“:62200},\”tags\“:{\”http.method\“:\”get\“,\”http.path\“:\”/convert\“,\”mvc.controller.class\“:\”controll\“,\”mvc.controller.method\“:\”convert\“}}]”,“@timestamp”=>2019-06-03T05:15:00.296z,“@version”=>“1”,“tags”=>[[0]“_GrokParseFailure”]}

共有1个答案

席言
2023-03-14

当我使用内置在Kibana中的Grok调试器(在Dev Tools下)时,我从示例日志和Grok模式中得到以下结果:

{
  "severity": "DEBUG",
  "rest": "GET \"/convert/4/to/5\", parameters={}",
  "pid": "35973",
  "thread": "nio-9090-exec-1",
  "trace": "62132b44a444425e",
  "exportable": "true",
  "service": "currency-conversion",
  "class": "o.s.web.servlet.DispatcherServlet",
  "timestamp": "2019-05-31 05:31:42.667",
  "span": "62132b44a444425e"
}

在我看来是正确的。那么缺少的部分是什么呢?

您显示的日志记录输出还包含“IPv4”:“192.168.xx.xxx”}、“RemoteEndpoint”:{“IPv6”:“::1”、“Port”:55394}、“Tags”:...,但示例日志中没有这些内容。这些内容来自哪里?

 类似资料:
  • 主要内容:可追溯性矩阵的目标可追踪性矩阵是一种表格类型的文档,用于开发软件应用程序以跟踪需求。它可用于向前(从需求到设计或编码)和向后(从编码到需求)跟踪。它也称为需求可追踪性矩阵(RTM)。 通常,这就像一个包含表格的工作表文档,但是还有许多用户定义的可追溯性矩阵模板。可追溯性矩阵中的每个要求都与其各自的测试用例相关联,以便可以根据具体要求顺序执行测试。 下面给出一个表作为示例,以便可以理解可追溯性矩阵的格式: 业务需求

  • 在Git中‘追踪分支’是用与联系本地分支和远程分支的. 如果你在’追踪分支'(Tracking Branches)上执行推送(push)或拉取(pull)时, 它会自动推送(push)或拉取(pull)到关联的远程分支上. 如果你经常要从远程仓库里拉取(pull)分支到本地,并且不想很麻烦的使用"git pull "这种格式; 那么就应当使用‘追踪分支'(Tracking Branches). ‘

  • 问题内容: 为了使切片追加操作更快,我们需要分配足够的容量。有两种附加切片的方法,下面是代码: 结果是: BenchmarkSliceAppend-4 200000000 7.87 ns / op 8 B / op 0 allocs / op BenchmarkSliceSet-4 300000000 5.76 ns / op 8 B / op 比我快,我想知道为什么吗? 问题答案: 只需将值分配

  • 随着服务的数量和复杂性的增加,跨数据中心的统一的可观察性变得越来越重要。Linkerd 的跟踪和度量工具旨在汇总,为所有服务的健康提供广泛而细致的洞察。Linkerd 作为服务网格的角色使其成为可观察性信息的理想数据源,特别是在多语言环境中。 当请求通过多个服务时,使用传统的调试技术来识别性能瓶颈变得越来越困难。分布式跟踪提供通过多个服务的请求的整体视图,允许立即识别延迟问题。 使用 linker

  • 是否有可能用Java构造一段代码,从而生成一个假设的不可修补? 想到的想法是使用例如拦截器或面向方面的编程。

  • 日前,观察性分析平台和应用性能管理系统 SkyWalking 完成了与云原生网络代理 MOSN 的集成,作为 MOSN 中的支持的分布式追踪系统之一,旨在实现在微服务和 Service Mesh 中的更强大的可观察性。 相比传统的巨石(Monolith)应用,微服务的一个主要变化是将应用中的不同模块拆分为了独立的进程。在微服务架构下,原来进程内的方法调用成为了跨进程的远程方法调用。相对于单一进程内