<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Observability &amp; Analysis on Learning Notes</title><link>https://nianjiang.github.io/docs/70-CNCF/40-Observe/</link><description>Recent content in Observability &amp; Analysis on Learning Notes</description><generator>Hugo</generator><language>zh</language><atom:link href="https://nianjiang.github.io/docs/70-CNCF/40-Observe/index.xml" rel="self" type="application/rss+xml"/><item><title>Prometheus</title><link>https://nianjiang.github.io/docs/70-CNCF/40-Observe/11-Prometheus/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://nianjiang.github.io/docs/70-CNCF/40-Observe/11-Prometheus/</guid><description>&lt;h1 id="prometheus-notes"&gt;
 
 &lt;a href="https://prometheus.io/"&gt;Prometheus&lt;/a&gt; Notes
 &lt;a class="anchor" href="#prometheus-notes"&gt;#&lt;/a&gt;
&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;This is my learning Notes for Prometheus&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
 &lt;a href="https://prometheus.io/docs/introduction/overview/"&gt;Docs&lt;/a&gt;, 
 &lt;a href="https://github.com/prometheus/prometheus"&gt;Github&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;
 &lt;a href="https://training.linuxfoundation.org/training/monitoring-systems-and-services-with-prometheus-lfs241/"&gt;Prometheus Course (LFS241)&lt;/a&gt;, 
 &lt;a href="https://training.promlabs.com/trainings/"&gt;PromLabs&lt;/a&gt;, 
 &lt;a href="https://robustperception.teachable.com/courses/enrolled/200947"&gt;Robust Perception&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;
 &lt;a href="https://github.com/roaldnefs/awesome-prometheus"&gt;awesome-prometheus&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;
 &lt;a href="https://nianjiang.github.io/"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;
 &lt;a href="https://nianjiang.github.io/"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2 id="introduction-to-observability"&gt;
 Introduction to Observability
 &lt;a class="anchor" href="#introduction-to-observability"&gt;#&lt;/a&gt;
&lt;/h2&gt;
&lt;p&gt;可观测性（Observability）的三大支柱：&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Pillar&lt;/th&gt;
 &lt;th&gt;描述&lt;/th&gt;
 &lt;th&gt;代表项目&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;Metrics（指标）&lt;/td&gt;
 &lt;td&gt;数值型时序数据，反映系统运行状态&lt;/td&gt;
 &lt;td&gt;Prometheus&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Logging（日志）&lt;/td&gt;
 &lt;td&gt;离散事件记录，用于事后追溯&lt;/td&gt;
 &lt;td&gt;Loki, Fluentd, ELK&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Tracing（追踪）&lt;/td&gt;
 &lt;td&gt;请求在分布式系统中的完整调用链&lt;/td&gt;
 &lt;td&gt;Jaeger, Zipkin, Tempo&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;监控（Monitoring）回答&amp;quot;系统是否正常&amp;quot;，可观测性（Observability）回答&amp;quot;为什么不正常&amp;quot;——能否从外部输出推断系统内部状态。Prometheus 专注于 Metrics 维度。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="architecture"&gt;
 Architecture
 &lt;a class="anchor" href="#architecture"&gt;#&lt;/a&gt;
&lt;/h2&gt;
&lt;p&gt;
 &lt;img src="https://prometheus.io/assets/docs/architecture.svg" alt="Architecture" /&gt;&lt;/p&gt;
&lt;p&gt;核心组件：&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Component&lt;/th&gt;
 &lt;th&gt;作用&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;Prometheus Server&lt;/td&gt;
 &lt;td&gt;核心服务，负责抓取、存储、查询时序数据&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Exporters / Jobs&lt;/td&gt;
 &lt;td&gt;将现有系统/服务的指标暴露为 Prometheus 格式&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Pushgateway&lt;/td&gt;
 &lt;td&gt;短生命周期任务推送指标的中间层（Prometheus 仍以 pull 拉取）&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Alertmanager&lt;/td&gt;
 &lt;td&gt;处理告警：去重、分组、路由到接收器（Email/Slack/PagerDuty）&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Service Discovery&lt;/td&gt;
 &lt;td&gt;动态发现监控目标（Kubernetes, Consul, EC2 等）&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;┌─────────────────────────────────────────────────────────────┐
│ Prometheus Server │
│ ┌───────────┐ ┌───────────┐ ┌───────────┐ ┌──────────┐ │
│ │ Retrieval │→ │ TSDB │→ │ HTTP │ │ Alert │ │
│ │ (Pull) │ │ (Storage) │ │ Server │ │ Manager │ │
│ └─────┬─────┘ └───────────┘ └──────────┘ └────┬─────┘ │
│ │ │ │
└────────┼────────────────────────────────────────────┼───────┘
 │ │
 ┌────▼──────────────────────┐ ┌────▼──────┐
 │ Service Discovery │ │ Alert │
 │ Kubernetes / Consul / EC2│ │ Manager │
 └────┬──────────────────────┘ └────┬──────┘
 │ │
 ┌────▼────────────────────┐ ┌─────▼─────┐
 │ Targets (Exporters) │ │ Pager │
 │ node_exporter / app │ │ Email │
 └─────────────────────────┘ │ Slack │
 └───────────┘
 ┌──────────────────┐
 │ Pushgateway │ ← short-lived jobs push metrics here
 └────────┬─────────┘
 │ (Prometheus still pulls from Pushgateway)
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Prometheus 核心设计：&lt;strong&gt;Pull 模型&lt;/strong&gt;——Prometheus 主动从目标 HTTP 端点（默认 &lt;code&gt;/metrics&lt;/code&gt;）拉取指标，而非被动等待推送。&lt;/p&gt;</description></item><item><title>Prometheus Exam</title><link>https://nianjiang.github.io/docs/70-CNCF/40-Observe/12-PrometheusExam/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://nianjiang.github.io/docs/70-CNCF/40-Observe/12-PrometheusExam/</guid><description>&lt;h1 id="prometheus-certified-associate-pca-exam-notes"&gt;
 Prometheus Certified Associate (PCA) Exam Notes
 &lt;a class="anchor" href="#prometheus-certified-associate-pca-exam-notes"&gt;#&lt;/a&gt;
&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;This is my learning notes for the PCA certification &amp;amp; free practice resources&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
 &lt;a href="https://www.cncf.io/training/certification/pca/"&gt;CNCF PCA&lt;/a&gt;, 
 &lt;a href="https://training.linuxfoundation.org/certification/prometheus-certified-associate/"&gt;Linux Foundation&lt;/a&gt;&lt;/p&gt;
&lt;h2 id="exam-overview"&gt;
 Exam Overview
 &lt;a class="anchor" href="#exam-overview"&gt;#&lt;/a&gt;
&lt;/h2&gt;
&lt;p&gt;The &lt;strong&gt;
 &lt;a href="https://github.com/cncf/curriculum/blob/master/PCA_Curriculum.pdf"&gt;Prometheus Certified Associate (PCA)&lt;/a&gt;&lt;/strong&gt; is an entry-level certification offered by the CNCF / Linux Foundation. It validates foundational knowledge of observability and skills using Prometheus.&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Item&lt;/th&gt;
 &lt;th&gt;Detail&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;颁发机构&lt;/td&gt;
 &lt;td&gt;CNCF / Linux Foundation&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;费用&lt;/td&gt;
 &lt;td&gt;$250 USD（含 1 次免费补考）&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;题型&lt;/td&gt;
 &lt;td&gt;60 道选择题，在线远程监考&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;时长&lt;/td&gt;
 &lt;td&gt;90 分钟&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;及格线&lt;/td&gt;
 &lt;td&gt;70%&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;难度&lt;/td&gt;
 &lt;td&gt;入门级（Entry-level），无需先决证书&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;适合人群&lt;/td&gt;
 &lt;td&gt;SRE、DevOps Engineer、Developer，Kubernetes/微服务从业者&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;没有完全免费的 Prometheus 证书。&lt;/strong&gt; PCA 是唯一官方认证，但备考资源大多免费，且 CNCF 经常提供折扣码。&lt;/p&gt;</description></item><item><title>Thanos</title><link>https://nianjiang.github.io/docs/70-CNCF/40-Observe/13-Thanos/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://nianjiang.github.io/docs/70-CNCF/40-Observe/13-Thanos/</guid><description>&lt;h1 id="thanos-notes"&gt;
 
 &lt;a href="https://thanos.io/"&gt;Thanos&lt;/a&gt; Notes
 &lt;a class="anchor" href="#thanos-notes"&gt;#&lt;/a&gt;
&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;This is my learning Notes for Thanos — Highly Available Prometheus with Long-Term Storage&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
 &lt;a href="https://thanos.io/tip/thanos/getting-started.md/"&gt;Docs&lt;/a&gt;, 
 &lt;a href="https://github.com/thanos-io/thanos"&gt;Github&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;
 &lt;a href="https://thanos.io/v0.31/thanos/quick-tutorial.md/"&gt;Killercoda Tutorial&lt;/a&gt;, 
 &lt;a href="https://landscape.cncf.io/?item=observability-and-analysis%e2%80%93monitoring%e2%80%93thanos"&gt;CNCF Landscape&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Thanos 是一个 &lt;strong&gt;CNCF Incubating&lt;/strong&gt; 项目，在现有 Prometheus 之上提供全局查询视图、无限存储保留和高可用性，无需替换 Prometheus。&lt;/p&gt;
&lt;h2 id="why-thanos--prometheus-的局限性"&gt;
 Why Thanos? — Prometheus 的局限性
 &lt;a class="anchor" href="#why-thanos--prometheus-%e7%9a%84%e5%b1%80%e9%99%90%e6%80%a7"&gt;#&lt;/a&gt;
&lt;/h2&gt;
&lt;p&gt;原生 Prometheus 是单机架构，存在以下限制：&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;局限&lt;/th&gt;
 &lt;th&gt;说明&lt;/th&gt;
 &lt;th&gt;Thanos 解决方案&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;单点故障&lt;/td&gt;
 &lt;td&gt;一个 Prometheus 挂了 = 该区域失去监控&lt;/td&gt;
 &lt;td&gt;HA 对 + 去重&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;存储有限&lt;/td&gt;
 &lt;td&gt;本地磁盘，retention 到期即删除&lt;/td&gt;
 &lt;td&gt;Object Storage 无限保留&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;无法全局查询&lt;/td&gt;
 &lt;td&gt;每个 Prometheus 各自独立&lt;/td&gt;
 &lt;td&gt;Querier 全局聚合&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;扩展困难&lt;/td&gt;
 &lt;td&gt;垂直扩展有天花板&lt;/td&gt;
 &lt;td&gt;Receive 水平扩展 / 分片&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;历史数据查询慢&lt;/td&gt;
 &lt;td&gt;本地 TSDB 数据量大时性能下降&lt;/td&gt;
 &lt;td&gt;Compactor 降采样（Downsampling）&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;单 Prometheus 的天花板：
 ┌──────────────────────────────┐
 │ 单个 Prometheus │
 │ • 本地磁盘 → 有限 retention │
 │ • 单点 → 无 HA │
 │ • 无法跨集群查询 │
 └──────────────────────────────┘

Thanos 的解决方式：
 ┌──────────────┐ ┌──────────────┐
 │ Prometheus A │ │ Prometheus B │ ← 多集群各自采集
 │ + Sidecar │ │ + Sidecar │
 └──────┬───────┘ └──────┬───────┘
 │ 上传 Block │
 ▼ ▼
 ┌──────────────────────────────┐
 │ Object Storage │ ← 无限保留、低成本
 │ (S3 / GCS / Azure / MinIO) │
 └──────────────┬───────────────┘
 │
 ┌───────▼───────┐
 │ Thanos Query │ ← 全局统一查询入口
 └───────────────┘
&lt;/code&gt;&lt;/pre&gt;&lt;hr&gt;
&lt;h2 id="architecture"&gt;
 Architecture
 &lt;a class="anchor" href="#architecture"&gt;#&lt;/a&gt;
&lt;/h2&gt;
&lt;p&gt;Thanos 遵循 &lt;strong&gt;UNIX 哲学&lt;/strong&gt;：每个组件做一件事，通过 gRPC Store API 协作。&lt;/p&gt;</description></item></channel></rss>