no.nav.apiapp.security.veilarbabac.MetrikkLogger Maven / Gradle / Ivy
package no.nav.apiapp.security.veilarbabac;
import io.micrometer.core.instrument.MeterRegistry;
import no.nav.common.auth.SubjectHandler;
import no.nav.metrics.MetricsFactory;
import org.slf4j.Logger;
import java.util.function.Supplier;
class MetrikkLogger {
private final MeterRegistry meterRegistry = MetricsFactory.getMeterRegistry();
private boolean erAvvik = false;
private String action = "read";
private Supplier idSupplier = ()->"";
private Logger logger;
MetrikkLogger(Logger logger, String action, Supplier idSupplier) {
this.action = action;
this.idSupplier = idSupplier;
this.logger = logger;
}
public MetrikkLogger logger(Logger logger) {
this.logger = logger;
return this;
}
void erAvvik() {
this.erAvvik = true;
}
void loggMetrikk(Tilgangstype tilgangstype, boolean foretrekkVeilarbabac) {
meterRegistry.counter("veilarbabac-pepclient",
"tilgangstype",
tilgangstype.name(),
"identType",
SubjectHandler.getIdentType().map(Enum::name).orElse("unknown"),
"action",
action,
"avvik",
Boolean.toString(erAvvik),
"foretrekkVeilarbAbac",
Boolean.toString(foretrekkVeilarbabac)
).increment();
if(erAvvik) {
logger.warn("Fikk avvik i tilgang for {}", idSupplier.get());
}
}
enum Tilgangstype {
PersonAktoerId,
PersonFoedselsnummer,
Enhet
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy