mirror of
https://github.com/open-telemetry/opentelemetry-python-contrib.git
synced 2025-07-30 13:43:03 +08:00
Move DD code into its own directory (#6)
This commit is contained in:
78
reference/tests/memory.py
Normal file
78
reference/tests/memory.py
Normal file
@ -0,0 +1,78 @@
|
||||
"""
|
||||
a script which uses our integratiosn and prints memory statistics.
|
||||
a very coarsely grained way of seeing how things are used.
|
||||
"""
|
||||
|
||||
|
||||
# stdlib
|
||||
import itertools
|
||||
import logging
|
||||
import time
|
||||
import sys
|
||||
|
||||
# 3p
|
||||
import pylibmc
|
||||
import pympler.tracker
|
||||
import psycopg2
|
||||
import redis
|
||||
|
||||
|
||||
# project
|
||||
import ddtrace
|
||||
from tests.contrib import config
|
||||
|
||||
|
||||
# verbosity
|
||||
logging.basicConfig(stream=sys.stderr, level=logging.INFO)
|
||||
|
||||
ddtrace.patch_all()
|
||||
ddtrace.tracer.writer = None
|
||||
|
||||
|
||||
class KitchenSink(object):
|
||||
|
||||
def __init__(self):
|
||||
self._redis = redis.Redis(**config.REDIS_CONFIG)
|
||||
self._pg = psycopg2.connect(**config.POSTGRES_CONFIG)
|
||||
|
||||
url = '%s:%s' % (
|
||||
config.MEMCACHED_CONFIG['host'],
|
||||
config.MEMCACHED_CONFIG['port'])
|
||||
self._pylibmc = pylibmc.Client([url])
|
||||
|
||||
def ping(self, i):
|
||||
self._ping_redis(i)
|
||||
self._ping_pg(i)
|
||||
self._ping_pylibmc(i)
|
||||
|
||||
def _ping_redis(self, i):
|
||||
with self._redis.pipeline() as p:
|
||||
p.get('a')
|
||||
self._redis.set('a', 'b')
|
||||
self._redis.get('a')
|
||||
|
||||
def _ping_pg(self, i):
|
||||
cur = self._pg.cursor()
|
||||
try:
|
||||
cur.execute("select 'asdf'")
|
||||
cur.fetchall()
|
||||
finally:
|
||||
cur.close()
|
||||
|
||||
def _ping_pylibmc(self, i):
|
||||
self._pylibmc.set('a', 1)
|
||||
self._pylibmc.incr('a', 2)
|
||||
self._pylibmc.decr('a', 1)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
k = KitchenSink()
|
||||
t = pympler.tracker.SummaryTracker()
|
||||
for i in itertools.count():
|
||||
# do the work
|
||||
k.ping(i)
|
||||
|
||||
# periodically print stats
|
||||
if i % 500 == 0:
|
||||
t.print_diff()
|
||||
time.sleep(0.0001)
|
Reference in New Issue
Block a user