Skip to content

Commit

Permalink
accurately store puppetdb metrics
Browse files Browse the repository at this point in the history
  • Loading branch information
justinstoller committed Sep 25, 2024
1 parent c558439 commit 412f23b
Showing 1 changed file with 46 additions and 2 deletions.
48 changes: 46 additions & 2 deletions src/java/com/puppetlabs/puppetserver/MetricsPuppetProfiler.java
Original file line number Diff line number Diff line change
Expand Up @@ -102,27 +102,71 @@ private String safeGet(String[] collection, int i) {
}
}

private String metricify(String ...ids) {
String base = ids[0];
List<String> idList = Arrays.asList(ids);
for(String s : idList.subList(1, idList.size())) {
base.concat(".").concat(s);
}
return base;
}

private void updateMetricsTrackers(String[] metricId, Map<String, Timer> metricsByID) {
String firstElement = safeGet(metricId, 0);
String secondElement = safeGet(metricId, 1);

if ("functions".equals(firstElement)) {
Timer metric = metricsByID.get(getMetricName(sliceOfArrayToList(metricId, 2)));
this.function_timers.put(secondElement, metric);

} else if ("compiler".equals(firstElement)) {
String thirdElemet = safeGet(metricId, 2);

if ("evaluate_resource".equals(secondElement)) {
Timer metric = metricsByID.get(getMetricName(sliceOfArrayToList(metricId, 3)));
this.resource_timers.put(thirdElemet, metric);

} else if ("static_compile_inlining".equals(secondElement)) {
Timer metric = metricsByID.get(getMetricName(sliceOfArrayToList(metricId, 3)));
this.inlining_timers.put(thirdElemet, metric);

} else {
Timer metric = metricsByID.get(getMetricName(sliceOfArrayToList(metricId, 2)));
this.catalog_timers.put(secondElement, metric);
}

} else if ("puppetdb".equals(firstElement)) {
Timer metric = metricsByID.get(getMetricName(sliceOfArrayToList(metricId, 2)));
this.puppetdb_timers.put(secondElement, metric);
if ("query".equals(secondElement)) {
Timer metric = metricsByID.get(getMetricName(sliceOfArrayToList(metricId, 2)));
this.puppetdb_timers.put(secondElement, metric);

} else {
String thirdElemet = safeGet(metricId, 2);

if (
("resource".equals(secondElement) && "search".equals(thirdElemet)) ||
("facts".equals(secondElement) && "encode".equals(thirdElemet)) ||
("catalog".equals(secondElement) && "munge".equals(thirdElemet)) ||
("report".equals(secondElement) && "convert_to_wire_format_hash".equals(thirdElemet))
) {
String key = metricify(secondElement, thirdElemet);
Timer metric = metricsByID.get(getMetricName(sliceOfArrayToList(metricId, 3)));
this.puppetdb_timers.put(key, metric);

} else if ("command".equals(secondElement) && "submit".equals(thirdElemet)) {
String fourthElement = safeGet(metricId, 3);

if (
"store report".equals(fourthElement) ||
"replace facts".equals(fourthElement) ||
"replace catalog".equals(fourthElement)
) {
String key = metricify(secondElement, thirdElemet, fourthElement);
Timer metric = metricsByID.get(getMetricName(sliceOfArrayToList(metricId, 4)));
this.puppetdb_timers.put(key, metric);
}
}
}
}
}

Expand Down

0 comments on commit 412f23b

Please sign in to comment.