<commit_before># Available sentries

## Metrics

Implemented by [MetricSentry](src/main/scala/nl/grons/sentries/core/MetricSentry.scala).
Implemented by [MetricSentry](sentries/src/main/scala/nl/grons/sentries/core/MetricSentry.scala).
Implemented by [MetricSentry](erikvanoosten/sentries/src/main/scala/nl/grons/sentries/core/MetricSentry.scala).
Implemented by [MetricSentry](/src/main/scala/nl/grons/sentries/core/MetricSentry.scala).
Implemented by [MetricSentry](/sentries/src/main/scala/nl/grons/sentries/core/MetricSentry.scala).
Implemented by [MetricSentry](/erikvanoosten/sentries/src/main/scala/nl/grons/sentries/core/MetricSentry.scala).

One timer and 2 meter metrics are registered: "all", "fail" and "notAvailable".

The "all" timer times and counts all invocations, the "fail" meter counts invocations that threw an exception, and the "notAvailable" meter counts invocations that were blocked by a sentry that is later in the chain (detected by catching `nl.grons.sentries.support.NotAvailableException`s).

When only a timer is needed, use the Timer sentry instead.

To count the 'not available' invocations, this must be the first sentry in the chain.

## Timer

Implemented by [TimerSentry](src/main/scala/nl/grons/sentries/core/TimerSentry.scala).

One timer is registered: "all". It is updated for each invocation. For more extensive measuring, use the Metrics sentry instead.

## Circuit Breaker (fail limiter)

Implemented by [CircuitBreakerSentry](src/main/scala/nl/grons/sentries/core/CircuitBreakerSentry.scala).

## Adaptive throughput

Implemented by [AdaptiveThroughputSentry](src/main/scala/nl/grons/sentries/core/AdaptiveThroughputSentry.scala).

## Concurrency limiter

Implemented by [ConcurrencyLimitSentry](src/main/scala/nl/grons/sentries/core/ConcurrencyLimitSentry.scala).

## Rate limiter

Implemented by [RateLimitSentry](src/main/scala/nl/grons/sentries/core/RateLimitSentry.scala).

## Duration limiter

Implemented by [DurationLimitSentry](src/main/scala/nl/grons/sentries/core/DurationLimitSentry.scala).
<commit_msg>links in docs now work<commit_after># Available sentries

For now please see the scaladoc of these sentries. They are linked below.

## Metrics

Implemented by [MetricSentry](/src/main/scala/nl/grons/sentries/core/MetricSentry.scala).

One timer and 2 meter metrics are registered: "all", "fail" and "notAvailable".

The "all" timer times and counts all invocations, the "fail" meter counts invocations that threw an exception, and the "notAvailable" meter counts invocations that were blocked by a sentry that is later in the chain (detected by catching `nl.grons.sentries.support.NotAvailableException`s).

When only a timer is needed, use the Timer sentry instead.

To count the 'not available' invocations, this must be the first sentry in the chain.

## Timer

Implemented by [TimerSentry](/src/main/scala/nl/grons/sentries/core/TimerSentry.scala).

One timer is registered: "all". It is updated for each invocation. For more extensive measuring, use the Metrics sentry instead.

## Circuit Breaker (fail limiter)

Implemented by [CircuitBreakerSentry](/src/main/scala/nl/grons/sentries/core/CircuitBreakerSentry.scala).

## Adaptive throughput

Implemented by [AdaptiveThroughputSentry](/src/main/scala/nl/grons/sentries/core/AdaptiveThroughputSentry.scala).

## Concurrency limiter

Implemented by [ConcurrencyLimitSentry](/src/main/scala/nl/grons/sentries/core/ConcurrencyLimitSentry.scala).

## Rate limiter

Implemented by [RateLimitSentry](/src/main/scala/nl/grons/sentries/core/RateLimitSentry.scala).

## Duration limiter

Implemented by [DurationLimitSentry](/src/main/scala/nl/grons/sentries/core/DurationLimitSentry.scala).

{'fraction_non_alphanumeric': 0.10348554444744663, 'fraction_numerical': 0.0005403944879762226, 'mean_word_length': 5.529100529100529, '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': '1253529', 'n_tokens_mistral': 1217, 'n_tokens_neox': 1142, 'n_words': 302}