PostgREST 12.2:Prometheus 指标

PostgREST 12.2:Prometheus 指标

💡 原文英文,约400词,阅读约需2分钟。
📝

内容提要

PostgREST 12.2发布,增加了可观察性和API改进。新版本支持Prometheus指标,允许设置自定义超时时间,限制受影响的行数。已在Supabase平台上提供最新补丁版本。

🔎

延伸解读

Prometheus 指标:提升可观察性

PostgREST 12.2 新增了 Prometheus 兼容的指标,覆盖模式缓存和连接池。这些指标有助于故障排查,例如当连接池耗尽时,可以通过 /metrics 端点查看 pgrst_db_pool_timeouts_total 等计数器。这为运维人员提供了更细粒度的监控能力,便于及时发现和解决连接问题。

函数级超时设置:更细粒度的控制

在 12.2 中,可以为每个函数设置自定义超时时间。例如,在函数定义中使用 set statement_timeout to '4s',该设置会被提升并应用于每个事务。这避免了之前通过 API 角色设置超时影响所有 SQL 语句的问题。默认还支持 plan_filter.statement_cost_limit 和 default_transaction_isolation,并可通过 db-hoisted-tx-settings 扩展。

max-affected 偏好:灵活限制影响行数

之前版本只能通过 application/vnd.pgrst.object+json 将变更影响行数限制为 1 行。12.2 引入了 max-affected 偏好,允许自定义限制值。例如,在 DELETE 请求中设置 Prefer: max-affected=10,如果影响行数超过 10,则返回 400 错误和 PGRST124 代码。这为需要控制批量操作影响范围的场景提供了更大灵活性。

❓

Q&A

PostgREST 12.2的新特性有哪些?

PostgREST 12.2增加了可观察性和API改进,支持Prometheus指标,允许设置自定义超时时间和限制受影响的行数。

如何在PostgREST 12.2中设置自定义超时时间?

可以在12.2项目中为每个函数设置自定义超时时间,通过在函数中使用set statement_timeout语句实现。

PostgREST 12.2如何处理受影响的行数限制?

新版本引入了max-affected偏好,允许用户自定义受影响的行数限制,支持更灵活的操作。

PostgREST 12.2的Prometheus指标有什么用?

Prometheus指标用于监控PostgREST的模式缓存和连接池,帮助排查连接超时等问题。

如何在Supabase平台上使用PostgREST 12.2?

PostgREST v12.2已在Supabase平台上提供,用户可以创建新项目或升级现有项目来使用最新版本。

PostgREST 12.2的max-affected偏好如何工作?

max-affected偏好允许用户在执行插入、更新或删除操作时限制受影响的行数,超过限制会返回错误。

🏷️

标签

➡️

继续阅读