From a0760df95a3606d81c76af14cc574f588ebac960 Mon Sep 17 00:00:00 2001 From: Kun Huang Date: Wed, 4 Nov 2015 22:49:14 +0800 Subject: [PATCH] add sqlalchemy execution tracer Change-Id: I3e77ada0d6670240c23ead2a699f0f0ee2facb28 --- scalpels/agents/base.py | 3 +++ scalpels/cli/actions/start.py | 1 + scripts/sqla-exec.stp | 14 ++++++++++++++ 3 files changed, 18 insertions(+) create mode 100755 scripts/sqla-exec.stp diff --git a/scalpels/agents/base.py b/scalpels/agents/base.py index 520301c..376db14 100644 --- a/scalpels/agents/base.py +++ b/scalpels/agents/base.py @@ -88,3 +88,6 @@ def parse_oslolock(out): def parse_modelsave(out): return _parse_count_stream(out, "Model-Save") + +def parse_sqlaexec(out): + return _parse_count_stream(out, "Sqlalchemy-Execute") diff --git a/scalpels/cli/actions/start.py b/scalpels/cli/actions/start.py index f182893..cfe1641 100644 --- a/scalpels/cli/actions/start.py +++ b/scalpels/cli/actions/start.py @@ -42,6 +42,7 @@ agents_map = { "traffic": "bash %s/device-input-traffic.sh eth0", "oslolock": "stap %s/oslo-lock.stp", # with sudo, need add current user to stapdev group "modelsave": "stap %s/model-save.stp", # with sudo, need add current user to stapdev group + "sqlaexec": "stap %s/sqla-exec.stp", # with sudo, need add current user to stapdev group } def run(config): diff --git a/scripts/sqla-exec.stp b/scripts/sqla-exec.stp new file mode 100755 index 0000000..612e67d --- /dev/null +++ b/scripts/sqla-exec.stp @@ -0,0 +1,14 @@ +#!/usr/bin/stap + +global count = 0; +global old_count = 0; +probe python.function.entry { + if ((funcname == "execute") && isinstr(filename, "sqlalchemy/engine/base.py") && (lineno == 846)) { + count = count + 1; + } +} +probe timer.ms(1000) { + new_count = count - old_count; + printf("%d\n", new_count); + old_count = count; +}