Skip to content
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

Track fragment changes #163

Open
tomaszmichalak opened this issue Jun 8, 2020 · 3 comments
Open

Track fragment changes #163

tomaszmichalak opened this issue Jun 8, 2020 · 3 comments
Assignees
Labels
enhancement New feature or request

Comments

@tomaszmichalak
Copy link
Member

Is your feature request related to a problem? Please describe.
Currently, only the final fragment state (payload and body) is available for execution log consumers.

Describe the solution you'd like
We want to track all fragment changes per node. So in Knot.x Chrome Extension we can click on the node and see fragment details.

Additional context
This should be an option, it can influence the performance.

@tomaszmichalak tomaszmichalak added the enhancement New feature or request label Jun 8, 2020
@marcinus marcinus self-assigned this Jun 9, 2020
@marcinus
Copy link
Contributor

marcinus commented Jun 23, 2020

Proposed solution:

  1. Enhance EventLogEntry, NodeExecutionData.Response and GraphNodeResponseLog with optional Fragment fragment field
  2. Change EventLogEntry.success(...) to store Fragment resulting from just succeded operation
  3. Modify EventLogConverter::getExecutionData(String id) to populate response in NodeExecutionData when transition == null (which does not happen now) and enhance it with Fragment object from EventLogEntry if present.
  4. Modify MetadataConverter::setGraphLogPropertiesFrom(GraphNodeExecutionLog graphLog, NodeExecutionData executionData) to populate logged Fragment to the consumer (trivial)

The problem with this solution is turning logging on/off. Currently, TaskExecutionContext which performs the logging is not configurable, neither is TaskEngine nor FragmentsEngine. Populating configuration from FragmentsHandler will require changing and cascading these changes down to execution logic - which in my opinion already became pretty complicated.
Perhaps it would be a good moment to refactor/modularize it further?

@tomaszmichalak could you share your point of view on these issues?

@tomaszmichalak
Copy link
Member Author

Please extend GraphNodeResponseLog with fragment.

@tomaszmichalak
Copy link
Member Author

In scope:

  • update EventLogEntry for all cases: success, error, other
  • propagate data from FragmentEvents to GraphNodeResponseLog

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants