首页 > 其他分享 > 可观察性支柱:探索日志、指标和跟踪

可观察性支柱:探索日志、指标和跟踪

时间:2023-10-25 18:06:22浏览次数:31  
标签:探索 应用程序 指标 跟踪 监控 日志 观察 支柱

 可观察性支柱:探索日志、指标和跟踪_应用程序

通过检查系统输出来测量系统内部状态的能力称为可观察性。当可以仅使用输出信息(即传感器数据)来估计当前状态时,系统就变得“可观察”。您可以使用来自 Observability 的数据来识别和解决问题、优化性能并提高安全性。

在接下来的几节中,我们将仔细研究可观察性的三大支柱:指标、日志和跟踪

可观察性和监控有什么区别?

“如果没有监控,可观察性就不可能实现。”

监控是与可观察性密切相关的另一个术语。监控和可观察性之间的主要区别在于,后者是指 深入了解系统内部运作的能力,而前者是指收集有关系统性能和行为的数据的行为。

 可观察性支柱:探索日志、指标和跟踪_可观察性_02

除此之外,监控并没有真正考虑最终目标。它专注于预定义的指标和阈值来检测与预期行为的偏差。可观察性旨在提供对系统行为的深入理解,从而允许探索和发现意外问题。

在视角和思维方式方面,监控采用“自上而下”的方法,并根据已知标准预定义警报。可观察性采用“自下而上”的方法,鼓励开放式探索和适应不断变化的需求。

 可观察性支柱:探索日志、指标和跟踪_数据_03

监控可检测异常情况并提醒您潜在的问题。然而,可观察性可以检测问题并帮助您了解其根本原因和潜在动态。

可观察性的三大支柱

可观察性建立在三大支柱(指标、日志、跟踪)之上,围绕“事件”的核心概念。事件是监控和遥测的基本单位,每个事件都带有时间戳且可量化。事件的区别在于它们的上下文,尤其是在用户交互中。例如,当用户在电子商务网站上单击“立即付款”时,此操作预计会在几秒钟内发生。

在监控工具中,“重大事件”是关键。它们触发:

  • 自动警报:通知 SRE 或运营团队。
  • 诊断工具:启用根本原因分析。

想象一下服务器的磁盘容量接近 99%;这很重要,但了解哪些应用程序和用户导致了这种情况对于采取有效行动至关重要。

1. 指标

指标作为数字指标,提供对系统健康状况的洞察。虽然 CPU、内存和磁盘使用率等一些指标是明显的系统运行状况指标,但许多其他关键指标可以揭示潜在问题。例如,操作系统句柄的逐渐增加可能会导致系统速度变慢,最终需要重新启动才能访问。现代 IT 基础设施的各个层面都存在类似的有价值的指标。

在确定要持续收集哪些指标以及如何有效分析它们时,仔细考虑至关重要。这就是领域专业知识发挥关键作用的地方。虽然大多数监控工具都可以检测明显的问题,但最好的监控工具可以更进一步,提供检测和警报复杂问题的见解。确定作为即将发生的系统问题的主动指标的指标子集也很重要。 例如,操作系统句柄泄漏很少突然发生。

跟踪使用中的句柄数量随着时间的推移逐渐增加,可以预测系统何时可能变得无响应,从而可以进行主动干预。

 可观察性支柱:探索日志、指标和跟踪_应用程序_04

2. 日志

日志通常包含有关应用程序如何处理请求的复杂详细信息。这些日志中出现的异常情况(例如异常)可能表明应用程序中存在潜在问题。监视日志中的这些错误和异常是任何可观察性解决方案的一个重要方面。解析日志还可以揭示有关应用程序性能的宝贵见解。

日志通常包含在使用 API(应用程序编程接口)或查询应用程序数据库时可能难以捉摸的见解。许多独立软件供应商 (ISV)不提供访问日志中可用数据的替代方法。因此,有效的可观测性解决方案应该支持日志分析并促进日志数据的捕获及其与指标和跟踪数据的关联。

 可观察性支柱:探索日志、指标和跟踪_应用程序_05

3. 跟踪

跟踪是一个相对较新的发展,特别适合当代应用程序的复杂性。它的工作原理是从应用程序的不同部分收集信息并将其组合在一起以显示请求如何在系统中移动。

 可观察性支柱:探索日志、指标和跟踪_可观察性_06

跟踪的主要优点在于它能够解构端到端延迟并将其归因于特定层或组件。虽然它不能准确地告诉您出现问题的原因,但它对于找出要查找的位置非常有用。

 可观察性支柱:探索日志、指标和跟踪_可观察性_07

集成跟踪过去很困难,但有了服务网格,现在变得毫不费力。服务网格在代理级别处理跟踪和统计数据收集,提供整个网格的无缝可观察性,而不需要其中的应用程序进行额外的检测。

上面讨论的每个组件都有其优点和缺点,尽管人们可能想全部使用它们。

可观察性工具

可观测性工具收集和分析与用户体验、基础设施和网络遥测相关的数据,以主动解决潜在问题,防止对关键业务关键绩效指标 (KPI) 产生任何负面影响。

 可观察性支柱:探索日志、指标和跟踪_可观察性_08

一些流行的可观察性工具选项包括:

  • Prometheus:领先的开源监控和警报工具包,以其可扩展性和对多维数据收集的支持而闻名。
  • Grafana:一个可视化和仪表板平台,通常与 Prometheus 一起使用,提供对系统性能的丰富洞察。
  • Jaeger:一个开源分布式跟踪系统,用于对基于微服务的架构进行监控和故障排除。
  • Elasticsearch:一种搜索和分析引擎,与 Kibana 和 Beats 配合使用时,形成用于日志管理和分析的 ELK Stack。
  • Honeycomb:一种事件驱动的可观察性工具,可提供对应用程序行为和性能的实时洞察。
  • Datadog:一个基于云的可观察性平台,集成了日志、指标和跟踪,提供端到端可见性。
  • New Relic:提供应用程序性能监控(APM)和基础设施监控解决方案来跟踪和优化应用程序性能。
  • Sysdig:Sysdig 专注于容器监控和安全,提供对容器化应用程序的深入可见性。
  • Zipkin:一种开源分布式跟踪系统,用于监控请求流并识别延迟瓶颈。

结论

日志、指标和跟踪是重要的可观察性支柱,它们共同提供分布式系统的完整视图。战略性地合并它们,例如在入口和出口点放置计数器和日志,以及在决策关口使用跟踪,可以实现有效的调试。将这些信号关联起来可以增强我们在分布式系统中导航指标、检查请求流和解决复杂问题的能力。

标签:探索,应用程序,指标,跟踪,监控,日志,观察,支柱
From: https://blog.51cto.com/u_15605878/8023535

相关文章

  • VMware Aria Operations for Logs 8.14 发布下载 - 集中式日志管理
    VMwareAriaOperationsforLogs8.14发布下载-集中式日志管理请访问原文链接:https://sysin.org/blog/vmware-aria-operations-for-logs/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.org集中式日志管理VMwareAriaOperationsforLogs(以前称为vRealizeLogI......
  • 将nginx的access.log访问日志发送到rsyslog服务器并写入数据库
    nginx.conf(将原日志路径改为rsyslog服务器地址)access_logsyslog:server=10.10.14.64:514,facility=local6main;如果需要入库需要安装相应数据库的依赖包;mysql依赖:yuminstall-y rsyslog-mysql   pgsql依赖:yuminstall-y rsyslog-pgsql  还有很多其他依赖可以用......
  • Shell执行脚本并输出日志文件的方法
    shell错误输出重定向到标准输出1./tmp/test.sh>/tmp/test.log2>&1>和<是文件重定向符。那么1和2是什么?shell中每个进程都和三个系统文件相关联标准输入stdin标准输出stdout标准错误stderr三个系统文件的文件描述符分别为0,1和2。所以这里2>&1的意思就是......
  • 五矿期货:悦数图数据库在金融期货行业的应用与实践探索
    本文整理自五矿集团-五矿期货有限公司副总经理-张剑锋在NUC2022年度用户大会上的分享。大家好,我是五矿期货的张剑锋。今天十分感谢悦数科技能够提供这个跟各位专家,还有行业技术大拿们当面学习和交流的机会。首先介绍一下期货行业。在中国的六大金融行业里面,银行,保险,还有信托,是......
  • Filebeat收集Nginx日志
    4.1为什么收集Nginx日志我们需要获取用户的信息,比如:来源的IP是哪个地域,网站的PV、UV、状态码、访问时间等等;所以需要收集Nginx日志;4.2Nginx日志收集架构图4.3Nginx日志收集实践4.3.1安装Nginxyuminstallnginx-ycat/etc/nginx/conf.d/elk.confserver{ listen5555;......
  • .net 日志系统
    一、在.net中使用日志系统1//可以直接写LogingProvider2services.AddLoging(builder=>{3builder.AddConsole();//consolelog4...5}); 二、文本日志 .net没有提供文本日志,使用第三方的日志库。日志文件按照日期区分,避免单个日志文件过大。限制日志总......
  • 【ChatGPT系列】Python自定义打印各种颜色的日志
    如何在控制台和文件中同时输出日志?要将日志同时输出到文件和控制台,可以创建并配置一个额外的StreamHandler,然后将其添加到Logger中。下面是一个示例代码,演示如何将日志同时输出到文件和控制台:importlogging#创建Logger对象logger=logging.getLogger("example_logger")......
  • springboot日志配置
    目录logback知识链接......
  • Zephyr重定向日志打印到USB串口
    nRF52840DK开发板的例程大多数是从硬件串口打印日志,然后硬件串口在开发板上通过Jlink转换为USB串口,最后打印到电脑上。这里给出通过52840自己的USB串口打印日志的方法。以zephyr/samples/hello_world例程为例:修改config#使能串口驱动CONFIG_SERIAL=y#使能串口的中断模式(......
  • oracle打开/关闭归档日志ARCHIVELOG
    1.使用SQLPlus登录用户名:sqlplus密码:assysdba 2.查询数据库是否是归档模式:查询结果为“ARCHIVELOG”表示数据库为归档模式SELECTlog_modeFROMv$database;3.关闭数据库shutdownimmediate;4.启动数据库mount模式startupmount;5.启动归档日志alte......