Skip to content

Commit

Permalink
Merge branch 'master' into telemetry/migrate_public
Browse files Browse the repository at this point in the history
  • Loading branch information
elasticmachine authored Feb 12, 2020
2 parents aaae6c5 + d00adca commit 55a797c
Show file tree
Hide file tree
Showing 360 changed files with 3,227 additions and 2,458 deletions.
8 changes: 1 addition & 7 deletions .eslintrc.js
Original file line number Diff line number Diff line change
Expand Up @@ -355,13 +355,7 @@ module.exports = {
settings: {
// instructs import/no-extraneous-dependencies to treat certain modules
// as core modules, even if they aren't listed in package.json
'import/core-modules': [
'plugins',
'legacy/ui',
'uiExports',
// TODO: Remove once https://github.com/benmosher/eslint-plugin-import/issues/1374 is fixed
'querystring',
],
'import/core-modules': ['plugins', 'legacy/ui', 'uiExports'],

'import/resolver': {
'@kbn/eslint-import-resolver-kibana': {
Expand Down
25 changes: 0 additions & 25 deletions NOTICE.txt
Original file line number Diff line number Diff line change
Expand Up @@ -218,28 +218,3 @@ LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

---
This product includes code that was extracted from angular@1.3.
Original license:
The MIT License

Copyright (c) 2010-2014 Google, Inc. http://angularjs.org

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.

7 changes: 3 additions & 4 deletions docs/apm/troubleshooting.asciidoc
Original file line number Diff line number Diff line change
Expand Up @@ -73,10 +73,9 @@ You can also use the Agent's public API to manually set a name for the transacti

==== Fields are not searchable

In Elasticsearch, index patterns are used to define settings and mappings that determine how fields should be analyzed.
The recommended index template file for APM Server is installed when Kibana starts.
This template defines which fields are available in Kibana for features like the Kuery bar,
or for linking to other plugins like Logs, Uptime, and Discover.
In Elasticsearch, index templates are used to define settings and mappings that determine how fields should be analyzed.
The recommended index template file for APM Server is installed by the APM Server packages.
This template, by default, enables and disables indexing on certain fields.

As an example, some agents store cookie values in `http.request.cookies`.
Since `http.request` has disabled dynamic indexing, and `http.request.cookies` is not declared in a custom mapping,
Expand Down
Binary file removed docs/images/controls/controls_in_dashboard.png
Binary file not shown.
Binary file added docs/images/dashboard-controls.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/markdown-example.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/markdown_example_1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/markdown_example_2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/markdown_example_3.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/markdown_example_4.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
42 changes: 29 additions & 13 deletions docs/limitations.asciidoc
Original file line number Diff line number Diff line change
@@ -1,22 +1,38 @@
[chapter]
[[limitations]]
= Limitations

[partintro]
--
{kib} currently has the following limitations.
Following are the known limitations in {kib}.

* <<nested-objects>>
* <<export-data>>
* <<graph-limitations,Graph analytics>>
[float]
=== Exporting data

These {stack} features also have limitations that affect {kib}:
Exporting a data table or saved search from a dashboard or visualization report
has known limitations. The PDF report only includes the data visible on the screen.

* {ref}/watcher-limitations.html[Alerting]
* {ml-docs}/ml-limitations.html[Machine learning]
* {ref}/security-limitations.html[Security]
[float]
=== Nested objects

Kibana cannot perform aggregations across fields that contain nested objects.
It also cannot search on nested objects when Lucene Query Syntax is used in
the query bar.

[IMPORTANT]
==============================================
Using `include_in_parent` or `copy_to` as a workaround is not supported and may stop functioning in future releases.
==============================================

--
[float]
=== Graph

include::limitations/nested-objects.asciidoc[]
Graph has limited support for multiple indices.
Go to <<graph-limitations, Graph limitations>> for details.

include::limitations/export-data.asciidoc[]
[float]
=== Other limitations

These {stack} features have limitations that affect {kib}:

* {ref}/watcher-limitations.html[Alerting]
* {ml-docs}/ml-limitations.html[Machine learning]
* {ref}/security-limitations.html[Security]
5 changes: 0 additions & 5 deletions docs/limitations/export-data.asciidoc

This file was deleted.

11 changes: 0 additions & 11 deletions docs/limitations/nested-objects.asciidoc

This file was deleted.

4 changes: 2 additions & 2 deletions docs/user/visualize.asciidoc
Original file line number Diff line number Diff line change
Expand Up @@ -53,9 +53,9 @@ data sets.

* *<<for-dashboard,Dashboard tools>>*
[horizontal]
<<for-dashboard,Controls>>:: Provides the ability to add interactive inputs to a Dashboard.
Controls:: Adds interactive inputs to a Dashboard.

<<for-dashboard,Markdown widget>>:: Display free-form information or instructions.
Markdown widget:: Display free-form information or instructions.

* *For developers*
[horizontal]
Expand Down
116 changes: 25 additions & 91 deletions docs/visualize/for-dashboard.asciidoc
Original file line number Diff line number Diff line change
@@ -1,117 +1,51 @@
[[for-dashboard]]
== Markdown and controls

[float]
[[markdown-widget]]
=== Markdown widget

The Markdown widget is a text entry field that accepts GitHub-flavored Markdown text. Kibana renders the text you enter
in this field and displays the results on the dashboard. You can click the *Help* link to go to the
https://help.github.com/articles/github-flavored-markdown/[help page] for GitHub flavored Markdown. From the widget
you can:

* Click *Apply* to display the rendered text in the Preview panel
* Click *Discard* to revert to a previously saved version
== Dashboard tools

Visualize comes with controls and Markdown tools that you can add to dashboards for an interactive experience.

[float]
[[controls]]
=== Controls widget
=== Controls
experimental[]

The Controls widget enables you to add interactive inputs
to a dashboard. You can create two types of inputs:
The controls tool enables you to add interactive inputs
on a dashboard.

* Dropdown menu
* Radio slider
You can add two types of interactive inputs:

[role="screenshot"]
image::images/controls/controls_in_dashboard.png[]
* *Options list* - Filters content based on one or more specified options. The dropdown menu is dynamically populated with the results of a terms aggregation. For example, use the options list on the sample flight dashboard when you want to filter the data by origin city and destination city.

[float]
[[add-input-controls]]
=== Add input controls

To start a *Controls* visualization, open the Visualization application
and click the *+* button. Scroll to the *Others* section and
select *Controls*.

In the visualization builder, choose the type of control to add to
your visualization.

[float]
==== Dropdown menu

A dropdown menu allows users to filter content by selecting
one or more options from a list. The dropdown menu is dynamically populated
with the results of a terms aggregation.
* *Range slider* - Filters data within a specified range of numbers. The minimum and maximum values are dynamically populated with the results of a min and max aggregation. For example, use the range slider when you want to filter the sample flight dashboard by a specific average ticket price.

[role="screenshot"]
image::images/controls/dropdown_control_editor.png[]

*Control Label*:: The label for the dropdown menu. By default, the
label is the field name.

*Index Pattern*:: The <<index-patterns,index pattern>> that contains
the data set to visualize.

*Field*:: The field used to populate the list of options
and filter on when users interact with the input.
The list of available fields is derived from the specified
index pattern.

*Parent control*:: The control for chaining dropdown menus so that the
selection in the first menu
filters the terms in the second menu. Only available when
creating multiple dropdown menus.

*Multiselect*:: When enabled, the dropdown menu allows users to select multiple options.

*Size*:: The number of options to include in the list.
image::images/dashboard-controls.png[]

[float]
==== Range slider
[[markdown-widget]]
=== Markdown

A range sliders allow users to filter content within a range of numbers.
The range slider minimum and maximum values are dynamically populated with
the results of a min and max aggregation.
The Markdown tool is a text entry field that accepts GitHub-flavored Markdown text. When you enter the text, the tool populates the results on the dashboard.

[role="screenshot"]
image::images/controls/range_slider_editor.png[]
Markdown is helpful when you want to include important information, instructions, and images on your dashboard.

*Control Label*:: The label for the range slider. By default, the
label is the field name.
For information about GitHub-flavored Markdown text, click *Help*.

*Index Pattern*:: The <<index-patterns,index pattern>> that contains
the data set to visualize.
For example, when you enter:

*Field*:: The field used to populate the range slider
and filter on when users interact with the input.
The list of available fields is derived from the
specified index pattern.

*Step Size*:: The increment/decrement size of the slider.
[role="screenshot"]
image::images/markdown_example_1.png[]

*Decimal Places*:: The number of decimal places.
The following instructions are displayed:

[float]
[[global-options]]
=== Global options
[role="screenshot"]
image::images/markdown_example_2.png[]

Open the *Options* tab to configure settings that apply to all input
controls in a Controls visualization.
Or when you enter:

[role="screenshot"]
image::images/controls/controls_options.png[]

*Update Kibana filters on each change*:: When enabled, all input interactions
immediately create filters that cause the dashboard to refresh. When disabled,
Kibana filters are only created
when the user clicks *Apply changes* image:images/apply-changes-button.png[].
image::images/markdown_example_3.png[]

*Use time filter*:: When enabled, the aggregations used to generate
the dropdown options list and range minimum and maximum are bound
to <<set-time-filter,Kibana's global time range>>.
The following image is displayed:

*Pin filters to global state*:: When enabled, all filters created by
interacting with the inputs are automatically pinned.
[role="screenshot"]
image::images/markdown_example_4.png[]
2 changes: 2 additions & 0 deletions docs/visualize/most-frequent.asciidoc
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@ The most frequently used visualizations include:
* Metric, goal, and gauge
* Tag cloud

[[metric-chart]]

[float]
[[frequently-used-viz-aggregation]]
=== Supported aggregations
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -230,7 +230,7 @@
"prop-types": "15.6.0",
"proxy-from-env": "1.0.0",
"pug": "^2.0.4",
"querystring-browser": "1.0.4",
"query-string": "6.10.1",
"raw-loader": "3.1.0",
"react": "^16.12.0",
"react-color": "^2.13.8",
Expand Down
7 changes: 6 additions & 1 deletion packages/kbn-babel-preset/node_preset.js
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,12 @@ module.exports = (_, options = {}) => {
// on their own
useBuiltIns: 'entry',
modules: 'cjs',
corejs: 3,
// right now when using `corejs: 3` babel does not use the latest available
// core-js version due to a bug: https://github.com/babel/babel/issues/10816
// Because of that we should use for that value the same version we install
// in the package.json in order to have the same polyfills between the environment
// and the tests
corejs: '3.2.1',

...(options['@babel/preset-env'] || {}),
},
Expand Down
4 changes: 3 additions & 1 deletion packages/kbn-babel-preset/webpack_preset.js
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,9 @@ module.exports = () => {
{
useBuiltIns: 'entry',
modules: false,
corejs: 3,
// Please read the explanation for this
// in node_preset.js
corejs: '3.2.1',
},
],
require('./common_preset'),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,6 @@ exports.getWebpackConfig = function(kibanaPath, projectRoot, config) {
// Kibana defaults https://github.com/elastic/kibana/blob/6998f074542e8c7b32955db159d15661aca253d7/src/legacy/ui/ui_bundler_env.js#L30-L36
ui: fromKibana('src/legacy/ui/public'),
test_harness: fromKibana('src/test_harness/public'),
querystring: 'querystring-browser',

// Dev defaults for test bundle https://github.com/elastic/kibana/blob/6998f074542e8c7b32955db159d15661aca253d7/src/core_plugins/tests_bundle/index.js#L73-L78
ng_mock$: fromKibana('src/test_utils/public/ng_mock'),
Expand Down
6 changes: 3 additions & 3 deletions src/core/server/http/http_server.mocks.ts
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,7 @@
import { Request } from 'hapi';
import { merge } from 'lodash';
import { Socket } from 'net';

import querystring from 'querystring';
import { stringify } from 'query-string';

import { schema } from '@kbn/config-schema';

Expand Down Expand Up @@ -55,7 +54,8 @@ function createKibanaRequestMock({
socket = new Socket(),
routeTags,
}: RequestFixtureOptions = {}) {
const queryString = querystring.stringify(query);
const queryString = stringify(query, { sort: false });

return KibanaRequest.from(
createRawRequestMock({
headers,
Expand Down
5 changes: 2 additions & 3 deletions src/core/utils/url.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/

import { ParsedUrlQuery } from 'querystring';
import { ParsedQuery } from 'query-string';
import { format as formatUrl, parse as parseUrl, UrlObject } from 'url';

/**
Expand All @@ -33,7 +32,7 @@ export interface URLMeaningfulParts {
protocol?: string | null;
slashes?: boolean | null;
port?: string | null;
query: ParsedUrlQuery;
query: ParsedQuery;
}

/**
Expand Down
Loading

0 comments on commit 55a797c

Please sign in to comment.