dnet-explore-metrics/src/main/java/eu/dnetlib/dnetexploremetrics/dao/MetricsFileDAO.java

51 lines
1.6 KiB
Java

package eu.dnetlib.dnetexploremetrics.dao;
import eu.dnetlib.dnetexploremetrics.model.Metrics;
import eu.dnetlib.dnetexploremetrics.utils.PrometheusMetricsFormatter;
import org.apache.commons.io.IOUtils;
import org.apache.log4j.Logger;
import java.io.*;
import java.nio.file.Files;
import java.nio.file.Paths;
public class MetricsFileDAO implements MetricsDAO {
private final Logger logger = Logger.getLogger(this.getClass());
private String fileName;
@Override
public void save(Metrics metrics) {
try {
Files.write(Paths.get("fileName"), PrometheusMetricsFormatter.formatMetrics(metrics).getBytes());
ClassLoader classLoader = getClass().getClassLoader();
File file = new File(classLoader.getResource(".").getFile() +"/metrics.txt");
FileWriter fileWriter = new FileWriter(file);
PrintWriter printWriter = new PrintWriter(fileWriter);
printWriter.print(PrometheusMetricsFormatter.formatMetrics(metrics));
printWriter.close();
} catch (IOException ioe) {
logger.error("Error writing metrics to file " + fileName + ".", ioe);
}
}
@Override
public String getMetrics() {
String metrics="";
try {
FileInputStream inputStream = new FileInputStream(getClass().getClassLoader().getResource(".").getFile() +"/metrics.txt");
metrics = IOUtils.toString(inputStream, "UTF-8");
// do something with everything string
} catch (IOException ioe) {
logger.error("Error reading metrics to file " + fileName + ".", ioe);
}
return metrics;
}
}