diff options
author | Ilya Shakhat <shakhat@gmail.com> | 2019-05-15 16:47:25 +0200 |
---|---|---|
committer | Ilya Shakhat <shakhat@gmail.com> | 2019-05-16 12:03:00 +0200 |
commit | 0fcc65d0d5a9df40dc53fb611a6058e18a44c654 (patch) | |
tree | 8699630593a7a17f1ca309b85adb099b4e6afa59 /osprofiler/drivers | |
parent | 30049d6c901e9a36f8e1dd07bac3bdeadd20b550 (diff) | |
download | osprofiler-0fcc65d0d5a9df40dc53fb611a6058e18a44c654.tar.gz |
Automatic configuration of SQLAlchemy driver in DevStack
This patch adds a new type of collector "sqlalchemy".
To enable it, add the following line into DevStack local.conf:
OSPROFILER_COLLECTOR=sqlalchemy
OSProfiler DevStack plugin creates database for traces and
configures all services to use it.
SQLAlchemy driver is extend to be able to list traces.
Zuul job is added to run Tempest tests with sqlalchemy driver enabled.
Change-Id: Ia943d311d78f6dfd2e6bb884c8dca725b3b2a36b
Diffstat (limited to 'osprofiler/drivers')
-rw-r--r-- | osprofiler/drivers/sqlalchemy_driver.py | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/osprofiler/drivers/sqlalchemy_driver.py b/osprofiler/drivers/sqlalchemy_driver.py index a8cefcf..daab1d0 100644 --- a/osprofiler/drivers/sqlalchemy_driver.py +++ b/osprofiler/drivers/sqlalchemy_driver.py @@ -102,6 +102,23 @@ class SQLAlchemyDriver(base.Driver): LOG.exception("Can not store osprofiler tracepoint {} " "(base_id {})".format(trace_id, base_id)) + def list_traces(self, fields=None): + try: + from sqlalchemy.sql import select + except ImportError: + raise exc.CommandError( + "To use this command, you should install 'SQLAlchemy'") + stmt = select([self._data_table]) + seen_ids = set() + result = [] + traces = self._conn.execute(stmt).fetchall() + for trace in traces: + if trace["base_id"] not in seen_ids: + seen_ids.add(trace["base_id"]) + result.append({key: value for key, value in trace.items() + if key in fields}) + return result + def get_report(self, base_id): try: from sqlalchemy.sql import select |