pub enum Report {
Start,
QueryCompletedIn(Duration),
QueryErrored {
completed_in: Duration,
message: String,
},
ProduceCompletedIn(Duration),
ProduceErrored {
completed_in: Duration,
message: String,
},
ConsumeCompletedIn(Option<Duration>),
ConsumeErrored {
message: String,
},
SecondPassed(Duration),
FinishedIn(Duration),
AddInfoMessage(String),
ExternalBenchmark(Box<ExternalReport>),
}
Expand description
An individual measurement reported to windsock.
These will be collected, analyzed and then turned into a ReportArchive at the conclusion of the bench run.
Variants§
Start
Indicates the warmup is over and the benchmark has begun. Any Completed/Errored Events received before this are considered warmups and discarded.
QueryCompletedIn(Duration)
Indicates a response came back from the service. The Duration should be the time between the request being sent and the response being received
QueryErrored
Indicates an an error response came back from the service.
Fields
ProduceCompletedIn(Duration)
Indicates a pubsub produce ack came back from the service. The Duration should be the time between the request being sent and the response being received
ProduceErrored
Indicates a pubsub produce error response came back from the service.
ConsumeCompletedIn(Option<Duration>)
Indicates a pubsub consume response came back from the service. The Duration should be the time between the initial produce request being created on a client and the response being consumed on a client. It is suggested that a timestamp be encoded in the payload of the produce to achieve this.
For payload sizes where a timestamp can not fit set the Duration to None. However: Do not mix None and Some results in a single bench run.
ConsumeErrored
Indicates pubsub consume error response came back from the service.
SecondPassed(Duration)
Indicates a second has passed for the benchmarker
FinishedIn(Duration)
Contains the time that the test ran for
AddInfoMessage(String)
Adds a note that will be visible to the user when viewing the benchmark results.
ExternalBenchmark(Box<ExternalReport>)
Ignore all other reports and use the ManualReport as the only source of benchmark metrics. Do not use this under normal circumstances. Instead this should only be used if you have an independent benchmarker that you want to call from windsock and include in windsocks results.