NEZ-762 OLP_exporter程序开发:olp_exporter 首次提交

This commit is contained in:
hyx
2021-06-25 18:32:58 +08:00
parent ac4260e5f5
commit 991a81e068
20 changed files with 943 additions and 0 deletions

View File

@@ -0,0 +1,110 @@
package com.nis.util;
import java.io.IOException;
import java.io.Writer;
import java.util.List;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import io.prometheus.client.Collector;
import io.prometheus.client.Collector.MetricFamilySamples;
public class TextFormatUtils {
private static final Logger logger = LoggerFactory.getLogger(TextFormatUtils.class);
public static void write004(Writer writer, List<MetricFamilySamples> mfs) {
try {
String enter = "\n";
for(MetricFamilySamples mfSample:mfs) {
Collector.MetricFamilySamples metricFamilySamples = mfSample;
writer.write("# HELP ");
writer.write(metricFamilySamples.name);
writer.write(' ');
writeEscapedHelp(writer, metricFamilySamples.help);
writer.write(enter);
writer.write("# TYPE ");
writer.write(metricFamilySamples.name);
writer.write(' ');
writer.write(typeString(metricFamilySamples.type));
writer.write(enter);
for (Collector.MetricFamilySamples.Sample sample: metricFamilySamples.samples) {
writer.write(sample.name);
if (sample.labelNames.size() > 0) {
writer.write('{');
for (int i = 0; i < sample.labelNames.size(); ++i) {
writer.write(sample.labelNames.get(i));
writer.write("=\"");
writeEscapedLabelValue(writer, sample.labelValues.get(i));
writer.write("\",");
}
writer.write('}');
}
writer.write(' ');
writer.write(Collector.doubleToGoString(sample.value));
if (sample.timestampMs != null){
writer.write(' ');
writer.write(sample.timestampMs.toString());
}
writer.write(enter);
}
}
}catch (Exception e) {
logger.error(e.getMessage());
}
}
private static void writeEscapedHelp(Writer writer, String s) throws IOException {
for (int i = 0; i < s.length(); i++) {
char c = s.charAt(i);
switch (c) {
case '\\':
writer.append("\\\\");
break;
case '\n':
writer.append("\\n");
break;
default:
writer.append(c);
}
}
}
private static String typeString(Collector.Type t) {
switch (t) {
case GAUGE:
return "gauge";
case COUNTER:
return "counter";
case SUMMARY:
return "summary";
case HISTOGRAM:
return "histogram";
default:
return "untyped";
}
}
private static void writeEscapedLabelValue(Writer writer, String s) throws IOException {
for (int i = 0; i < s.length(); i++) {
char c = s.charAt(i);
switch (c) {
case '\\':
writer.append("\\\\");
break;
case '\"':
writer.append("\\\"");
break;
case '\n':
writer.append("\\n");
break;
default:
writer.append(c);
}
}
}
}