open-telemetry/opentelemetry-auto-ext-rdkafka

ext-rdkafka Kafka 客户端自动仪表化 OpenTelemetry

0.0.1 2024-07-24 00:59 UTC

This package is auto-updated.

Last update: 2024-08-24 01:08:26 UTC


README

这是来自 https://github.com/open-telemetry/opentelemetry-php-contrib 的只读子树分割。

OpenTelemetry ext-rdkafka 自动仪表化

请阅读 https://opentelemetry.io/docs/instrumentation/php/automatic/ 了解如何安装和配置此扩展和 SDK。

概述

自动仪表化钩子通过 composer 注册。对于每个消费的消息都会创建一个新的 span。此仪表化的目标是允许 PHP 在 Kafka 中发生分布式跟踪。这意味着以下应该发生:

  • 对于每个消费的消息应创建一个 span
  • span 应该在正确的父上下文中创建 - 如果入站消息包含 traceparent 标头
  • span 应在消息偏移量 提交 时结束
  • 任何产生的消息应将 traceparent 标头注入到消息头中

这是通过挂钩到三个方法来完成的

  • \RdKafka\KafkaConsumer::consume- 用于在入站消息上创建 span 和上下文传播。
  • \RdKafka\ProducerTopic::producev- 用于将 traceparent 标头注入到产生消息的消息头中。
    • 注意有一个旧方法叫做 produce。它不支持头信息,因此没有必要挂钩到此方法
  • \RdKafka\KafkaConsumer::commit / \RdKafka\KafkaConsumer::commitAsync - 用于在消息偏移量提交时结束 span。

版本

  • 在 PHP 8.2 和 8.3 上测试成功

配置

可以通过 运行时配置 禁用此扩展

OTEL_PHP_DISABLED_INSTRUMENTATIONS=ext-rdkafka