CouchDB 客户端操作的语义约定

状态: 开发中

CouchDB 的语义约定扩展并覆盖了CouchDB数据库语义约定

Span

表示对 CouchDB 调用的 Span 应遵循通用的数据库客户端 Span 的语义约定

db.system.name 必须设置为 "couchdb",并应在创建 Span 时提供。

下表列出了适用于 CouchDB 的 Span 属性。

状态: 开发中

表示对 CouchDB 调用的 Span 应遵循通用的数据库客户端 Span 的语义约定

db.system.name 必须设置为 "couchdb",并应在创建 Span 时提供。

span 名称应遵循通用的 数据库 span 名称约定

**Span 类型**应为 CLIENT

**Span 状态**应遵循 记录错误文档。

Attributes

Stability需求级别Value Type描述Example Values
db.namespaceStable有条件必需 如果可用。字符串数据库名称,在服务器地址和端口中完全限定。customers; test.users
db.operation.nameStable条件必需 如果容易获取。字符串HTTP 方法 + 目标 REST 路由。 [1]GET /{db}/{docid}
db.response.status_codeStable有条件地必需 [2]字符串Couch DB 返回的 HTTP 响应码,记录为字符串。 [3]200; 201; 429
error.typeStable有条件必需 仅在操作失败时。字符串描述操作结束时的一类错误。[4]timeoutjava.net.UnknownHostExceptionserver_certificate_invalid500
server.portStable有条件地必需 [5]int服务器端口号。[6]80; 8080; 443
db.operation.batch.sizeStable推荐int批处理操作中包含的查询数量。 [7]2; 3; 4
server.addressStable推荐字符串数据库主机名称。 [8]example.com10.1.2.80/tmp/my.sock

[1] db.operation.name:CouchDB 中,db.operation.name 应根据 API 参考文档设置为 HTTP 方法 + 目标 REST 路由。例如,检索文档时,db.operation.name 将被设置为(字面意思,即不将占位符替换为具体值):GET /{db}/{docid}

[2] db.response.status_code: 如果收到了响应并且 HTTP 响应码可用。

[3] db.response.status_code: 4xx 和 5xx 范围内的 HTTP 响应码应被视为错误。

[4] error.type: error.type 应与数据库或客户端库返回的 db.response.status_code 或发生的异常的规范名称匹配。使用规范异常类型名称时,仪器应尽最大努力报告最相关的类型。例如,如果原始异常被包装在一个通用异常中,应优先选择原始异常。仪器应记录 error.type 的填充方式。

[5] server.port: 如果使用非此 DBMS 默认端口的端口,并且设置了 server.address

[6] server.port 从客户端观察时,并且在通过中介进行通信时,server.port 应表示任何中介(例如代理)后面的服务器端口,如果可用。

[7] db.operation.batch.size: 仅当操作包含两个或更多操作时,才将其视为批处理,因此 db.operation.batch.size 绝不应为 1

[8] server.address: 从客户端观察时,并且在通过中间件通信时,server.address 应代表任何中间件(例如代理)后面的服务器地址,如果可用。

以下属性对于做出采样决策可能很重要,并且应在跨度创建时提供(如果提供的话)


error.type 具有以下已知值列表。如果其中一个适用,则必须使用相应的值;否则,可以使用自定义值。

描述Stability
_OTHER当检测不到自定义值时使用的回退错误值。Stable

指标

CouchDB 客户端仪器应根据通用的数据库客户端指标的语义约定收集指标。

db.system.name 必须设置为 "couchdb"