-
Notifications
You must be signed in to change notification settings - Fork 0
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
Add basic IOPs check #19
Conversation
4d09420
to
e0b023b
Compare
e0b023b
to
4dad604
Compare
c8177ce
to
81b4820
Compare
4dad604
to
6835dc5
Compare
824d27c
to
ffc2cba
Compare
a63f0f1
to
904c0c8
Compare
This makes it easier to report verbose program logging to troubleshooting issues with the preflight itself.
e53c276
to
bd512ad
Compare
bd512ad
to
25713b3
Compare
These are based on the `fio` tool, which must be installed separately as a prereq for these checks. Further, the IOPs checks require `libaio` to be installed separately, and is only available on linux.
25713b3
to
559ce1b
Compare
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.
LGTM
Just curious, did we investigate any Go libraries for the FIO disk/iops checks? So we could call a function in a library instead of delegating the checks to external executables? |
Thanks @imheresamir, Yes, an there's not a lot out there. I did consider using https://github.com/cunnie/gobonniego, which would have covered IOPs but not latency. There are some latency libraries, but I wasn't able to find a license compatible one (e.g. https://github.com/koct9i/ioping is GPL). The main reason to use fio, though, is that job parameters to evaluate performance for etcd are already well documented:
So this gives us more assurance that what we're capturing matches what we need to evaluate suitability for auto-failover. That said, if we do learn about a library solution that would work for us, I am not opposed to finding a way to push toward that instead. |
Desired Outcome
The desired outcome of this PR is to include disk performance checks in Conjur preflight. Namely this includes:
This is to help A) begin collecting better information from support cases related to disk performance, and B) provide a mechanism to warn on insufficient performance before attempting to run an auto-failover Conjur cluster.
Implemented Changes
This PR is organized into discrete commits and is best reviewed by-commit. This includes:
Here is an example output of the new disk performance checks:
Additional example outputs are available in the artifacts for each Jenkins build.
Connected Issue/Story
CyberArk internal issue ID: ONYX-29736
Definition of Done
At least 1 todo must be completed in the sections below for the PR to be
merged.
Changelog
CHANGELOG update
Test coverage
changes, or
Documentation
README
s) were updated in this PRBehavior
Security