Skip to content

Commit dcbcbf9

Browse files
committed
Merge branch 'master' of github.com:elastic/kibana into auto_refresh_rules
2 parents f79307f + c974f56 commit dcbcbf9

File tree

1,802 files changed

+86438
-59557
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

1,802 files changed

+86438
-59557
lines changed

.eslintignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
/x-pack/build
1414
node_modules
1515
target
16+
snapshots.js
1617

1718
!/.eslintrc.js
1819

@@ -22,7 +23,6 @@ target
2223
/src/plugins/data/common/es_query/kuery/ast/_generated_/**
2324
/src/plugins/vis_type_timelion/public/_generated_/**
2425
/x-pack/legacy/plugins/**/__tests__/fixtures/**
25-
/x-pack/plugins/apm/e2e/**/snapshots.js
2626
/x-pack/plugins/apm/e2e/tmp/*
2727
/x-pack/plugins/canvas/canvas_plugin
2828
/x-pack/plugins/canvas/shareable_runtime/build

.eslintrc.js

Lines changed: 19 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -447,6 +447,7 @@ module.exports = {
447447
{
448448
devDependencies: false,
449449
peerDependencies: true,
450+
packageDir: '.',
450451
},
451452
],
452453
},
@@ -478,6 +479,7 @@ module.exports = {
478479
{
479480
devDependencies: true,
480481
peerDependencies: true,
482+
packageDir: '.',
481483
},
482484
],
483485
},
@@ -732,22 +734,6 @@ module.exports = {
732734
},
733735
},
734736

735-
/**
736-
* ML overrides
737-
*/
738-
{
739-
files: ['x-pack/plugins/ml/**/*.js'],
740-
rules: {
741-
'no-shadow': 'error',
742-
'import/no-extraneous-dependencies': [
743-
'error',
744-
{
745-
packageDir: './x-pack',
746-
},
747-
],
748-
},
749-
},
750-
751737
/**
752738
* Security Solution overrides
753739
*/
@@ -1149,16 +1135,11 @@ module.exports = {
11491135
{
11501136
devDependencies: true,
11511137
peerDependencies: true,
1138+
packageDir: '.',
11521139
},
11531140
],
11541141
},
11551142
},
1156-
{
1157-
files: ['x-pack/plugins/canvas/storybook/**'],
1158-
rules: {
1159-
'import/no-extraneous-dependencies': 0,
1160-
},
1161-
},
11621143
{
11631144
files: ['x-pack/plugins/canvas/canvas_plugin_src/**/*.js'],
11641145
globals: { canvas: true, $: true },
@@ -1237,5 +1218,21 @@ module.exports = {
12371218
],
12381219
},
12391220
},
1221+
1222+
/**
1223+
* Single package.json rules, it tells eslint to ignore the child package.json files
1224+
* and look for dependencies declarations in the single and root level package.json
1225+
*/
1226+
{
1227+
files: ['**/*.{js,mjs,ts,tsx}'],
1228+
rules: {
1229+
'import/no-extraneous-dependencies': [
1230+
'error',
1231+
{
1232+
packageDir: '.',
1233+
},
1234+
],
1235+
},
1236+
},
12401237
],
12411238
};

.github/CODEOWNERS

Lines changed: 19 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,6 @@
3939
#CC# /src/legacy/core_plugins/vis_type_vislib/ @elastic/kibana-app
4040
#CC# /src/legacy/server/url_shortening/ @elastic/kibana-app
4141
#CC# /src/legacy/ui/public/state_management @elastic/kibana-app
42-
#CC# /src/plugins/index_pattern_management/public @elastic/kibana-app
4342

4443
# App Architecture
4544
/examples/bfetch_explorer/ @elastic/kibana-app-arch
@@ -61,7 +60,7 @@
6160
/src/plugins/expressions/ @elastic/kibana-app-arch
6261
/src/plugins/inspector/ @elastic/kibana-app-arch
6362
/src/plugins/kibana_react/ @elastic/kibana-app-arch
64-
/src/plugins/kibana_react/public/code_editor @elastic/kibana-canvas
63+
/src/plugins/kibana_react/public/code_editor @elastic/kibana-presentation
6564
/src/plugins/kibana_utils/ @elastic/kibana-app-arch
6665
/src/plugins/navigation/ @elastic/kibana-app-arch
6766
/src/plugins/share/ @elastic/kibana-app-arch
@@ -70,23 +69,10 @@
7069
/x-pack/plugins/data_enhanced/ @elastic/kibana-app-arch
7170
/x-pack/plugins/embeddable_enhanced/ @elastic/kibana-app-arch
7271
/x-pack/plugins/ui_actions_enhanced/ @elastic/kibana-app-arch
73-
#CC# /src/legacy/core_plugins/kibana/public/management/ @elastic/kibana-app-arch
74-
#CC# /src/legacy/core_plugins/kibana/server/routes/api/management/ @elastic/kibana-app-arch
75-
#CC# /src/legacy/core_plugins/embeddable_api/ @elastic/kibana-app-arch
76-
#CC# /src/legacy/core_plugins/interpreter/ @elastic/kibana-app-arch
77-
#CC# /src/legacy/core_plugins/kibana_react/ @elastic/kibana-app-arch
78-
#CC# /src/legacy/core_plugins/status_page/public @elastic/kibana-app-arch
79-
#CC# /src/legacy/server/index_patterns/ @elastic/kibana-app-arch
80-
#CC# /src/legacy/ui/public/field_editor @elastic/kibana-app-arch
81-
#CC# /src/legacy/ui/public/management @elastic/kibana-app-arch
82-
#CC# /src/plugins/advanced_settings/ @elastic/kibana-app-arch
8372
#CC# /src/plugins/bfetch/ @elastic/kibana-app-arch
84-
#CC# /src/plugins/charts/ @elastic/kibana-app-arch
85-
#CC# /src/plugins/index_pattern_management/public/service @elastic/kibana-app-arch
73+
#CC# /src/plugins/index_pattern_management/ @elastic/kibana-app-arch
8674
#CC# /src/plugins/inspector/ @elastic/kibana-app-arch
87-
#CC# /src/plugins/saved_objects/ @elastic/kibana-app-arch
8875
#CC# /src/plugins/share/ @elastic/kibana-app-arch
89-
#CC# /src/plugins/vis_default_editor @elastic/kibana-app-arch
9076
#CC# /x-pack/plugins/advanced_ui_actions/ @elastic/kibana-app-arch
9177
#CC# /x-pack/plugins/drilldowns/ @elastic/kibana-app-arch
9278
#CC# /packages/kbn-interpreter/ @elastic/kibana-app-arch
@@ -118,19 +104,19 @@
118104
/x-pack/legacy/plugins/beats_management/ @elastic/beats
119105
#CC# /x-pack/plugins/beats_management/ @elastic/beats
120106

121-
# Canvas
122-
/src/plugins/dashboard/ @elastic/kibana-canvas
123-
/src/plugins/input_control_vis/ @elastic/kibana-canvas
124-
/src/plugins/vis_type_markdown/ @elastic/kibana-canvas
125-
/x-pack/plugins/canvas/ @elastic/kibana-canvas
126-
/x-pack/plugins/dashboard_enhanced/ @elastic/kibana-canvas
127-
/x-pack/test/functional/apps/canvas/ @elastic/kibana-canvas
128-
#CC# /src/legacy/core_plugins/kibana/public/dashboard/ @elastic/kibana-canvas
129-
#CC# /src/legacy/core_plugins/input_control_vis @elastic/kibana-canvas
130-
#CC# /src/plugins/kibana_react/public/code_editor/ @elastic/kibana-canvas
131-
#CC# /x-pack/legacy/plugins/canvas/ @elastic/kibana-canvas
132-
#CC# /x-pack/plugins/dashboard_mode @elastic/kibana-canvas
133-
#CC# /x-pack/legacy/plugins/dashboard_mode/ @elastic/kibana-canvas
107+
# Presentation
108+
/src/plugins/dashboard/ @elastic/kibana-presentation
109+
/src/plugins/input_control_vis/ @elastic/kibana-presentation
110+
/src/plugins/vis_type_markdown/ @elastic/kibana-presentation
111+
/x-pack/plugins/canvas/ @elastic/kibana-presentation
112+
/x-pack/plugins/dashboard_enhanced/ @elastic/kibana-presentation
113+
/x-pack/test/functional/apps/canvas/ @elastic/kibana-presentation
114+
#CC# /src/legacy/core_plugins/kibana/public/dashboard/ @elastic/kibana-presentation
115+
#CC# /src/legacy/core_plugins/input_control_vis @elastic/kibana-presentation
116+
#CC# /src/plugins/kibana_react/public/code_editor/ @elastic/kibana-presentation
117+
#CC# /x-pack/legacy/plugins/canvas/ @elastic/kibana-presentation
118+
#CC# /x-pack/plugins/dashboard_mode @elastic/kibana-presentation
119+
#CC# /x-pack/legacy/plugins/dashboard_mode/ @elastic/kibana-presentation
134120

135121
# Core UI
136122
# Exclude tutorials folder for now because they are not owned by Kibana app and most will move out soon
@@ -171,8 +157,6 @@
171157
/x-pack/test/functional/apps/maps/ @elastic/kibana-gis
172158
/x-pack/test/functional/es_archives/maps/ @elastic/kibana-gis
173159
/x-pack/test/visual_regression/tests/maps/index.js @elastic/kibana-gis
174-
#CC# /src/legacy/core_plugins/region_map @elastic/kibana-gis
175-
#CC# /src/legacy/core_plugins/tile_map @elastic/kibana-gis
176160
#CC# /src/plugins/maps_legacy/ @elastic/kibana-gis
177161
#CC# /x-pack/plugins/file_upload @elastic/kibana-gis
178162
#CC# /x-pack/plugins/maps_legacy_licensing @elastic/kibana-gis
@@ -212,12 +196,15 @@
212196

213197
# Platform
214198
/src/core/ @elastic/kibana-platform
199+
/src/plugins/saved_objects_tagging_oss @elastic/kibana-platform
215200
/config/kibana.yml @elastic/kibana-platform
216201
/x-pack/plugins/features/ @elastic/kibana-platform
217202
/x-pack/plugins/licensing/ @elastic/kibana-platform
218203
/x-pack/plugins/global_search/ @elastic/kibana-platform
219204
/x-pack/plugins/cloud/ @elastic/kibana-platform
205+
/x-pack/plugins/saved_objects_tagging/ @elastic/kibana-platform
220206
/x-pack/test/saved_objects_field_count/ @elastic/kibana-platform
207+
/x-pack/test/saved_object_tagging/ @elastic/kibana-platform
221208
/packages/kbn-config-schema/ @elastic/kibana-platform
222209
/packages/kbn-std/ @elastic/kibana-platform
223210
/src/legacy/server/config/ @elastic/kibana-platform
@@ -245,6 +232,7 @@
245232
#CC# /src/legacy/ui/public/documentation_links @elastic/kibana-platform
246233
#CC# /src/legacy/ui/public/autoload @elastic/kibana-platform
247234
#CC# /src/plugins/legacy_export/ @elastic/kibana-platform
235+
#CC# /src/plugins/saved_objects/ @elastic/kibana-platform
248236
#CC# /src/plugins/status_page/ @elastic/kibana-platform
249237
#CC# /src/plugins/testbed/server/ @elastic/kibana-platform
250238
#CC# /x-pack/legacy/plugins/xpack_main/server/ @elastic/kibana-platform

.github/workflows/pr-project-assigner.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,4 +18,4 @@ jobs:
1818

1919
# { "label": "Team:AppArch", "projectNumber": 37, "columnName": "Review in progress" },
2020
# { "label": "Feature:Lens", "projectNumber": 32, "columnName": "In progress" },
21-
# { "label": "Team:Canvas", "projectNumber": 38, "columnName": "Review in progress" }
21+
# { "label": "Feature:Canvas", "projectNumber": 38, "columnName": "Review in progress" }

.github/workflows/project-assigner.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ jobs:
1111
uses: elastic/github-actions/[email protected]
1212
id: project_assigner
1313
with:
14-
issue-mappings: '[{"label": "Team:AppArch", "projectNumber": 37, "columnName": "To triage"}, {"label": "Feature:Lens", "projectNumber": 32, "columnName": "Long-term goals"}, {"label": "Team:Canvas", "projectNumber": 38, "columnName": "Inbox"}]'
14+
issue-mappings: '[{"label": "Team:AppArch", "projectNumber": 37, "columnName": "To triage"}, {"label": "Feature:Lens", "projectNumber": 32, "columnName": "Long-term goals"}, {"label": "Feature:Canvas", "projectNumber": 38, "columnName": "Inbox"}, {"label": "Feature:Dashboard", "projectNumber": 68, "columnName": "Inbox"}, {"label": "Feature:Drilldowns", "projectNumber": 68, "columnName": "Inbox"}]'
1515
ghToken: ${{ secrets.PROJECT_ASSIGNER_TOKEN }}
1616

1717

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,8 @@ npm-debug.log*
5656
# apm plugin
5757
/x-pack/plugins/apm/tsconfig.json
5858
apm.tsconfig.json
59+
## @cypress/snapshot from apm plugin
60+
snapshots.js
5961

6062
# release notes script output
6163
report.csv

.yarnrc

Lines changed: 0 additions & 1 deletion
This file was deleted.

NOTICE.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,9 @@ This module was heavily inspired by the externals plugin that ships with webpack
2626
MIT License http://www.opensource.org/licenses/mit-license.php
2727
Author Tobias Koppers @sokra
2828

29+
---
30+
This product has relied on ASTExplorer that is licensed under MIT.
31+
2932
---
3033
This product includes code that is based on Ace editor, which was available
3134
under a "BSD" license.

docs/api/saved-objects/rotate_encryption_key.asciidoc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ Bulk key rotation can consume a considerable amount of resources and hence only
2525
`type`::
2626
(Optional, string) Limits encryption key rotation only to the saved objects with the specified type. By default, {kib} tries to rotate the encryption key for all saved object types that may contain encrypted attributes.
2727

28-
`batchSize`::
28+
`batch_size`::
2929
(Optional, number) Specifies a maximum number of saved objects that {kib} can process in a single batch. Bulk key rotation is an iterative process since {kib} may not be able to fetch and process all required saved objects in one go and splits processing into consequent batches. By default, the batch size is 10000, which is also a maximum allowed value.
3030

3131
[[saved-objects-api-rotate-encryption-key-response-body]]
@@ -91,7 +91,7 @@ In this example, key rotation is performed for all saved objects with the `alert
9191

9292
[source,sh]
9393
--------------------------------------------------
94-
$ curl -X POST /api/encrypted_saved_objects/_rotate_key?type=alert&batchSize=5000
94+
$ curl -X POST /api/encrypted_saved_objects/_rotate_key?type=alert&batch_size=5000
9595
--------------------------------------------------
9696
// KIBANA
9797

docs/developer/contributing/development-ci-metrics.asciidoc

Lines changed: 77 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,10 @@
33

44
In addition to running our tests, CI collects metrics about the Kibana build. These metrics are sent to an external service to track changes over time, and to provide PR authors insights into the impact of their changes.
55

6+
* <<ci-metric-types>>
7+
* <<ci-metric-resolving-overages>>
8+
* <<ci-metric-validating-limits>>
9+
610

711
[[ci-metric-types]]
812
=== Metric types
@@ -16,7 +20,7 @@ These metrics help contributors know how they are impacting the size of the bund
1620
[[ci-metric-page-load-bundle-size]] `page load bundle size` ::
1721
The size of the entry file produced for each bundle/plugin. This file is always loaded on every page load, so it should be as small as possible. To reduce this metric you can put any code that isn't necessary on every page load behind an https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/import#Dynamic_Imports[`async import()`].
1822
+
19-
Code that is shared statically with other plugins will contribute to the `page load bundle size` of that plugin. This includes exports from the `public/index.ts` file and any file referenced by the `extraPublicDirs` manifest property.
23+
Code that is shared statically with other plugins will contribute to the `page load bundle size` of that plugin. This includes exports from the `public/index.ts` file and any file referenced by the `extraPublicDirs` manifest property.
2024

2125
[[ci-metric-async-chunks-size]] `async chunks size` ::
2226
An "async chunk" is created for the files imported by each https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/import#Dynamic_Imports[`async import()`] statement. This metric tracks the sum size of these chunks, in bytes, broken down by plugin/bundle id. You can think of this as the amount of code users will have to download if they access all the components/applications within a bundle.
@@ -44,7 +48,7 @@ The number of files included in the default distributable.
4448
The number of files included in the OSS distributable.
4549

4650
[[ci-metric-distributable-size]] `distributable size` ::
47-
The size, in bytes, of the default distributable. _(not reported on PRs)_
51+
The size, in bytes, of the default distributable. _(not reported on PRs)_
4852

4953
[[ci-metric-oss-distributable-size]] `oss distributable size` ::
5054
The size, in bytes, of the OSS distributable. _(not reported on PRs)_
@@ -62,4 +66,74 @@ The number of saved object fields broken down by saved object type.
6266
[[ci-metric-adding-new-metrics]]
6367
=== Adding new metrics
6468

65-
You can report new metrics by using the `CiStatsReporter` class provided by the `@kbn/dev-utils` package. This class is automatically configured on CI and its methods noop when running outside of CI. For more details checkout the {kib-repo}blob/{branch}/packages/kbn-dev-utils/src/ci_stats_reporter[`CiStatsReporter` readme].
69+
You can report new metrics by using the `CiStatsReporter` class provided by the `@kbn/dev-utils` package. This class is automatically configured on CI and its methods noop when running outside of CI. For more details checkout the {kib-repo}blob/{branch}/packages/kbn-dev-utils/src/ci_stats_reporter[`CiStatsReporter` readme].
70+
71+
[[ci-metric-resolving-overages]]
72+
=== Resolving `page load bundle size` overages
73+
74+
In order to prevent the page load bundles from growing unexpectedly large we limit the `page load asset size` metric for each plugin. When a PR increases this metric beyond the limit defined for that plugin in {kib-repo}blob/{branch}/packages/kbn-optimizer/limits.yml[`limits.yml`] a failed commit status is set and the PR author needs to decide how to resolve this issue before the PR can be merged.
75+
76+
In most cases the limit should be high enough that PRs shouldn't trigger overages, but when they do make sure it's clear what is cuasing the overage by trying the following:
77+
78+
1. Run the optimizer locally with the `--profile` flag to produce webpack `stats.json` files for bundles which can be inspected using a number of different online tools. Focus on the chunk named `{pluginId}.plugin.js`; the `*.chunk.js` chunks make up the `async chunks size` metric which is currently unlimited and is the main way that we {kib-repo}blob/{branch}/src/core/MIGRATION.md#keep-kibana-fast[reduce the size of page load chunks].
79+
+
80+
[source,shell]
81+
-----------
82+
node scripts/build_kibana_platform_plugins --focus {pluginid} --profile
83+
# builds and creates {pluginDir}target/public/stats.json files for {pluginId} and any plugin it depends on
84+
-----------
85+
86+
- Official Webpack tool: http://webpack.github.io/analyse/
87+
- Webpack visualizer: https://chrisbateman.github.io/webpack-visualizer/
88+
89+
2. You might want to create stats for the upstream branch of your PR as well and then compare them side by side in Webpack visualizer to spot where the size difference is (using two browser tabs).
90+
91+
3. For relatively small changes you might be able to better understand the problem by sticking stats.json files from two different branches into https://www.scootersoftware.com/download.php[Beyond Compare]
92+
93+
4. If the number of changes in https://www.scootersoftware.com/download.php[Beyond Compare] are too large, you can reduce the stats.json file down to just a sorted list of module ids using https://github.com/stedolan/jq[jq]:
94+
+
95+
[source,shell]
96+
-----------
97+
jq -r .modules[].id {pluginDir}/target/public/stats.json | sort - > moduleids.txt
98+
-----------
99+
+
100+
Produce a moduleids.txt file for both your branch and master and then pop them into Beyond Compare to get a very specific view of what's new.
101+
102+
5. As a last resort you might want to try comparing the bundle source directly. It's usually best to do this using the production source so that you're inspecting the actual change in bytes that CI is seeing. After building the distributable version of your bundle run it through prettier and then dropping it into Beyond Compare along with the chunk from upstream:
103+
+
104+
[source,shell]
105+
-----------
106+
node scripts/build_kibana_platform_plugins --focus {pluginId} --dist
107+
npm install -g prettier
108+
prettier -w {pluginDir}/target/public/{pluginId}.plugin.js
109+
# repeat these steps for upstream and then compare the two {pluginId}.plugin.js files in Beyond Compare
110+
-----------
111+
112+
6. If all else fails reach out to Operations for help.
113+
114+
Once you've identified the files which were added to the build you likely just need to stick them behind an async import as described in {kib-repo}blob/{branch}/src/core/MIGRATION.md#keep-kibana-fast[the MIGRATION.md docs].
115+
116+
In the case that the bundle size is not being bloated by anything obvious, but it's still larger than the limit, you can raise the limit in your PR. Do this either by editting the {kib-repo}blob/{branch}/packages/kbn-optimizer/limits.yml[`limits.yml` file] manually or by running the following to have the limit updated to the current size + 15kb
117+
118+
[source,shell]
119+
-----------
120+
node scripts/build_kibana_platform_plugins --focus {pluginId} --update-limits
121+
-----------
122+
123+
This command has to run the optimizer in distributable mode so it will take a lot longer and spawn one worker for each CPU on your machine.
124+
125+
Changes to the {kib-repo}blob/{branch}/packages/kbn-optimizer/limits.yml[`limits.yml` file] will trigger review from the Operations team, who will attempt to verify that the size increase is justified. If you have findings you can share from the steps above that would be very helpful!
126+
127+
[[ci-metric-validating-limits]]
128+
=== Validating `page load bundle size` limits
129+
130+
Once you've fixed any issues discovered while diagnosing overages you probably should just push the changes to your PR and let CI validate them.
131+
132+
If you have a pretty powerful dev machine, or the necessary patience/determination, you can validate the limits locally by running the following command:
133+
134+
[source,shell]
135+
-----------
136+
node scripts/build_kibana_platform_plugins --validate-limits
137+
-----------
138+
139+
This command needs to apply production optimizations to get the right sizes, which means that the optimizer will take significantly longer to run and on most developmer machines will consume all of your machines resources for 20 minutes or more. If you'd like to multi-task while this is running you might need to limit the number of workers using the `--max-workers` flag.

0 commit comments

Comments
 (0)