<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Prometheus on OHTLY Blog</title>
    <link>https://blog.ohtly.com/tags/prometheus/</link>
    <description>Recent content in Prometheus on OHTLY Blog</description>
    <generator>Hugo</generator>
    <language>zh-cn</language>
    <lastBuildDate>Fri, 29 May 2026 20:21:07 +0800</lastBuildDate>
    <atom:link href="https://blog.ohtly.com/tags/prometheus/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>自建 PostgreSQL 可观测性：Prometheus 指标 &#43; Loki 日志告警方案</title>
      <link>https://blog.ohtly.com/posts/postgresql-observability/</link>
      <pubDate>Fri, 29 May 2026 20:21:07 +0800</pubDate>
      <guid>https://blog.ohtly.com/posts/postgresql-observability/</guid>
      <description>&lt;h2 id=&#34;前言&#34;&gt;&#xA;  前言&#xA;  &lt;a class=&#34;heading-link&#34; href=&#34;#%e5%89%8d%e8%a8%80&#34;&gt;&#xA;    &lt;i class=&#34;fa-solid fa-link&#34; aria-hidden=&#34;true&#34; title=&#34;链接到标题&#34;&gt;&lt;/i&gt;&#xA;    &lt;span class=&#34;sr-only&#34;&gt;链接到标题&lt;/span&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;PostgreSQL 是生产环境最常用的关系型数据库之一。当服务挂了、连接爆了、死锁了，需要第一时间感知。&lt;/p&gt;&#xA;&lt;p&gt;单纯靠 Prometheus 指标可以告诉你「连接数超了」，但说不出原因；单纯靠日志可以告诉你「too many connections」，但没有量化趋势。&lt;/p&gt;&#xA;&lt;p&gt;本文的方案是 &lt;strong&gt;指标 + 日志协同监控&lt;/strong&gt;，形成完整可观测性闭环：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;指标告警 → 感知异常（量变）&lt;/li&gt;&#xA;&lt;li&gt;日志告警 → 定位根因（质变）&lt;/li&gt;&#xA;&lt;li&gt;统一通知 → 飞书即时推送&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;架构&#34;&gt;&#xA;  架构&#xA;  &lt;a class=&#34;heading-link&#34; href=&#34;#%e6%9e%b6%e6%9e%84&#34;&gt;&#xA;    &lt;i class=&#34;fa-solid fa-link&#34; aria-hidden=&#34;true&#34; title=&#34;链接到标题&#34;&gt;&lt;/i&gt;&#xA;    &lt;span class=&#34;sr-only&#34;&gt;链接到标题&lt;/span&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;下面是完整的数据流：&lt;/p&gt;&#xA;&lt;div class=&#34;mermaid&#34;&gt;&#xA;graph TD&#xA;    PG[PostgreSQL 17&lt;br/&gt;monkey:5432] --&gt; PE[postgres-exporter&lt;br/&gt;monkey:9187]&#xA;    PE --&gt; PM[Prometheus&lt;br/&gt;robin:9090]&#xA;    PM --&gt; AM[Alertmanager&lt;br/&gt;robin:9093]&#xA;&#xA;    PG --&gt;|Docker logs| AL[Alloy&lt;br/&gt;monkey:12346]&#xA;    AL --&gt; LK[Loki&lt;br/&gt;robin:3100]&#xA;    LK --&gt;|Loki Ruler LogQL| AM&#xA;&#xA;    AM --&gt; AT[alert-transformer&lt;br/&gt;robin:9091]&#xA;    AT --&gt; OC[OpenClaw&lt;br/&gt;rivo:18789]&#xA;    OC --&gt; FS[飞书]&#xA;&#xA;    subgraph 指标路径&#xA;        PE&#xA;        PM&#xA;    end&#xA;&#xA;    subgraph 日志路径&#xA;        AL&#xA;        LK&#xA;    end&#xA;&#xA;    subgraph 通知路径&#xA;        AM&#xA;        AT&#xA;        OC&#xA;        FS&#xA;    end&#xA;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;p&gt;两条路径独立采集、独立告警，最终汇总到同一个通知链路。&lt;/p&gt;</description>
    </item>
    <item>
      <title>用 Prometheus 监控 MinIO 对象存储</title>
      <link>https://blog.ohtly.com/posts/2026-05-29-minio-prometheus-monitoring/</link>
      <pubDate>Fri, 29 May 2026 19:29:59 +0800</pubDate>
      <guid>https://blog.ohtly.com/posts/2026-05-29-minio-prometheus-monitoring/</guid>
      <description>&lt;p&gt;前四篇介绍了不同场景的监控方案：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://blog.ohtly.com/posts/2026-05-29-couchdb-loki-monitoring/&#34; &gt;CouchDB 日志告警&lt;/a&gt; → Alloy + Loki + LogQL&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://blog.ohtly.com/posts/2026-05-29-windmill-loki-monitoring/&#34; &gt;Windmill 日志告警&lt;/a&gt; → Alloy + Loki + LogQL&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://blog.ohtly.com/posts/2026-05-29-alertmanager-feishu/&#34; &gt;告警通知到飞书&lt;/a&gt; → Alertmanager → transformer → OpenClaw&lt;/li&gt;&#xA;&lt;li&gt;MinIO 指标监控（本篇）→ 一行配置 + Prometheus 指标告警&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;这篇最短，因为 MinIO 自带 Prometheus 端点，不需要额外 exporter，也不需要日志采集。&lt;/p&gt;</description>
    </item>
    <item>
      <title>告警通知到飞书：Alertmanager → OpenClaw 中转方案</title>
      <link>https://blog.ohtly.com/posts/2026-05-29-alertmanager-feishu/</link>
      <pubDate>Fri, 29 May 2026 19:10:00 +0800</pubDate>
      <guid>https://blog.ohtly.com/posts/2026-05-29-alertmanager-feishu/</guid>
      <description>&lt;p&gt;前两篇介绍了用 Alloy + Loki Ruler 实现日志告警：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://blog.ohtly.com/posts/2026-05-29-couchdb-loki-monitoring/&#34; &gt;CouchDB 日志监控&lt;/a&gt;：文本日志的 LogQL 告警&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://blog.ohtly.com/posts/2026-05-29-windmill-loki-monitoring/&#34; &gt;Windmill 日志监控&lt;/a&gt;：JSON 日志的 LogQL 告警&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;两条链路最终都汇入 Alertmanager，由它统一分派到飞书。但 Alertmanager 原生没有飞书 receiver——它的 webhook 输出的是原始 JSON，飞书看不懂。中间需要一层适配器来转换格式。这个适配器就是 &lt;strong&gt;alert-transformer&lt;/strong&gt;。&lt;/p&gt;</description>
    </item>
    <item>
      <title>用 Prometheus 监控 Docker CouchDB 实例</title>
      <link>https://blog.ohtly.com/posts/2026-05-16-docker-couchdb-prometheus-monitoring/</link>
      <pubDate>Sat, 16 May 2026 10:00:00 +0800</pubDate>
      <guid>https://blog.ohtly.com/posts/2026-05-16-docker-couchdb-prometheus-monitoring/</guid>
      <description>&lt;p&gt;最近在项目中使用了 CouchDB 作为文档数据库，考虑到生产环境的需求，研究了一套基于 Prometheus 的监控方案。这套方案全部跑在 Docker 环境下，现在整理成文，供有需要的同学参考。&lt;/p&gt;</description>
    </item>
    <item>
      <title>使用 DCGM-Exporter 实现 GPU 智能告警</title>
      <link>https://blog.ohtly.com/posts/2026-05-06-dcgm-exporter-gpu-alert/</link>
      <pubDate>Tue, 05 May 2026 21:53:58 +0800</pubDate>
      <guid>https://blog.ohtly.com/posts/2026-05-06-dcgm-exporter-gpu-alert/</guid>
      <description>&lt;p&gt;GPU 是生产环境中重要的计算资源，温度过高、显存泄漏、硬件故障等问题如果不及时发现，可能影响线上服务。本文记录一套完整的 GPU 监控告警方案，从指标采集到飞书推送的全自动链路。&lt;/p&gt;&#xA;&lt;h2 id=&#34;监控目标&#34;&gt;&#xA;  监控目标&#xA;  &lt;a class=&#34;heading-link&#34; href=&#34;#%e7%9b%91%e6%8e%a7%e7%9b%ae%e6%a0%87&#34;&gt;&#xA;    &lt;i class=&#34;fa-solid fa-link&#34; aria-hidden=&#34;true&#34; title=&#34;链接到标题&#34;&gt;&lt;/i&gt;&#xA;    &lt;span class=&#34;sr-only&#34;&gt;链接到标题&lt;/span&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;维度&lt;/th&gt;&#xA;          &lt;th&gt;指标&lt;/th&gt;&#xA;          &lt;th&gt;告警阈值&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;温度&lt;/td&gt;&#xA;          &lt;td&gt;GPU 核心温度 / 显存温度&lt;/td&gt;&#xA;          &lt;td&gt;&amp;gt; 83°C / &amp;gt; 100°C&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;显存&lt;/td&gt;&#xA;          &lt;td&gt;VRAM 使用率&lt;/td&gt;&#xA;          &lt;td&gt;&amp;gt; 90%&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;功耗&lt;/td&gt;&#xA;          &lt;td&gt;GPU 功率&lt;/td&gt;&#xA;          &lt;td&gt;&amp;gt; 150W&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;硬件健康&lt;/td&gt;&#xA;          &lt;td&gt;PCIe 重连、行重映射错误&lt;/td&gt;&#xA;          &lt;td&gt;任何异常&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;可用性&lt;/td&gt;&#xA;          &lt;td&gt;DCGM-Exporter 进程是否存活&lt;/td&gt;&#xA;          &lt;td&gt;宕机 1m&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h2 id=&#34;架构总览&#34;&gt;&#xA;  架构总览&#xA;  &lt;a class=&#34;heading-link&#34; href=&#34;#%e6%9e%b6%e6%9e%84%e6%80%bb%e8%a7%88&#34;&gt;&#xA;    &lt;i class=&#34;fa-solid fa-link&#34; aria-hidden=&#34;true&#34; title=&#34;链接到标题&#34;&gt;&lt;/i&gt;&#xA;    &lt;span class=&#34;sr-only&#34;&gt;链接到标题&lt;/span&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;div class=&#34;mermaid&#34;&gt;&#xA;flowchart LR&#xA;    A[DCGM-Exporter&lt;br/&gt;monkey:9400] --&gt;|scrape| B[Prometheus&lt;br/&gt;robin:9090]&#xA;    B --&gt;|alert rules| C[Alertmanager&lt;br/&gt;robin:9093]&#xA;    C --&gt;|webhook| D[alert-transformer&lt;br/&gt;rivo:9091]&#xA;    D --&gt;|hooks| E[OpenClaw]&#xA;    E --&gt;|飞书机器人| F[飞书]&#xA;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;h2 id=&#34;部署-dcgm-exporter&#34;&gt;&#xA;  部署 DCGM-Exporter&#xA;  &lt;a class=&#34;heading-link&#34; href=&#34;#%e9%83%a8%e7%bd%b2-dcgm-exporter&#34;&gt;&#xA;    &lt;i class=&#34;fa-solid fa-link&#34; aria-hidden=&#34;true&#34; title=&#34;链接到标题&#34;&gt;&lt;/i&gt;&#xA;    &lt;span class=&#34;sr-only&#34;&gt;链接到标题&lt;/span&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;在 GPU 节点上通过 Docker 部署 DCGM-Exporter。使用 DaoCloud 镜像加速国内拉取：&lt;/p&gt;</description>
    </item>
    <item>
      <title>智能监控技术方案：OpenClaw &#43; Prometheus &#43; Loki</title>
      <link>https://blog.ohtly.com/posts/2026-05-05-%E6%99%BA%E8%83%BD%E7%9B%91%E6%8E%A7%E6%8A%80%E6%9C%AF%E6%96%B9%E6%A1%88/</link>
      <pubDate>Tue, 05 May 2026 13:49:54 +0800</pubDate>
      <guid>https://blog.ohtly.com/posts/2026-05-05-%E6%99%BA%E8%83%BD%E7%9B%91%E6%8E%A7%E6%8A%80%E6%9C%AF%E6%96%B9%E6%A1%88/</guid>
      <description>&lt;h1 id=&#34;智能监控技术方案&#34;&gt;&#xA;  智能监控技术方案&#xA;  &lt;a class=&#34;heading-link&#34; href=&#34;#%e6%99%ba%e8%83%bd%e7%9b%91%e6%8e%a7%e6%8a%80%e6%9c%af%e6%96%b9%e6%a1%88&#34;&gt;&#xA;    &lt;i class=&#34;fa-solid fa-link&#34; aria-hidden=&#34;true&#34; title=&#34;链接到标题&#34;&gt;&lt;/i&gt;&#xA;    &lt;span class=&#34;sr-only&#34;&gt;链接到标题&lt;/span&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h1&gt;&#xA;&lt;h2 id=&#34;概述&#34;&gt;&#xA;  概述&#xA;  &lt;a class=&#34;heading-link&#34; href=&#34;#%e6%a6%82%e8%bf%b0&#34;&gt;&#xA;    &lt;i class=&#34;fa-solid fa-link&#34; aria-hidden=&#34;true&#34; title=&#34;链接到标题&#34;&gt;&lt;/i&gt;&#xA;    &lt;span class=&#34;sr-only&#34;&gt;链接到标题&lt;/span&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;本文档描述基于开源组件构建的智能监控告警体系，实现从指标采集到飞书通知的完整告警流程。&lt;/p&gt;&#xA;&lt;h3 id=&#34;架构概览&#34;&gt;&#xA;  架构概览&#xA;  &lt;a class=&#34;heading-link&#34; href=&#34;#%e6%9e%b6%e6%9e%84%e6%a6%82%e8%a7%88&#34;&gt;&#xA;    &lt;i class=&#34;fa-solid fa-link&#34; aria-hidden=&#34;true&#34; title=&#34;链接到标题&#34;&gt;&lt;/i&gt;&#xA;    &lt;span class=&#34;sr-only&#34;&gt;链接到标题&lt;/span&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h3&gt;&#xA;&lt;p&gt;&lt;strong&gt;告警处理流程&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;div class=&#34;mermaid&#34;&gt;&#xA;flowchart TD&#xA;    A[&#34;node-exporter&lt;br/&gt;:9100&#34;]&#xA;    B[&#34;Prometheus&lt;br/&gt;:9090&#34;]&#xA;    C[&#34;Alertmanager&lt;br/&gt;:9093&#34;]&#xA;    D[&#34;alert-transformer&lt;br/&gt;:9091&#34;]&#xA;    E[&#34;OpenClaw&lt;br/&gt;:18789&#34;]&#xA;    F[&#34;飞书 Webhook&#34;]&#xA;    G[&#34;告警规则&lt;br/&gt;alerts.yml&#34;]&#xA;&#xA;    A --&gt;|指标采集| B&#xA;    B --&gt;|告警评估| C&#xA;    B -.-&gt;|加载| G&#xA;    C --&gt;|Webhook| D&#xA;    D --&gt;|格式转换| E&#xA;    E --&gt;|飞书通知| F&#xA;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;指标采集流程&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;div class=&#34;mermaid&#34;&gt;&#xA;flowchart LR&#xA;    subgraph 指标&#xA;        H[&#34;node-exporter&lt;br/&gt;:9100&#34;]&#xA;        I[&#34;Prometheus&lt;br/&gt;:9090&#34;]&#xA;        H --&gt;|&#34;Prometheus 抓取 (15s)&#34;| I&#xA;    end&#xA;    subgraph 日志&#xA;        J[&#34;Docker 日志&#34;]&#xA;        K[&#34;Alloy&lt;br/&gt;:12345&#34;]&#xA;        L[&#34;Loki&lt;br/&gt;:3100&#34;]&#xA;        J --&gt;|采集| K&#xA;        K --&gt;|发送| L&#xA;    end&#xA;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;h3 id=&#34;组件职责&#34;&gt;&#xA;  组件职责&#xA;  &lt;a class=&#34;heading-link&#34; href=&#34;#%e7%bb%84%e4%bb%b6%e8%81%8c%e8%b4%a3&#34;&gt;&#xA;    &lt;i class=&#34;fa-solid fa-link&#34; aria-hidden=&#34;true&#34; title=&#34;链接到标题&#34;&gt;&lt;/i&gt;&#xA;    &lt;span class=&#34;sr-only&#34;&gt;链接到标题&lt;/span&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h3&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;组件&lt;/th&gt;&#xA;          &lt;th&gt;职责&lt;/th&gt;&#xA;          &lt;th&gt;端口&lt;/th&gt;&#xA;          &lt;th&gt;部署位置&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;node-exporter&lt;/td&gt;&#xA;          &lt;td&gt;系统指标采集 (CPU/内存/磁盘/网络)&lt;/td&gt;&#xA;          &lt;td&gt;9100&lt;/td&gt;&#xA;          &lt;td&gt;每台被监控主机&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;Prometheus&lt;/td&gt;&#xA;          &lt;td&gt;指标抓取、存储、告警规则评估&lt;/td&gt;&#xA;          &lt;td&gt;9090&lt;/td&gt;&#xA;          &lt;td&gt;监控服务器&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;Alertmanager&lt;/td&gt;&#xA;          &lt;td&gt;告警去重、分组、路由、抑制&lt;/td&gt;&#xA;          &lt;td&gt;9093&lt;/td&gt;&#xA;          &lt;td&gt;监控服务器&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;alert-transformer&lt;/td&gt;&#xA;          &lt;td&gt;告警格式转换为 OpenClaw API&lt;/td&gt;&#xA;          &lt;td&gt;9091&lt;/td&gt;&#xA;          &lt;td&gt;监控服务器&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;OpenClaw&lt;/td&gt;&#xA;          &lt;td&gt;AI 决策、自然语言处理、飞书通知&lt;/td&gt;&#xA;          &lt;td&gt;18789&lt;/td&gt;&#xA;          &lt;td&gt;OpenClaw 服务器&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;Loki&lt;/td&gt;&#xA;          &lt;td&gt;日志存储和查询&lt;/td&gt;&#xA;          &lt;td&gt;3100&lt;/td&gt;&#xA;          &lt;td&gt;监控服务器&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;Alloy&lt;/td&gt;&#xA;          &lt;td&gt;Docker 日志采集&lt;/td&gt;&#xA;          &lt;td&gt;12345&lt;/td&gt;&#xA;          &lt;td&gt;监控服务器&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h2 id=&#34;部署配置&#34;&gt;&#xA;  部署配置&#xA;  &lt;a class=&#34;heading-link&#34; href=&#34;#%e9%83%a8%e7%bd%b2%e9%85%8d%e7%bd%ae&#34;&gt;&#xA;    &lt;i class=&#34;fa-solid fa-link&#34; aria-hidden=&#34;true&#34; title=&#34;链接到标题&#34;&gt;&lt;/i&gt;&#xA;    &lt;span class=&#34;sr-only&#34;&gt;链接到标题&lt;/span&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;h3 id=&#34;node-exporter-部署&#34;&gt;&#xA;  node-exporter 部署&#xA;  &lt;a class=&#34;heading-link&#34; href=&#34;#node-exporter-%e9%83%a8%e7%bd%b2&#34;&gt;&#xA;    &lt;i class=&#34;fa-solid fa-link&#34; aria-hidden=&#34;true&#34; title=&#34;链接到标题&#34;&gt;&lt;/i&gt;&#xA;    &lt;span class=&#34;sr-only&#34;&gt;链接到标题&lt;/span&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h3&gt;&#xA;&lt;p&gt;每台被监控主机部署 node-exporter，建议使用 Docker Compose：&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
