import logging import re import six from django.utils.timezone import now from structlog import get_logger from structlog.processors import _json_fallback_handler from sentry.utils import metrics, json _default_encoder = json.JSONEncoder( separators=(",", ":"), ignore_nan=True, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, indent=None, encoding="utf-8", default=_json_fallback_handler, ).encode # These are values that come default from logging.LogRecord. # They are defined here: # https://github.com/python/cpython/blob/2.7/Lib/logging/__init__.py#L237-L310 throwaways = frozenset(( "threadName", "thread", "created", "process", "processName",
from threading import Lock from zlib import compress as zlib_compress, decompress as zlib_decompress from google.cloud import bigtable from google.cloud.bigtable.row_set import RowSet from django.utils import timezone from sentry.utils import json from sentry.nodestore.base import NodeStorage # Cache an instance of the encoder we want to use json_dumps = json.JSONEncoder( separators=(",", ":"), skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, indent=None, encoding="utf-8", default=None, ).encode json_loads = json._default_decoder.decode _connection_lock = Lock() _connection_cache = {} def get_connection(project, instance, table, options): key = (project, instance, table) try: # Fast check for an existing connection cached