diff options
author | Mark Wielaard <mark@klomp.org> | 2019-11-24 14:22:17 +0100 |
---|---|---|
committer | Mark Wielaard <mark@klomp.org> | 2019-11-24 20:07:01 +0100 |
commit | e371ea40416dc29b0f207a944e250197fdc809b6 (patch) | |
tree | b650292eaf1bcbc5803c4ffdfc536c03f000547c | |
parent | 1e651ad457f445ff933b4fdd7e2c82bd1fc0f2cd (diff) | |
download | elfutils-e371ea40416dc29b0f207a944e250197fdc809b6.tar.gz |
debuginfod: Add found_{executable,debuginfo,sourcerefs}_total metrics.
Keeps metrics of how many executables, debuginfo and sourcerefs were
found in total for file and rpm scanners.
Signed-off-by: Mark Wielaard <mark@klomp.org>
-rw-r--r-- | debuginfod/ChangeLog | 8 | ||||
-rw-r--r-- | debuginfod/debuginfod.cxx | 24 |
2 files changed, 32 insertions, 0 deletions
diff --git a/debuginfod/ChangeLog b/debuginfod/ChangeLog index 47efb9b4..bd3db9ff 100644 --- a/debuginfod/ChangeLog +++ b/debuginfod/ChangeLog @@ -1,3 +1,11 @@ +2019-11-24 Mark Wielaard <mark@klomp.org> + + * debuginfod.cxx (add_metric): New function. + (scan_source_file_path): Record metrics for + found_executable_total, found_debuginfo_total and + found_sourcerefs_total. + (scan_source_rpm_path): Likewise. + 2019-11-07 Frank Ch. Eigler <fche@redhat.com> * debuginfod.cxx: Add /metrics endpoint. Add numerous diff --git a/debuginfod/debuginfod.cxx b/debuginfod/debuginfod.cxx index f4bbc7b7..3717aa82 100644 --- a/debuginfod/debuginfod.cxx +++ b/debuginfod/debuginfod.cxx @@ -385,6 +385,9 @@ static void set_metric(const string& metric, int64_t value); static void inc_metric(const string& metric, const string& lname, const string& lvalue); +static void add_metric(const string& metric, + const string& lname, const string& lvalue, + int64_t value); /* Handle program arguments. */ static error_t @@ -1146,6 +1149,15 @@ inc_metric(const string& metric, unique_lock<mutex> lock(metrics_lock); metrics[key] ++; } +static void +add_metric(const string& metric, + const string& lname, const string& lvalue, + int64_t value) +{ + string key = (metric + "{" + metric_label(lname, lvalue) + "}"); + unique_lock<mutex> lock(metrics_lock); + metrics[key] += value; +} // and more for higher arity labels if needed @@ -1706,6 +1718,10 @@ scan_source_file_path (const string& dir) .bind(5, f->fts_statp->st_mtime) .step_ok_done(); } + if (executable_p) + inc_metric("found_executable_total","source","files"); + if (debuginfo_p) + inc_metric("found_debuginfo_total","source","files"); if (sourcefiles.size() && buildid != "") { @@ -1748,6 +1764,8 @@ scan_source_file_path (const string& dir) .bind(3, srps) .bind(4, sfs.st_mtime) .step_ok_done(); + + inc_metric("found_sourcerefs_total","source","files"); } } @@ -2145,6 +2163,12 @@ scan_source_rpm_path (const string& dir) my_fts_executable, my_fts_debuginfo, my_fts_sref, my_fts_sdef, my_fts_sref_complete_p); inc_metric ("scanned_total","source","rpm"); + add_metric("found_debuginfo_total","source","rpm", + my_fts_debuginfo); + add_metric("found_executable_total","source","rpm", + my_fts_executable); + add_metric("found_sourcerefs_total","source","rpm", + my_fts_sref); } catch (const reportable_exception& e) { |