<commit_before>

##### High priority

* More tests, especially for common modules code and the main process.


##### Medium priority

* Sending massive TCP payloads proved problematic in Prometheus exporter, so it does
  a sequence of smaller writes to the socket instead. Graphite module still does one
  massive write to the socket and most likely may need to do the smaller writes, too.


##### Low priority

* Perhaps `SIGHUP` in the main process should be restarting all modules instead of
  being ignored? Then again, proper restart is tricky to get right. The surest shot
  is still the full stop - start cycle.
* Graphite module uses one randomly selected host from the resolved list as the actual
  destination for metrics, InfluxDB module uses all hosts to fan out metrics to.
  Graphite module should ideally use all resolved hosts, too.
* With `timestamp` and `bucket` special keys in current statsd implementation,
  all other source modules like linux or docker stats could be implemented as statsd
  clients making the statsd module a hub. A big but tempting architectural change.<commit_msg>Add some bits to TODO<commit_after>

##### High priority

* More tests, especially for common modules code and the main process.
* Statsd tests for non timestamped metrics 


##### Medium priority

* Configurable metric filters, there is need to be able to drop some produced metrics,
  i.e. on CI / test machines.
* Configurable "data channels", something similar to syslog-ng. 
* Sending massive TCP payloads proved problematic in Prometheus exporter, so it does
  a sequence of smaller writes to the socket instead. Graphite module still does one
  massive write to the socket and most likely may need to do the smaller writes, too.


##### Low priority

* Perhaps `SIGHUP` in the main process should be restarting all modules instead of
  being ignored? Then again, proper restart is tricky to get right. The surest shot
  is still the full stop - start cycle.
* Graphite module uses one randomly selected host from the resolved list as the actual
  destination for metrics, InfluxDB module uses all hosts to fan out metrics to.
  Graphite module should ideally use all resolved hosts, too.
* With `timestamp` and `bucket` special keys in current statsd implementation,
  all other source modules like linux or docker stats could be implemented as statsd
  clients making the statsd module a hub. A big but tempting architectural change.
{'fraction_non_alphanumeric': 0.04411764705882353, 'fraction_numerical': 0.0, 'mean_word_length': 4.221748400852879, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1226931', 'n_tokens_mistral': 599, 'n_tokens_neox': 569, 'n_words': 369}