48 lines
1.1 KiB
Python
48 lines
1.1 KiB
Python
"""
|
|
Some utils used by the dogtrace kombu integration
|
|
"""
|
|
from ...ext import kombu as kombux, net
|
|
|
|
PUBLISH_BODY_IDX = 0
|
|
PUBLISH_ROUTING_KEY = 6
|
|
PUBLISH_EXCHANGE_IDX = 9
|
|
|
|
HEADER_POS = 4
|
|
|
|
|
|
def extract_conn_tags(connection):
|
|
""" Transform kombu conn info into dogtrace metas """
|
|
try:
|
|
host, port = connection.host.split(':')
|
|
return {
|
|
net.TARGET_HOST: host,
|
|
net.TARGET_PORT: port,
|
|
kombux.VHOST: connection.virtual_host,
|
|
}
|
|
except AttributeError:
|
|
# Unlikely that we don't have .host or .virtual_host but let's not die over it
|
|
return {}
|
|
|
|
|
|
def get_exchange_from_args(args):
|
|
"""Extract the exchange
|
|
|
|
The publish method extracts the name and hands that off to _publish (what we patch)
|
|
"""
|
|
|
|
return args[PUBLISH_EXCHANGE_IDX]
|
|
|
|
|
|
def get_routing_key_from_args(args):
|
|
"""Extract the routing key"""
|
|
|
|
name = args[PUBLISH_ROUTING_KEY]
|
|
return name
|
|
|
|
|
|
def get_body_length_from_args(args):
|
|
"""Extract the length of the body"""
|
|
|
|
length = len(args[PUBLISH_BODY_IDX])
|
|
return length
|