Dozzle Cloud 套餐与限额深度解析:Free、Pro、Team 的完整对比与超限处理机制
2026/9/14 7:19:10 网站建设 项目流程

Dozzle Cloud 套餐与限额深度解析:Free、Pro、Team 的完整对比与超限处理机制

【免费下载链接】dozzleRealtime log viewer for containers. Supports Docker, Swarm and K8s.项目地址: https://gitcode.com/GitHub_Trending/do/dozzle

Dozzle Cloud 是自托管日志查看器 Dozzle 的官方托管配套服务,它接管了自托管方案中最难独自完成的部分——决定什么事情值得唤醒你、以及真正定位故障根因。本指南以 Dozzle Cloud 的套餐文档为核心,完整解析三个套餐各自的包含内容、何种行为会计入配额、超出配额后会发生什么,并深入仓库源码验证这些机制的底层实现,帮助你在选择套餐与配置实例时做出基于事实的决策。

套餐总览:Free 不是试用版,而是完整的告警产品

Dozzle Cloud 共有三个套餐:Free(免费)、Pro(5 美元/月)、Team(15 美元/月)。官方文档强调了一个容易被误解的事实:免费套餐是完整的告警产品本身,而不是某个付费套餐的试用版本。付费套餐购买的是"主动"的另一半——由 Cloud 通读你的日志、发现从未触发过告警的问题(Findings),以及更大的运行空间。

以下是三个套餐的完整对比(数据以当前仓库文档为准):

能力免费版 (Free)ProTeam
价格0 美元5 美元/月15 美元/月
Findings(通读日志,发现从未告警的问题)每周 1 条全部,每日全部,每日
每条 Finding 附带修复方案
不确定时检查容器与日志的分诊(Triage)
一键完整调查(Full investigation)
每月被处理的事件数(Triaged events)2,00050,000250,000
可搜索日志10 GB · 24 小时50 GB · 30 天100 GB · 30 天
告警与事件历史1 天14 天30 天
指标历史(CPU、内存、网络、磁盘)24 小时30 天30 天
连接实例数1不限不限
每月助手对话数(Assistant chats)102001,000
优先支持

从上表可以看到一个清晰的产品分层逻辑:免费版解决"通知层"问题,付费版解决"主动发现"问题。Findings、修复方案、分诊、完整调查这四项"主动出击"的能力只在付费套餐中提供,而配额类指标(事件数、日志量、历史、实例数、对话数)则随档位逐级放大。

每个套餐都包含的基础能力

官方文档明确指出,以下能力在任何套餐中都包含,包括免费版

  • 智能告警(Smart alerts)
  • 重复事件折叠(Repeat folding)
  • 告警抑制与严重度过滤(Suppression 与 severity filters)
  • 搜索索引(Search indexing)
  • 指标记录(Stats monitoring)
  • 全部通知渠道(email、Telegram、Discord、Slack、ntfy、Webhook、浏览器推送等)
  • 容器操作(Container actions)
  • 不限量的 MCP 访问

也就是说,升级到付费套餐并不会解锁告警、搜索或通知本身——这些在免费版上就是完整的。这一点在 Dozzle Cloud 总览文档 中同样被反复强调:"免费版让你保持安静,Pro 版主动去排查"。

什么算作"被处理的事件"(Triaged Event)

这是理解整个配额体系的关键概念。一个**被处理的事件(triaged event)**指的是:一个容器事件或一条匹配的日志行,通过了分诊流水线(triage pipeline)的处理——这条流水线决定它是要发出新告警、折叠进已有告警,还是保持沉默。你为这份"处理工作"付费,而不是为原始存储付费。

为了帮助你准确判断事件计数,官方文档给出了三个非常实用的判定准则:

  1. 普通日志行不是事件。它们计入的是"可搜索日志量"。所以一个话痨容器消耗的是存储配额,而一个处于 Crash-Loop(崩溃循环)的容器消耗的是事件配额。
  2. 每次退出算一个事件,但告警只发一条。举例:一个容器退出了 47 次,那是消耗配额的 47 个事件,但你的收件箱里只有一条"47"的告警——这正是重复折叠的意义所在。
  3. Findings 两者都不消耗。日志通读(log review)读取的是你的日志而非告警历史,因此不触碰事件计数,甚至在完全没有配置告警规则的情况下也能工作。它唯一占用的是你每月的日志量配额。

搜索与指标在任何套餐中都免费

搜索索引从实例连接的那一刻起就开始工作,CPU、内存、网络、磁盘序列也会从你的实例中持续流入 Cloud,均不额外计费。套餐等级改变的只是"存多少、能回溯多远"。

从源码侧看,这一"事件 vs 原始日志"的区分是有明确实现支撑的。在前端,alertMerger.ts 实现了告警折叠与去重逻辑:Cloud 会先以15 秒窗口聚合事件ALERT_POLL_MS = 15_000),告警才能被创建,因此事件会在到达告警之前先被归并;placedAlerts集合确保同一个事件不会在同一视图里被重复绘制。这解释了为什么"47 次崩溃"最终呈现为"一条写着 47 的告警"。

超出配额:进入采样模式(Sampling Mode)

官方文档用一句话给了最让人安心的结论:不会出任何问题(Nothing breaks)。超出配额后,你的账户会进入"采样模式":

  • 分诊(Triage)暂停;
  • 事件历史继续记录,所以没有任何数据丢失;
  • 大约每十个事件中有一个会以原始(raw)告警的形式送达,让你仍然能感知正在发生的事情;
  • 重复事件不再折叠成带计数器的单条告警。

实际体验是:告警会变得更嘈杂、更不实用,而不是消失。文档特别提醒——你会先在收件箱里感觉到异常,然后才会在用量页面上注意到。因此,如果告警突然变得"原始且重复",请先检查用量页

这一行为同样适用于付费套餐,配额会在每个月月初重置

文档还附带了一条贴心的经验提示:大多数账户永远接近不了配额上限。只有真正的"消防水龙"——例如一个连续数天 Crash-Loop 的容器——才会突破免费配额,而那个点名该容器的告警,会远在配额耗尽之前就送达。

源码佐证:配额与套餐在连接层的体现

在 internal/cloud/client.go 中可以看到 Cloud 连接客户端对套餐状态的感知。客户端建立 gRPC 长连接时,会通过x-api-keyx-instance-id等元数据向 Cloud 表明身份;当云端返回PermissionDenied错误时,日志会输出:

"cloud account does not have pro plan, waiting for upgrade"

随后客户端停止重连并等待升级信号(internal/cloud/client.go)。这说明套餐校验发生在连接层:云端根据账户当前套餐决定是否允许该实例建立工具流。此外,连接失败采用指数退避重连(初始 1 秒、最大 30 秒、每次 ×2 并附加 10% 抖动),API Key 无效时则暂停整整 1 小时再重试(unauthenticatedPause),避免无效凭证反复冲击云端。

数据保留期限(Retention)

保留期限决定你的历史能回溯多远:告警、事件与日志搜索结果都受其约束。

  • 免费版:保留1 天。因此搜索上周发生的事件会返回空结果——即使它确实发生过。文档指出,这正是"搜索似乎丢失了数据"最常见的单一原因。
  • Pro:告警与事件历史14 天,可搜索日志30 天
  • Team:告警与事件历史30 天,可搜索日志30 天

指标保留:免费版 24 小时,付费版 30 天。

一个对用户体验非常重要的设计:当你请求的时间窗口超出套餐允许的范围时,系统不会报错,而是直接返回你实际拥有的时间窗口内的数据。这意味着查询逻辑无需感知套餐边界,前端拿到什么就展示什么。

关于数据生命周期,你的数据文档 进一步说明:存储的数据只在你套餐的保留窗口内保留,到期后自动删除,并且所有数据都以账户为边界隔离,其他用户不可见。

实例连接数限制

免费版同时只能连接一个实例。当你尝试连接第二个实例时,会出现一条限额提示。此时你有两个选择:

  1. 腾出名额:在 Instances(实例)页面删除现有实例的 API Key,然后连接新实例。这对旧实例是永久性的——它的历史数据仍然保留,但你需要从零重新连接它。
  2. 升级套餐,让两个实例同时保持连接。

官方文档澄清了此限制的性质:它约束的是免费账户能转发多少数据,而不是某种功能锁。除了连接实例数之外,免费版上的其他一切功能都照常工作。更多关于多实例连接与排查的细节可参考连接你的实例文档。

如何查看用量

Cloud 的**用量页面(Usage page)**会以本月为周期展示三类数据相对配额的消耗情况:

  • 事件数(events)
  • 日志字节数(log bytes / indexed data)
  • 助手对话数(assistant chats)

你还可以直接在聊天中提问:"我这个月用了多少?"(how much have I used this month?)。

用量仪表盘的实现

前端用量展示由 CloudUsage.vue 实现,它同时渲染三根计量条:events_used / events_limitagent_messages_used / agent_messages_limitlog_bytes_used / log_bytes_limit,并在底部统一标注计费周期。后端返回的用量字段与文档描述的"事件 + 日志字节 + 助手对话"三者一一对应(locales/en.yml 中将日志字节翻译为 "Data indexed")。

UsageMeter.vue 给出了可视化规则:使用率超过90%时计量条变为红色(bg-error),超过70%变为黄色(bg-warning),否则为强调色(bg-primary);字节类指标会自动格式化为可读单位(如3.2 GB / 10.7 GB),避免原始数字难以阅读。此外,用量信息同样会呈现在你自己 Dozzle 实例的设置卡片中——CloudSettingsCard.vue 会展示当前连接状态、套餐名称cloudStatus.plan.name)与账户邮箱,并把用量条以紧凑行布局嵌入其中。这意味着你无需登录 Cloud 网页,在自托管界面里就能看到套餐与配额消耗。

更换或取消套餐

升级:通过定价页面或设置(settings)入口完成。计费由 Stripe 处理,支付方式、发票与收据都通过设置中的 Billing 链接在 Stripe 侧管理。

取消:取消后,未来的扣款停止,并在你已付费周期结束时自动降级到免费套餐。账户与历史数据都会保留,不会因降级而丢失。

关于降级后的实际影响,结合前文可以预判:事件配额回到 2,000/月、可搜索日志回到 10 GB·24 小时、历史回到 1 天、实例数回到 1 个。由于文档明确"超出配额不报错、查询超窗只返回实际窗口",降级后你看到的现象会是:搜索范围变窄、事件告警更早进入采样模式、第二个实例被断开(需按实例限制流程处理)。

源码层面的整体印证

综合来看,Dozzle Cloud 的配额体系在设计上是"软限制"哲学:

  • 服务不中断:超限进入采样模式而非熔断(见"超出配额"一节);
  • 查询不报错:超窗返回实际窗口而非错误(见"数据保留期限"一节);
  • 连接不硬断:套餐校验失败时等待升级而非永久断开(internal/cloud/client.go);
  • 数据不丢失:即使分诊暂停,事件历史仍持续记录(见"超出配额"一节)。

这一整套行为在连接实例、在你的 Dozzle 中、你的数据等文档中都有呼应:本地告警规则配置在自己的 Dozzle 实例上(告警与 Webhook),通知渠道配置在 Cloud 侧,而告警历史、跨实例视角与账户级能力归属 Cloud。理解"免费版 = 完整告警产品 + 有限配额"这一核心,就能准确预期每个套餐在你实际工作负载下的表现:先按事件/日志量评估自己的规模,再决定是否需要每月 5 美元或 15 美元的"主动排查 + 更大配额"组合。

【免费下载链接】dozzleRealtime log viewer for containers. Supports Docker, Swarm and K8s.项目地址: https://gitcode.com/GitHub_Trending/do/dozzle

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询