什么是遥测数据?

遥测数据的定义

遥测数据提供了有关系统性能的重要见解。它对于主动解决问题和做出明智的决策至关重要。 然而,为了实现这一目标,您不能仅仅依赖原始数据——您需要访问实时见解。这就是遥测数据为您提供的。

遥测是从远程来源(如服务器、应用程序和监控设备)收集、传输和分析数据的过程。此过程可以分解为以下步骤

  1. 数据收集:传感器、软件和其他监控工具会收集用户行为、性能指标和环境条件等数据。
  2. 数据传输:将收集的数据发送到中央系统。
  3. 分析和监控:收到数据后,将对数据进行处理、分析和显示,以提供有关被监控系统的状态、性能和行为的见解。

为了实现这一目标,您必须拥有正确的遥测数据。这是所有原始数据,将包括诸如日志、指标、事件以及系统、应用程序或设备创建的任何其他跟踪。如果没有这些原始数据,分析和监控就不会那么有用或准确。

遥测数据的类型

日志

日志是文本记录列表,记录系统或应用程序中发生的离散事件。每个记录都将带有时间戳,并提供用于调试和分析的详细信息。它们对于调试和故障排除、合规性报告、了解用户行为以及各种类型的审计至关重要。

有不同类型的日志,包括应用程序日志、系统日志、网络日志和访问日志。所有这些都是宝贵的遥测数据,可用于准确描绘出发生了什么、何时发生以及谁(或什么)参与其中。

跟踪

跟踪本质上是请求在系统中移动时留下的面包屑轨迹。它是请求所经路径的记录,显示了跨多个服务的流程和精确时间。这包括微服务架构中的分布式应用程序跟踪和端到端请求跟踪等内容。

作为遥测数据,这些跟踪提供了宝贵的数据,有助于进行性能优化、了解系统依赖性、根本原因分析以及识别瓶颈。

指标

指标是在运行时捕获的系统、软件或应用程序的数值测量值。这些指标可以对一段时间内的性能进行定量分析,包括 CPU 使用率、请求率、错误率、响应时间和内存利用率等内容。

在遥测中,这些指标在为系统运行状况、性能和行为等生成可见性方面发挥着重要作用。这种可见性可以为各种工具提供见解,从性能监控和异常检测到诸如容量规划和 SLA 合规性监控之类的内容。

活动

事件是系统中发生的重大事件或状态更改的记录。它们捕获影响系统或业务的重要时刻或变化,并且通常与日志不同,因为它们包含额外的上下文信息。这些事件将包括诸如登录和购买之类的用户操作、系统状态更改以及特定于业务的事件。

由于额外的上下文数据,事件对于商业智能、系统运行状况监控、合规性审计和触发自动化至关重要。它也非常适合 用户行为分析,因为您可以准确地看到他们做了什么以及何时做的。

如何设置和使用遥测数据

步骤 1:定义您的目标

设置遥测数据的第一步是确定您要实现的目标。您需要确定收集遥测数据的具体目标,例如改进系统性能、增强用户体验或识别安全威胁。一种好的方法是将遥测目标与您现有的业务目标保持一致。

接下来,您需要确定要跟踪的关键绩效指标 (KPI) 和指标。例如,如果您的目标是提高系统性能,您可能需要跟踪诸如响应时间、错误率和资源利用率等指标。在决定遥测目标时,另一个重要的考虑因素是隐私和合规性。您应审查相关法规(CCPA、GDPR 等),并定义符合这些法规并尊重用户隐私的数据收集指南。

第二步:配置您的工具

下一步是选择并配置适当的工具来实现您的目标。您应该选择既能帮助您实现目标,又能轻松与您现有技术栈集成的遥测收集工具。这可能包括诸如应用程序性能监控工具 (APM)、日志聚合器或自定义 SDK 之类的工具。

您需要实施收集机制,将日志框架或监控代理集成到您的应用程序中,OpenTelemetry 可能是一个很好的供应商中立选择。这可能涉及添加代码检测,或配置现有系统以接收您所需的数据。

要配置您的收集参数,您需要设置数据收集的具体信息,例如采样率、要捕获的事件类型以及日志的详细程度。然后配置数据过滤以过滤敏感信息,并进行匿名化以符合隐私法规。

第三步:发送您的数据

接下来,您需要实际发送您的遥测数据。首先,您需要实施传输协议来发送您的数据。对于 Web 应用程序,这可能是 HTTPS(或 HTTP),对于 IoT 设备,这可能是 MQTT,甚至可能是诸如 OpenTelemetry (OTLP) 之类的专用协议。这包括确保传输安全,采用加密和身份验证机制。

为了处理网络中断并确保可靠性,您应该设置本地数据缓冲和重试逻辑。您还需要平衡数据传输的量和频率,以最大限度地减少对应用程序性能和网络带宽的潜在影响。

第四步:存储您的数据

然后,您需要选择最合适的存储解决方案来接收您的遥测数据。您可以为不同的数据类型配置不同的存储,或者使用 Elasticsearch 及其跨集群搜索和复制来创建数据网格,从而简化分布式存储方法。

接下来,您需要实施保留策略,定义不同类型的数据应存储多长时间。在决定这一点时,请同时考虑适用于该数据的分析和法规要求。有关存储遥测数据的决策通常需要在分析性能的需求与存储成本之间取得平衡。

另一个考虑因素是分区和索引——您需要组织存储,以使用诸如基于时间的分区和索引之类的技术来优化查询性能。还应设置备份和灾难恢复,以防止数据丢失并确保对遥测数据的持续访问。

第五步:分析您的遥测数据

最后,您需要能够分析和可视化您的遥测数据。这包括开发仪表板和可视化工具来表示关键指标和趋势。您还需要实施警报系统,以便在指标超出预定义阈值或检测到异常情况时收到通知。

为了充分利用您的遥测数据,请设置高级分析,例如统计分析和机器学习,以更好地识别模式并预测未来趋势。当您结合来自不同数据类型的见解以全面了解系统活动和用户行为时,这种方法效果尤其好。

遥测数据的好处

以下是使用您的数据构建有效的遥测流程所获得的一些主要好处

  • 实时可见性:通过跟踪和分析关键指标和日志,您可以立即了解哪些方面进展良好,以及可以在哪些方面进行改进。
  • 主动问题检测和解决:您的遥测数据使您可以识别可能表明潜在问题的异常和模式,以便在问题升级之前解决。
  • 提高运营效率:通过实施自动化监控和数据收集,您可以简化工作流程并提高生产力。
  • 加快故障排除:详细的遥测数据意味着您可以快速确定问题的根本原因,从而缩短平均修复时间 (MTTR)
  • 加强决策制定:通过拥有所需的所有可用数据,您可以就资源分配、产品开发和 UX 改进做出数据驱动的决策和明智的战略选择。

为了从您的遥测数据中获得所有好处,至关重要的是使用统一的数据平台来整合您的遥测数据。这样,您可以将来自各种来源的数据汇集在一起,并减少频繁切换工具的情况。

这种整合不仅为您带来上述好处,而且还提高了可扩展性和成本效率,同时确保所有数据处理的一致性。这也是为什么像 OpenTelementry Semantic Conventions (Otel SemConv) 这样的开放标准如此重要的原因。它们确保您的不同工具和平台之间具有互操作性。

遥测数据的挑战

与任何技术一样,使用遥测数据既有好处也有挑战。克服这些挑战的方法是了解它们并制定如何克服它们的计划。

  • 数据安全和隐私:用户和客户数据的安全性和隐私至关重要。这不仅是因为它是一种良好的实践,而且还因为它可能对声誉和法规产生巨大的影响。为了应对这种情况,您需要实施强大的安全措施,例如加密、访问控制和全面的日志记录。您还需要保护敏感信息,并严格控制您的数据访问。
  • 传统软件集成:您需要通过实施灵活的数据提取来支持各种数据格式和来源。这使得可以将来自现代和传统系统的遥测数据整合到统一的平台中。
  • 经济高效的存储:分层存储选项和信息生命周期管理 (ILM) 策略意味着您可以在确保数据可访问性的同时优化存储成本。热-温-冷架构 也可以帮助您平衡性能和成本效益。
  • 开放标准支持:为确保互操作性,请尽早使用 OpenTelemetry 等开放标准。这使您可以面向未来地构建您的遥测基础设施,并轻松地与其他工具和平台集成。

Elastic 中的 OpenTelemetry

在本指南的前面,我们提到了 OpenTelemetry,这是一种开源可观测性框架,可统一数据收集并标准化遥测数据格式。它还为您提供了一种供应商中立的遥测方法,可避免被锁定,并且非常适合高容量数据处理。

这与我们在 Elastic 对开放标准的承诺非常一致,这也是为什么我们已将我们的开源规范 Elastic Common Schema (ECS) 贡献给 OpenTelemetry 的原因。

我们还将 OTel 格式数据的无缝提取纳入 Elasticsearch,作为我们更广泛的可观测性功能的一部分。这意味着您可以将高级 Elasticsearch 分析和搜索与 OTel 数据一起使用,并面向未来地构建您的可观测性平台。

Elastic 和 OpenTelemetry 的这种结合解决了您可能面临的许多关键挑战

  • 整合异构数据源
  • 确保数据安全和隐私
  • 管理传统软件集成
  • 优化存储成本
  • 处理各种数据类型
  • 支持互操作性的开放标准