|
27 | 27 |
|
28 | 28 | import io.prometheus.client.Gauge;
|
29 | 29 | import streams.metric.exporter.metrics.MetricsExporter;
|
30 |
| -import streams.metric.exporter.streamstracker.StreamsDomainTracker; |
| 30 | +//import streams.metric.exporter.streamstracker.StreamsDomainTracker; |
| 31 | + |
| 32 | +// For local Main debugging |
| 33 | +import org.apache.log4j.ConsoleAppender; |
| 34 | +import org.apache.log4j.PatternLayout; |
31 | 35 |
|
32 | 36 |
|
33 | 37 | public class PrometheusMetricsExporter extends MetricsExporter {
|
34 |
| - private static final Logger LOGGER = LoggerFactory.getLogger("root." + StreamsDomainTracker.class.getName()); |
| 38 | + //private static final Logger LOGGER = LoggerFactory.getLogger("root." + PrometheusMetricsExporter.class.getName()); |
| 39 | + private static final Logger LOGGER = LoggerFactory.getLogger("root"); |
35 | 40 | // Singleton Pattern
|
36 | 41 | static MetricsExporter singletonExporter = null;
|
37 | 42 |
|
@@ -121,29 +126,47 @@ protected PrometheusMetric(String name, List<String> labelValues) {
|
121 | 126 |
|
122 | 127 | public void set(double val) {
|
123 | 128 | Gauge g = getGauge(name);
|
124 |
| - if (g != null) |
125 |
| - g.labels((String[]) labelValues.toArray()).set(val); |
| 129 | + try { |
| 130 | + if (g != null) |
| 131 | + g.labels((String[]) labelValues.toArray()).set(val); |
| 132 | + else { |
| 133 | + LOGGER.debug("Tried to do a set on a gauge that did not exist name={}",name); |
| 134 | + } |
| 135 | + } catch (IllegalArgumentException e) { |
| 136 | + LOGGER.error("Attempting to set Prometheus Metric value returned IllegalArgumentException"); |
| 137 | + LOGGER.error("Metric: name={}, labelValues={}",name,String.join(",",labelValues)); |
| 138 | + LOGGER.error("This should not occur. Usually caused by invalid labels for metric. Get this fixed!!"); |
| 139 | + } |
126 | 140 | }
|
127 | 141 | }
|
128 | 142 |
|
129 |
| -// public static void main(String[] args) { |
130 |
| -// MetricsExporter metricsExporter = PrometheusMetricsExporter.getInstance(); |
131 |
| -// |
132 |
| -// System.out.println("Hello World!"); // Display the string. |
133 |
| -// Metric m1 = metricsExporter.getStreamsMetric("nTuplesSubmitted", StreamsObjectType.JOB, "StreamsInstance","Job 1"); |
134 |
| -// Metric m2 = metricsExporter.getStreamsMetric("nTuplesSubmitted", StreamsObjectType.JOB, "StreamsInstance","Job 1","Operator 1"); |
135 |
| -// Metric m3 = metricsExporter.getStreamsMetric("nTuplesSubmitted", StreamsObjectType.JOB, "StreamsInstance","Job 1","Operator 1"); |
136 |
| -// |
137 |
| -// System.out.println("m1.equals(m2): " + m1.equals(m2)); |
138 |
| -// System.out.println("m1.equals(m1): " + m1.equals(m1)); |
139 |
| -// System.out.println("m2.equals(m3): " + m2.equals(m3)); |
140 |
| -// |
141 |
| -// System.out.println("size: " + metricsExporter.getMetricIndex().size()); |
142 |
| -// metricsExporter.removeAllChildStreamsMetrics("StreamsInstance","Job 1"); |
143 |
| -// System.out.println("size after remove: " + metricsExporter.getMetricIndex().size()); |
144 |
| -// |
145 |
| -// |
146 |
| -// //System.out.println(m1.labelChildOf("StreamsInstance","Job 1")); |
147 |
| -// //System.out.println(m1.labelChildOf("SomthingElse","Another")); |
148 |
| -// } |
| 143 | + public static void main(String[] args) { |
| 144 | + MetricsExporter metricsExporter = PrometheusMetricsExporter.getInstance(); |
| 145 | + org.apache.log4j.Logger logger = org.apache.log4j.Logger.getRootLogger(); |
| 146 | + PatternLayout layout = new PatternLayout("%d{ISO8601} - %-5p [%t:%C{1}@%L] - %m%n"); |
| 147 | + |
| 148 | + ConsoleAppender consoleAppender = new ConsoleAppender(layout); |
| 149 | + consoleAppender.setName("PMETEST"); |
| 150 | + logger.addAppender(consoleAppender); |
| 151 | + logger.setLevel(org.apache.log4j.Level.toLevel("trace")); |
| 152 | + |
| 153 | + System.out.println("Hello World!"); // Display the string. |
| 154 | + Metric m1 = metricsExporter.getStreamsMetric("nTuplesSubmitted", StreamsObjectType.JOB, "StreamsInstance","Job 1"); |
| 155 | + Metric m2 = metricsExporter.getStreamsMetric("nTuplesSubmitted", StreamsObjectType.JOB, "StreamsInstance","Job 1","Operator 1"); |
| 156 | + Metric m3 = metricsExporter.getStreamsMetric("nTuplesSubmitted", StreamsObjectType.JOB, "StreamsInstance","Job 1","Operator 1"); |
| 157 | + Metric m4 = metricsExporter.getStreamsMetric("nTuplesSubmitted", StreamsObjectType.JOB, ""); |
| 158 | + m4.set(1.0); |
| 159 | + |
| 160 | + System.out.println("m1.equals(m2): " + m1.equals(m2)); |
| 161 | + System.out.println("m1.equals(m1): " + m1.equals(m1)); |
| 162 | + System.out.println("m2.equals(m3): " + m2.equals(m3)); |
| 163 | + |
| 164 | + System.out.println("size: " + metricsExporter.getMetricIndex().size()); |
| 165 | + metricsExporter.removeAllChildStreamsMetrics("StreamsInstance","Job 1"); |
| 166 | + System.out.println("size after remove: " + metricsExporter.getMetricIndex().size()); |
| 167 | + |
| 168 | + |
| 169 | + //System.out.println(m1.labelChildOf("StreamsInstance","Job 1")); |
| 170 | + //System.out.println(m1.labelChildOf("SomthingElse","Another")); |
| 171 | + } |
149 | 172 | }
|
0 commit comments