Skip to content

Add additional JobRun stats for blackbox fuzzers#5238

Draft
dylanjew wants to merge 8 commits intomasterfrom
dylanj/jobrun-stats
Draft

Add additional JobRun stats for blackbox fuzzers#5238
dylanjew wants to merge 8 commits intomasterfrom
dylanj/jobrun-stats

Conversation

@dylanjew
Copy link
Copy Markdown
Collaborator

@dylanjew dylanjew commented Apr 7, 2026

This PR aims to improve our ability to benchmark blackbox fuzzers effectiveness and monitor their health.

Context

When measuring fuzzer effectiveness, we’re interested in the rate at which the fuzzer can execute testcases and find bugs. This requires a baseline definition of total fuzzing hours across all types of fuzzers.

Some of these stats are already computed for Monarch monitoring in monitoring_metrics.py, but we'd like to get them into BigQuery to have a consistent data source for analysis

Changes

Adds testcases_generated, testcase_execution_duration, testcase_generation_duration, and fuzzing_duration to the uworker FuzzTaskOutput proto and write those stats to the JobRun BigQuery table.

Notes

This only adds metrics for blackbox fuzzers. We will need to aggregate the fuzzing session hours and execution metrics we already store in the TestcaseRun tables for engine guided fuzzers if we want comparisons across fuzzer types. This either means we need to aggregate those tables and write to the JobRun tables, or do the aggregation in our plx workflows/scripts.

Testing

  • Ran the server locally, uploaded a fuzzer, and ran a bot locally with additional logs and local bigquery writes enabled. Verified that the stats were added to the FuzzTaskOutput proto and written to BigQuery

logs from running a local bot: https://paste.googleplex.com/4551083230887936
local BigQuery stats: https://paste.googleplex.com/6697329928306688

  • Test on dev and verify the stats are successfully written to the BigQuery tables

Added unit tests for the stats

@dylanjew dylanjew force-pushed the dylanj/jobrun-stats branch 3 times, most recently from 4c7b0a9 to 3fe165d Compare April 8, 2026 18:38
@dylanjew dylanjew changed the base branch from master to dylanj/utask-test April 8, 2026 18:40
@dylanjew dylanjew force-pushed the dylanj/jobrun-stats branch from 3fe165d to 4068b54 Compare April 8, 2026 18:45
@dylanjew dylanjew force-pushed the dylanj/utask-test branch from cb69ba1 to ba7b83f Compare April 8, 2026 22:22
Base automatically changed from dylanj/utask-test to master April 9, 2026 15:26
dylanjew added 5 commits April 9, 2026 13:42
part 1 of Populate job run stats for blackbox fuzzers

e.g. total fuzzing hours, test cases generated, test case generation
time, test case executions and test case execution time.
@dylanjew dylanjew force-pushed the dylanj/jobrun-stats branch from 4068b54 to 3be8df2 Compare April 9, 2026 18:04
@dylanjew dylanjew force-pushed the dylanj/jobrun-stats branch 6 times, most recently from 03f3f24 to 33ba946 Compare April 9, 2026 20:00
@dylanjew dylanjew force-pushed the dylanj/jobrun-stats branch from 33ba946 to 2b259ca Compare April 9, 2026 20:03
@dylanjew dylanjew requested a review from aakallam April 9, 2026 20:04
Copy link
Copy Markdown
Collaborator

@aakallam aakallam left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants