From a406f34625e0305b28237b698317b3a29494b73c Mon Sep 17 00:00:00 2001 From: isno Date: Mon, 5 Feb 2024 14:23:48 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=20metrics=20=E5=86=85?= =?UTF-8?q?=E5=AE=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Observability/conclusion.md | 4 +++- Observability/logging.md | 21 ++++++++++++--------- Observability/metrics.md | 14 +++++++++++++- Observability/summary.md | 12 +----------- assets/inverted-index.webp | Bin 0 -> 38882 bytes 5 files changed, 29 insertions(+), 22 deletions(-) create mode 100644 assets/inverted-index.webp diff --git a/Observability/conclusion.md b/Observability/conclusion.md index a9d7fee1..aa496a56 100644 --- a/Observability/conclusion.md +++ b/Observability/conclusion.md @@ -8,4 +8,6 @@ https://github.com/cncf/tag-observability/blob/dec82aa5bd39a8834f58da0377d1e2b8f - 《Gorilla:快速、可扩展的内存时间序列数据库》https://blog.acolyer.org/2016/05/03/gorilla-a-fast-scalable-in-memory-time-series-database/ - https://github.com/open-telemetry/docs-cn/blob/main/OT.md -- https://medium.com/lightstephq/observability-will-never-replace-monitoring-because-it-shouldnt-eeea92c4c5c9 \ No newline at end of file +- https://medium.com/lightstephq/observability-will-never-replace-monitoring-because-it-shouldnt-eeea92c4c5c9 + +- https://blog.devgenius.io/what-is-inverted-index-and-how-we-made-log-analysis-10-times-more-cost-effective-with-it-6afc6cc81d20 \ No newline at end of file diff --git a/Observability/logging.md b/Observability/logging.md index 97e92762..3c3d2c8e 100644 --- a/Observability/logging.md +++ b/Observability/logging.md @@ -1,23 +1,22 @@ # 9.2.2 事件日志 -日志我们绝对不会陌生(绝大多数程序员生涯的第一行代码都是从打印 “hello world” 开始)。整个日志系统中最成熟的部分就是打印日志。尤其是本地日志打印,各式各样层出不穷的 logging Library,同步的异步的、有锁的无锁的、有上下文的无上下文的、高性能的低性能的,花活最多轮子也造的最多。 +作为最古老而又最具体的 Signal,日志是用来记录系统运行期间发生一系列离散的事件,特别是非预期的行为、异常情况。在缺乏有力的监控系统时,日志通常是工程师定位生产问题时最直接的手段。如果 Metrics 是告诉我们系统出现问题,那么日志就是告诉我们为什么会出现问题。 -作为最古老而又最具体的 Signal,日志记录的是系统运行期间发生的离散的事件,特别是非预期的行为、异常情况。大部分的时候都是基于可读性较好的文本。 - - -今天只要稍微复杂点的系统,已经很难只依靠 tail、grep、awk 来从日志中挖掘信息,对于日志的完整处理,除了打印,还包含着日志采集、日志传输、日志清洗、日志存储、分析与检索、告警与智能化响应一系列步骤。 +从程序员生涯的第一行代码打印 “hello world” 开始,再到从 Nginx 的 access.log 中通过 awk 挖掘信息,对于日志的生产和处理,相信程序员们绝对不会陌生。而今天只要稍微复杂点的系统,已经很难只依靠 tail、grep、awk 来从日志中挖掘信息。现在对日志的完整处理,除了打印,还包含着日志采集、日志传输、日志清洗、日志存储、分析与检索、告警与智能化响应一系列步骤。 +日志的处理和分析是典型的大数据分析场景之一,高吞吐写入、低成本海量存储、实时文本检索,业内通常以 ELK(倒排索引架构,消耗巨大的资源建立索引,巨大的存储成本)和 Grafana Loki(轻量索引,检索性能慢)为代表的两类权衡架构。 ## ELK 谈论实现一套完整的日志系统,相信用户或多或少都应该听说过这几个名词:Elasticsearch、ELK 或者 Elastic Stack。 - :::tip ELKB ELK 是三个开源项目的首字母缩写,这三个项目分别是:Elasticsearch、Logstash 和 Kibana。 Elasticsearch 是一个搜索和分析引擎。 Logstash 是服务器端数据处理管道,能够同时从多个来源采集数据,转换数据,然后将数据发送到诸如 Elasticsearch 等“存储库”中。Kibana 则可以让用户在 Elasticsearch 中使用图形和图表对数据进行可视化。Beats 作为轻量级的数据搬运工,集合了多种单一用途数据采集器,将数据发送给 Logstash 或 ElasticSearch,其可扩展的框架及丰富的预置采集器将使工作事半功倍。 ::: +总结起来, ELK 是一组开源组件组成的套件,组件之间作用不用,各司其事,可以像网络协议一样按分层来理解和归类,所以形成一个类似 TCP/IP Stack 类似的 ELK Stack,如下图所示。但明确的是 ELK 中的 Stack 肯定不是协议栈,跟协议没有任何区别。为严谨准确,我们把上面的所有名词简称为 Elastic。 +

Loki 架构:与 Prometheus、Grafana 密切集成

@@ -25,10 +24,15 @@ ELK 是三个开源项目的首字母缩写,这三个项目分别是:Elastic ELK 中最核心的是 Elasticsearch,它是一个分布式搜索分析引擎,提供一种准实时搜索服务(生产环境中可以做到上报 10 秒后可搜,不惜成本万亿级日志秒级响应)。与 Elasticsearch 类似的产品还有商业公司 Splunk 和 Apache 开源的 Solr。事实上,Elasticsearch 和 Solr 都使用了著名的 Java 信息检索工具包 Lucene,Lucene 的作者就是大名鼎鼎的 Doug Cutting,如果你不知道谁是 Doug Cutting,那你一定听过他儿子玩具的名字 -- Hadoop。 -Elastic Stack 之所以流行的一个原因之一,可能是它的无侵入性。对于遗留系统的日志,它可以做到悄无声息地把处了上面打印日志之外的所有事情,全都给做了。 +Elasticsearch 在日志场景中的优势在于全文检索能力,能快速从海量的数据中检索出关键词匹配的日志,其底层核心技术是转置索引(Inverted index)。正常的索引是按 ID 查询详情,类似字典通过页码查询内容。转置索引反过来,将每一行文本进行分词,变成一个个词(Term),然后构建词(Term) -> 行号列表(Posting List) 的映射关系,将映射关系按照词进行排序存储。当需要查询某个词在哪些行出现的时候,先在 词 -> 行号列表 的有序映射关系中查找词对应的行号列表,然后用行号列表中的行号去取出对应行的内容。这样的查询方式,可以避免遍历对每一行数据进行扫描和匹配,只需要访问包含查找词的行,在海量数据下性能有数量级的提升。 +
+ +

inverted index

+
+转置索引为 ES 带来 快速检索能力的同时,也付出了写入吞出率低和存储占用高的代价。由于数据写入转置索引时需要进行分词、词典排序、构建排序表等 CPU 和内存密集型操作,导致写入吞出率大幅下降。而从存储的成本角度考虑,ES 会存储原始数据和转置索引,为了加速分析可能还需要存储一份列存数据。3份的冗余数据导致更高的存储空间占用。 我们来看一个典型的 Elastic Stack 使用场景,大致系统架构如下(整合了消息队列和 Nginx 的架构)。 @@ -41,7 +45,7 @@ Elastic Stack 之所以流行的一个原因之一,可能是它的无侵入性 采用全文检索对日志进行索引,优点是功能丰富,允许各类的复杂的操作。但是,如上的方案也明显透漏出架构复杂、维护困难、资源占用高。日志的大多数查询只关注一定时间范围和一些简单的参数(例如 host、service 等),很多功能往往用不上,ELK 方案像是杀鸡用牛刀。 -如果只是需求只是把日志集中起来,最多用来告警或者排查问题,那么我们可以把目光转向 Loki。 +如果只是需求只是把日志集中起来,操作多是近期范围内的查询,最多用来告警或者排查问题,那就没必要做成全文索引。那么我们可以把目光转向 Loki。 ## Loki @@ -64,7 +68,6 @@ Loki 对 Kubernetes 友好,Promtail(日志收集代理)以 DaemonSet 方

Loki Grafana

- 总体而言,Loki 和 ELK 都是优秀的日志解决方案,具体如何选择取决于具体场景。 Loki 相对轻量,具有较高的可扩展性和简化的存储架构,若是数据的处理不那么复杂,且有时序属性,如应用程序日志和基础设施指标,并且应用使用 kubernetes Pod 形式部署,则选择 Loki 比较合适。ELK 则相对重量,需要复杂的存储架构和较高的硬件要求,部署和管理也比较复杂,适合更大的数据集和更复杂的数据处理需求。 ## 日志展示 diff --git a/Observability/metrics.md b/Observability/metrics.md index 417b4866..0f2ced2f 100644 --- a/Observability/metrics.md +++ b/Observability/metrics.md @@ -1,4 +1,4 @@ -# 9.2.1 聚合指标 +# 9.2.1 聚合度量 作为传统监控和告警领域的代名词,Metrics 最广为人知,也被各类可观测系统支持的最丰富。Metrics 一般是用来计算 Events 发生数量的数据集,例如服务 QPS、API 响应延迟、某个接口的失败数等。它们大部分都是以数字化指标出现,特征是可聚合性,在数据的处理上,Metrics 可以是实时的,也可能是区间范围的,是跟随着时间变化的时序数据。既能做常见的监控告警,也可以用来做趋势分析。 @@ -8,6 +8,18 @@ 由于目前并没有 Metrics 采集的标准 API,所以不同的监控系统在收集 Metrics 数据时采取的手段也可能不一样,但大部分无非都是通过 PUSH 到中心 Collector 方式采集 Metrics(比如各种 Agent 采集器,Telegraf 等); 又或者是中心 Collector 通过 PULL 的方式去主动获取 Metrics(比如 Prometheus)。 +对于一个监控系统而言,核心要解决的问题其实就三个: + +- 监控指标用什么形式表示 +- 怎么收集和存储指标 +- 怎么利用指标生成报表 + +## Metrics 类型 + +- 计数(counter):一个只能增加或重置的度量值(即该值只能比之前多) + +Prometheus 最早由 SoundCloud 开发,后来捐赠到开源社区。在2016年,加入 CNCF,是仅次于 Kubernetes 的第二个项目。 + 时序数据库 TSDB 是专门用来存储随时间变化的数据,如股票价格、传感器数据等。时间序列(time-series)的是某个变量随时间变化的所有历史,而样本 (sample)指的是历史中该变量的瞬时值。 diff --git a/Observability/summary.md b/Observability/summary.md index 883670c1..4c5e3f58 100644 --- a/Observability/summary.md +++ b/Observability/summary.md @@ -1,13 +1,3 @@ # 第九章:系统可观测性 -可观测性(Observability)一词最早出现在控制论领域,有着几十年的历史。随着云原生时代的到来,2018 年,CNCF 率先将可观测性的概念引入 IT 领域,并称可观测性是云原生时代必须具备的能力(哎,又诞生一个得系统学习的领域)。从生产所需到概念发声,加之包括 Google 在内的众多大厂一拥而上。至此,”可观测性“逐渐取代”监控“,成为云原生技术领域最热门的话题之一。 - -:::tip 额外知识 - -控制理论中的可观察性(observability)是指系统可以由其外部输出推断其内部状态的程度。可观察性最早是匈牙利裔工程师鲁 Rudolf E. Kálmán 针对线性动态系统提出的概念,若以信号流图来看,若所有的内部状态都可以输出到输出信号,此系统即有可观察性。 - -
- -
- -::: \ No newline at end of file +可观测性(Observability)一词最早出现在控制论领域(最早是匈牙利裔工程师鲁 Rudolf E. Kálmán 针对线性动态系统提出的概念),有着几十年的历史。随着云原生时代的到来,2018 年,CNCF 率先将可观测性的概念引入 IT 领域,并称可观测性是云原生时代必须具备的能力,从生产所需到概念发声,加之包括 Google 在内的众多大厂一拥而上。至此,”可观测性“逐渐取代”监控“,成为云原生技术领域最热门的话题之一。 \ No newline at end of file diff --git a/assets/inverted-index.webp b/assets/inverted-index.webp new file mode 100644 index 0000000000000000000000000000000000000000..cd6ec074228c327aa73c8ef5f5f5e8ebb731420d GIT binary patch literal 38882 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 O8iMdIp8RLoSNjj$c{>3B literal 0 HcmV?d00001