Hydrator 3.5 UI
Goals:
Improve operability in the Hydrator Studio (Improvements to logs, metrics, debuggability)
Improve usability in the Hydrator Studio (Redesign of bottom panel, etc)
Checklist
Use Cases:
Use Case 1: Improve Log Viewer
Problems with current Log Viewer:
Doesn't cater to usual developer interactions with logs - tail'ing (with log file monitoring
-f) or less'ing (viewing the log) or downloadingHard to distinguish between two log lines
Exception stack traces are virtually un-readable
Virtually no formatting in the UI - almost rendered as the logs appear from the backend, which is not ideal to an end-user
No search (even at the UI level)
No way to download logs
No way to distinguish whether logs are live or past
User Stories:
As a Hydrator/CDAP user, I want to be able to view my pipeline logs from both currently running pipelines as well as past pipelines to effectively debug the pipeline during failures
As a Hydrator/CDAP user, I want to clearly know if the logs I am viewing are being updated live or are from a past run
As a Hydrator/CDAP user, I want greater emphasis on the most important part of logs - the messages
As a Hydrator user, I do not want logs to be flooded with stack traces. I want the ability to suppress them individually and as a whole
As a Hydrator/CDAP user, I want the ability to download complete log files
As a Hydrator/CDAP user, I want to view a summary of the logs I'm viewing (the number of messages, the number of errors, the number of warnings)
As a Hydrator/CDAP user, I want to be able to filter logs by the log level
As a Hydrator/CDAP user, I want to be able to filter logs by keywords
As a Hydrator/CDAP user, I want to be able to view a larger number of log events with a single-line summary for each, with the capability to drill down into particular events as desired
As a Hydrator/CDAP user, I want to be able to view logs in the selected time range. I want to be able to dynamically change the time range (only start time) for which I want to view logs, with context about how that time range maps to the duration of the program/service run.
As a Hydrator/CDAP user, I want to be able to be able to maximize the log viewer to full screen size and restore it to original size as required.
Design:
Timeline:
Starts at the program/service start time. Ends at the program/service end time (past) or current.
Time range indicated by two sliders on each side. Time range can be selected by sliding these sliders.
Updating slider position causes a refresh of the log viewer to show logs in the selected range with the selected filters
If program/service is still running, the right/bottom end of the slider indicates current time, and if the slider is at this position, logs are updated live. The timeline keeps updating to reflect that.
Sliders must not cross each other
Label on the selected time range indicates the selected time range
The timeline is marked with time range with granularity that depends on the duration of the log (which is the duration of the program run).
In the selected (or default time range), there should be symbols on the time line for the errors and warnings, as well as for events that match the filter in the search box. Clicking on such a symbol should navigate you to the corresponding event in the table. The graph may look like so:
Filters:
Filter by lowest log level:
If ERROR is selected, then we show only ERROR
If WARN is selected, then we show ERROR and WARN
If INFO is selected, then we show ERROR, WARN and INFO
If DEBUG is selected, then we show ERROR, WARN, INFO and DEBUG
If TRACE is selected, then we show ERROR, WARN, INFO, DEBUG and TRACE
Filter by search keywords:
Search box that filters logs by the search text.
This is a simple filter that applies on the message column
Log viewer Table:
Columns:
Timestamp
Lowest Log Level
Source - Only in CDAP - This column should not be shown in Hydrator
Message (also contains stack trace).
Default view shows single line messages, with / buttons to expand individual messages if they have more content
Ability to suppress/show stack trace with a similar / buttons.
Ability to expand all messages
Ability to only view the message column
Top Bar:
Shows information/summary of the log
Indicates program/service name
Summary of total messages with number of warnings and errors
Download button to download entire log
Search box for filtering.