Skip to content

Commit 70cf6c0

Browse files
committed
[jwt] fix dashboard and alerts
1 parent edcbf50 commit 70cf6c0

File tree

3 files changed

+14
-14
lines changed

3 files changed

+14
-14
lines changed

deployments/grafana/dashboards/jwt.json

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -149,7 +149,7 @@
149149
"uid": "Prometheus"
150150
},
151151
"editorMode": "code",
152-
"expr": "100 * sum(rate(sms_auth_jwt_validations_total{status=\"success\",instance=~\"$instance\",job=~\"$job\"}[5m])) / clamp_min(sum(rate(sms_auth_jwt_validations_total{instance=~\"$instance\",job=~\"$job\"}[5m])), 1)",
152+
"expr": "100 * sum(rate(sms_auth_jwt_tokens_validated_total{status=\"success\",instance=~\"$instance\",job=~\"$job\"}[5m])) / clamp_min(sum(rate(sms_auth_jwt_tokens_validated_total{instance=~\"$instance\",job=~\"$job\"}[5m])), 1)",
153153
"legendFormat": "Validation Success Rate",
154154
"range": true,
155155
"refId": "A"
@@ -386,13 +386,13 @@
386386
"uid": "Prometheus"
387387
},
388388
"editorMode": "code",
389-
"expr": "sum by (reason) (sms_auth_jwt_issuance_errors_total{instance=~\"$instance\",job=~\"$job\"})",
390-
"legendFormat": "{{reason}}",
389+
"expr": "sum by (status) (sms_auth_jwt_tokens_issued_total{status=\"error\",instance=~\"$instance\",job=~\"$job\"})",
390+
"legendFormat": "{{status}}",
391391
"range": true,
392392
"refId": "A"
393393
}
394394
],
395-
"title": "Issuance Error Breakdown by Reason",
395+
"title": "Issuance Error Count",
396396
"type": "bargauge"
397397
},
398398
{
@@ -606,7 +606,7 @@
606606
"uid": "Prometheus"
607607
},
608608
"editorMode": "code",
609-
"expr": "sum(rate(sms_auth_jwt_validations_total{status=\"success\",instance=~\"$instance\",job=~\"$job\"}[$__rate_interval])) / clamp_min(sum(rate(sms_auth_jwt_validations_total{instance=~\"$instance\",job=~\"$job\"}[$__rate_interval])), 1)",
609+
"expr": "sum(rate(sms_auth_jwt_tokens_validated_total{status=\"success\",instance=~\"$instance\",job=~\"$job\"}[$__rate_interval])) / clamp_min(sum(rate(sms_auth_jwt_tokens_validated_total{instance=~\"$instance\",job=~\"$job\"}[$__rate_interval])), 1)",
610610
"legendFormat": "Success Rate",
611611
"range": true,
612612
"refId": "A"
@@ -671,15 +671,15 @@
671671
},
672672
"editorMode": "code",
673673
"exemplar": false,
674-
"expr": "sum by (reason) (sms_auth_jwt_validation_errors_total{instance=~\"$instance\",job=~\"$job\"})",
674+
"expr": "sum by (status) (sms_auth_jwt_tokens_validated_total{instance=~\"$instance\",job=~\"$job\"})",
675675
"format": "heatmap",
676676
"instant": true,
677-
"legendFormat": "{{reason}}",
677+
"legendFormat": "{{status}}",
678678
"range": false,
679679
"refId": "A"
680680
}
681681
],
682-
"title": "Validation Error Classification",
682+
"title": "Validation Status Classification",
683683
"type": "piechart"
684684
},
685685
{
@@ -993,7 +993,7 @@
993993
"uid": "Prometheus"
994994
},
995995
"editorMode": "code",
996-
"expr": "sum(rate(sms_auth_jwt_revocation_errors_total{instance=~\"$instance\",job=~\"$job\"}[$__rate_interval])) / clamp_min(sum(rate(sms_auth_jwt_tokens_revoked_total{instance=~\"$instance\",job=~\"$job\"}[$__rate_interval])), 1)",
996+
"expr": "sum(rate(sms_auth_jwt_tokens_revoked_total{status=\"error\",instance=~\"$instance\",job=~\"$job\"}[$__rate_interval])) / clamp_min(sum(rate(sms_auth_jwt_tokens_revoked_total{instance=~\"$instance\",job=~\"$job\"}[$__rate_interval])), 1)",
997997
"legendFormat": "Error Rate",
998998
"range": true,
999999
"refId": "A"

deployments/prometheus/alerts/jwt-alerts.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ groups:
22
- name: jwt-alerts
33
rules:
44
- alert: JWT_Validation_ErrorRate_High
5-
expr: rate(sms_auth_jwt_tokens_validated_total{status="error"}[5m]) / rate(sms_auth_jwt_tokens_validated_total[5m]) > 0.05
5+
expr: rate(sms_auth_jwt_tokens_validated_total{status="error"}[5m]) / clamp_min(rate(sms_auth_jwt_tokens_validated_total[5m]), 1e-9) > 0.05
66
for: 5m
77
labels:
88
severity: warning
@@ -32,7 +32,7 @@ groups:
3232
description: "JWT revocation database errors occurring at rate {{ $value }}/s"
3333

3434
- alert: JWT_Validation_Failures_High
35-
expr: rate(sms_auth_jwt_tokens_validated_total{reason=~"expired|revoked"}[5m]) / rate(sms_auth_jwt_tokens_validated_total[5m]) > 0.1
35+
expr: rate(sms_auth_jwt_tokens_validated_total{status="error",reason=~"expired|revoked"}[5m]) / max(rate(sms_auth_jwt_tokens_validated_total[5m]), 0.00001) > 0.1
3636
for: 5m
3737
labels:
3838
severity: warning

internal/sms-gateway/jwt/metrics.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -98,20 +98,20 @@ func (m *Metrics) IncrementTokensRevoked(status string) {
9898
// ObserveIssuance observes issuance duration
9999
func (m *Metrics) ObserveIssuance(f func()) {
100100
timer := prometheus.NewTimer(m.issuanceDurationHistogram)
101+
defer timer.ObserveDuration()
101102
f()
102-
timer.ObserveDuration()
103103
}
104104

105105
// ObserveValidation observes validation duration
106106
func (m *Metrics) ObserveValidation(f func()) {
107107
timer := prometheus.NewTimer(m.validationDurationHistogram)
108+
defer timer.ObserveDuration()
108109
f()
109-
timer.ObserveDuration()
110110
}
111111

112112
// ObserveRevocation observes revocation duration
113113
func (m *Metrics) ObserveRevocation(f func()) {
114114
timer := prometheus.NewTimer(m.revocationDurationHistogram)
115+
defer timer.ObserveDuration()
115116
f()
116-
timer.ObserveDuration()
117117
}

0 commit comments

Comments
 (0)