Skip to content

Commit f3f1bb9

Browse files
committed
Add invalidatedPayloads gauge
1 parent 785b74a commit f3f1bb9

File tree

2 files changed

+16
-4
lines changed

2 files changed

+16
-4
lines changed

captchaservice-backend/src/main/java/de/muenchen/captchaservice/repository/InvalidatedPayloadRepository.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,4 +13,6 @@ public interface InvalidatedPayloadRepository extends PagingAndSortingRepository
1313
long deleteByExpiresAtLessThan(Instant validUntil);
1414

1515
long countByPayloadHash(String payloadHash);
16+
17+
long countByExpiresAtGreaterThan(Instant now);
1618
}

captchaservice-backend/src/main/java/de/muenchen/captchaservice/service/captcha/CaptchaService.java

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
import io.micrometer.core.instrument.MeterRegistry;
1212
import io.micrometer.core.instrument.Counter;
1313
import io.micrometer.core.instrument.DistributionSummary;
14+
import io.micrometer.core.instrument.Gauge;
1415
import lombok.extern.slf4j.Slf4j;
1516
import org.altcha.altcha.Altcha;
1617
import org.apache.commons.codec.digest.DigestUtils;
@@ -31,15 +32,24 @@ public class CaptchaService {
3132

3233
@SuppressFBWarnings(value = { "EI_EXPOSE_REP2" }, justification = "Dependency Injection")
3334
public CaptchaService(final CaptchaProperties captchaProperties, final DifficultyService difficultyService,
34-
final InvalidatedPayloadRepository invalidatedPayloadRepository, MeterRegistry meterRegistry) {
35+
final InvalidatedPayloadRepository invalidatedPayloadRepository, MeterRegistry registry) {
3536
this.captchaProperties = captchaProperties;
3637
this.invalidatedPayloadRepository = invalidatedPayloadRepository;
3738
this.difficultyService = difficultyService;
3839

3940
// Initialize metrics
40-
this.challengeCounter = meterRegistry.counter("captcha.challenge.requests");
41-
this.verifySuccessCounter = meterRegistry.counter("captcha.verify.success");
42-
this.tookTimeSummary = meterRegistry.summary("captcha.verify.took.time");
41+
this.challengeCounter = Counter.builder("captcha.challenge.requests")
42+
.description("Counter for captcha challenge requests")
43+
.register(registry);
44+
this.verifySuccessCounter = Counter.builder("captcha.verify.success")
45+
.description("Counter for captcha verify success requests")
46+
.register(registry);
47+
this.tookTimeSummary = DistributionSummary.builder("captcha.verify.took.time")
48+
.description("Summary of the time taken to verify captcha payloads")
49+
.register(registry);
50+
Gauge.builder("captcha.invalidated.payloads", invalidatedPayloadRepository, repo -> repo.countByExpiresAtGreaterThan(Instant.now()))
51+
.description("Gauge for the number of currently invalidated payloads")
52+
.register(registry);
4353
}
4454

4555
public Altcha.Challenge createChallenge(final String siteKey, final SourceAddress sourceAddress) {

0 commit comments

Comments
 (0)