From: Mark Wielaard Date: Sun, 24 Nov 2019 13:22:17 +0000 (+0100) Subject: debuginfod: Add found_{executable,debuginfo,sourcerefs}_total metrics. X-Git-Tag: elfutils-0.178~6 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e371ea40416dc29b0f207a944e250197fdc809b6;p=thirdparty%2Felfutils.git 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 --- diff --git a/debuginfod/ChangeLog b/debuginfod/ChangeLog index 47efb9b4a..bd3db9ff1 100644 --- a/debuginfod/ChangeLog +++ b/debuginfod/ChangeLog @@ -1,3 +1,11 @@ +2019-11-24 Mark Wielaard + + * 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 * debuginfod.cxx: Add /metrics endpoint. Add numerous diff --git a/debuginfod/debuginfod.cxx b/debuginfod/debuginfod.cxx index f4bbc7b73..3717aa82e 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 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 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) {