Skip to content

Commit 4be5cd4

Browse files
committed
pylibmc: add docs
1 parent bf2a622 commit 4be5cd4

File tree

5 files changed

+24
-5
lines changed

5 files changed

+24
-5
lines changed

Rakefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ end
3333

3434
desc "build the docs"
3535
task :docs do
36+
sh "pip install sphinx"
3637
Dir.chdir 'docs' do
3738
sh "make html"
3839
end
Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,16 @@
1+
"""
2+
To trace the pylibmc Memcached client, wrap its connections with the traced
3+
client::
14
2-
from .client import TracedClient # flake8: noqa
5+
import pylibmc
6+
from ddtrace import tracer
7+
8+
client = TracedClient(
9+
client=pylibmc.Client(["localhost:11211"]),
10+
tracer=tracer,
11+
service="my-cache-cluster")
312
13+
client.set("key", "value")
14+
"""
415

16+
from .client import TracedClient # flake8: noqa

ddtrace/contrib/pylibmc/client.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
from wrapt import ObjectProxy
88

99
# project
10+
import ddtrace
1011
from ddtrace.ext import AppTypes
1112
from ddtrace.ext import net
1213
from .addrs import parse_addresses
@@ -21,11 +22,11 @@ class TracedClient(ObjectProxy):
2122
_service = None
2223
_tracer = None
2324

24-
def __init__(self, client, tracer, service="memcached"):
25+
def __init__(self, client, service="memcached", tracer=None):
2526
""" Create a traced client that wraps the given memcached client. """
2627
super(TracedClient, self).__init__(client)
2728
self._service = service
28-
self._tracer = tracer
29+
self._tracer = tracer or ddtrace.tracer # default to the global client
2930

3031
# attempt to collect the pool of urls this client talks to
3132
try:
@@ -45,7 +46,7 @@ def __init__(self, client, tracer, service="memcached"):
4546
def clone(self, *args, **kwargs):
4647
# rewrap new connections.
4748
cloned = self.__wrapped__.clone(*args, **kwargs)
48-
return TracedClient(cloned, self._tracer, self._service)
49+
return TracedClient(cloned, tracer=self._tracer, service=self._service)
4950

5051
def get(self, *args, **kwargs):
5152
return self._trace("get", *args, **kwargs)

docs/index.rst

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -146,6 +146,11 @@ Postgres
146146

147147
.. automodule:: ddtrace.contrib.psycopg
148148

149+
Pylibmc
150+
~~~~~~~~
151+
152+
.. automodule:: ddtrace.contrib.pylibmc
153+
149154
Redis
150155
~~~~~
151156

tests/contrib/pylibmc/test.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -139,5 +139,5 @@ def _setup():
139139
tracer = Tracer()
140140
tracer.writer = DummyWriter()
141141

142-
client = TracedClient(raw_client, tracer, TEST_SERVICE)
142+
client = TracedClient(raw_client, tracer=tracer, service=TEST_SERVICE)
143143
return client, tracer

0 commit comments

Comments
 (0)