-
Notifications
You must be signed in to change notification settings - Fork 14
feat(diagnostics): Support diagnostic operations with automated rules #1453
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
base: main
Are you sure you want to change the base?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -73,6 +73,8 @@ | |
| name text unique check (char_length(name) < 255), | ||
| preservedArchives integer not null, | ||
| matchExpression bigint unique, | ||
| threadDump boolean not null, | ||
| heapDump boolean not null, | ||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This is a wrong approach - if a Cryostat instance has already been installed and is being upgraded, the previously-run migration scripts will not re-execute. So patching up a migration file for an already-released Cryostat version is going to create some really messy headaches for fresh installs vs upgraded installs where they will now have divergent database scheme. In fact, I think Flyway will even raise an error on upgrade and fail in this case. I'm pretty sure it does some migration script checksumming and will catch that this has been changed. Any modifications to the database schema for a Cryostat vX.Y release feature should only be done in a net new |
||
| primary key (id) | ||
| ); | ||
|
|
||
|
|
||
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.
I'm not sure if these flags are sufficient to capture all of the functionality we might want to expose/implement. For example, rules currently have both an
archivalPeriodSecondsand apreservedArchives, which rule execution use to determine when to execute the recording archival job associated with the rule, and how many prior copies of archived recordings from the same active source recording should be retained. It looks like this implementation simply enables rules to also perform a thread/heap dump alongside the recording archival execution on thearchivalPeriodSecondsschedule, but without any equivalent handling ofpreservedArchives.But then this raises an important feature design question: should
preservedArchivesapply equally and symmetrically to all three data types that can now be captured by a rule? Or should there be three different fields likepreservedJfrArchives,preservedThreadDumps,preservedHeapDumps? Or, should a rule only be valid if it configures JFR archives OR thread dumps OR heap dumps, so if the user wants to have periodic capture of each it should be three different rule definitions? If we start down that path, this also raises the question of whether these should then remain as one Rule entity type or three?