AWS SQS 的语义约定
状态: 开发中
AWS SQS 的语义约定扩展了通用的 AWS SDK 语义约定,该约定描述了通用的 AWS SDK 属性,此外还有本页面所述的语义约定。
Attributes
| 键 | Stability | 需求级别 | Value Type | 描述 | Example Values |
|---|---|---|---|---|---|
messaging.operation.name | 必需 | 字符串 | 消息操作的系统特定名称。 | ack; nack; send | |
error.type | 条件必需 仅当消息操作失败时。 | 字符串 | 描述操作最终结束的一类错误。[1] | amqp:decode-error; KAFKA_STORAGE_ERROR; channel-error | |
messaging.destination.name | 有条件地必需 [2] | 字符串 | 消息目标名称 [3] | MyQueue; MyTopic | |
messaging.operation.type | 条件必需 如果适用。 | 字符串 | 一个字符串,用于标识消息传递操作的类型。[4] | create; send; receive | |
server.address | 有条件必需 如果可用。 | 字符串 | 如果服务器域名可用且无需反向 DNS 查找;否则,为 IP 地址或 Unix 域套接字名称。[5] | example.com;10.1.2.80;/tmp/my.sock | |
aws.request_id | 推荐 | 字符串 | 在响应头 x-amzn-requestid、x-amzn-request-id 或 x-amz-request-id 中返回的 AWS 请求 ID。 | 79b9da39-b7ae-508a-a6bc-864b2829c622; C9ER4AJX75574TDJ | |
aws.sqs.queue.url | 推荐 | 字符串 | AWS SQS Queue 的 URL。它是 Amazon Simple Queue Service (SQS) 中队列的唯一标识符,用于访问队列并对其执行操作。 | https://sqs.us-east-1.amazonaws.com/123456789012/MyQueue | |
messaging.message.id | 推荐 如果 span 描述的是单条消息的操作。 | 字符串 | 消息传递系统用作消息标识符的值,表示为字符串。 | 452a7c7c7c7048c2f887f61572b18fc2 | |
server.port | 推荐 | int | 服务器端口号。[6] | 80; 8080; 443 |
[1] error.type: error.type 应该可预测,并且应该具有低基数性。
当 error.type 设置为某个类型(例如,异常类型)时,应该使用该工件内识别类型的规范类名。
Instrumentations 应该记录它们报告的错误列表。
一个仪器库内的 error.type 基数性应该低。从多个仪器库和应用程序聚合数据的遥测消费者,在没有额外过滤时,应准备好 error.type 在查询时具有高基数性。
如果操作已成功完成,Instrumentations 不应设置 error.type。
如果特定域定义了自己的一组错误标识符(例如 HTTP 或 gRPC 状态码),则建议
- 使用特定于域的属性
- 设置
error.type以捕获所有错误,无论它们是否包含在特定于域的集合中。
[2] messaging.destination.name: 如果 span 描述了对单个消息的操作,或者值适用于批处理中的所有消息。
[3] messaging.destination.name: 目标名称应唯一标识代理中的特定队列、主题或其他实体。如果代理没有此类概念,则目标名称应唯一标识代理。
[4] messaging.operation.type: 如果使用自定义值,则其基数必须较低。
[5] server.address: Broker 的服务器域名(如果可用且无需反向 DNS 查找);否则为 IP 地址或 Unix 域套接字名称。
[6] server.port: 从客户端观察时,并且在通过中介进行通信时,server.port 应表示任何中介(例如代理)后面的服务器端口,如果可用。
以下属性对于做出采样决策可能很重要,并且应在跨度创建时提供(如果提供的话)
error.type 具有以下已知值列表。如果其中一个适用,则必须使用相应的值;否则,可以使用自定义值。
| 值 | 描述 | Stability |
|---|---|---|
_OTHER | 当检测不到自定义值时使用的回退错误值。 |
messaging.operation.type 具有以下一系列已知值。如果适用其中一个,则必须使用相应的值;否则,可以使用自定义值。
| 值 | 描述 | Stability |
|---|---|---|
create | 创建消息。“Create”跨度始终指单条消息,用于为批量发送场景中的消息提供唯一的创建上下文。 | |
process | 一个或多个消息由消费者处理。 | |
receive | 一个或多个消息由消费者请求。此操作指拉取式场景,其中消费者显式调用消息 SDK 的方法来接收消息。 | |
send | 提供一个或多个消息以发送到中介。如果发送了单条消息,“Send”跨度的上下文可用作创建上下文,无需创建“Create”跨度。 | |
settle | 一个或多个消息已结算。 |