From afbc894231a3bc2f2c1c569d5d5135e3672bc756 Mon Sep 17 00:00:00 2001 From: Mark Story Date: Fri, 10 Jan 2020 11:55:40 -0500 Subject: [PATCH] feat(tracing) Add spans for snuba queries Add spans to collect more information about snuba queries. Having the referrer and the start of the query body should make tracking down slow queries in snuba easier as we have more context. --- src/sentry/utils/snuba.py | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/src/sentry/utils/snuba.py b/src/sentry/utils/snuba.py index 8149fb35f22e9f..ce99cd27e89123 100644 --- a/src/sentry/utils/snuba.py +++ b/src/sentry/utils/snuba.py @@ -11,6 +11,7 @@ import six import time import urllib3 +import sentry_sdk from concurrent.futures import ThreadPoolExecutor from django.conf import settings @@ -724,13 +725,16 @@ def snuba_query(params): query_params, forward, reverse = params try: with timer("snuba_query"): - return ( - _snuba_pool.urlopen( - "POST", "/query", body=json.dumps(query_params), headers=headers - ), - forward, - reverse, - ) + body = json.dumps(query_params) + with sentry_sdk.start_span( + op="snuba", description=u"query {}".format(body) + ) as span: + span.set_tag("referrer", headers.get("referer", "")) + return ( + _snuba_pool.urlopen("POST", "/query", body=body, headers=headers), + forward, + reverse, + ) except urllib3.exceptions.HTTPError as err: raise SnubaError(err)