作者:lilyzrgu
导语:日志服务CLS(Cloud Log Service)是腾讯云提供的一站式日志数据解决平台,提供了从日志采集、日志存储到日志检索,图表分析、监控告警、日志投递等多项服务,协助用户通过日志来解决业务运维、服务监控、日志审计等场景问题。
随着微服务架构的逐渐流行,在熵增且庞杂的系统中准确的定位一个请求的完整生命周期,逐渐成为了研发同学面对的最大的痛点之一。以研发同学自测过程为例,开发同学往往希望在发起测试的 Http/RPC 请求后,能够通过一个简单的方式获取整个测试请求的上下文信息。这其中通常包括相关的上下游链路、各个服务内部请求的方法堆栈,以及链路上打印的日志等数据,对于指标-链路-日志的一体化监控的需求已经迫在眉睫。
在定位异常请求时,透过指标定位大方向,快速拉出整个链路的上下文的能力则更为关键,通过方法堆栈以及相关联的日志便能够直接查看导致异常的方法和参数,能够很好的提高排查效率,而这在云原生就被定义为可观测性。
可观测性概念最早由 Apple 的工程师 Cindy Sridharan 提出,作为监控的进一步延伸,可观测性与监控的区别可以总结为:“监控告诉我们系统的哪些部分是工作的。可观测性告诉我们哪里为什么不工作了”。
理想状态下,可观测性的监控将由发现系统实时问题指标,通过链路应用的上下游多维度分析定位关键问题所在,再通过排查具体问题日志找到根因:
近几年的开源社区演变中,先后出现了两种协议可分别规范这几种垂类,分别是来自 Google 的 OpenCensus (可观测 Tracing + metris)和 来自 CNCF 的 OpenTracing(可观测 Tracing)。由于两种协议的相似,以及对三种垂类的一统观测,融合为大家耳熟能详的 Open Telemetry,旨在打通 Metrics - Tracing - Logging 成为统一的协议。
对于链路-日志统一的重要性,在分布式和微服务框架的快速迭代中越来越盛。对于微服务来说,同样的进程可能会发布在不同的机器和容器中,需要不断登录不同机器或容器去采集日志,并归纳统一,手动对应到实际的应用中,这是非常繁琐且复杂的。然而在当前社区的产品解决方案中,还没有三种数据源的完整解决方案,原因在于同时处理三种数据源的统一存储,展示以及关联分析难以实现。Open-telemetry 首先致力于解决指标-链路的一体化,但对于海量的日志信息,难以将数据源统一关联。
腾讯云应用性能观测(APM)作为包含“指标-链路”的全链路监控平台,现今已与 CLS 日志监控平台联手打通,实现“指标-链路-日志”的一体化监控,在查看链路详情时关联查看所对应信息,完成 Trace 到 Log 的排查流程。
了解更多腾讯云日志服务产品信息:https://cloud.tencent.com/product/cls
如图所示,在通过指标定位到问题发生的具体链路后,进入链路详情页,呈现出链路整体的调用关系列表,具体每一条调用的具体信息(健康状态,耗时,详细信息等),定位到在整个调用生命周期中,哪个调用步骤出现了问题,并且同步查看该条链路相关的所有日志信息,丰富的日志将更好的判断根因问题。
为了保障您日志数据的可靠性以及更高效地使用日志服务,建议您使用 CLS 优化后的接口/Agent上传结构化日志。
结构化日志上报指引:
通过 API/SDK 参考: https://cloud.tencent.com/document/product/614/59470 (contents部分)
如果通过 Agent 可以参考: https://cloud.tencent.com/document/product/614/17419
i. 在上报 CLS 日志时,注入 TraceID,不同协议和框架间的注入方式有些许差异。
目前 APM 提供了以 logback 方式的最佳实践,引入依赖后修改 logback-spring.xml 中的 Appender 的 Pattern 格式即可实现。
Skywalking 协议(Java)参考指引:https://cloud.tencent.com/document/product/1463/68741
自研探针(Java)参考指引:https://cloud.tencent.com/document/product/1463/68737
ii. 在注入 TraceID 后,可在 CLS 控制台日志详情处,查看到当前日志中包含 TraceID 字段。
在应用性能观测控制台,链路追踪-调用查询中,选择想要查看的 Trace,查看当前 Trace 的调用列表时,点击想查看调用 Span,即可在右侧抽屉页中查看当前关联的日志详情。
详细步骤请参考官网文档:https://cloud.tencent.com/document/product/1463/68742
随着云原生的发展,从“监控”逐渐进步为更为广阔的“可观测性”领域中,灵活处理指标、链路、日志三种信息及它们的统一观测至关重要。在未来,统一可观测性平台的诉求会越来越多,而 APM 联合 CLS 的应用观测平台将会不断前行,为云原生“可观测性”领域添砖加瓦。
参考文献
“监控”与“可观测性”的区别:https://baijiahao.baidu.com/s?id=1717212101409018630
Opentelemetry:https://zhuanlan.zhihu.com/p/382182319
云原生架构下的可观察性的探索和实践:https://blog.csdn.net/SOFAStack/article/details/100013936
云原生可观测性技术现状与发展趋势:https://blog.51cto.com/u_15127575/2719668
以上就是腾讯云应用性能观测APM关联日志服务CLS的分享,如果您有更多有意思的日志实践玩法分享,欢迎投稿!
加入「腾讯云日志服务CLS技术交流群」,获取更多资讯,掌握最新动态!
往期文章:
【日志服务CLS】全新Grafana数据源,一键安装,功能升级
日志服务Grafana可视化实践——从自建ELK到使用CLS
本文系转载,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文系转载,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。