-
Notifications
You must be signed in to change notification settings - Fork 8.3k
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
[Monitoring] [Logstash] Add Config View #18597
[Monitoring] [Logstash] Add Config View #18597
Conversation
💚 Build Succeeded |
💚 Build Succeeded |
f3edcef
to
86fa15e
Compare
💔 Build Failed |
Notes from discussion with @snide and @cchaos:
cc @ycombinator |
86fa15e
to
01a35e5
Compare
💚 Build Succeeded |
01a35e5
to
fcdb44d
Compare
💚 Build Succeeded |
fcdb44d
to
10a8b17
Compare
💚 Build Succeeded |
10a8b17
to
257a905
Compare
💔 Build Failed |
257a905
to
a6ae20b
Compare
💚 Build Succeeded |
a6ae20b
to
522a6b9
Compare
💔 Build Failed |
4f17978
to
127882f
Compare
25f65f1
to
a91dc56
Compare
@ycombinator thanks, sounds great!! Just as a heads up, I updated the I just wanted to get a nod from you since these were updated after you concluded your review. The snapshots are updated in a91dc56, and if you want to reference Dave's changes, they are all in 1f667cc. |
💚 Build Succeeded |
Still LGTM. |
component="div" | ||
grow={false} | ||
> | ||
<img |
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.
Maybe it is better to use an EuiIcon here? Along with the other areas using ad-hoc omg tags? But that's not a blocking item IMHO and is perhaps better in a followup PR anyway.
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'll create an issue to track it. These changes are indirect to the scope of this PR, it's based on some cleanup that Dave did after he updated the styles.
EDIT: #20021
* Patch ConfigView changes from x-pack-kibana to OSS Kibana. * Remove old css. * Update style for queue statement. * WIP modifying based on designer feedback. * Add flatten function and list class. * Rename functions to be more descriptive. * WIP checkin. Modify components to handle flattened object list. * Finish moving flatten logic into classes, add tests. * Simplify flattening, remove non-native dependency. Add more tests. * Add defaults to simplify function call. * Refactor two blocks into a function. * Begin adapting components for list. * Add collapse functionality. * Add expand functionality. * Nested collapsed elements remain collapsed on parent expansion. * Style section headers. * Update Plugin statement styles. * Add DetailDrawer support. * Update statement formatting. * Add stats to plugin element rows. * Resolve conflicts. * Remove obsolete code. * Reorganize code. * Remove warnings. * Add PropTypes. Add keys to arrays and iterables. * Update color for borders/buttons. * Add stat class. Clean up code. * Convert plugin statement component from class to function. * Update queue metrics message. * Update style to make view more responsive. * Change section heading size. * Remove gutter from metrics group. * Change name "stat" to "metric". * Remove obsolete export line, simplify declaration, based on PR feedback. * Add new functional component in place of model class. * Add PropTypes to several components. Rename a function. Add keys to metrics. * Convert stateless classes to functional components. * Prefer ES6 syntax over bindings for Component methods. * Do not render statement section if there are no statements. * design cleanup for pipeline viewer * Update CSS to add min-height to page. * Rename "elements" to "statements". Delete unused LESS variables. * Revert naming of "statements" to "elements" for StatementList component. * Update jest snapshots for DetailDrawer.
Backported to: |
* Patch ConfigView changes from x-pack-kibana to OSS Kibana. * Remove old css. * Update style for queue statement. * WIP modifying based on designer feedback. * Add flatten function and list class. * Rename functions to be more descriptive. * WIP checkin. Modify components to handle flattened object list. * Finish moving flatten logic into classes, add tests. * Simplify flattening, remove non-native dependency. Add more tests. * Add defaults to simplify function call. * Refactor two blocks into a function. * Begin adapting components for list. * Add collapse functionality. * Add expand functionality. * Nested collapsed elements remain collapsed on parent expansion. * Style section headers. * Update Plugin statement styles. * Add DetailDrawer support. * Update statement formatting. * Add stats to plugin element rows. * Resolve conflicts. * Remove obsolete code. * Reorganize code. * Remove warnings. * Add PropTypes. Add keys to arrays and iterables. * Update color for borders/buttons. * Add stat class. Clean up code. * Convert plugin statement component from class to function. * Update queue metrics message. * Update style to make view more responsive. * Change section heading size. * Remove gutter from metrics group. * Change name "stat" to "metric". * Remove obsolete export line, simplify declaration, based on PR feedback. * Add new functional component in place of model class. * Add PropTypes to several components. Rename a function. Add keys to metrics. * Convert stateless classes to functional components. * Prefer ES6 syntax over bindings for Component methods. * Do not render statement section if there are no statements. * design cleanup for pipeline viewer * Update CSS to add min-height to page. * Rename "elements" to "statements". Delete unused LESS variables. * Revert naming of "statements" to "elements" for StatementList component. * Update jest snapshots for DetailDrawer.
Changes
This feature will add a new visualization of Logstash Pipelines that mimics what the user will see when they look at the corresponding configuration file. Its purpose is to address a problem users encounter with the Pipeline Viewer when visualizing relatively large or complex pipelines.
The overall goal is to resolve #18423.
Review & Testing
Configure Logstash
If you need to run this PR against a stack with Logstash running please let me know and I can grant you access to a demo box we have set up for that express purpose.
I've moved the old instructions to the bottom of this section.
From a functional standpoint these changes do what we want for the initial version of this feature. At the moment we are looking for designer input.You can see this view by selecting a pipeline from the Pipelines view in Logstash monitoring. Try defining multiple pipelines to see how the component will render each one. I've included an example configuration that I've used for development purposes. It doesn't do anything practical but it does model all of theif
/else
shapes.Old configuration instructions:
java -version
should outputjava version "1.8.0_161"
tar xofp logstash-6.2.4.tar.gz
)./bin/logstash-plugin install x-pack
logstash.yml
with this one: logstash.yml.zipNOTE: if you're using Security on your local stack, you'll have to open that file and un-comment the username/password keys and plug in appropriate values.
./bin/logstash -e 'input { stdin { } } output { stdout { } }'
from the LS top directory. You'll see Logstash pop up in the Monitoring Overview page in your Kibana, and you should be able to drill into your pipeline to see the viewer../bin/logstash -f {PATH_TO_EXAMPLE_CONF}/example.conf
Tip: when killing Logstash, send it a second
CTRL+C
to kill it right away. Part of its shutdown procedure on the first kill command is to empty its queue, but we don't care about those events for our purposes.Testing
Motivation
As mentioned, the primary goal of this view is to address the Pipeline Viewer's lack of usability for pipelines beyond a certain level of complexity, as discussed in #18423. To that end, we are using a more tree-like layout to express the structure of the pipeline configuration, rather than visualizing the actual flow of data through the user's pipeline.
Followup
props.children
[Monitoring] [Pipeline Viewer] Refactor collapsible statement component to wrap props.children #19844<img>
s in favor ofEuiIcon
s where possible Swap ad-hoc imgs for EUIIcons in Detail Drawer and Config View sub-components #20021