This work is licensed under a Creative Commons Attribution 3.0
Unported License.
http://creativecommons.org/licenses/by/3.0/legalcode

Swift 请求标记用于详细日志/追踪

您的蓝图的 URL

无。

为了标记特定的请求/每 ‘x’ 个请求,这些请求将进行更详细的日志记录。

问题描述

详细日志记录的原因

  • Swift 用户遇到问题,我们无法重现,但可以标记该用户的请求以进行更多日志记录。
  • 为了更好地调查集群中的瓶颈/问题 - 内部用户(管理员/运维)希望在客户端获得不一致的容器列表的一些情况下获取更多信息。借助 Swift-inspector,我们可以确定哪个节点没有返回正确的列表。

提议的变更

现有:Swift-Inspector (https://github.com/hurricanerix/swift-inspector ) 目前在 Proxy 和 Object 服务器中提供中间件。将请求信息回传给客户端,假设客户端正在主动做出决定来标记请求,以触发否则不会发生的某些操作。当前的 Inspectors

  • 时序 -‘Inspector-Timing’:给出代理服务器处理请求所花费的时间
  • 处理程序 – ‘Inspector-Handlers’:未实现(旨在返回请求中联系到的 account/container/object 服务器)‘Inspector-Handlers-Proxy’:返回处理请求的代理
  • 节点 - ‘Inspector-Nodes’:返回路径所在的 account/container/object 服务器 ‘Inspector-More-Nodes’:返回用于交接的额外节点。

变更

  • 将日志记录 inspector 添加到上述 inspectors,这将为标记的请求启用详细日志记录。
  • 添加系统决定(而不是客户端)标记请求的能力,并且最好添加规则来触发诸如额外日志记录之类的操作。

可能的标记标准:标记

  • 每 ‘x’ 个请求/所有请求的 %。
  • 基于请求/响应头中的某些内容(例如,如果 HTTP 方法是 DELETE,或者响应正在发送特定的状态码)
  • 基于特定的 account/container/object/feature。

备选方案

  • 日志记录:日志收集器/日志聚合器,如 logstash。

实现

工作项

  • 为了添加一个 Inspector– ‘Logging’ 到现有的 inspectors,以启用日志。
  • 添加规则以决定哪些请求将被标记
  • 触发诸如日志记录之类的操作。
  • 限制节点/库存列表的访问权限,仅允许管理员/运维访问。
  • 弄清楚 hmac_key 访问 (Inspector-Sig) 和 ‘Logging’ 是否协同工作?

仓库

是否需要创建新的 git 仓库? 是的。

服务器

是否需要创建新的服务器? 否。

哪些现有的服务器会受到影响? Proxy 和 Object 服务器。

DNS 条目

是否需要创建或更新任何其他 DNS 条目? 否。

文档

这是否需要文档变更? 是的,Swift-inspector 文档。

这会影响开发人员的工作流程吗? 否。

是否需要进行额外的沟通? 否。

安全性

无。

测试

单元测试。

依赖项