bool sent_help_smb2_request_failed : 1;
};
-static void export_count(const char *name,
+static void export_count(const char *svc,
+ const char *name,
const struct smbprofile_stats_count *val,
struct export_state *state)
{
evbuffer_add_printf(
state->buf,
- "smb_authentications %" PRIu64"\n",
+ "smb_authentications { share=\"%s\" } %" PRIu64 "\n",
+ svc ? svc : "",
val->count);
}
evbuffer_add_printf(
state->buf,
- "smb_authentications_failed %" PRIu64"\n",
+ "smb_authentications_failed { share=\"%s\" } "
+ "%" PRIu64 "\n",
+ svc ? svc : "",
val->count);
}
}
-static void export_time(const char *name,
+static void export_time(const char *svc,
+ const char *name,
const struct smbprofile_stats_time *val,
struct export_state *state)
{
evbuffer_add_printf(
state->buf,
- "smb_cpu_seconds_total { mode=\"%s\" } %f\n",
+ "smb_cpu_seconds_total { share=\"%s\",mode=\"%s\" } "
+ "%f\n",
+ svc ? svc : "",
mode,
((double)val->time) / 1000000);
}
"smb_smb1_request_total { "
"share=\"%s\",operation=\"%s\" } "
"%" PRIu64 "\n",
- svc,
+ svc ? svc : "",
name + 3,
val->count);
}
"smb_smb2_request_inbytes { "
"share=\"%s\",operation=\"%s\" } "
"%" PRIu64 "\n",
- svc,
+ svc ? svc : "",
name + 5,
val->inbytes);
}
"smb_smb2_request_outbytes { "
"share=\"%s\",operation=\"%s\" } "
"%" PRIu64 "\n",
- svc,
+ svc ? svc : "",
name + 5,
val->outbytes);
}
"smb_smb2_request_duration_microseconds_bucket "
"{share=\"%s\",operation=\"%s\",le=\"%d000\"} "
"%" PRIu64 "\n",
- svc,
+ svc ? svc : "",
name + 5,
1 << i,
val->buckets[i]);
"smb_smb2_request_duration_microseconds_bucket "
"{share=\"%s\",operation=\"%s\",le=\"+Inf\"} "
"%" PRIu64 "\n",
- svc,
+ svc ? svc : "",
name + 5,
val->buckets[9]);
evbuffer_add_printf(
"smb_smb2_request_duration_microseconds_sum "
"{share=\"%s\",operation=\"%s\"} "
"%" PRIu64 "\n",
- svc,
+ svc ? svc : "",
name + 5,
val->time);
evbuffer_add_printf(
"smb_smb2_request_duration_microseconds_count "
"{share=\"%s\",operation=\"%s\"} "
"%" PRIu64 "\n",
- svc,
+ svc ? svc : "",
name + 5,
val->count);
}
"smb_smb2_request_failed { "
"share=\"%s\",operation=\"%s\" } "
"%" PRIu64 "\n",
- svc,
+ svc ? svc : "",
name + 5,
val->failed_count);
}
}
static void export_profile_stats(const struct profile_stats *stats,
+ const char *svc,
struct export_state *state)
{
#define SMBPROFILE_STATS_START
#define SMBPROFILE_STATS_SECTION_START(name, display)
-#define SMBPROFILE_STATS_COUNT(name) \
- do { \
- export_count(#name, &stats->values.name##_stats, state); \
- } while (0);
-#define SMBPROFILE_STATS_TIME(name) \
- do { \
- export_time(#name, &stats->values.name##_stats, state); \
+#define SMBPROFILE_STATS_COUNT(name) \
+ do { \
+ export_count(svc, #name, &stats->values.name##_stats, state); \
} while (0);
-#define SMBPROFILE_STATS_BASIC(name) \
+#define SMBPROFILE_STATS_TIME(name) \
do { \
- export_basic("", #name, &stats->values.name##_stats, state); \
- } while (0);
-#define SMBPROFILE_STATS_BYTES(name)
-#define SMBPROFILE_STATS_IOBYTES(name)
-#define SMBPROFILE_STATS_SECTION_END
-#define SMBPROFILE_STATS_END
- SMBPROFILE_STATS_ALL_SECTIONS
-#undef SMBPROFILE_STATS_START
-#undef SMBPROFILE_STATS_SECTION_START
-#undef SMBPROFILE_STATS_COUNT
-#undef SMBPROFILE_STATS_TIME
-#undef SMBPROFILE_STATS_BASIC
-#undef SMBPROFILE_STATS_BYTES
-#undef SMBPROFILE_STATS_IOBYTES
-#undef SMBPROFILE_STATS_SECTION_END
-#undef SMBPROFILE_STATS_END
-
-#define SMBPROFILE_STATS_START
-#define SMBPROFILE_STATS_SECTION_START(name, display)
-#define SMBPROFILE_STATS_COUNT(name)
-#define SMBPROFILE_STATS_TIME(name)
-#define SMBPROFILE_STATS_BASIC(name)
-#define SMBPROFILE_STATS_BYTES(name)
-#define SMBPROFILE_STATS_IOBYTES(name) \
- do { \
- export_iobytes_inbytes("", \
- #name, \
- &stats->values.name##_stats, \
- state); \
- } while (0);
-#define SMBPROFILE_STATS_SECTION_END
-#define SMBPROFILE_STATS_END
- SMBPROFILE_STATS_ALL_SECTIONS
-#undef SMBPROFILE_STATS_START
-#undef SMBPROFILE_STATS_SECTION_START
-#undef SMBPROFILE_STATS_COUNT
-#undef SMBPROFILE_STATS_TIME
-#undef SMBPROFILE_STATS_BASIC
-#undef SMBPROFILE_STATS_BYTES
-#undef SMBPROFILE_STATS_IOBYTES
-#undef SMBPROFILE_STATS_SECTION_END
-#undef SMBPROFILE_STATS_END
-
-#define SMBPROFILE_STATS_START
-#define SMBPROFILE_STATS_SECTION_START(name, display)
-#define SMBPROFILE_STATS_COUNT(name)
-#define SMBPROFILE_STATS_TIME(name)
-#define SMBPROFILE_STATS_BASIC(name)
-#define SMBPROFILE_STATS_BYTES(name)
-#define SMBPROFILE_STATS_IOBYTES(name) \
- do { \
- export_iobytes_outbytes("", \
- #name, \
- &stats->values.name##_stats, \
- state); \
+ export_time(svc, #name, &stats->values.name##_stats, state); \
} while (0);
-#define SMBPROFILE_STATS_SECTION_END
-#define SMBPROFILE_STATS_END
- SMBPROFILE_STATS_ALL_SECTIONS
-#undef SMBPROFILE_STATS_START
-#undef SMBPROFILE_STATS_SECTION_START
-#undef SMBPROFILE_STATS_COUNT
-#undef SMBPROFILE_STATS_TIME
-#undef SMBPROFILE_STATS_BASIC
-#undef SMBPROFILE_STATS_BYTES
-#undef SMBPROFILE_STATS_IOBYTES
-#undef SMBPROFILE_STATS_SECTION_END
-#undef SMBPROFILE_STATS_END
-
-#define SMBPROFILE_STATS_START
-#define SMBPROFILE_STATS_SECTION_START(name, display)
-#define SMBPROFILE_STATS_COUNT(name)
-#define SMBPROFILE_STATS_TIME(name)
-#define SMBPROFILE_STATS_BASIC(name)
-#define SMBPROFILE_STATS_BYTES(name)
-#define SMBPROFILE_STATS_IOBYTES(name) \
- do { \
- export_iobytes_buckets("", \
- #name, \
- &stats->values.name##_stats, \
- state); \
- } while (0);
-#define SMBPROFILE_STATS_SECTION_END
-#define SMBPROFILE_STATS_END
- SMBPROFILE_STATS_ALL_SECTIONS
-#undef SMBPROFILE_STATS_START
-#undef SMBPROFILE_STATS_SECTION_START
-#undef SMBPROFILE_STATS_COUNT
-#undef SMBPROFILE_STATS_TIME
-#undef SMBPROFILE_STATS_BASIC
-#undef SMBPROFILE_STATS_BYTES
-#undef SMBPROFILE_STATS_IOBYTES
-#undef SMBPROFILE_STATS_SECTION_END
-#undef SMBPROFILE_STATS_END
-
-#define SMBPROFILE_STATS_START
-#define SMBPROFILE_STATS_SECTION_START(name, display)
-#define SMBPROFILE_STATS_COUNT(name)
-#define SMBPROFILE_STATS_TIME(name)
-#define SMBPROFILE_STATS_BASIC(name)
-#define SMBPROFILE_STATS_BYTES(name)
-#define SMBPROFILE_STATS_IOBYTES(name) \
- do { \
- export_iobytes_failed("", \
- #name, \
- &stats->values.name##_stats, \
- state); \
- } while (0);
-#define SMBPROFILE_STATS_SECTION_END
-#define SMBPROFILE_STATS_END
- SMBPROFILE_STATS_ALL_SECTIONS
-#undef SMBPROFILE_STATS_START
-#undef SMBPROFILE_STATS_SECTION_START
-#undef SMBPROFILE_STATS_COUNT
-#undef SMBPROFILE_STATS_TIME
-#undef SMBPROFILE_STATS_BASIC
-#undef SMBPROFILE_STATS_BYTES
-#undef SMBPROFILE_STATS_IOBYTES
-#undef SMBPROFILE_STATS_SECTION_END
-#undef SMBPROFILE_STATS_END
-}
-
-static void export_profile_persvc_stats(const struct profile_stats *stats,
- const char *svc,
- struct export_state *state)
-{
-#define SMBPROFILE_STATS_START
-#define SMBPROFILE_STATS_SECTION_START(name, display)
#define SMBPROFILE_STATS_BASIC(name) \
do { \
export_basic(svc, #name, &stats->values.name##_stats, state); \
#define SMBPROFILE_STATS_IOBYTES(name)
#define SMBPROFILE_STATS_SECTION_END
#define SMBPROFILE_STATS_END
- SMBPROFILE_STATS_PERSVC_SECTIONS
+ SMBPROFILE_STATS_ALL_SECTIONS
#undef SMBPROFILE_STATS_START
#undef SMBPROFILE_STATS_SECTION_START
#undef SMBPROFILE_STATS_COUNT
} while (0);
#define SMBPROFILE_STATS_SECTION_END
#define SMBPROFILE_STATS_END
- SMBPROFILE_STATS_PERSVC_SECTIONS
+ SMBPROFILE_STATS_ALL_SECTIONS
#undef SMBPROFILE_STATS_START
#undef SMBPROFILE_STATS_SECTION_START
#undef SMBPROFILE_STATS_COUNT
} while (0);
#define SMBPROFILE_STATS_SECTION_END
#define SMBPROFILE_STATS_END
- SMBPROFILE_STATS_PERSVC_SECTIONS
+ SMBPROFILE_STATS_ALL_SECTIONS
#undef SMBPROFILE_STATS_START
#undef SMBPROFILE_STATS_SECTION_START
#undef SMBPROFILE_STATS_COUNT
} while (0);
#define SMBPROFILE_STATS_SECTION_END
#define SMBPROFILE_STATS_END
- SMBPROFILE_STATS_PERSVC_SECTIONS
+ SMBPROFILE_STATS_ALL_SECTIONS
#undef SMBPROFILE_STATS_START
#undef SMBPROFILE_STATS_SECTION_START
#undef SMBPROFILE_STATS_COUNT
*sep = '\0';
}
- export_profile_persvc_stats(stats, svc, state);
+ export_profile_stats(stats, svc, state);
free(svc);
return 0;
}
"smb_num_open_files %" PRIu64 "\n",
stats.values.num_files_stats.count);
- export_profile_stats(&stats, &state);
+ export_profile_stats(&stats, NULL, &state);
/*
* Re-open TDB file with read-only mode and iterate-export per-share