服务字段使用和示例编辑

本页面涵盖以下主题。

字段重用编辑

服务字段可用于 * 描述收集数据的服务或从其收集数据(即观察到的服务)* 或 描述与观察到的服务有直接调用关系的外部服务

事件根部的服务字段编辑

使用事件根部的服务字段来描述事件主要相关的服务。此用例的一个示例是为特定服务或应用程序(例如 MyService)记录日志条目。

{
  "service": { 
    "id": "d37e5ebfe0ae6c4972dbe9f0174a1637bb8247f6",
    "name": "MyService",
    "version": "1.0.0"
  },
  ...
}

描述正在捕获日志条目的服务。

描述调用关系中的外部服务编辑

多个服务可能存在调用关系。如果可以在所有参与的服务上应用 分布式跟踪,则使用 根级别服务字段 描述各个服务,并使用 跟踪字段 来表示调用关系。

在某些情况下,无法在与观察到的服务存在调用关系的某些外部服务上应用分布式跟踪。例如,考虑在云提供商上部署的服务 MyService,它具有一个上游 API 网关,该网关将请求传递给 MyService(包含有关 API 网关本身的附加上下文信息)。为了从 MyService 的角度描述 API 网关作为一项服务,可以在 service.origin 下嵌套服务字段。

{
  "service": { 
    "id": "d37e5ebfe0ae6c4972dbe9f0174a1637bb8247f6",
    "name": "MyService",
    "version": "1.0.0",
    "origin": { 
      "id": "api-gateway-46372994637e2b4567",
      "name": "SomeGateway",
      "version" "2.5.1",
    }
  },
  ...
}

描述接收来自外部服务的入站请求的观察到的服务。

描述入站请求的来源外部服务。

类似于 service.origin 字段的用法,服务字段可以在 service.target.* 下嵌套,以描述出站请求的外部目标服务。

{
  "service": { 
    "id": "d37e5ebfe0ae6c4972dbe9f0174a1637bb8247f6",
    "name": "MyService",
    "version": "1.0.0",
    "target": { 
      "id": "sms-service-0xe6c4272dbeAf0134",
      "name": "ManagedSMSService",
      "version": "1.9.0",
    }
  },
  ...
}

描述发出对外部服务的出站请求的观察到的服务。

描述出站请求的目标外部服务。

请注意,service.origin.*service.target.* 字段应仅用于表示调用关系的事件。