-
Notifications
You must be signed in to change notification settings - Fork 31
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
feat(agent): implement Agent HTTP dynamic JFR start #1566
feat(agent): implement Agent HTTP dynamic JFR start #1566
Conversation
933cbbd
to
b872724
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.
Pull Request blocked. web-client
submodule updates are performed automatically by CI when that repository is updated. Please revert or drop all changes to the web-client
submodule from this PR and perform any required frontend work by opening and merging a PR against cryostat-web.
7a9555b
to
ebbe5ef
Compare
ebbe5ef
to
87e481e
Compare
This PR/issue depends on: |
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.
Pull Request blocked. web-client
submodule updates are performed automatically by CI when that repository is updated. Please revert or drop all changes to the web-client
submodule from this PR and perform any required frontend work by opening and merging a PR against cryostat-web.
…FlightRecorderService
87e481e
to
b958354
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.
Code and functionality looks good to me.
18e46b6
into
cryostatio:1578-epic-two-way-agent-communications
* chore(svc): extract EventOptionsBuilder to -core and use new CryostatFlightRecorderService * add unimplemented overrides * test(smoketest): enable API writes on one agent-equipped sample app * chore(serial): extract recording descriptor to -core * chore(activerecordings): clean up an error handler * feat(agent): implement dynamic start of JFR over HTTP * bump -core version
* chore(svc): extract EventOptionsBuilder to -core and use new CryostatFlightRecorderService * add unimplemented overrides * test(smoketest): enable API writes on one agent-equipped sample app * chore(serial): extract recording descriptor to -core * chore(activerecordings): clean up an error handler * feat(agent): implement dynamic start of JFR over HTTP * bump -core version
* chore(svc): extract EventOptionsBuilder to -core and use new CryostatFlightRecorderService * add unimplemented overrides * test(smoketest): enable API writes on one agent-equipped sample app * chore(serial): extract recording descriptor to -core * chore(activerecordings): clean up an error handler * feat(agent): implement dynamic start of JFR over HTTP * bump -core version
* chore(svc): extract EventOptionsBuilder to -core and use new CryostatFlightRecorderService * add unimplemented overrides * test(smoketest): enable API writes on one agent-equipped sample app * chore(serial): extract recording descriptor to -core * chore(activerecordings): clean up an error handler * feat(agent): implement dynamic start of JFR over HTTP * bump -core version
* chore(svc): extract EventOptionsBuilder to -core and use new CryostatFlightRecorderService * add unimplemented overrides * test(smoketest): enable API writes on one agent-equipped sample app * chore(serial): extract recording descriptor to -core * chore(activerecordings): clean up an error handler * feat(agent): implement dynamic start of JFR over HTTP * bump -core version
* chore(svc): extract EventOptionsBuilder to -core and use new CryostatFlightRecorderService * add unimplemented overrides * test(smoketest): enable API writes on one agent-equipped sample app * chore(serial): extract recording descriptor to -core * chore(activerecordings): clean up an error handler * feat(agent): implement dynamic start of JFR over HTTP * bump -core version
* chore(svc): extract EventOptionsBuilder to -core and use new CryostatFlightRecorderService * add unimplemented overrides * test(smoketest): enable API writes on one agent-equipped sample app * chore(serial): extract recording descriptor to -core * chore(activerecordings): clean up an error handler * feat(agent): implement dynamic start of JFR over HTTP * bump -core version
* chore(svc): extract EventOptionsBuilder to -core and use new CryostatFlightRecorderService * add unimplemented overrides * test(smoketest): enable API writes on one agent-equipped sample app * chore(serial): extract recording descriptor to -core * chore(activerecordings): clean up an error handler * feat(agent): implement dynamic start of JFR over HTTP * bump -core version
* chore(svc): extract EventOptionsBuilder to -core and use new CryostatFlightRecorderService * add unimplemented overrides * test(smoketest): enable API writes on one agent-equipped sample app * chore(serial): extract recording descriptor to -core * chore(activerecordings): clean up an error handler * feat(agent): implement dynamic start of JFR over HTTP * bump -core version
* chore(svc): extract EventOptionsBuilder to -core and use new CryostatFlightRecorderService * add unimplemented overrides * test(smoketest): enable API writes on one agent-equipped sample app * chore(serial): extract recording descriptor to -core * chore(activerecordings): clean up an error handler * feat(agent): implement dynamic start of JFR over HTTP * bump -core version
* feat(agent): implement Agent HTTP dynamic JFR start (#1566) * chore(svc): extract EventOptionsBuilder to -core and use new CryostatFlightRecorderService * test(smoketest): enable API writes on one agent-equipped sample app * chore(serial): extract recording descriptor to -core * chore(activerecordings): clean up an error handler * feat(agent): implement dynamic start of JFR over HTTP * bump -core version * feat(agent): implement Agent HTTP dynamic JFR stop/delete (#1604) * feat(agent): implement Agent HTTP recording retrieval (#1607) * feat(agent): implement HTTP JFR snapshot creation (#1627) Co-authored-by: Atif Ali <[email protected]>
Welcome to Cryostat! 👋
Before contributing, make sure you have:
main
branch[chore, ci, docs, feat, fix, test]
git commit --amend --signoff
Related to cryostatio/cryostat-agent#162
Depends on cryostatio/cryostat-agent#165
Depends on cryostatio/cryostat-core#245
Fixes #1580
Related to #1579
Description of the change:
Refactor to extract some logic out to
-core
and use an additional abstraction on top of the JMCIFlightRecorderService
. The newCryostastFlightRecorderService
subinterface provides higher-level operation abstractions to support theAgentService
/AgentConnection
/AgentClient
HTTP-based communications, so that existing code needs minimal changes to perform operations like dynamically starting recordings by providing arguments like event template name+type, or later the whole event template XML document (for custom event templates), rather than using the JMCIConstrainedMap
model.How to manually test:
-core
and-agent
quarkus-test
to include two dependencies above and feat(api): enable dynamic JFR start cryostat-agent#165CRYOSTAT_IMAGE=quay.io... sh smoketest.sh...
- note thatquarkus-test-agent-2
hasCRYOSTAT_AGENT_API_WRITES_ENABLED=true
.quarkus-test-agent-2
(http://localhost:9988
) and verify that the recording creation succeeds