Goals:
- Improve operability in the Hydrator Studio (Improvements to logs, metrics, debuggability)
- Improve usability in the Hydrator Studio (Redesign of bottom panel, etc)
...
- 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 lowest 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 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.
Possible solutions
- Tabular view: Columns for date, Class Name/Thread Name, Log Level, Log Line
- Alternate row background colors
- Vertically expandable with scrolling
- Searchable (Filter-able) columns
- Clear demarcation of rows
- Snippet with expand - especially for stack traces
- Picking only 1 or more log level -INFO, DEBUG, WARN, ERROR, ALL
- Ability to view and download raw logs if required
- Ability to view and expand only the "content" column of a log line
Use Case 2: Bottom Panel
Problems with current Bottom Panel
...
Design:
Proposed Log Viewer:
Composed of two main views:
- 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).
- 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
- Filter by lowest log level:
- Viewing current logs along with monitoring (Live)
- Similar to
tail -f
- Starts off with 50 lines
- Shows newer logs as they become available towards the end
- Users can see newer logs if they are 'scroll-positioned' at the last log line
- Scroll position is retained if users are at any position other than the last log line
- Previous button
- Similar to
- Viewing logs within a specified time range (Not Live)
- Similar in behavior to
less
, so its not live, but allows the following capabilities - Time range selector
- Previous/Next buttons
- Download button
- Similar in behavior to
...
New features
- Preview
- Log Viewer
Scratch Pad:
Possible solutions
- Tabular view: Columns for date, Class Name/Thread Name, Log Level, Log Line
- Alternate row background colors
- Vertically expandable with scrolling
- Searchable (Filter-able) columns
- Clear demarcation of rows
- Snippet with expand - especially for stack traces
- Picking only 1 or more log level -INFO, DEBUG, WARN, ERROR, ALL
- Ability to view and download raw logs if required
- Ability to view and expand only the "content" column of a log line