Report the number of days until the CDS CA cert expires as a metric so we can set an alarm.

This commit is contained in:
Jon Chambers
2020-05-05 17:12:47 -04:00
committed by Jon Chambers
parent b1d11d4f69
commit 1c73c91133
3 changed files with 80 additions and 2 deletions

View File

@@ -0,0 +1,32 @@
package org.whispersystems.textsecuregcm.util;
import com.codahale.metrics.CachedGauge;
import org.bouncycastle.openssl.PEMReader;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.security.cert.CertificateException;
import java.security.cert.X509Certificate;
import java.time.Duration;
import java.time.Instant;
import java.util.concurrent.TimeUnit;
/**
* Measures and reports the number of days until a certificate expires.
*/
public class CertificateExpirationGauge extends CachedGauge<Long> {
private final Instant certificateExpiration;
public CertificateExpirationGauge(final X509Certificate certificate) {
super(1, TimeUnit.HOURS);
certificateExpiration = certificate.getNotAfter().toInstant();
}
@Override
protected Long loadValue() {
return Duration.between(Instant.now(), certificateExpiration).toDays();
}
}