Skip to content

Commit 8b91432

Browse files
author
Yann
authored
Merge pull request #152 from DataDog/yann/dogstatsd-unicode-tags
[dogstatsd] support unicode tags 🔣
2 parents 43a8dd7 + ccbd94d commit 8b91432

File tree

3 files changed

+14
-7
lines changed

3 files changed

+14
-7
lines changed

datadog/dogstatsd/base.py

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,20 +2,23 @@
22
"""
33
DogStatsd is a Python client for DogStatsd, a Statsd fork for Datadog.
44
"""
5-
6-
import logging
7-
import os
5+
# stdlib
6+
from functools import wraps
87
from random import random
98
from time import time
9+
import logging
10+
import os
1011
import socket
1112
import struct
12-
from functools import wraps
1313

1414
try:
1515
from itertools import imap
1616
except ImportError:
1717
imap = map
1818

19+
# datadog
20+
from datadog.util.compat import text
21+
1922

2023
log = logging.getLogger('dogstatsd')
2124

@@ -289,7 +292,7 @@ def _report(self, metric, metric_type, value, tags, sample_rate):
289292
if tags:
290293
payload.extend(["|#", ",".join(tags)])
291294

292-
encoded = "".join(imap(str, payload))
295+
encoded = "".join(imap(text, payload))
293296

294297
# Send it
295298
self._send(encoded)

datadog/util/compat.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@ def iteritems(d):
2424
def iternext(iter):
2525
return next(iter)
2626

27+
text = str
28+
2729
else:
2830
get_input = raw_input
2931
import ConfigParser as configparser
@@ -36,6 +38,8 @@ def iteritems(d):
3638
def iternext(iter):
3739
return iter.next()
3840

41+
text = unicode
42+
3943

4044
try:
4145
from UserDict import IterableUserDict

tests/unit/dogstatsd/test_statsd.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -103,8 +103,8 @@ def test_tagged_gauge(self):
103103
t.assert_equal('gt:123.4|g|#country:china,age:45,blue', self.recv())
104104

105105
def test_tagged_counter(self):
106-
self.statsd.increment('ct', tags=['country:canada', 'red'])
107-
t.assert_equal('ct:1|c|#country:canada,red', self.recv())
106+
self.statsd.increment('ct', tags=[u'country:españa', 'red'])
107+
t.assert_equal(u'ct:1|c|#country:españa,red', self.recv())
108108

109109
def test_tagged_histogram(self):
110110
self.statsd.histogram('h', 1, tags=['red'])

0 commit comments

Comments
 (0)