<commit_before>High Performance StatsD Client
==============================

A high performance StatsD client.  Increases performance over other clients with these key features:

**Metric Buffering**
Multiple metrics are bundled together into a single UDP packet.  This means fewer packets are sent to the server.

**Metric Aggregation**
When possible, metrics are aggregated in the client before sending to the server.  For example, if a counter is increased by 1 three times in quick succession, the client will only report the metric to the server once, with a value of 3.

**Thread-Safe**
The client is completely thread safe.  An unlimited number of worker threads in your application can all report metrics through the same instance of the client.

**Non-Blocking**
The client is non-blocking, so reporting a metric always returns immediately, without slowing down your application.

**Consumer/Producer Pattern**
The client uses a configurable thread pool of consumer worker threads to bundle up metrics and send them to the server.  In most cases a single worker thread is plenty, but if your application sends a high volume of metrics, simply change the configuration to use a higher number of workers.

Installation
------------

Can be found on Nuget with the ID of StatsD.HighPerformance
<commit_msg>Update package link in README<commit_after>High Performance StatsD Client
==============================

A high performance StatsD client.  Increases performance over other clients with these key features:

**Metric Buffering**
Multiple metrics are bundled together into a single UDP packet.  This means fewer packets are sent to the server.

**Metric Aggregation**
When possible, metrics are aggregated in the client before sending to the server.  For example, if a counter is increased by 1 three times in quick succession, the client will only report the metric to the server once, with a value of 3.

**Thread-Safe**
The client is completely thread safe.  An unlimited number of worker threads in your application can all report metrics through the same instance of the client.

**Non-Blocking**
The client is non-blocking, so reporting a metric always returns immediately, without slowing down your application.

**Consumer/Producer Pattern**
The client uses a configurable thread pool of consumer worker threads to bundle up metrics and send them to the server.  In most cases a single worker thread is plenty, but if your application sends a high volume of metrics, simply change the configuration to use a higher number of workers.

Installation
------------

Can be found on Nuget with the ID of [StatsdClient.HighPerformance](https://www.nuget.org/packages/StatsdClient.HighPerformance)

{'fraction_non_alphanumeric': 0.07008483954260421, 'fraction_numerical': 0.0014754703061600886, 'mean_word_length': 4.65, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 1, 'lorem ipsum': 0, 'www.': 1, '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': '5668462', 'n_tokens_mistral': 623, 'n_tokens_neox': 590, 'n_words': 388}