New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Validate diskFrontier domain for series candidate. #115
Conversation
Can't really say what those changes are exactly doing, but what I understand looks reasonable. So 👍 |
@matttproud I found out the problems with the rules tests: there are two pernicious bugs in fingerprinting code. I'll send PRs to fix them. |
Oof. Can't wait to see the P.R.
|
Please rebase on master once #121 is merged. |
It is the case with the benchmark tool that we thought that we generated multiple series and saved them to the disk as such, when in reality, we overwrote the fields of the outgoing metrics via Go map reference behavior. This was accidental. In the course of diagnosing this, a few errors were found: 1. ``newSeriesFrontier`` should check to see if the candidate fingerprint is within the given domain of the ``diskFrontier``. If not, as the contract in the docstring stipulates, a ``nil`` ``seriesFrontier`` should be emitted. 2. In the interests of aiding debugging, the raw LevelDB ``levigoIterator`` type now includes a helpful forensics ``String()`` method. This work produced additional cleanups: 1. ``Close() error`` with the storage stack is technically incorrect, since nowhere in the bowels of it does an error actually occur. The interface has been simplified to remove this for now.
@@ -298,8 +295,6 @@ func (f *memoryToDiskFlusher) ForStream(stream stream) (decoder storage.RecordDe | |||
flusher: f, | |||
} | |||
|
|||
// fmt.Printf("fingerprint -> %s\n", model.NewFingerprintFromMetric(stream.metric).ToRowKey()) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Remove cruft
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Oh duh, it's removed, not added. Ignore.
👍 |
Validate diskFrontier domain for series candidate.
List histogram in the metric types overview
Fix compactions
Export `HTTPClientConfig.validate()`
Code Review
@juliusv please note that b87766021e70#L0R98 causes ./rules/... tests to abort. Could you please have a look at that?
Change Description
It is the case with the benchmark tool that we thought that we
generated multiple series and saved them to the disk as such, when
in reality, we overwrote the fields of the outgoing metrics via
Go map reference behavior. This was accidental. In the course of
diagnosing this, a few errors were found:
newSeriesFrontier
should check to see if the candidate fingerprint is within the given domain of thediskFrontier
. If not, as the contract in the docstring stipulates, anil
seriesFrontier
should be emitted.levigoIterator
type now includes a helpful forensicsString()
method.This work produced additional cleanups:
Close() error
with the storage stack is technically incorrect, since nowhere in the bowels of it does an error actually occur. The interface has been simplified to remove this for now.