Skip to content

Commit

Permalink
fix: log to single lines (#38)
Browse files Browse the repository at this point in the history
Co-authored-by: Erik Godding Boye <[email protected]>
  • Loading branch information
sverrehu and erikgb authored Oct 3, 2023
1 parent c519bbb commit 372b305
Show file tree
Hide file tree
Showing 4 changed files with 62 additions and 29 deletions.
32 changes: 3 additions & 29 deletions src/main/java/no/statnett/k3alagexporter/K3aLagExporter.java
Original file line number Diff line number Diff line change
@@ -1,46 +1,20 @@
package no.statnett.k3alagexporter;

import no.statnett.k3alagexporter.model.ClusterData;
import no.statnett.k3alagexporter.utils.LogUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public final class K3aLagExporter {

private static final Logger LOG = LoggerFactory.getLogger(K3aLagExporter.class);

private void doit() {
try {
final long msBetweenCollections = Conf.getPollIntervalMs();
final PrometheusReporter prometheusReporter = new PrometheusReporter();
prometheusReporter.start();
final ClusterLagCollector collector = new ClusterLagCollector(Conf.getClusterName(),
Conf.getTopicAllowList(), Conf.getTopicDenyList(),
Conf.getConsumerGroupAllowList(), Conf.getConsumerGroupDenyList(),
Conf.getConsumerConfig(), Conf.getAdminConfig());
for (;;) {
long t = System.currentTimeMillis();
final ClusterData clusterData = collector.collect();
prometheusReporter.publish(clusterData);
t = System.currentTimeMillis() - t;
try {
Thread.sleep(Math.max(0, msBetweenCollections - t));
} catch (final InterruptedException e) {
throw new RuntimeException(e);
}
}
} catch (final Exception e) {
LOG.error("Fatal error. Terminating.", e);
System.exit(1);
}
}

private static void showHelpAndExit() {
System.out.println("For configuration and usage of k3a-lag-exporter, please see");
System.out.println("https://github.com/statnett/k3a-lag-exporter");
System.exit(0);
}

public static void main(final String[] args) {
LogUtils.initLogging();
if (args.length != 0) {
showHelpAndExit();
}
Expand All @@ -50,7 +24,7 @@ public static void main(final String[] args) {
System.exit(1);
}
Conf.setFromFile(configFile);
new K3aLagExporter().doit();
new MainLagExporterLoop().runLoop();
}

}
38 changes: 38 additions & 0 deletions src/main/java/no/statnett/k3alagexporter/MainLagExporterLoop.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
package no.statnett.k3alagexporter;

import no.statnett.k3alagexporter.model.ClusterData;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

final class MainLagExporterLoop {

private static final Logger LOG = LoggerFactory.getLogger(MainLagExporterLoop.class);

public void runLoop() {
try {
final long msBetweenCollections = Conf.getPollIntervalMs();
LOG.info("Starting polling every " + msBetweenCollections + " ms");
final PrometheusReporter prometheusReporter = new PrometheusReporter();
prometheusReporter.start();
final ClusterLagCollector collector = new ClusterLagCollector(Conf.getClusterName(),
Conf.getTopicAllowList(), Conf.getTopicDenyList(),
Conf.getConsumerGroupAllowList(), Conf.getConsumerGroupDenyList(),
Conf.getConsumerConfig(), Conf.getAdminConfig());
for (;;) {
long t = System.currentTimeMillis();
final ClusterData clusterData = collector.collect();
prometheusReporter.publish(clusterData);
t = System.currentTimeMillis() - t;
try {
Thread.sleep(Math.max(0, msBetweenCollections - t));
} catch (final InterruptedException e) {
throw new RuntimeException(e);
}
}
} catch (final Exception e) {
LOG.error("Fatal error. Terminating.", e);
System.exit(1);
}
}

}
19 changes: 19 additions & 0 deletions src/main/java/no/statnett/k3alagexporter/utils/LogUtils.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
package no.statnett.k3alagexporter.utils;

public final class LogUtils {

public static final String LOG_FORMAT_PROPERTY = "java.util.logging.SimpleFormatter.format";

private LogUtils() {
}

/**
* Sets up logging to a single line when using Java Logging.
* Must be called before any log-related class is instantiated.
*/
public static void initLogging() {
if (System.getProperty(LOG_FORMAT_PROPERTY) == null) {
System.setProperty(LOG_FORMAT_PROPERTY, "%1$tY-%1$tm-%1$td %1$tH:%1$tM:%1$tS %4$s %2$s: %5$s%6$s%n");
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
import no.statnett.k3alagexporter.model.ClusterData;
import no.statnett.k3alagexporter.model.ConsumerGroupData;
import no.statnett.k3alagexporter.model.TopicPartitionData;
import no.statnett.k3alagexporter.utils.LogUtils;
import org.apache.kafka.clients.consumer.Consumer;
import org.apache.kafka.clients.consumer.ConsumerRecord;
import org.apache.kafka.clients.consumer.ConsumerRecords;
Expand All @@ -31,6 +32,7 @@ public final class K3aLagExporterIT {

@BeforeClass
public static void beforeClass() {
LogUtils.initLogging();
kafkaCluster = new KafkaCluster();
kafkaCluster.start();
lagCollector = new ClusterLagCollector(CLUSTER_NAME,
Expand Down

0 comments on commit 372b305

Please sign in to comment.