Class Finding
Evidence, not advice
Every finding must carry the observation it came from. This is a deliberate constraint on what this library is willing to say.
A load tool that prints "increase prefetch to 250" is guessing. It does not know the handler's processing time distribution, the message size, the network, the disk, or what else shares the broker — and a confident recommendation from a tool is followed, which makes a wrong one worse than silence.
What a tool can say honestly is what it measured and what that rules in or out: "publishers offered 300,000/s and achieved 180,000/s; connections were blocked for 43% of the run and the free-disk alarm was in effect". That is defensible, it is actionable, and every word of it is an observation.
So a finding has an observation() — what was measured — and an
implication() — what that means for the result. Neither is a prescription.
-
Method Details
-
of
- Parameters:
rule- which rule firedseverity- how much it mattersobservation- what was measured, with the numbers in itimplication- what that means for the result- Returns:
- the finding
-
of
public static Finding of(String rule, Severity severity, String observation, String implication, String detail) - Parameters:
rule- which rule firedseverity- how much it mattersobservation- what was measuredimplication- what it meansdetail- supporting numbers, for a verbose report- Returns:
- the finding
-
rule
-
severity
-
observation
- Returns:
- what was measured. Always contains numbers, because a rule without them is an opinion
-
implication
- Returns:
- what the observation means for this result
-
detail
-
invalidatesRun
public boolean invalidatesRun()- Returns:
- whether this finding means the run did not measure what it set out to measure
-
format
- Returns:
- a line for the report
-
toString
-