SIGN IN SIGN UP

fix(confluent-kafka): populate bootstrap.servers span attributes (#4423)

* fix(confluent-kafka): populate bootstrap.servers span attributes

KafkaPropertiesExtractor.extract_bootstrap_servers was defined but
never called, so confluent-kafka spans were missing messaging.url,
server.address, and server.port even though the extraction helper
existed for it.

- Capture the config dict in AutoInstrumentedProducer/Consumer and
  surface it on the Proxied{Producer,Consumer} wrappers.
- extract_bootstrap_servers now accepts both the "bootstrap.servers"
  dotted key (confluent-kafka standard) and "bootstrap_servers", and
  safely handles list-valued configs and instances without a config
  attribute.
- wrap_produce / wrap_poll / wrap_consume pull the config and pass
  it through _enrich_span, which sets messaging.url, server.address,
  and server.port (parsing host:port from the first broker).

Closes #4104

Signed-off-by: alliasgher <alliasgher123@gmail.com>

* fix(confluent-kafka): remove deprecated messaging.url, fix CHANGELOG link

Signed-off-by: alliasgher <alliasgher123@gmail.com>

* fix(confluent-kafka): use PUBLISH for second produce path per review

The second _enrich_span call in wrap_produce also runs inside a producer
span but used RECEIVE. Align with the first path and with the semantic
conventions.

Signed-off-by: Ali <alliasgher123@gmail.com>

---------

Signed-off-by: alliasgher <alliasgher123@gmail.com>
Signed-off-by: Ali <alliasgher123@gmail.com>
A
Ali Asghar committed
17006d75ae1f2580479a214b0d48491432c61441
Parent: a3d38a7
Committed by GitHub <noreply@github.com> on 5/11/2026, 7:11:46 PM