Skip to content

Commit 9909f7c

Browse files
committed
Add first two gitblit specific metrics
Added metrics for: 1. git_garbage_collects_total 2. ldap_sync_latency_seconds.
1 parent e2203a5 commit 9909f7c

File tree

3 files changed

+24
-1
lines changed

3 files changed

+24
-1
lines changed

src/main/java/com/gitblit/service/GarbageCollectorService.java

+7-1
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
import java.util.concurrent.ConcurrentHashMap;
2424
import java.util.concurrent.atomic.AtomicBoolean;
2525

26+
import io.prometheus.client.Counter;
2627
import org.eclipse.jgit.api.GarbageCollectCommand;
2728
import org.eclipse.jgit.api.Git;
2829
import org.eclipse.jgit.lib.Repository;
@@ -35,6 +36,8 @@
3536
import com.gitblit.models.RepositoryModel;
3637
import com.gitblit.utils.FileUtils;
3738

39+
import static com.gitblit.service.PrometheusMetrics.GIT_GARBAGE_COLLECTS_TOTAL;
40+
3841
/**
3942
* The Garbage Collector Service handles periodic garbage collection in repositories.
4043
*
@@ -129,6 +132,9 @@ public void close() {
129132
forceClose.set(true);
130133
}
131134

135+
private final Counter garbageCollectsTotal = Counter.build()
136+
.name(GIT_GARBAGE_COLLECTS_TOTAL).help(GIT_GARBAGE_COLLECTS_TOTAL).register();
137+
132138
@Override
133139
public void run() {
134140
if (!isReady()) {
@@ -200,7 +206,7 @@ public void run() {
200206

201207
// do the deed
202208
gc.call();
203-
209+
garbageCollectsTotal.inc();
204210
garbageCollected = true;
205211
}
206212
} catch (Exception e) {

src/main/java/com/gitblit/service/LdapSyncService.java

+7
Original file line numberDiff line numberDiff line change
@@ -17,20 +17,25 @@
1717

1818
import java.util.concurrent.atomic.AtomicBoolean;
1919

20+
import io.prometheus.client.Histogram;
2021
import org.slf4j.Logger;
2122
import org.slf4j.LoggerFactory;
2223

2324
import com.gitblit.IStoredSettings;
2425
import com.gitblit.Keys;
2526
import com.gitblit.auth.LdapAuthProvider;
2627

28+
import static com.gitblit.service.PrometheusMetrics.LDAP_SYNC_LATENCY_SECONDS;
29+
2730
/**
2831
* @author Alfred Schmid
2932
*
3033
*/
3134
public final class LdapSyncService implements Runnable {
3235

3336
private final Logger logger = LoggerFactory.getLogger(LdapSyncService.class);
37+
private final Histogram ldapSyncLatency = Histogram.build().name(LDAP_SYNC_LATENCY_SECONDS).
38+
help(LDAP_SYNC_LATENCY_SECONDS).register();
3439

3540
private final IStoredSettings settings;
3641

@@ -51,12 +56,14 @@ public LdapSyncService(IStoredSettings settings, LdapAuthProvider ldapAuthProvid
5156
public void run() {
5257
logger.info("Starting user and group sync with ldap service");
5358
if (!running.getAndSet(true)) {
59+
Histogram.Timer requestTimer = ldapSyncLatency.startTimer();
5460
try {
5561
ldapAuthProvider.sync();
5662
} catch (Exception e) {
5763
logger.error("Failed to synchronize with ldap", e);
5864
} finally {
5965
running.getAndSet(false);
66+
requestTimer.observeDuration();
6067
}
6168
}
6269
logger.info("Finished user and group sync with ldap service");
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
package com.gitblit.service;
2+
3+
class PrometheusMetrics {
4+
5+
/** Number of garbage collects */
6+
static final String GIT_GARBAGE_COLLECTS_TOTAL = "git_garbage_collects_total";
7+
8+
/** Ldap Sync Latency in second */
9+
static final String LDAP_SYNC_LATENCY_SECONDS = "ldap_sync_latency_seconds";
10+
}

0 commit comments

Comments
 (0)