|
5 | 5 |
|
6 | 6 | # project |
7 | 7 | from ddtrace import Pin |
| 8 | +from ddtrace.constants import ANALYTICS_SAMPLE_RATE_KEY |
8 | 9 | from ddtrace.compat import PY2 |
9 | 10 | from ddtrace.compat import stringify |
10 | 11 | from ddtrace.contrib.pymysql.patch import patch, unpatch |
@@ -318,6 +319,53 @@ def test_rollback(self): |
318 | 319 | eq_(span.service, self.TEST_SERVICE) |
319 | 320 | eq_(span.name, 'pymysql.connection.rollback') |
320 | 321 |
|
| 322 | + def test_analytics_default(self): |
| 323 | + conn, tracer = self._get_conn_tracer() |
| 324 | + writer = tracer.writer |
| 325 | + cursor = conn.cursor() |
| 326 | + cursor.execute("SELECT 1") |
| 327 | + rows = cursor.fetchall() |
| 328 | + eq_(len(rows), 1) |
| 329 | + spans = writer.pop() |
| 330 | + |
| 331 | + self.assertEqual(len(spans), 1) |
| 332 | + span = spans[0] |
| 333 | + self.assertIsNone(span.get_metric(ANALYTICS_SAMPLE_RATE_KEY)) |
| 334 | + |
| 335 | + def test_analytics_with_rate(self): |
| 336 | + with self.override_config( |
| 337 | + 'dbapi2', |
| 338 | + dict(analytics_enabled=True, analytics_sample_rate=0.5) |
| 339 | + ): |
| 340 | + conn, tracer = self._get_conn_tracer() |
| 341 | + writer = tracer.writer |
| 342 | + cursor = conn.cursor() |
| 343 | + cursor.execute("SELECT 1") |
| 344 | + rows = cursor.fetchall() |
| 345 | + eq_(len(rows), 1) |
| 346 | + spans = writer.pop() |
| 347 | + |
| 348 | + self.assertEqual(len(spans), 1) |
| 349 | + span = spans[0] |
| 350 | + self.assertEqual(span.get_metric(ANALYTICS_SAMPLE_RATE_KEY), 0.5) |
| 351 | + |
| 352 | + def test_analytics_with_rate(self): |
| 353 | + with self.override_config( |
| 354 | + 'dbapi2', |
| 355 | + dict(analytics_enabled=True) |
| 356 | + ): |
| 357 | + conn, tracer = self._get_conn_tracer() |
| 358 | + writer = tracer.writer |
| 359 | + cursor = conn.cursor() |
| 360 | + cursor.execute("SELECT 1") |
| 361 | + rows = cursor.fetchall() |
| 362 | + eq_(len(rows), 1) |
| 363 | + spans = writer.pop() |
| 364 | + |
| 365 | + self.assertEqual(len(spans), 1) |
| 366 | + span = spans[0] |
| 367 | + self.assertEqual(span.get_metric(ANALYTICS_SAMPLE_RATE_KEY), 1.0) |
| 368 | + |
321 | 369 |
|
322 | 370 | class TestPyMysqlPatch(PyMySQLCore, BaseTracerTestCase): |
323 | 371 | def _get_conn_tracer(self): |
|
0 commit comments