加载中

Elastic APM 中的事务

事务是具有与其关联的附加属性的特殊跨度。它们描述了由检测服务的 Elastic APM 代理捕获的事件。您可以将事务视为您在服务中测量的最高级别的工作。例如,事务可能是一个

  • 对服务器的请求
  • 批处理作业
  • 后台作业
  • 自定义事务类型

代理决定是否对事务进行采样,并提供控制采样行为的设置。如果进行了采样,事务的 跨度 将作为单独的文档发送和存储。在一个事务中,可以捕获 0 个、1 个或多个跨度。

事务包含

  • 事件的时间戳

  • 唯一的 ID、类型和名称

  • 关于记录事件所在环境的数据

    • Service(服务)- 环境、框架、语言等。
    • Host(主机)- 架构、主机名、IP 等。
    • Process(进程)- 参数、PID、PPID 等。
    • URL - 完整路径、域、端口、查询等。
    • User(用户) - (如果提供)电子邮件、ID、用户名等。
  • 取决于代理的其他相关信息。例如:JavaScript RUM 代理会捕获事务标记,这些标记是相对于事务开始带有某些标签的时间点。

此外,代理还为用户提供了捕获自定义 metadata(元数据)的选项。元数据可以被索引 - labels,或不被索引 - custom

事务在应用程序 UI 的 Transaction overview(事务概览)中按其 typename 进行分组。如果您使用的是受支持的框架,APM 代理将自动为您处理命名。如果不是,或者您希望覆盖默认设置,所有代理都提供有 API 方法来手动设置 typename

  • type 应该是服务域中具有特定相关性的关键词,例如 requestbackgroundjob 等。
  • name 应该是单个服务范围内事务的通用称谓,例如 GET /users/:idUsersController#show 等。
提示

大多数代理将关键字字段(例如 labels)限制为 1024 个字符,将非关键字字段(例如 span.db.statement)限制为 10,000 个字符。

事务与跨度一起存储在以下数据流中

  • 应用程序跟踪:traces-apm-<namespace>
  • RUM 和 iOS 代理应用程序跟踪:traces-apm.rum-<namespace>

请参阅数据流(Data streams)以了解更多信息。

此示例展示了在 Elasticsearch 中进行索引时事务文档的外观。

© . This website operates independently and is not affiliated with or endorsed by Elasticsearch B.V. All brand names, logos, and trademarks are the property of their respective owners.