首页 > 解决方案 > 是否可以将元数据添加到 MongoDB 操作以进行日志记录?

问题描述

我有一个用 PHP 编写的 Web 应用程序,在多个服务之间拆分,这些服务(不幸的是)都使用相同的 Mongo 数据库,没有每个服务一个数据库或每个服务单独的集合。任何服务都可以修改数据库中的任何记录。

鉴于这种情况,了解生产错误成为一个非常棘手的过程。有些记录发生了变化,没有快速的方法可以找到记录被更改的人员、时间和原因的历史记录。可以跟踪代码库中的日志,但这说起来容易做起来难。

为了解决这个问题,我正在考虑使用MongoDB Change Streams作为监控更改历史的一种方式,所以我正在寻找一种方法来将一些元数据合并到对驱动程序的调用中,这样它就会出现在 Change Stream 中,例如运行.update(). 有谁知道这是否可能?

如果不是,我正在考虑的一种解决方法是在每条记录中都有一个“调试”字段来存储元数据,因此它将出现在更改流中,但我觉得这可能会产生很大的影响关于性能和存储。另一种选择可能是根本不使用更改流,而是找到另一种方法以集中方式记录对 MongoDB 驱动程序的调用。

我想知道我想做的事情是否可行,如果没有,是否有任何替代方案,以及我的整体方法是否有任何我看不到的陷阱和缺点。

谢谢!

标签: phpdatabasemongodbloggingevents

解决方案


推荐阅读