裁减物联网监控和可观察性处置打算

本文探讨了物联网中监控和可观察性的要点。关键引见了如何应用日志、目的、跟踪和结构化事情来增强物联网系统的可观察性。操作数以万计的物联网设备也不例外。裁减物联网可观察性处置打算或者很快造成可观察性基础设备的性能无余和难以接受的老本。因此,本文将并重于处置大规模。

将探讨一些技术,这些技术可以协助您平衡物联网裁减带来的掂量:

选用高性能数据库

知道要搜集什么数据,如今将一切数据转储到MySQL中,就可以开局观察。不要这么快,这或者不是最好的主意,有几个要素。将检查对数据库的需求,而后倡导一种能够更好地满足对物联网裁减需求的存储。

首先,让修正存储物联网可观察性数据的几个特色:

通用SQL数据库或者不够

或者都相熟SQL数据库,因此很人造地将其视为存储可观察性数据的中央。但是,几个技术方面使得SQL数据库不适宜存储大规模的可观察性数据。

传统的面向行数据库,如MySQL或PostgreSQL,在只要要列的子集时,很难有效地处置对多维表的查问。

高维的另一个疑问是难以成功有效的索引。不能事前为列子集创立数据库索引,由于不知道在缺点扫除环节中哪些维度是关键的。因此,要么须要索引一切列(这将十分低廉),要么在基于未索引列启动过滤时查问将很慢。

此外,假设没有明白的基于期间的数据分区,通常就没有有效的方法来放弃旧数据。期间分区准许在数据过期时有效地删除大块数据。

假设出于正当的动机经常使用传统的SQL数据库来处置可观察性数据,您或者须要思考Timescale。它是一个PostgreSQL裁减,在经常使用基于行的SQL模型的同时,经过期间分区和更好的紧缩处置了下面提到的一些应战。

用于物联网裁减的信号特定存储

将可观测信号分类为度量、日志和轨迹造成了针对每种信号类型定制的公用存储的开展。例如,Mimir用于度量,Loki用于日志,Tempo/Jaeger用于跟踪。这些存储中的每一个都是用特定的信号类型创立的,这使得它们能够有效地监督特定信号中的用例。但是,跨这些存储查问数据或者比拟费事。

此外,某些存储有一些特定的限度。例如,传统的期间序列数据库(tsdb,如Mimir)不能处置高基数的数据。tsdb为每个惟一的属性集存储独自的期间序列。这种方法在维数有限和基数较低的状况下十分有效,由于在单个期间序列中编写和查问十分高效。

但是,关于高基数,数据库须要经常创立新系列,由于它经常遇到惟一的属性组合。因此,在检索聚合值时,数据库须要遍历每个期间序列,从而使操作效率低下。这个疑问在物联网畛域尤为重大。

经常使用面向列的分时存储以取得最佳可裁减性

随着对与相似的剖析上班负载的需求始终参与(如上所述),新的数据库浪潮发生了。它们驳回列式存储,这使得读取操作更高效,由于它们只接触特定查问所需的列。由于驳回了期间分区,数据库可以将读取操作限度在有限的数据范围内,从而使查问愈加高效。

这些设计选用的组合也使紧缩上班更快,由于算法在受期间范围限度的单列上操作。这类存储的典型例子包含InfluxDB、QuestDB和ClickHouse。

数据采样

在必定规模上,搜集和存储设备发生的每个可观察信号变得难以忍受。值得庆幸的是,这通常是不用要的,由于您只要经常使用一小局部可观察性数据就可以成功地调试疑问。

例如,形容成功场景的事情通常不如形容失败的事情关键。这就是为什么可以放弃大少数这些事情,只存储少数具备足够代表性的例子来重建特定的历史状况。

存在各种采样战略,以确保只搜集有限数量的事情,同时依然保管足够的细节。选用合乎你详细需求的抽样方法是很关键的。工具库,如OpenTelemetrysdk,通常提供这种采样战略的成功。这使得取样成为降落贮存和处置老本的一种相对便捷的方法。

在跟踪的背景下,依据采样决策的位置辨别了物联网裁减的两种采样:头采样和尾采样。头部采样选择能否在设备上对跨度/轨迹启动采样,而尾部采样则在搜集到特定轨迹的一切跨度后做出此选择。

头部采样的关键好处是便捷和老本效益。它缩小了在物联网环境中或者遭到限度的网络流量,并防止在可观察的后端存储和处置未采样数据。

但是,假设您宿愿基于整个跟踪做出抽样决策,则尾部抽样是必要的。假设您宿愿对失误的跟踪启动采样,而不是对成功的跟踪启动采样,那么这种方法十分有用。

建设保管战略

可观察性数据往往会随着期间的推移而迅速失去价值。当天收到的遥测数据通常比去年的数据更有价值。这为提供了另一种清楚增添存储老本的方法。

保管战略准许在指定期间范围内智能删除数据。基于期间的分区简化了保管战略的成功,这就是许多现代数据库开箱即用的要素。

另一种战略是应用分层存储。也就是说,将旧数据存储在低老本的对象存储(如AmazonS3或AzureBlobStorage)中。虽然从这些存储启动查问或者比本地磁盘具备更高的提前,但它准许您保管更长的数据,同时依然降落存储老本。

最后,可以进一步降落历史数据的分辨率。一种方法是对旧数据启动二次降采样。另一种方法是显式创立历史数据的聚合,同时放弃原始的原始记载。

总结:选用有效的存储,只保管关键的数据

在建设物联网可观察性堆栈时,必定选择在哪里存储数据并选用适宜的可观察性后端。在本文中,形容了在做出提升老本效率和物联网裁减决策时须要思考的各个方面。要记住的要点如下:

您可能还会对下面的文章感兴趣: