Commit graph

34 commits

Author SHA1 Message Date
Dave Shawley
b64cd0cbde
Stop testing 3.7, add 3.11
This removes our reliance on asynctest and reduces the maintenance
burden slightly.  We still support 3.7, just removing explicit testing
of it.
2023-07-27 09:17:38 -04:00
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
a48453b70e
Add compatibility with sprockets.http. 2021-05-09 16:21:34 -04:00
Dave Shawley
235c7bde3c
Add support for disabling tornado connector. 2021-04-12 08:08:07 -04:00
Dave Shawley
51e1f2ccae
Make type annotations safe for Python 3.7. 2021-03-30 08:09:53 -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
b84e52592d
Prefix management -- take two.
Agree with @aremm here ... instead of requiring contortions to run
without a prefix, let's just require that it is explicitly set to `None`
if you want to skip the prefix.  If you `prefix` isn't in the settings
explicitly, then use `$STATSD_PREFIX` if it is set; otherwise, try to
construct a prefix from service & environment, if that fails, then fail
hard in the initializer.
2021-03-24 08:10:07 -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
2aeddc8bc3
Rename mixins module to tornado.
Tried to make it clear that tornado is an optional requirement.
2021-03-24 06:54:24 -04:00
Dave Shawley
7ee536e99f
Fix test error. 2021-03-24 06:30:26 -04:00
Dave Shawley
9a8f23c614
Require prefix unless allow_no_prefix is set. 2021-03-23 22:01:27 -04:00
Dave Shawley
f6017d1a06
Add $STATSD_PREFIX support. 2021-03-23 22:01:02 -04:00
Dave Shawley
05650286da
Remove usage of typing.Protocol.
It wasn't adding too much and it isn't available in Python 3.7.
2021-03-23 21:21:16 -04:00
Dave Shawley
c634c20906
Expose UDP support in the mixins. 2021-03-23 07:58:45 -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
6d310db517
Move statsd connector to attribute.
Since @aremm still believes that `Application.settings` should only be
used for configuration and not for state ;)
2021-03-23 07:57:32 -04:00
Dave Shawley
69dfb51bf8
Rework application prefix configuration.
Use a default of `None` instead of `applications` if the neither service
nor environment keys are set.
2021-03-23 07:57:27 -04:00
Dave Shawley
28e369c122
Make timeout parameters configurable. 2021-03-11 07:31:24 -05: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
Dave Shawley
832f8af7e0
Project scaffolding. 2021-03-08 07:35:31 -05:00