【问题标题】:create custom AWS cloudwatch metric with ID from Postgres table使用 Postgres 表中的 ID 创建自定义 AWS cloudwatch 指标
【发布时间】:2017-10-28 01:54:41
【问题描述】:

我有一个有趣的问题需要解决。我在 Postgres 中有一张表 A。该表被视为具有一组任务的队列。 ID 是 Postgres 中的增量 ID。

我想要一个包含当前处理位置 (ID) 和最大 ID 数量的指标。这两个数字每秒都在累积。

有没有有效的方法?

我认为最简单的方法是每 10 秒执行一次这个 SQL 查询(不定):

从表中选择 blablah 然后按 asc 限制 1 个订单

获取最小的 id 并使用相同的方法获取最大的 id。

但是这个命令很昂贵。有没有更好的方法来做到这一点?

【问题讨论】:

  • 有什么理由不使用 SQS 而不是 RDS?
  • 单个事务包括从队列中读取任务、更新 2 个表(业务关系)和删除该任务。所以我们利用 ACID 使用了 3 个表。
  • 我可能会通过使用 Dynamo 及其事务库来改进这个设计。不确定到目前为止是否有人使用过 Dynamo 事务库。

标签: amazon-web-services amazon-rds amazon-cloudwatch


【解决方案1】:

在表中插入新记录时,返回记录 ID。当您提取记录时,请执行相同的操作。您可以将其缓存在内存、文件、不同的数据库表等中。然后运行计划任务将这些值作为自定义指标发布到 CloudWatch。

插入新记录时返回ID的示例(非常简单)SQL语句:

INSERT INTO table (name) OUTPUT Inserted.ID VALUES('bob');

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-04-15
    • 2018-02-20
    • 2020-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-20
    相关资源
    最近更新 更多