Black is the new black

pull/5544/head
Jorik Schellekens 2019-06-25 10:21:16 +01:00
parent ce21e41359
commit 98c8038bcf
5 changed files with 36 additions and 37 deletions

View File

@ -13,22 +13,24 @@
# See the License for the specific language governing permissions and
# limitations under the License.
from ._base import Config
import logging
from jaeger_client import Config as JaegerConfig
from synapse.util.scopecontextmanager import LogContextScopeManager
import logging
from ._base import Config
logger = logging.getLogger(__name__)
class TracerConfig(Config):
def read_config(self, config):
self.tracer_config = config.get("tracer")
if self.tracer_config is None:
# If the tracer is not configured we assume it is disabled
self.tracer_config = {
"tracer_enabled": False,
}
self.tracer_config = {"tracer_enabled": False}
if self.tracer_config.get("tracer_enabled", False):
# The tracer is enabled so sanitize the config
@ -58,6 +60,7 @@ class TracerConfig(Config):
- "*"
"""
def init_tracing(config):
"""Initialise the JaegerClient tracer
@ -69,25 +72,14 @@ def init_tracing(config):
if config.tracer_config.get("tracer_enabled", False):
jaeger_config = JaegerConfig(
config={
'sampler': {
'type': 'const',
'param': 1,
},
'logging': True,
},
config={"sampler": {"type": "const", "param": 1}, "logging": True},
service_name=config.server_name,
scope_manager=LogContextScopeManager(config),
)
else: # The tracer is not configured so we instantiate a noop tracer
jaeger_config = JaegerConfig(
config={
'sampler': {
'type': 'const',
'param': 0,
}
},
service_name=config.server_name
config={"sampler": {"type": "const", "param": 0}},
service_name=config.server_name,
)
return jaeger_config.initialize_tracer()

View File

@ -23,8 +23,10 @@ from six import PY3, raise_from, string_types
from six.moves import urllib
import attr
import opentracing
import treq
from canonicaljson import encode_canonical_json
from opentracing.propagation import Format
from prometheus_client import Counter
from signedjson.sign import sign_json
from zope.interface import implementer
@ -52,9 +54,6 @@ from synapse.util.async_helpers import timeout_deferred
from synapse.util.logcontext import make_deferred_yieldable
from synapse.util.metrics import Measure
import opentracing
from opentracing.propagation import Format
logger = logging.getLogger(__name__)
outgoing_requests_counter = Counter(

View File

@ -14,6 +14,7 @@
import contextlib
import logging
import time
import opentracing
from twisted.web.server import Request, Site
@ -247,7 +248,7 @@ class SynapseRequest(Request):
"http.url": self.get_redacted_uri(),
"peer.ipv6": self.getClientIP(),
},
child_of=span_context
child_of=span_context,
)
def _finished_processing(self):

View File

@ -1,9 +1,12 @@
from .logcontext import LoggingContext, nested_logging_context
from opentracing import ScopeManager, Scope
import logging
from opentracing import Scope, ScopeManager
from .logcontext import LoggingContext, nested_logging_context
logger = logging.getLogger(__name__)
class LogContextScopeManager(ScopeManager):
_homeserver_whitelist = ["*"]
@ -71,6 +74,7 @@ class LogContextScopeManager(ScopeManager):
def user_whitelisted(self, request):
pass
class _LogContextScope(Scope):
def __init__(self, manager, span, logcontext, enter_logcontext, finish_on_close):
super(_LogContextScope, self).__init__(manager, span)

View File

@ -1,8 +1,9 @@
from opentracing.propagation import Format
import opentracing
from opentracing.propagation import Format
from .logcontext import LoggingContext
def extract_span_context(headers):
"""
Extracts a span context from Twisted Headers.
@ -38,10 +39,12 @@ def inject_span_context(headers, span):
for key, value in carrier:
headers.addRawHeaders(key, value)
# TODO: Implement whitelisting
def request_from_whitelisted_homeserver(request):
pass
# TODO: Implement whitelisting
def user_whitelisted(request):
pass