Commit graph

19 commits

Author SHA1 Message Date
Dave Shawley
3b9b9ccb2f
Make sonar a little happier.
I really should have commented the `pass` lines...
2021-07-18 12:06:35 -04:00
Dave Shawley
65745010ad
Add datetime.timedelta support to timing. 2021-07-18 11:57:38 -04:00
Dave Shawley
1c6ba8f80e
Implement the python-statsd Timer interface. 2021-07-18 11:56:49 -04:00
Dave Shawley
75bb621784
Add Connector.timer.
This improves compatibility with python-statsd.
2021-07-18 11:26:34 -04:00
Dave Shawley
89d20a5f89
Remove unused variable in test. 2021-05-10 06:45:19 -04:00
Dave Shawley
ed67689fe2
Limit logging when disconnected.
Instead of logging a warning every time that the connection fails, only
log the first 100 of them, then log every 100th time thereafter.
2021-05-09 16:21:34 -04:00
Dave Shawley
da95efa544
Move path prefixing into Connector.
This makes the low-level code a little more opinionated.  If there is a
good reason for making `timers`, `counters`, etc. optional, then we can
PR it into place.
2021-03-30 07:56:20 -04:00
Dave Shawley
0f0bae1199
Set upper bound on metrics queue size. 2021-03-30 07:22:22 -04:00
Dave Shawley
2ecdee61c4
Clean up type annotations.
This almost makes mypy happy.  I did manage to step on a defect that
there really isn't a great workaround for so I resorted to disabling
typing there.

https://github.com/python/mypy/issues/2427
2021-03-29 07:46:12 -04:00
Dave Shawley
65df480421
Expose a more usable interface on the Connector.
@nvllsvm likes the interface that https://statsd.readthedocs.io/ exposes
and I agree.  I mimicked this interface on the lower-level Connector.  I
left the sprockets.mixins.metrics style on the tornado helpers for
compat reasons.  You can always use `self.statsd_connector.incr()` in
your request handlers if you prefer the other interface.
2021-03-24 07:41:06 -04:00
Dave Shawley
c4c44f9864
Add support for UDP sockets. 2021-03-23 07:57:32 -04:00
Dave Shawley
38a5e3f566
Refactor to pull out TCP details.
This will make it easier to add the UDP protocol.
2021-03-23 07:57:32 -04:00
Dave Shawley
00759ed20b
Correct some resource leaks in tests. 2021-03-10 07:16:47 -05:00
Dave Shawley
f8c63a55fc
Switch to asynctest for Py 3.7 support.
Decided to switch the tests to using asynctest so that we can guarantee
support on Python 3.7 and newer.  Also added pins in setup.cfg and a
tox.ini file if you want to use it.
2021-03-10 06:46:17 -05:00
Dave Shawley
720dd79193
Add Application & RequestHandler mixins. 2021-03-10 06:46:06 -05:00
Dave Shawley
0d5b212efc
Add docs, rename a few things. 2021-03-08 07:36:33 -05:00
Dave Shawley
ed6e479e2a
Make statsd metric sending resilient. 2021-03-08 07:36:32 -05:00
Dave Shawley
ff6f13591c
Send metrics asynchronously. 2021-03-08 07:36:32 -05:00
Dave Shawley
9febb7e7e8
statsd.Processor that reconnects. 2021-03-08 07:36:32 -05:00