mirror of
https://github.com/AFLplusplus/AFLplusplus.git
synced 2025-06-13 02:28:09 +00:00
Add env var toggle for StatsD
This commit is contained in:
@ -355,7 +355,7 @@ typedef struct afl_env_vars {
|
|||||||
afl_dumb_forksrv, afl_import_first, afl_custom_mutator_only, afl_no_ui,
|
afl_dumb_forksrv, afl_import_first, afl_custom_mutator_only, afl_no_ui,
|
||||||
afl_force_ui, afl_i_dont_care_about_missing_crashes, afl_bench_just_one,
|
afl_force_ui, afl_i_dont_care_about_missing_crashes, afl_bench_just_one,
|
||||||
afl_bench_until_crash, afl_debug_child_output, afl_autoresume,
|
afl_bench_until_crash, afl_debug_child_output, afl_autoresume,
|
||||||
afl_cal_fast, afl_cycle_schedules, afl_expand_havoc;
|
afl_cal_fast, afl_cycle_schedules, afl_expand_havoc, afl_statsd;
|
||||||
|
|
||||||
u8 *afl_tmpdir, *afl_custom_mutator_library, *afl_python_module, *afl_path,
|
u8 *afl_tmpdir, *afl_custom_mutator_library, *afl_python_module, *afl_path,
|
||||||
*afl_hang_tmout, *afl_forksrv_init_tmout, *afl_skip_crashes, *afl_preload,
|
*afl_hang_tmout, *afl_forksrv_init_tmout, *afl_skip_crashes, *afl_preload,
|
||||||
|
@ -41,11 +41,10 @@
|
|||||||
|
|
||||||
#define USE_COLOR
|
#define USE_COLOR
|
||||||
|
|
||||||
/* Enable sending statistics over a StatsD daemon.
|
/* StatsD config
|
||||||
Server config can be adjusted with AFL_STATSD_HOST and AFL_STATSD_PORT env var.
|
Config can be adjusted via AFL_STATSD_HOST and AFL_STATSD_PORT environment
|
||||||
|
variable.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define USE_STATSD
|
|
||||||
#define STATSD_UPDATE_SEC 1
|
#define STATSD_UPDATE_SEC 1
|
||||||
#define STATSD_DEFAULT_PORT 8125
|
#define STATSD_DEFAULT_PORT 8125
|
||||||
#define STATSD_DEFAULT_HOST "127.0.0.1"
|
#define STATSD_DEFAULT_HOST "127.0.0.1"
|
||||||
|
@ -135,6 +135,7 @@ static char *afl_environment_variables[] = {
|
|||||||
"AFL_SKIP_BIN_CHECK",
|
"AFL_SKIP_BIN_CHECK",
|
||||||
"AFL_SKIP_CPUFREQ",
|
"AFL_SKIP_CPUFREQ",
|
||||||
"AFL_SKIP_CRASHES",
|
"AFL_SKIP_CRASHES",
|
||||||
|
"AFL_STATSD",
|
||||||
"AFL_STATSD_HOST",
|
"AFL_STATSD_HOST",
|
||||||
"AFL_STATSD_PORT",
|
"AFL_STATSD_PORT",
|
||||||
"AFL_STATSD_TAGS_FLAVOR",
|
"AFL_STATSD_TAGS_FLAVOR",
|
||||||
|
@ -316,6 +316,13 @@ void read_afl_environment(afl_state_t *afl, char **envp) {
|
|||||||
afl->afl_env.afl_cal_fast =
|
afl->afl_env.afl_cal_fast =
|
||||||
get_afl_env(afl_environment_variables[i]) ? 1 : 0;
|
get_afl_env(afl_environment_variables[i]) ? 1 : 0;
|
||||||
|
|
||||||
|
} else if (!strncmp(env, "AFL_STATSD",
|
||||||
|
|
||||||
|
afl_environment_variable_len)) {
|
||||||
|
|
||||||
|
afl->afl_env.afl_statsd =
|
||||||
|
get_afl_env(afl_environment_variables[i]) ? 1 : 0;
|
||||||
|
|
||||||
} else if (!strncmp(env, "AFL_TMPDIR",
|
} else if (!strncmp(env, "AFL_TMPDIR",
|
||||||
|
|
||||||
afl_environment_variable_len)) {
|
afl_environment_variable_len)) {
|
||||||
|
@ -423,17 +423,18 @@ void show_stats(afl_state_t *afl) {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef USE_STATSD
|
if (unlikely(afl->afl_env.afl_statsd == 1)) {
|
||||||
if (cur_ms - afl->statsd_last_send_ms > STATSD_UPDATE_SEC * 1000) {
|
|
||||||
|
|
||||||
/* reset counter, even if send failed. */
|
if (cur_ms - afl->statsd_last_send_ms > STATSD_UPDATE_SEC * 1000) {
|
||||||
afl->statsd_last_send_ms = cur_ms;
|
|
||||||
if (statsd_send_metric(afl)) { WARNF("coundln't send statsd metric."); }
|
/* reset counter, even if send failed. */
|
||||||
|
afl->statsd_last_send_ms = cur_ms;
|
||||||
|
if (statsd_send_metric(afl)) { WARNF("coundln't send statsd metric."); }
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Every now and then, write plot data. */
|
/* Every now and then, write plot data. */
|
||||||
|
|
||||||
if (cur_ms - afl->stats_last_plot_ms > PLOT_UPDATE_SEC * 1000) {
|
if (cur_ms - afl->stats_last_plot_ms > PLOT_UPDATE_SEC * 1000) {
|
||||||
|
@ -194,7 +194,8 @@ static void usage(u8 *argv0, int more_help) {
|
|||||||
"AFL_SKIP_BIN_CHECK: skip the check, if the target is an executable\n"
|
"AFL_SKIP_BIN_CHECK: skip the check, if the target is an executable\n"
|
||||||
"AFL_SKIP_CPUFREQ: do not warn about variable cpu clocking\n"
|
"AFL_SKIP_CPUFREQ: do not warn about variable cpu clocking\n"
|
||||||
"AFL_SKIP_CRASHES: during initial dry run do not terminate for crashing inputs\n"
|
"AFL_SKIP_CRASHES: during initial dry run do not terminate for crashing inputs\n"
|
||||||
"AFL_STATSD_HOST: change default statsd host. (default 127.0.0.1)"
|
"AFL_STATSD: enables StatsD metrics collection"
|
||||||
|
"AFL_STATSD_HOST: change default statsd host (default 127.0.0.1)"
|
||||||
"AFL_STATSD_PORT: change default statsd port (default: 8125)"
|
"AFL_STATSD_PORT: change default statsd port (default: 8125)"
|
||||||
"AFL_STATSD_TAGS_FLAVOR: change default statsd tags format (default will disable tags)."
|
"AFL_STATSD_TAGS_FLAVOR: change default statsd tags format (default will disable tags)."
|
||||||
" Supported formats are: 'dogstatsd', 'librato', 'signalfx' and 'influxdb'"
|
" Supported formats are: 'dogstatsd', 'librato', 'signalfx' and 'influxdb'"
|
||||||
@ -893,10 +894,7 @@ int main(int argc, char **argv_orig, char **envp) {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef USE_STATSD
|
if (unlikely(afl->afl_env.afl_statsd == 1)) { statsd_setup_format(afl); }
|
||||||
statsd_setup_format(afl);
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
if (strchr(argv[optind], '/') == NULL && !afl->unicorn_mode) {
|
if (strchr(argv[optind], '/') == NULL && !afl->unicorn_mode) {
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user