Merge "Add DB operations tracing"
This commit is contained in:
commit
3bd7a0742c
|
@ -26,6 +26,8 @@ from oslo_db.sqlalchemy import enginefacade
|
|||
from oslo_db.sqlalchemy import models
|
||||
from oslo_log import log
|
||||
from oslo_serialization import jsonutils
|
||||
from osprofiler import opts as profiler
|
||||
import osprofiler.sqlalchemy
|
||||
import six
|
||||
import sqlalchemy as sql
|
||||
from sqlalchemy.ext import declarative
|
||||
|
@ -73,6 +75,8 @@ def initialize():
|
|||
db_options.set_defaults(
|
||||
CONF,
|
||||
connection="sqlite:///keystone.db")
|
||||
# Configure OSprofiler options
|
||||
profiler.set_defaults(CONF, enabled=False, trace_sqlalchemy=False)
|
||||
|
||||
|
||||
def initialize_decorator(init):
|
||||
|
@ -172,9 +176,6 @@ _main_context_manager = None
|
|||
|
||||
|
||||
def _get_main_context_manager():
|
||||
# TODO(DinaBelova): add DB profiling
|
||||
# this requires oslo.db modification for proper format and functionality
|
||||
# will be done in Newton timeframe
|
||||
global _main_context_manager
|
||||
|
||||
if not _main_context_manager:
|
||||
|
@ -213,7 +214,7 @@ def session_for_read():
|
|||
reader = enginefacade.reader
|
||||
else:
|
||||
reader = _get_main_context_manager().reader
|
||||
return reader.using(_get_context())
|
||||
return _wrap_session(reader.using(_get_context()))
|
||||
|
||||
|
||||
def session_for_write():
|
||||
|
@ -221,7 +222,13 @@ def session_for_write():
|
|||
writer = enginefacade.writer
|
||||
else:
|
||||
writer = _get_main_context_manager().writer
|
||||
return writer.using(_get_context())
|
||||
return _wrap_session(writer.using(_get_context()))
|
||||
|
||||
|
||||
def _wrap_session(sess):
|
||||
if CONF.profiler.enabled and CONF.profiler.trace_sqlalchemy:
|
||||
sess = osprofiler.sqlalchemy.wrap_session(sql, sess)
|
||||
return sess
|
||||
|
||||
|
||||
def truncated(f):
|
||||
|
|
Loading…
Reference in New Issue