} else {
f->dump_string("nick", "");
}
+ if (d->prio) {
+ f->dump_int("priority", d->prio);
+ }
f->close_section();
} else {
if (d->type & PERFCOUNTER_LONGRUNAVG) {
m_perf_counters = NULL;
}
-void PerfCountersBuilder::add_u64_counter(int idx, const char *name,
- const char *description, const char *nick)
+void PerfCountersBuilder::add_u64_counter(
+ int idx, const char *name,
+ const char *description, const char *nick, int prio)
{
- add_impl(idx, name, description, nick, PERFCOUNTER_U64 | PERFCOUNTER_COUNTER);
+ add_impl(idx, name, description, nick, prio,
+ PERFCOUNTER_U64 | PERFCOUNTER_COUNTER);
}
-void PerfCountersBuilder::add_u64(int idx, const char *name,
- const char *description, const char *nick)
+void PerfCountersBuilder::add_u64(
+ int idx, const char *name,
+ const char *description, const char *nick, int prio)
{
- add_impl(idx, name, description, nick, PERFCOUNTER_U64);
+ add_impl(idx, name, description, nick, prio, PERFCOUNTER_U64);
}
-void PerfCountersBuilder::add_u64_avg(int idx, const char *name,
- const char *description, const char *nick)
+void PerfCountersBuilder::add_u64_avg(
+ int idx, const char *name,
+ const char *description, const char *nick, int prio)
{
- add_impl(idx, name, description, nick, PERFCOUNTER_U64 | PERFCOUNTER_LONGRUNAVG);
+ add_impl(idx, name, description, nick, prio,
+ PERFCOUNTER_U64 | PERFCOUNTER_LONGRUNAVG);
}
-void PerfCountersBuilder::add_time(int idx, const char *name,
- const char *description, const char *nick)
+void PerfCountersBuilder::add_time(
+ int idx, const char *name,
+ const char *description, const char *nick, int prio)
{
- add_impl(idx, name, description, nick, PERFCOUNTER_TIME);
+ add_impl(idx, name, description, nick, prio, PERFCOUNTER_TIME);
}
-void PerfCountersBuilder::add_time_avg(int idx, const char *name,
- const char *description, const char *nick)
+void PerfCountersBuilder::add_time_avg(
+ int idx, const char *name,
+ const char *description, const char *nick, int prio)
{
- add_impl(idx, name, description, nick, PERFCOUNTER_TIME | PERFCOUNTER_LONGRUNAVG);
+ add_impl(idx, name, description, nick, prio,
+ PERFCOUNTER_TIME | PERFCOUNTER_LONGRUNAVG);
}
-void PerfCountersBuilder::add_histogram(int idx, const char *name,
- PerfHistogramCommon::axis_config_d x_axis_config,
- PerfHistogramCommon::axis_config_d y_axis_config,
- const char *description, const char *nick)
+void PerfCountersBuilder::add_histogram(
+ int idx, const char *name,
+ PerfHistogramCommon::axis_config_d x_axis_config,
+ PerfHistogramCommon::axis_config_d y_axis_config,
+ const char *description, const char *nick, int prio)
{
- add_impl(idx, name, description, nick, PERFCOUNTER_U64 | PERFCOUNTER_HISTOGRAM,
+ add_impl(idx, name, description, nick, prio,
+ PERFCOUNTER_U64 | PERFCOUNTER_HISTOGRAM,
unique_ptr<PerfHistogram<>>{new PerfHistogram<>{x_axis_config, y_axis_config}});
}
-void PerfCountersBuilder::add_impl(int idx, const char *name,
- const char *description, const char *nick, int ty,
- unique_ptr<PerfHistogram<>> histogram)
+void PerfCountersBuilder::add_impl(
+ int idx, const char *name,
+ const char *description, const char *nick, int prio, int ty,
+ unique_ptr<PerfHistogram<>> histogram)
{
assert(idx > m_perf_counters->m_lower_bound);
assert(idx < m_perf_counters->m_upper_bound);
assert(strlen(nick) <= 4);
}
data.nick = nick;
+ data.prio = prio;
data.type = (enum perfcounter_type_d)ty;
data.histogram = std::move(histogram);
}
const char *name;
const char *description;
const char *nick;
+ int prio = 0;
enum perfcounter_type_d type;
atomic64_t u64;
atomic64_t avgcount;
PerfCountersBuilder(CephContext *cct, const std::string &name,
int first, int last);
~PerfCountersBuilder();
+
+ // prio values: higher is better, and higher values get included in
+ // 'ceph daemonperf' (and similar) results.
+ enum {
+ PRIO_CRITICAL = 10,
+ PRIO_INTERESTING = 8,
+ PRIO_USEFUL = 5,
+ PRIO_UNINTERESTING = 2,
+ PRIO_DEBUGONLY = 0,
+ };
void add_u64(int key, const char *name,
- const char *description=NULL, const char *nick = NULL);
+ const char *description=NULL, const char *nick = NULL,
+ int prio=0);
void add_u64_counter(int key, const char *name,
- const char *description=NULL, const char *nick = NULL);
+ const char *description=NULL,
+ const char *nick = NULL,
+ int prio=0);
void add_u64_avg(int key, const char *name,
- const char *description=NULL, const char *nick = NULL);
+ const char *description=NULL,
+ const char *nick = NULL,
+ int prio=0);
void add_time(int key, const char *name,
- const char *description=NULL, const char *nick = NULL);
+ const char *description=NULL,
+ const char *nick = NULL,
+ int prio=0);
void add_time_avg(int key, const char *name,
- const char *description=NULL, const char *nick = NULL);
+ const char *description=NULL,
+ const char *nick = NULL,
+ int prio=0);
void add_histogram(int key, const char* name,
- PerfHistogramCommon::axis_config_d x_axis_config,
- PerfHistogramCommon::axis_config_d y_axis_config,
- const char *description=NULL, const char* nick = NULL);
+ PerfHistogramCommon::axis_config_d x_axis_config,
+ PerfHistogramCommon::axis_config_d y_axis_config,
+ const char *description=NULL,
+ const char* nick = NULL,
+ int prio=0);
PerfCounters* create_perf_counters();
private:
PerfCountersBuilder(const PerfCountersBuilder &rhs);
PerfCountersBuilder& operator=(const PerfCountersBuilder &rhs);
void add_impl(int idx, const char *name,
- const char *description, const char *nick, int ty,
+ const char *description, const char *nick, int prio, int ty,
unique_ptr<PerfHistogram<>> histogram = nullptr);
PerfCounters *m_perf_counters;