我正在使用 kafka-python 发布到 kafka,并将 newrelic 集成到我的应用程序中。 kafka-python 的发布方法因错误Error 'MessageTransaction' object has no attribute 'destination_name' in newrelic
而失败File "/Users/mishika/supply-metrics/app/kafka_manager/base_consumer_v2.py", line 55, in produce
self.producer.send(topic, value=event_data, key=key).get()
File "/Users/mishika/miniconda3/envs/myenv/lib/python3.10/site-packages/newrelic/hooks/messagebroker_kafkapython.py", line 68, in wrap_KafkaProducer_send
return wrapped(
File "/Users/mishika/miniconda3/envs/myenv/lib/python3.10/site-packages/kafka/producer/kafka.py", line 581, in send
value_bytes = self._serialize(
File "/Users/mishika/miniconda3/envs/myenv/lib/python3.10/site-packages/kafka/producer/kafka.py", line 714, in _serialize
return f(data)
File "/Users/mishika/miniconda3/envs/myenv/lib/python3.10/site-packages/newrelic/hooks/messagebroker_kafkapython.py", line 203, in _wrap_serializer
topic = transaction.destination_name
AttributeError: 'MessageTransaction' object has no attribute 'destination_name'
我的 newrelic 在 main.py 中像这样初始化
import newrelic.agent
newrelic.agent.initialize()
[newrelic]
license_key =
app_name =
monitor_mode = true
log_level = debug
high_security = false
transaction_tracer.enabled = true
transaction_tracer.transaction_threshold = apdex_f
transaction_tracer.record_sql = obfuscated
transaction_tracer.stack_trace_threshold = 0.5
transaction_tracer.explain_enabled = true
transaction_tracer.explain_threshold = 0.5
transaction_tracer.function_trace =
error_collector.enabled = true
error_collector.ignore_errors = pycommon.exceptions.common_exceptions:DuplicateError rest_framework.exceptions:ValidationError rest_framework.exceptions:NotFound rest_framework.exceptions:ParseError
browser_monitoring.auto_instrument = true
thread_profiler.enabled = true
distributed_tracing.enabled = false
我的指标正在与我的 newrelic.ini 文件中定义的 transaction_tracer 一起发布到有关日志记录操作的 newrelic
我已经从 main.py 中删除了初始化部分,并删除了日志记录操作产生的指标,只保留了 newrelic.ini 文件中定义的内容,但仍然面临同样的问题
通过在 newrelic.ini 文件中保留以下内容来禁用 newrelic 上的 kafka 生产者事务,您将能够将消息发送到 kafka
[import-hook:kafka.producer.kafka]
enabled = false