Merge branch 'master' into core-saved-objects-service

This commit is contained in:
Rudolf Meijering 2019-07-29 10:07:24 +02:00
commit c8a6aa37d2
1476 changed files with 36966 additions and 18246 deletions

View file

@ -25,6 +25,16 @@ mkdir -p .chromedriver
curl "https://chromedriver.storage.googleapis.com/$chromedriverDistVersion/chromedriver_linux64.zip" > .chromedriver/chromedriver.zip
echo "$chromedriverPkgVersion" > .chromedriver/pkgVersion
# cache the geckodriver archive
geckodriverPkgVersion="$(node -e "console.log(require('./package.json').devDependencies.geckodriver)")"
if [ -z "$geckodriverPkgVersion" ]; then
echo "UNABLE TO DETERMINE geckodriver VERSIONS"
exit 1
fi
mkdir -p ".geckodriver"
cp "node_modules/geckodriver/geckodriver.tar.gz" .geckodriver/geckodriver.tar.gz
echo "$geckodriverPkgVersion" > .geckodriver/pkgVersion
# archive cacheable directories
mkdir -p "$HOME/.kibana/bootstrap_cache"
tar -cf "$HOME/.kibana/bootstrap_cache/$branch.tar" \
@ -35,7 +45,8 @@ tar -cf "$HOME/.kibana/bootstrap_cache/$branch.tar" \
x-pack/legacy/plugins/reporting/.chromium \
test/plugin_functional/plugins/*/node_modules \
.es \
.chromedriver;
.chromedriver \
.geckodriver;
echo "created $HOME/.kibana/bootstrap_cache/$branch.tar"

3
.github/CODEOWNERS vendored
View file

@ -42,8 +42,11 @@
/x-pack/legacy/plugins/spaces/ @elastic/kibana-security
/x-pack/legacy/plugins/encrypted_saved_objects/ @elastic/kibana-security
/src/legacy/server/csp/ @elastic/kibana-security
/x-pack/plugins/security/ @elastic/kibana-security
# Kibana Stack Services
/packages/kbn-analytics/ @elastic/kibana-stack-services
/src/legacy/core_plugins/ui_metric/ @elastic/kibana-stack-services
/x-pack/legacy/plugins/telemetry @elastic/kibana-stack-services
/x-pack/legacy/plugins/alerting @elastic/kibana-stack-services
/x-pack/legacy/plugins/actions @elastic/kibana-stack-services

View file

@ -2,6 +2,7 @@
"paths": {
"common.ui": "src/legacy/ui",
"data": "src/legacy/core_plugins/data",
"kibana_react": "src/legacy/core_plugins/kibana_react",
"server": "src/legacy/server",
"console": "src/legacy/core_plugins/console",
"core": "src/core",
@ -15,53 +16,16 @@
"kbnVislibVisTypes": "src/legacy/core_plugins/kbn_vislib_vis_types",
"visTypeMarkdown": "src/legacy/core_plugins/vis_type_markdown",
"metricVis": "src/legacy/core_plugins/metric_vis",
"vega": "src/legacy/core_plugins/vega",
"tableVis": "src/legacy/core_plugins/table_vis",
"visTypeVega": "src/legacy/core_plugins/vis_type_vega",
"visTypeTable": "src/legacy/core_plugins/vis_type_table",
"regionMap": "src/legacy/core_plugins/region_map",
"statusPage": "src/legacy/core_plugins/status_page",
"tileMap": "src/legacy/core_plugins/tile_map",
"timelion": "src/legacy/core_plugins/timelion",
"tagCloud": "src/legacy/core_plugins/tagcloud",
"tsvb": "src/legacy/core_plugins/metrics",
"kbnESQuery": "packages/kbn-es-query",
"xpack.actions": "x-pack/legacy/plugins/actions",
"xpack.alerting": "x-pack/legacy/plugins/alerting",
"xpack.apm": "x-pack/legacy/plugins/apm",
"xpack.beatsManagement": "x-pack/legacy/plugins/beats_management",
"xpack.canvas": "x-pack/legacy/plugins/canvas",
"xpack.code": "x-pack/legacy/plugins/code",
"xpack.crossClusterReplication": "x-pack/legacy/plugins/cross_cluster_replication",
"xpack.dashboardMode": "x-pack/legacy/plugins/dashboard_mode",
"xpack.fileUpload": "x-pack/legacy/plugins/file_upload",
"xpack.graph": "x-pack/legacy/plugins/graph",
"xpack.grokDebugger": "x-pack/legacy/plugins/grokdebugger",
"xpack.idxMgmt": "x-pack/legacy/plugins/index_management",
"xpack.indexLifecycleMgmt": "x-pack/legacy/plugins/index_lifecycle_management",
"xpack.infra": "x-pack/legacy/plugins/infra",
"xpack.kueryAutocomplete": "x-pack/legacy/plugins/kuery_autocomplete",
"xpack.licenseMgmt": "x-pack/legacy/plugins/license_management",
"xpack.maps": "x-pack/legacy/plugins/maps",
"xpack.ml": "x-pack/legacy/plugins/ml",
"xpack.logstash": "x-pack/legacy/plugins/logstash",
"xpack.main": "x-pack/legacy/plugins/xpack_main",
"xpack.telemetry": "x-pack/legacy/plugins/telemetry",
"xpack.monitoring": "x-pack/legacy/plugins/monitoring",
"xpack.remoteClusters": "x-pack/legacy/plugins/remote_clusters",
"xpack.reporting": "x-pack/legacy/plugins/reporting",
"xpack.rollupJobs": "x-pack/legacy/plugins/rollup",
"xpack.searchProfiler": "x-pack/legacy/plugins/searchprofiler",
"xpack.siem": "x-pack/legacy/plugins/siem",
"xpack.security": "x-pack/legacy/plugins/security",
"xpack.server": "x-pack/legacy/server",
"xpack.snapshotRestore": "x-pack/legacy/plugins/snapshot_restore",
"xpack.spaces": "x-pack/legacy/plugins/spaces",
"xpack.upgradeAssistant": "x-pack/legacy/plugins/upgrade_assistant",
"xpack.uptime": "x-pack/legacy/plugins/uptime",
"xpack.watcher": "x-pack/legacy/plugins/watcher"
"kbnESQuery": "packages/kbn-es-query"
},
"exclude": ["src/legacy/ui/ui_render/ui_render_mixin.js"],
"translations": [
"x-pack/plugins/translations/translations/zh-CN.json",
"x-pack/plugins/translations/translations/ja-JP.json"
]
"translations": []
}

View file

@ -111,5 +111,5 @@
#ops.interval: 5000
# Specifies locale to be used for all localizable strings, dates and number formats.
# Supported languages are the following: English - en , by default , Chinese - zh-CN .
# Supported languages are the following: English - en , by default , Chinese - zh-CN .
#i18n.locale: "en"

View file

@ -17,7 +17,7 @@ This graph is an easy way to visualize where your application is spending most o
For example, is your app spending time in external calls, database processing, or application code execution?
The time a transaction took to complete is also recorded and displayed on the chart under the "app" label.
"App" indicates that something was happening within the application, but we're not sure exactly what.
"app" indicates that something was happening within the application, but we're not sure exactly what.
This could be a sign that the agent does not have auto-instrumentation for whatever was happening during that time.
It's important to note that if you have asynchronous spans, the sum of all span times may exceed the duration of the transaction.

View file

@ -567,7 +567,7 @@ Default: `"-_index:.kibana"`
|`number`
|The number of documents to retrieve. For better performance, use a smaller data set.
Default: `100`
Default: `1000`
|`fields`
|`string`
@ -1161,7 +1161,7 @@ Default: `""`
|`style`
|The CSS font properties for the content. For example, `font-family` or `font-weight`.
Default: `{<<font_fn>>}`
Default: `{font}`
|===
*Returns:* `render`
@ -1213,13 +1213,13 @@ Default: `""`
|`style`
|The CSS font properties for the metric. For example, `font-family` or `font-weight`.
Default: `{<<font_fn>> size=48 family="'Open Sans', Helvetica, Arial, sans-serif" color="#000000" align=center lHeight=48}`.
Default: `{font size=48 family="'Open Sans', Helvetica, Arial, sans-serif" color="#000000" align=center lHeight=48}`.
|`labelFont`
|`style`
|The CSS font properties for the label. For example, `font-family` or `font-weight`.
Default: `{<<font_fn>> size=14 family="'Open Sans', Helvetica, Arial, sans-serif" color="#000000" align=center}`.
Default: `{font size=14 family="'Open Sans', Helvetica, Arial, sans-serif" color="#000000" align=center}`.
|===
*Returns:* `render`
@ -1305,7 +1305,7 @@ Configures a pie chart element.
|`style`
|The CSS font properties for the labels. For example, `font-family` or `font-weight`.
Default: `{<<font_fn>>}`
Default: `{font}`
|`hole`
|`number`
@ -1335,7 +1335,7 @@ Default: `false`
|`palette`
|A `palette` object for describing the colors to use in this pie chart
Default: `{<<palette_fn>>}`
Default: `{palette}`
|`radius`
|`string`, `number`
@ -1373,13 +1373,13 @@ Configures a plot element.
|`seriesStyle`
|The default style to use for every series.
Default: `{<<seriesStyle_fn>> points=5}`
Default: `{seriesStyle points=5}`
|`font`
|`style`
|The CSS font properties for the labels. For example, `font-family` or `font-weight`.
Default: `{<<font_fn>>}`
Default: `{font}`
|`legend`
|`string`, `boolean`
@ -1391,7 +1391,7 @@ Default: `"ne"`
|`palette`
|A `palette` object for describing the colors to use in this chart
Default: `{<<palette_fn>>}`
Default: `{palette}`
|`seriesStyle` †
|`seriesStyle`
@ -1512,7 +1512,7 @@ Default: `20`
|`style`
|The CSS font properties for the label. For example, `font-family` or `font-weight`.
Default: `{<<font_fn>> size=24 family="'Open Sans', Helvetica, Arial, sans-serif" color="#000000" align=center}`
Default: `{font size=24 family="'Open Sans', Helvetica, Arial, sans-serif" color="#000000" align=center}`
|`label`
|`boolean`, `string`
@ -1572,7 +1572,7 @@ Default: `".canvasRenderEl{\n\n}"`
|`containerStyle`
|The style for the container, including background, border, and opacity.
Default: `{<<containerStyle_fn>>}`
Default: `{containerStyle}`
|===
*Returns:* `render`
@ -1726,7 +1726,7 @@ Alias: `format`
[[rowCount_fn]]
=== `rowCount`
Returns the number of rows. Pairs with `<<ply_fn>>` to get the count of unique column values, or combinations of unique column values.
Returns the number of rows. Pairs with <<ply_fn>> to get the count of unique column values, or combinations of unique column values.
*Accepts:* `datatable`
@ -1964,7 +1964,7 @@ Configures a table element.
|`style`
|The CSS font properties for the contents of the table. For example, `font-family` or `font-weight`.
Default: `{<<font_fn>>}`
Default: `{font}`
|`paginate`
|`boolean`

View file

@ -7,7 +7,7 @@ To get up and running with Canvas, use the following tutorial where you'll creat
[float]
=== Before you begin
For this tutorial, you'll need to add the {kibana-ref}/add-sample-data.html[Sample eCommerce orders data].
For this tutorial, you'll need to add the <<add-sample-data, Sample eCommerce orders data>>.
[float]
=== Create and personalize your workpad

View file

@ -14,7 +14,7 @@ When you create a workpad, you'll start with a blank page, or you can choose a w
* To import an existing workpad, click and drag a workpad JSON file to the *Import workpad JSON file* field.
For advanced workpad examples, add a {kibana-ref}/add-sample-data.html[sample Kibana data set], then select *Canvas* from the *View Data* dropdown list.
For advanced workpad examples, add a <<add-sample-data, sample Kibana data set>>, then select *Canvas* from the *View Data* dropdown list.
For more workpad inspiration, go to the link:https://www.elastic.co/blog/[Elastic Blog].

View file

@ -1,20 +0,0 @@
[[auto-formatting]]
=== Auto formatting
Console can help you format requests. Select one or more requests that you
want to format, click the action icon (image:dev-tools/console/images/wrench.png[]),
and select *Auto indent*.
For example, you might have a request that is formatted like this:
[role="screenshot"]
image::dev-tools/console/images/copy-curl.png["Console close-up"]
Console adjusts the JSON body of the request to apply the indents.
[role="screenshot"]
image::dev-tools/console/images/request.png["Console close-up"]
If you select *Auto indent* on a request that is already well formatted,
Console collapses the request body to a single line per document.
This is helpful when working with {es}'s {ref}/docs-bulk.html[bulk APIs].

View file

@ -1,26 +0,0 @@
[[configuring-console]]
=== Configuring Console
You can configure Console to your preferences.
[float]
==== Configuring settings
*Settings* allows you to modify the font size and set the fileds for
autocomplete.
[role="screenshot"]
image::dev-tools/console/images/console-settings.png["Console settings"]
[float]
[[console-settings]]
==== Disabling Console
If you dont want to use Console, you can disable it by setting `console.enabled`
to false in your `kibana.yml` configuration file. Changing this setting
causes the server to regenerate assets on the next startup,
which might cause a delay before pages start being served.

View file

@ -1,22 +1,20 @@
[[console-kibana]]
== Console
Console enables you to interact with the REST API of {es}. *Note:* You cannot
interact with {kib} API endpoints via Console.
Console enables you to interact with the REST API of {es}. You can:
Go to *Dev Tools > Console* to get started.
* Send requests to {es} and view the responses
* View API documentation
* Get your request history
Console has two main areas:
* The *editor*, where you compose requests to send to {es}.
* The *response* pane, which displays the responses to the request.
To get started, go to *Dev Tools > Console*.
[role="screenshot"]
image::dev-tools/console/images/console.png["Console"]
[float]
[[console-api]]
=== Writing requests
=== Write requests
Console understands commands in a cURL-like syntax.
For example, the following is a `GET` request to the {es} `_search` API.
@ -47,51 +45,92 @@ If you paste the above command into Console, {kib} automatically converts it
to Console syntax. Alternatively, if you want to want to see Console syntax in cURL,
click the action icon (image:dev-tools/console/images/wrench.png[]) and select *Copy as cURL*.
For help with formatting requests, you can use Console's <<auto-formatting, auto formatting>>
feature.
[float]
[[console-autocomplete]]
==== Autocomplete
When you're typing a command, Console makes context-sensitive suggestions.
These suggestions show you the parameters for each API and speed up your typing.
To configure your preferences for autocomplete, go to
<<configuring-console, Settings>>.
[float]
[[auto-formatting]]
==== Auto-formatting
The auto-formatting
capability can help you format requests. Select one or more requests that you
want to format, click the action icon (image:dev-tools/console/images/wrench.png[]),
and then select *Auto indent*.
For example, you might have a request formatted like this:
[role="screenshot"]
image::dev-tools/console/images/copy-curl.png["Console close-up"]
Console adjusts the JSON body of the request to apply the indents.
[role="screenshot"]
image::dev-tools/console/images/request.png["Console close-up"]
If you select *Auto indent* on a request that is already well formatted,
Console collapses the request body to a single line per document.
This is helpful when working with the {es} {ref}/docs-bulk.html[bulk APIs].
[float]
[[console-request]]
=== Submitting requests
=== Submit requests
Once you enter a command in the editor, click the
green triangle to submit the request to {es}.
When you're ready to submit the request to {es}, click the
green triangle.
You can select multiple requests and submit them together.
Console sends the requests to {es} one by one and shows the output
in the response pane. Submitting multiple request is helpful when you're debugging an issue or trying query
combinations in multiple scenarios.
[float]
[[console-autocomplete]]
=== Using autocomplete
When typing a command, Console makes context-sensitive suggestions.
These suggestions can help you explore parameters for each API and speed up typing.
To configure your preferences for autocomplete, go to
<<configuring-console, Settings>>.
[float]
[[console-view-api]]
=== Viewing API docs
=== View API docs
You can view the documentation for an API endpoint by clicking
the action icon (image:dev-tools/console/images/wrench.png[]) and selecting
To view the documentation for an API endpoint, click
the action icon (image:dev-tools/console/images/wrench.png[]) and select
*Open documentation*.
[float]
[[console-history]]
=== Getting your request history
=== Get your request history
Console maintains a list of the last 500 requests that {es} successfully executed.
To view your most recent requests, click *History*. If you select a request
and click *Apply*, {kib} adds it to the editor at the current cursor position.
[float]
[[configuring-console]]
=== Configure Console settings
You can configure the Console font size, JSON syntax,
and autocomplete suggestions in *Settings*.
[role="screenshot"]
image::dev-tools/console/images/console-settings.png["Console Settings"]
[float]
[[keyboard-shortcuts]]
=== Get keyboard shortcuts
For a list of available keyboard
shortcuts, click *Help*.
[float]
[[console-settings]]
=== Disable Console
If you dont want to use Console, you can disable it by setting `console.enabled`
to `false` in your `kibana.yml` configuration file. Changing this setting
causes the server to regenerate assets on the next startup,
which might cause a delay before pages start being served.
include::auto-formatting.asciidoc[]
include::keyboard-shortcuts.asciidoc[]
include::configuring-console.asciidoc[]

Binary file not shown.

Before

Width:  |  Height:  |  Size: 116 KiB

After

Width:  |  Height:  |  Size: 129 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 200 KiB

After

Width:  |  Height:  |  Size: 175 KiB

Before After
Before After

View file

@ -1,22 +0,0 @@
[[keyboard-shortcuts]]
=== Keyboard shortcuts
The keyboard shortcuts below can help you move quickly through Console. You can
also view these shortcuts by clicking *Help* in Console.
[float]
==== General editing
Ctrl/Cmd + I:: Auto indent current request.
Ctrl + Space:: Open Autocomplete (even if not typing).
Ctrl/Cmd + Enter:: Submit request.
Ctrl/Cmd + Up/Down:: Jump to the previous/next request start or end.
Ctrl/Cmd + Alt + L:: Collapse/expand current scope.
Ctrl/Cmd + Option + 0:: Collapse all scopes but the current one. Expand by adding a shift.
[float]
==== When autocomplete is visible
Down arrow:: Switch focus to autocomplete menu. Use arrows to further select a term.
Enter/Tab:: Select the currently selected or the top most term in autocomplete menu.
Esc:: Close autocomplete menu.

View file

@ -31,7 +31,7 @@ indices and shards, it doesn't necessarily represent the actual physical query t
You can select the name of the shard and then click *View details* to see more profiling information,
including details about the query component(s) that ran on the shard, as well as the timing
breakdown of low-level Lucene methods. For more information, see {ref}/search-profile-queries.html[Profiling queries].
breakdown of low-level Lucene methods. For more information, see {ref}/search-profile.html#profiling-queries[Profiling queries].
[float]
=== Index and type filtering

View file

@ -101,4 +101,4 @@ image::dev-tools/searchprofiler/images/gs10.png["Drilling into the first shard's
For more information about how the {searchprofiler} works, how timings are calculated, and
how to interpret various results, see
{ref}/search-profile-queries.html[Profiling queries].
{ref}/search-profile.html#profiling-queries[Profiling queries].

View file

@ -0,0 +1,12 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [kibana-plugin-public](./kibana-plugin-public.md) &gt; [HttpBody](./kibana-plugin-public.httpbody.md)
## HttpBody type
<b>Signature:</b>
```typescript
export declare type HttpBody = BodyInit | null | any;
```

View file

@ -0,0 +1,11 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [kibana-plugin-public](./kibana-plugin-public.md) &gt; [HttpErrorRequest](./kibana-plugin-public.httperrorrequest.md) &gt; [error](./kibana-plugin-public.httperrorrequest.error.md)
## HttpErrorRequest.error property
<b>Signature:</b>
```typescript
error: Error;
```

View file

@ -0,0 +1,20 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [kibana-plugin-public](./kibana-plugin-public.md) &gt; [HttpErrorRequest](./kibana-plugin-public.httperrorrequest.md)
## HttpErrorRequest interface
<b>Signature:</b>
```typescript
export interface HttpErrorRequest
```
## Properties
| Property | Type | Description |
| --- | --- | --- |
| [error](./kibana-plugin-public.httperrorrequest.error.md) | <code>Error</code> | |
| [request](./kibana-plugin-public.httperrorrequest.request.md) | <code>Request</code> | |

View file

@ -0,0 +1,11 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [kibana-plugin-public](./kibana-plugin-public.md) &gt; [HttpErrorRequest](./kibana-plugin-public.httperrorrequest.md) &gt; [request](./kibana-plugin-public.httperrorrequest.request.md)
## HttpErrorRequest.request property
<b>Signature:</b>
```typescript
request?: Request;
```

View file

@ -0,0 +1,11 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [kibana-plugin-public](./kibana-plugin-public.md) &gt; [HttpErrorResponse](./kibana-plugin-public.httperrorresponse.md) &gt; [error](./kibana-plugin-public.httperrorresponse.error.md)
## HttpErrorResponse.error property
<b>Signature:</b>
```typescript
error: Error | HttpFetchError;
```

View file

@ -0,0 +1,19 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [kibana-plugin-public](./kibana-plugin-public.md) &gt; [HttpErrorResponse](./kibana-plugin-public.httperrorresponse.md)
## HttpErrorResponse interface
<b>Signature:</b>
```typescript
export interface HttpErrorResponse extends HttpResponse
```
## Properties
| Property | Type | Description |
| --- | --- | --- |
| [error](./kibana-plugin-public.httperrorresponse.error.md) | <code>Error &#124; HttpFetchError</code> | |

View file

@ -0,0 +1,11 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [kibana-plugin-public](./kibana-plugin-public.md) &gt; [HttpFetchOptions](./kibana-plugin-public.httpfetchoptions.md) &gt; [headers](./kibana-plugin-public.httpfetchoptions.headers.md)
## HttpFetchOptions.headers property
<b>Signature:</b>
```typescript
headers?: HttpHeadersInit;
```

View file

@ -0,0 +1,21 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [kibana-plugin-public](./kibana-plugin-public.md) &gt; [HttpFetchOptions](./kibana-plugin-public.httpfetchoptions.md)
## HttpFetchOptions interface
<b>Signature:</b>
```typescript
export interface HttpFetchOptions extends HttpRequestInit
```
## Properties
| Property | Type | Description |
| --- | --- | --- |
| [headers](./kibana-plugin-public.httpfetchoptions.headers.md) | <code>HttpHeadersInit</code> | |
| [prependBasePath](./kibana-plugin-public.httpfetchoptions.prependbasepath.md) | <code>boolean</code> | |
| [query](./kibana-plugin-public.httpfetchoptions.query.md) | <code>HttpFetchQuery</code> | |

View file

@ -0,0 +1,11 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [kibana-plugin-public](./kibana-plugin-public.md) &gt; [HttpFetchOptions](./kibana-plugin-public.httpfetchoptions.md) &gt; [prependBasePath](./kibana-plugin-public.httpfetchoptions.prependbasepath.md)
## HttpFetchOptions.prependBasePath property
<b>Signature:</b>
```typescript
prependBasePath?: boolean;
```

View file

@ -0,0 +1,11 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [kibana-plugin-public](./kibana-plugin-public.md) &gt; [HttpFetchOptions](./kibana-plugin-public.httpfetchoptions.md) &gt; [query](./kibana-plugin-public.httpfetchoptions.query.md)
## HttpFetchOptions.query property
<b>Signature:</b>
```typescript
query?: HttpFetchQuery;
```

View file

@ -0,0 +1,12 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [kibana-plugin-public](./kibana-plugin-public.md) &gt; [HttpHandler](./kibana-plugin-public.httphandler.md)
## HttpHandler type
<b>Signature:</b>
```typescript
export declare type HttpHandler = (path: string, options?: HttpFetchOptions) => Promise<HttpBody>;
```

View file

@ -0,0 +1,12 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [kibana-plugin-public](./kibana-plugin-public.md) &gt; [HttpHeadersInit](./kibana-plugin-public.httpheadersinit.md)
## HttpHeadersInit interface
<b>Signature:</b>
```typescript
export interface HttpHeadersInit
```

View file

@ -0,0 +1,11 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [kibana-plugin-public](./kibana-plugin-public.md) &gt; [HttpRequestInit](./kibana-plugin-public.httprequestinit.md) &gt; [body](./kibana-plugin-public.httprequestinit.body.md)
## HttpRequestInit.body property
<b>Signature:</b>
```typescript
body?: BodyInit | null;
```

View file

@ -0,0 +1,11 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [kibana-plugin-public](./kibana-plugin-public.md) &gt; [HttpRequestInit](./kibana-plugin-public.httprequestinit.md) &gt; [cache](./kibana-plugin-public.httprequestinit.cache.md)
## HttpRequestInit.cache property
<b>Signature:</b>
```typescript
cache?: RequestCache;
```

View file

@ -0,0 +1,11 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [kibana-plugin-public](./kibana-plugin-public.md) &gt; [HttpRequestInit](./kibana-plugin-public.httprequestinit.md) &gt; [credentials](./kibana-plugin-public.httprequestinit.credentials.md)
## HttpRequestInit.credentials property
<b>Signature:</b>
```typescript
credentials?: RequestCredentials;
```

View file

@ -0,0 +1,11 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [kibana-plugin-public](./kibana-plugin-public.md) &gt; [HttpRequestInit](./kibana-plugin-public.httprequestinit.md) &gt; [headers](./kibana-plugin-public.httprequestinit.headers.md)
## HttpRequestInit.headers property
<b>Signature:</b>
```typescript
headers?: HttpHeadersInit;
```

View file

@ -0,0 +1,11 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [kibana-plugin-public](./kibana-plugin-public.md) &gt; [HttpRequestInit](./kibana-plugin-public.httprequestinit.md) &gt; [integrity](./kibana-plugin-public.httprequestinit.integrity.md)
## HttpRequestInit.integrity property
<b>Signature:</b>
```typescript
integrity?: string;
```

View file

@ -0,0 +1,11 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [kibana-plugin-public](./kibana-plugin-public.md) &gt; [HttpRequestInit](./kibana-plugin-public.httprequestinit.md) &gt; [keepalive](./kibana-plugin-public.httprequestinit.keepalive.md)
## HttpRequestInit.keepalive property
<b>Signature:</b>
```typescript
keepalive?: boolean;
```

View file

@ -0,0 +1,31 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [kibana-plugin-public](./kibana-plugin-public.md) &gt; [HttpRequestInit](./kibana-plugin-public.httprequestinit.md)
## HttpRequestInit interface
<b>Signature:</b>
```typescript
export interface HttpRequestInit
```
## Properties
| Property | Type | Description |
| --- | --- | --- |
| [body](./kibana-plugin-public.httprequestinit.body.md) | <code>BodyInit &#124; null</code> | |
| [cache](./kibana-plugin-public.httprequestinit.cache.md) | <code>RequestCache</code> | |
| [credentials](./kibana-plugin-public.httprequestinit.credentials.md) | <code>RequestCredentials</code> | |
| [headers](./kibana-plugin-public.httprequestinit.headers.md) | <code>HttpHeadersInit</code> | |
| [integrity](./kibana-plugin-public.httprequestinit.integrity.md) | <code>string</code> | |
| [keepalive](./kibana-plugin-public.httprequestinit.keepalive.md) | <code>boolean</code> | |
| [method](./kibana-plugin-public.httprequestinit.method.md) | <code>string</code> | |
| [mode](./kibana-plugin-public.httprequestinit.mode.md) | <code>RequestMode</code> | |
| [redirect](./kibana-plugin-public.httprequestinit.redirect.md) | <code>RequestRedirect</code> | |
| [referrer](./kibana-plugin-public.httprequestinit.referrer.md) | <code>string</code> | |
| [referrerPolicy](./kibana-plugin-public.httprequestinit.referrerpolicy.md) | <code>ReferrerPolicy</code> | |
| [signal](./kibana-plugin-public.httprequestinit.signal.md) | <code>AbortSignal &#124; null</code> | |
| [window](./kibana-plugin-public.httprequestinit.window.md) | <code>any</code> | |

View file

@ -0,0 +1,11 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [kibana-plugin-public](./kibana-plugin-public.md) &gt; [HttpRequestInit](./kibana-plugin-public.httprequestinit.md) &gt; [method](./kibana-plugin-public.httprequestinit.method.md)
## HttpRequestInit.method property
<b>Signature:</b>
```typescript
method?: string;
```

View file

@ -0,0 +1,11 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [kibana-plugin-public](./kibana-plugin-public.md) &gt; [HttpRequestInit](./kibana-plugin-public.httprequestinit.md) &gt; [mode](./kibana-plugin-public.httprequestinit.mode.md)
## HttpRequestInit.mode property
<b>Signature:</b>
```typescript
mode?: RequestMode;
```

View file

@ -0,0 +1,11 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [kibana-plugin-public](./kibana-plugin-public.md) &gt; [HttpRequestInit](./kibana-plugin-public.httprequestinit.md) &gt; [redirect](./kibana-plugin-public.httprequestinit.redirect.md)
## HttpRequestInit.redirect property
<b>Signature:</b>
```typescript
redirect?: RequestRedirect;
```

View file

@ -0,0 +1,11 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [kibana-plugin-public](./kibana-plugin-public.md) &gt; [HttpRequestInit](./kibana-plugin-public.httprequestinit.md) &gt; [referrer](./kibana-plugin-public.httprequestinit.referrer.md)
## HttpRequestInit.referrer property
<b>Signature:</b>
```typescript
referrer?: string;
```

View file

@ -0,0 +1,11 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [kibana-plugin-public](./kibana-plugin-public.md) &gt; [HttpRequestInit](./kibana-plugin-public.httprequestinit.md) &gt; [referrerPolicy](./kibana-plugin-public.httprequestinit.referrerpolicy.md)
## HttpRequestInit.referrerPolicy property
<b>Signature:</b>
```typescript
referrerPolicy?: ReferrerPolicy;
```

View file

@ -0,0 +1,11 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [kibana-plugin-public](./kibana-plugin-public.md) &gt; [HttpRequestInit](./kibana-plugin-public.httprequestinit.md) &gt; [signal](./kibana-plugin-public.httprequestinit.signal.md)
## HttpRequestInit.signal property
<b>Signature:</b>
```typescript
signal?: AbortSignal | null;
```

View file

@ -0,0 +1,11 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [kibana-plugin-public](./kibana-plugin-public.md) &gt; [HttpRequestInit](./kibana-plugin-public.httprequestinit.md) &gt; [window](./kibana-plugin-public.httprequestinit.window.md)
## HttpRequestInit.window property
<b>Signature:</b>
```typescript
window?: any;
```

View file

@ -0,0 +1,11 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [kibana-plugin-public](./kibana-plugin-public.md) &gt; [HttpResponse](./kibana-plugin-public.httpresponse.md) &gt; [body](./kibana-plugin-public.httpresponse.body.md)
## HttpResponse.body property
<b>Signature:</b>
```typescript
body?: HttpBody;
```

View file

@ -0,0 +1,21 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [kibana-plugin-public](./kibana-plugin-public.md) &gt; [HttpResponse](./kibana-plugin-public.httpresponse.md)
## HttpResponse interface
<b>Signature:</b>
```typescript
export interface HttpResponse
```
## Properties
| Property | Type | Description |
| --- | --- | --- |
| [body](./kibana-plugin-public.httpresponse.body.md) | <code>HttpBody</code> | |
| [request](./kibana-plugin-public.httpresponse.request.md) | <code>Request</code> | |
| [response](./kibana-plugin-public.httpresponse.response.md) | <code>Response</code> | |

View file

@ -0,0 +1,11 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [kibana-plugin-public](./kibana-plugin-public.md) &gt; [HttpResponse](./kibana-plugin-public.httpresponse.md) &gt; [request](./kibana-plugin-public.httpresponse.request.md)
## HttpResponse.request property
<b>Signature:</b>
```typescript
request: Request;
```

View file

@ -0,0 +1,11 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [kibana-plugin-public](./kibana-plugin-public.md) &gt; [HttpResponse](./kibana-plugin-public.httpresponse.md) &gt; [response](./kibana-plugin-public.httpresponse.response.md)
## HttpResponse.response property
<b>Signature:</b>
```typescript
response?: Response;
```

View file

@ -42,8 +42,14 @@ The plugin integrates with the core system via lifecycle events: `setup`<!-- -->
| [ErrorToastOptions](./kibana-plugin-public.errortoastoptions.md) | |
| [FatalErrorInfo](./kibana-plugin-public.fatalerrorinfo.md) | Represents the <code>message</code> and <code>stack</code> of a fatal Error |
| [FatalErrorsSetup](./kibana-plugin-public.fatalerrorssetup.md) | FatalErrors stop the Kibana Public Core and displays a fatal error screen with details about the Kibana build and the error. |
| [HttpErrorRequest](./kibana-plugin-public.httperrorrequest.md) | |
| [HttpErrorResponse](./kibana-plugin-public.httperrorresponse.md) | |
| [HttpFetchOptions](./kibana-plugin-public.httpfetchoptions.md) | |
| [HttpFetchQuery](./kibana-plugin-public.httpfetchquery.md) | |
| [HttpHeadersInit](./kibana-plugin-public.httpheadersinit.md) | |
| [HttpInterceptor](./kibana-plugin-public.httpinterceptor.md) | |
| [HttpRequestInit](./kibana-plugin-public.httprequestinit.md) | |
| [HttpResponse](./kibana-plugin-public.httpresponse.md) | |
| [HttpServiceBase](./kibana-plugin-public.httpservicebase.md) | |
| [I18nStart](./kibana-plugin-public.i18nstart.md) | I18nStart.Context is required by any localizable React component from @<!-- -->kbn/i18n and @<!-- -->elastic/eui packages and is supposed to be used as the topmost component for any i18n-compatible React tree. |
| [LegacyNavLink](./kibana-plugin-public.legacynavlink.md) | |
@ -74,6 +80,8 @@ The plugin integrates with the core system via lifecycle events: `setup`<!-- -->
| --- | --- |
| [ChromeHelpExtension](./kibana-plugin-public.chromehelpextension.md) | |
| [ChromeNavLinkUpdateableFields](./kibana-plugin-public.chromenavlinkupdateablefields.md) | |
| [HttpBody](./kibana-plugin-public.httpbody.md) | |
| [HttpHandler](./kibana-plugin-public.httphandler.md) | |
| [HttpSetup](./kibana-plugin-public.httpsetup.md) | |
| [HttpStart](./kibana-plugin-public.httpstart.md) | |
| [PluginInitializer](./kibana-plugin-public.plugininitializer.md) | The <code>plugin</code> export at the root of a plugin's <code>public</code> directory should conform to this interface. |

View file

@ -9,7 +9,7 @@ The interface that should be returned by a `PluginInitializer`<!-- -->.
<b>Signature:</b>
```typescript
export interface Plugin<TSetup = void, TStart = void, TPluginsSetup extends {} = {}, TPluginsStart extends {} = {}>
export interface Plugin<TSetup = void, TStart = void, TPluginsSetup extends object = object, TPluginsStart extends object = object>
```
## Methods

View file

@ -9,5 +9,5 @@ The `plugin` export at the root of a plugin's `public` directory should conform
<b>Signature:</b>
```typescript
export declare type PluginInitializer<TSetup, TStart, TPluginsSetup extends Record<string, any> = {}, TPluginsStart extends Record<string, any> = {}> = (core: PluginInitializerContext) => Plugin<TSetup, TStart, TPluginsSetup, TPluginsStart>;
export declare type PluginInitializer<TSetup, TStart, TPluginsSetup extends object = object, TPluginsStart extends object = object> = (core: PluginInitializerContext) => Plugin<TSetup, TStart, TPluginsSetup, TPluginsStart>;
```

View file

@ -8,5 +8,5 @@
<b>Signature:</b>
```typescript
export declare type APICaller = (endpoint: string, clientParams: Record<string, unknown>, options?: CallAPIOptions) => Promise<unknown>;
export declare type APICaller = (endpoint: string, clientParams: Record<string, any>, options?: CallAPIOptions) => Promise<unknown>;
```

View file

@ -9,5 +9,5 @@ Auth Headers map
<b>Signature:</b>
```typescript
export declare type AuthHeaders = Record<string, string>;
export declare type AuthHeaders = Record<string, string | string[]>;
```

View file

@ -1,13 +0,0 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [kibana-plugin-server](./kibana-plugin-server.md) &gt; [AuthResultData](./kibana-plugin-server.authresultdata.md) &gt; [headers](./kibana-plugin-server.authresultdata.headers.md)
## AuthResultData.headers property
Auth specific headers to authenticate a user against Elasticsearch.
<b>Signature:</b>
```typescript
headers: AuthHeaders;
```

View file

@ -1,21 +0,0 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [kibana-plugin-server](./kibana-plugin-server.md) &gt; [AuthResultData](./kibana-plugin-server.authresultdata.md)
## AuthResultData interface
Result of an incoming request authentication.
<b>Signature:</b>
```typescript
export interface AuthResultData
```
## Properties
| Property | Type | Description |
| --- | --- | --- |
| [headers](./kibana-plugin-server.authresultdata.headers.md) | <code>AuthHeaders</code> | Auth specific headers to authenticate a user against Elasticsearch. |
| [state](./kibana-plugin-server.authresultdata.state.md) | <code>Record&lt;string, unknown&gt;</code> | Data to associate with an incoming request. Any downstream plugin may get access to the data. |

View file

@ -0,0 +1,22 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [kibana-plugin-server](./kibana-plugin-server.md) &gt; [AuthResultParams](./kibana-plugin-server.authresultparams.md)
## AuthResultParams interface
Result of an incoming request authentication.
<b>Signature:</b>
```typescript
export interface AuthResultParams
```
## Properties
| Property | Type | Description |
| --- | --- | --- |
| [requestHeaders](./kibana-plugin-server.authresultparams.requestheaders.md) | <code>AuthHeaders</code> | Auth specific headers to attach to a request object. Used to perform a request to Elasticsearch on behalf of an authenticated user. |
| [responseHeaders](./kibana-plugin-server.authresultparams.responseheaders.md) | <code>AuthHeaders</code> | Auth specific headers to attach to a response object. Used to send back authentication mechanism related headers to a client when needed. |
| [state](./kibana-plugin-server.authresultparams.state.md) | <code>Record&lt;string, any&gt;</code> | Data to associate with an incoming request. Any downstream plugin may get access to the data. |

View file

@ -0,0 +1,13 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [kibana-plugin-server](./kibana-plugin-server.md) &gt; [AuthResultParams](./kibana-plugin-server.authresultparams.md) &gt; [requestHeaders](./kibana-plugin-server.authresultparams.requestheaders.md)
## AuthResultParams.requestHeaders property
Auth specific headers to attach to a request object. Used to perform a request to Elasticsearch on behalf of an authenticated user.
<b>Signature:</b>
```typescript
requestHeaders?: AuthHeaders;
```

View file

@ -0,0 +1,13 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [kibana-plugin-server](./kibana-plugin-server.md) &gt; [AuthResultParams](./kibana-plugin-server.authresultparams.md) &gt; [responseHeaders](./kibana-plugin-server.authresultparams.responseheaders.md)
## AuthResultParams.responseHeaders property
Auth specific headers to attach to a response object. Used to send back authentication mechanism related headers to a client when needed.
<b>Signature:</b>
```typescript
responseHeaders?: AuthHeaders;
```

View file

@ -1,13 +1,13 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [kibana-plugin-server](./kibana-plugin-server.md) &gt; [AuthResultData](./kibana-plugin-server.authresultdata.md) &gt; [state](./kibana-plugin-server.authresultdata.state.md)
[Home](./index.md) &gt; [kibana-plugin-server](./kibana-plugin-server.md) &gt; [AuthResultParams](./kibana-plugin-server.authresultparams.md) &gt; [state](./kibana-plugin-server.authresultparams.state.md)
## AuthResultData.state property
## AuthResultParams.state property
Data to associate with an incoming request. Any downstream plugin may get access to the data.
<b>Signature:</b>
```typescript
state: Record<string, unknown>;
state?: Record<string, any>;
```

View file

@ -9,5 +9,5 @@ Authentication is successful with given credentials, allow request to pass throu
<b>Signature:</b>
```typescript
authenticated: (data?: Partial<AuthResultData>) => AuthResult;
authenticated: (data?: AuthResultParams) => AuthResult;
```

View file

@ -16,7 +16,7 @@ export interface AuthToolkit
| Property | Type | Description |
| --- | --- | --- |
| [authenticated](./kibana-plugin-server.authtoolkit.authenticated.md) | <code>(data?: Partial&lt;AuthResultData&gt;) =&gt; AuthResult</code> | Authentication is successful with given credentials, allow request to pass through |
| [authenticated](./kibana-plugin-server.authtoolkit.authenticated.md) | <code>(data?: AuthResultParams) =&gt; AuthResult</code> | Authentication is successful with given credentials, allow request to pass through |
| [redirected](./kibana-plugin-server.authtoolkit.redirected.md) | <code>(url: string) =&gt; AuthResult</code> | Authentication requires to interrupt request handling and redirect to a configured url |
| [rejected](./kibana-plugin-server.authtoolkit.rejected.md) | <code>(error: Error, options?: {</code><br/><code> statusCode?: number;</code><br/><code> }) =&gt; AuthResult</code> | Authentication is unsuccessful, fail the request with specified error. |

View file

@ -9,5 +9,5 @@ Calls specified endpoint with provided clientParams on behalf of the Kibana inte
<b>Signature:</b>
```typescript
callAsInternalUser: (endpoint: string, clientParams?: Record<string, unknown>, options?: CallAPIOptions | undefined) => Promise<any>;
callAsInternalUser: (endpoint: string, clientParams?: Record<string, any>, options?: CallAPIOptions | undefined) => Promise<any>;
```

View file

@ -22,7 +22,7 @@ export declare class ClusterClient
| Property | Modifiers | Type | Description |
| --- | --- | --- | --- |
| [callAsInternalUser](./kibana-plugin-server.clusterclient.callasinternaluser.md) | | <code>(endpoint: string, clientParams?: Record&lt;string, unknown&gt;, options?: CallAPIOptions &#124; undefined) =&gt; Promise&lt;any&gt;</code> | Calls specified endpoint with provided clientParams on behalf of the Kibana internal user. |
| [callAsInternalUser](./kibana-plugin-server.clusterclient.callasinternaluser.md) | | <code>(endpoint: string, clientParams?: Record&lt;string, any&gt;, options?: CallAPIOptions &#124; undefined) =&gt; Promise&lt;any&gt;</code> | Calls specified endpoint with provided clientParams on behalf of the Kibana internal user. |
## Methods

View file

@ -19,13 +19,15 @@ The plugin integrates with the core system via lifecycle events: `setup`<!-- -->
| [KibanaRequest](./kibana-plugin-server.kibanarequest.md) | Kibana specific abstraction for an incoming request. |
| [Router](./kibana-plugin-server.router.md) | |
| [SavedObjectsErrorHelpers](./kibana-plugin-server.savedobjectserrorhelpers.md) | |
| [SavedObjectsSchema](./kibana-plugin-server.savedobjectsschema.md) | |
| [SavedObjectsSerializer](./kibana-plugin-server.savedobjectsserializer.md) | |
| [ScopedClusterClient](./kibana-plugin-server.scopedclusterclient.md) | Serves the same purpose as "normal" <code>ClusterClient</code> but exposes additional <code>callAsCurrentUser</code> method that doesn't use credentials of the Kibana internal user (as <code>callAsInternalUser</code> does) to request Elasticsearch API, but rather passes HTTP headers extracted from the current user request to the API |
## Interfaces
| Interface | Description |
| --- | --- |
| [AuthResultData](./kibana-plugin-server.authresultdata.md) | Result of an incoming request authentication. |
| [AuthResultParams](./kibana-plugin-server.authresultparams.md) | Result of an incoming request authentication. |
| [AuthToolkit](./kibana-plugin-server.authtoolkit.md) | A tool set defining an outcome of Auth interceptor for incoming request. |
| [CallAPIOptions](./kibana-plugin-server.callapioptions.md) | The set of options that defines how API call should be made and result be processed. |
| [CoreSetup](./kibana-plugin-server.coresetup.md) | Context passed to the plugins <code>setup</code> method. |
@ -60,6 +62,7 @@ The plugin integrates with the core system via lifecycle events: `setup`<!-- -->
| [SavedObjectsFindOptions](./kibana-plugin-server.savedobjectsfindoptions.md) | |
| [SavedObjectsFindResponse](./kibana-plugin-server.savedobjectsfindresponse.md) | |
| [SavedObjectsMigrationVersion](./kibana-plugin-server.savedobjectsmigrationversion.md) | Information about the migrations that have been applied to this SavedObject. When Kibana starts up, KibanaMigrator detects outdated documents and migrates them based on this value. For each migration that has been applied, the plugin's name is used as a key and the latest migration version as the value. |
| [SavedObjectsRawDoc](./kibana-plugin-server.savedobjectsrawdoc.md) | A raw document as represented directly in the saved object index. |
| [SavedObjectsService](./kibana-plugin-server.savedobjectsservice.md) | |
| [SavedObjectsUpdateOptions](./kibana-plugin-server.savedobjectsupdateoptions.md) | |
| [SavedObjectsUpdateResponse](./kibana-plugin-server.savedobjectsupdateresponse.md) | |

View file

@ -9,7 +9,7 @@ The interface that should be returned by a `PluginInitializer`<!-- -->.
<b>Signature:</b>
```typescript
export interface Plugin<TSetup = void, TStart = void, TPluginsSetup extends {} = {}, TPluginsStart extends {} = {}>
export interface Plugin<TSetup = void, TStart = void, TPluginsSetup extends object = object, TPluginsStart extends object = object>
```
## Methods

View file

@ -9,5 +9,5 @@ The `plugin` export at the root of a plugin's `server` directory should conform
<b>Signature:</b>
```typescript
export declare type PluginInitializer<TSetup, TStart, TPluginsSetup extends Record<PluginName, unknown> = {}, TPluginsStart extends Record<PluginName, unknown> = {}> = (core: PluginInitializerContext) => Plugin<TSetup, TStart, TPluginsSetup, TPluginsStart>;
export declare type PluginInitializer<TSetup, TStart, TPluginsSetup extends object = object, TPluginsStart extends object = object> = (core: PluginInitializerContext) => Plugin<TSetup, TStart, TPluginsSetup, TPluginsStart>;
```

View file

@ -0,0 +1,11 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [kibana-plugin-server](./kibana-plugin-server.md) &gt; [SavedObjectsRawDoc](./kibana-plugin-server.savedobjectsrawdoc.md) &gt; [\_id](./kibana-plugin-server.savedobjectsrawdoc._id.md)
## SavedObjectsRawDoc.\_id property
<b>Signature:</b>
```typescript
_id: string;
```

View file

@ -0,0 +1,11 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [kibana-plugin-server](./kibana-plugin-server.md) &gt; [SavedObjectsRawDoc](./kibana-plugin-server.savedobjectsrawdoc.md) &gt; [\_primary\_term](./kibana-plugin-server.savedobjectsrawdoc._primary_term.md)
## SavedObjectsRawDoc.\_primary\_term property
<b>Signature:</b>
```typescript
_primary_term?: number;
```

View file

@ -0,0 +1,11 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [kibana-plugin-server](./kibana-plugin-server.md) &gt; [SavedObjectsRawDoc](./kibana-plugin-server.savedobjectsrawdoc.md) &gt; [\_seq\_no](./kibana-plugin-server.savedobjectsrawdoc._seq_no.md)
## SavedObjectsRawDoc.\_seq\_no property
<b>Signature:</b>
```typescript
_seq_no?: number;
```

View file

@ -0,0 +1,11 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [kibana-plugin-server](./kibana-plugin-server.md) &gt; [SavedObjectsRawDoc](./kibana-plugin-server.savedobjectsrawdoc.md) &gt; [\_source](./kibana-plugin-server.savedobjectsrawdoc._source.md)
## SavedObjectsRawDoc.\_source property
<b>Signature:</b>
```typescript
_source: any;
```

View file

@ -0,0 +1,11 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [kibana-plugin-server](./kibana-plugin-server.md) &gt; [SavedObjectsRawDoc](./kibana-plugin-server.savedobjectsrawdoc.md) &gt; [\_type](./kibana-plugin-server.savedobjectsrawdoc._type.md)
## SavedObjectsRawDoc.\_type property
<b>Signature:</b>
```typescript
_type?: string;
```

View file

@ -0,0 +1,24 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [kibana-plugin-server](./kibana-plugin-server.md) &gt; [SavedObjectsRawDoc](./kibana-plugin-server.savedobjectsrawdoc.md)
## SavedObjectsRawDoc interface
A raw document as represented directly in the saved object index.
<b>Signature:</b>
```typescript
export interface RawDoc
```
## Properties
| Property | Type | Description |
| --- | --- | --- |
| [\_id](./kibana-plugin-server.savedobjectsrawdoc._id.md) | <code>string</code> | |
| [\_primary\_term](./kibana-plugin-server.savedobjectsrawdoc._primary_term.md) | <code>number</code> | |
| [\_seq\_no](./kibana-plugin-server.savedobjectsrawdoc._seq_no.md) | <code>number</code> | |
| [\_source](./kibana-plugin-server.savedobjectsrawdoc._source.md) | <code>any</code> | |
| [\_type](./kibana-plugin-server.savedobjectsrawdoc._type.md) | <code>string</code> | |

View file

@ -0,0 +1,20 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [kibana-plugin-server](./kibana-plugin-server.md) &gt; [SavedObjectsSchema](./kibana-plugin-server.savedobjectsschema.md) &gt; [(constructor)](./kibana-plugin-server.savedobjectsschema.(constructor).md)
## SavedObjectsSchema.(constructor)
Constructs a new instance of the `SavedObjectsSchema` class
<b>Signature:</b>
```typescript
constructor(schemaDefinition?: SavedObjectsSchemaDefinition);
```
## Parameters
| Parameter | Type | Description |
| --- | --- | --- |
| schemaDefinition | <code>SavedObjectsSchemaDefinition</code> | |

View file

@ -0,0 +1,22 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [kibana-plugin-server](./kibana-plugin-server.md) &gt; [SavedObjectsSchema](./kibana-plugin-server.savedobjectsschema.md) &gt; [getIndexForType](./kibana-plugin-server.savedobjectsschema.getindexfortype.md)
## SavedObjectsSchema.getIndexForType() method
<b>Signature:</b>
```typescript
getIndexForType(type: string): string | undefined;
```
## Parameters
| Parameter | Type | Description |
| --- | --- | --- |
| type | <code>string</code> | |
<b>Returns:</b>
`string | undefined`

View file

@ -0,0 +1,22 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [kibana-plugin-server](./kibana-plugin-server.md) &gt; [SavedObjectsSchema](./kibana-plugin-server.savedobjectsschema.md) &gt; [isHiddenType](./kibana-plugin-server.savedobjectsschema.ishiddentype.md)
## SavedObjectsSchema.isHiddenType() method
<b>Signature:</b>
```typescript
isHiddenType(type: string): boolean;
```
## Parameters
| Parameter | Type | Description |
| --- | --- | --- |
| type | <code>string</code> | |
<b>Returns:</b>
`boolean`

View file

@ -0,0 +1,22 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [kibana-plugin-server](./kibana-plugin-server.md) &gt; [SavedObjectsSchema](./kibana-plugin-server.savedobjectsschema.md) &gt; [isNamespaceAgnostic](./kibana-plugin-server.savedobjectsschema.isnamespaceagnostic.md)
## SavedObjectsSchema.isNamespaceAgnostic() method
<b>Signature:</b>
```typescript
isNamespaceAgnostic(type: string): boolean;
```
## Parameters
| Parameter | Type | Description |
| --- | --- | --- |
| type | <code>string</code> | |
<b>Returns:</b>
`boolean`

View file

@ -0,0 +1,26 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [kibana-plugin-server](./kibana-plugin-server.md) &gt; [SavedObjectsSchema](./kibana-plugin-server.savedobjectsschema.md)
## SavedObjectsSchema class
<b>Signature:</b>
```typescript
export declare class SavedObjectsSchema
```
## Constructors
| Constructor | Modifiers | Description |
| --- | --- | --- |
| [(constructor)(schemaDefinition)](./kibana-plugin-server.savedobjectsschema.(constructor).md) | | Constructs a new instance of the <code>SavedObjectsSchema</code> class |
## Methods
| Method | Modifiers | Description |
| --- | --- | --- |
| [getIndexForType(type)](./kibana-plugin-server.savedobjectsschema.getindexfortype.md) | | |
| [isHiddenType(type)](./kibana-plugin-server.savedobjectsschema.ishiddentype.md) | | |
| [isNamespaceAgnostic(type)](./kibana-plugin-server.savedobjectsschema.isnamespaceagnostic.md) | | |

View file

@ -0,0 +1,20 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [kibana-plugin-server](./kibana-plugin-server.md) &gt; [SavedObjectsSerializer](./kibana-plugin-server.savedobjectsserializer.md) &gt; [(constructor)](./kibana-plugin-server.savedobjectsserializer.(constructor).md)
## SavedObjectsSerializer.(constructor)
Constructs a new instance of the `SavedObjectsSerializer` class
<b>Signature:</b>
```typescript
constructor(schema: SavedObjectsSchema);
```
## Parameters
| Parameter | Type | Description |
| --- | --- | --- |
| schema | <code>SavedObjectsSchema</code> | |

View file

@ -0,0 +1,26 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [kibana-plugin-server](./kibana-plugin-server.md) &gt; [SavedObjectsSerializer](./kibana-plugin-server.savedobjectsserializer.md) &gt; [generateRawId](./kibana-plugin-server.savedobjectsserializer.generaterawid.md)
## SavedObjectsSerializer.generateRawId() method
Given a saved object type and id, generates the compound id that is stored in the raw document.
<b>Signature:</b>
```typescript
generateRawId(namespace: string | undefined, type: string, id?: string): string;
```
## Parameters
| Parameter | Type | Description |
| --- | --- | --- |
| namespace | <code>string &#124; undefined</code> | |
| type | <code>string</code> | |
| id | <code>string</code> | |
<b>Returns:</b>
`string`

View file

@ -0,0 +1,24 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [kibana-plugin-server](./kibana-plugin-server.md) &gt; [SavedObjectsSerializer](./kibana-plugin-server.savedobjectsserializer.md) &gt; [isRawSavedObject](./kibana-plugin-server.savedobjectsserializer.israwsavedobject.md)
## SavedObjectsSerializer.isRawSavedObject() method
Determines whether or not the raw document can be converted to a saved object.
<b>Signature:</b>
```typescript
isRawSavedObject(rawDoc: RawDoc): any;
```
## Parameters
| Parameter | Type | Description |
| --- | --- | --- |
| rawDoc | <code>RawDoc</code> | |
<b>Returns:</b>
`any`

View file

@ -0,0 +1,27 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [kibana-plugin-server](./kibana-plugin-server.md) &gt; [SavedObjectsSerializer](./kibana-plugin-server.savedobjectsserializer.md)
## SavedObjectsSerializer class
<b>Signature:</b>
```typescript
export declare class SavedObjectsSerializer
```
## Constructors
| Constructor | Modifiers | Description |
| --- | --- | --- |
| [(constructor)(schema)](./kibana-plugin-server.savedobjectsserializer.(constructor).md) | | Constructs a new instance of the <code>SavedObjectsSerializer</code> class |
## Methods
| Method | Modifiers | Description |
| --- | --- | --- |
| [generateRawId(namespace, type, id)](./kibana-plugin-server.savedobjectsserializer.generaterawid.md) | | Given a saved object type and id, generates the compound id that is stored in the raw document. |
| [isRawSavedObject(rawDoc)](./kibana-plugin-server.savedobjectsserializer.israwsavedobject.md) | | Determines whether or not the raw document can be converted to a saved object. |
| [rawToSavedObject(doc)](./kibana-plugin-server.savedobjectsserializer.rawtosavedobject.md) | | Converts a document from the format that is stored in elasticsearch to the saved object client format. |
| [savedObjectToRaw(savedObj)](./kibana-plugin-server.savedobjectsserializer.savedobjecttoraw.md) | | Converts a document from the saved object client format to the format that is stored in elasticsearch. |

View file

@ -0,0 +1,24 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [kibana-plugin-server](./kibana-plugin-server.md) &gt; [SavedObjectsSerializer](./kibana-plugin-server.savedobjectsserializer.md) &gt; [rawToSavedObject](./kibana-plugin-server.savedobjectsserializer.rawtosavedobject.md)
## SavedObjectsSerializer.rawToSavedObject() method
Converts a document from the format that is stored in elasticsearch to the saved object client format.
<b>Signature:</b>
```typescript
rawToSavedObject(doc: RawDoc): SanitizedSavedObjectDoc;
```
## Parameters
| Parameter | Type | Description |
| --- | --- | --- |
| doc | <code>RawDoc</code> | |
<b>Returns:</b>
`SanitizedSavedObjectDoc`

View file

@ -0,0 +1,24 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [kibana-plugin-server](./kibana-plugin-server.md) &gt; [SavedObjectsSerializer](./kibana-plugin-server.savedobjectsserializer.md) &gt; [savedObjectToRaw](./kibana-plugin-server.savedobjectsserializer.savedobjecttoraw.md)
## SavedObjectsSerializer.savedObjectToRaw() method
Converts a document from the saved object client format to the format that is stored in elasticsearch.
<b>Signature:</b>
```typescript
savedObjectToRaw(savedObj: SanitizedSavedObjectDoc): RawDoc;
```
## Parameters
| Parameter | Type | Description |
| --- | --- | --- |
| savedObj | <code>SanitizedSavedObjectDoc</code> | |
<b>Returns:</b>
`RawDoc`

View file

@ -9,7 +9,7 @@ Calls specified `endpoint` with provided `clientParams` on behalf of the user in
<b>Signature:</b>
```typescript
callAsCurrentUser(endpoint: string, clientParams?: Record<string, unknown>, options?: CallAPIOptions): Promise<unknown>;
callAsCurrentUser(endpoint: string, clientParams?: Record<string, any>, options?: CallAPIOptions): Promise<unknown>;
```
## Parameters
@ -17,7 +17,7 @@ callAsCurrentUser(endpoint: string, clientParams?: Record<string, unknown>, opti
| Parameter | Type | Description |
| --- | --- | --- |
| endpoint | <code>string</code> | String descriptor of the endpoint e.g. <code>cluster.getSettings</code> or <code>ping</code>. |
| clientParams | <code>Record&lt;string, unknown&gt;</code> | A dictionary of parameters that will be passed directly to the Elasticsearch JS client. |
| clientParams | <code>Record&lt;string, any&gt;</code> | A dictionary of parameters that will be passed directly to the Elasticsearch JS client. |
| options | <code>CallAPIOptions</code> | Options that affect the way we call the API and process the result. |
<b>Returns:</b>

View file

@ -9,7 +9,7 @@ Calls specified `endpoint` with provided `clientParams` on behalf of the Kibana
<b>Signature:</b>
```typescript
callAsInternalUser(endpoint: string, clientParams?: Record<string, unknown>, options?: CallAPIOptions): Promise<unknown>;
callAsInternalUser(endpoint: string, clientParams?: Record<string, any>, options?: CallAPIOptions): Promise<unknown>;
```
## Parameters
@ -17,7 +17,7 @@ callAsInternalUser(endpoint: string, clientParams?: Record<string, unknown>, opt
| Parameter | Type | Description |
| --- | --- | --- |
| endpoint | <code>string</code> | String descriptor of the endpoint e.g. <code>cluster.getSettings</code> or <code>ping</code>. |
| clientParams | <code>Record&lt;string, unknown&gt;</code> | A dictionary of parameters that will be passed directly to the Elasticsearch JS client. |
| clientParams | <code>Record&lt;string, any&gt;</code> | A dictionary of parameters that will be passed directly to the Elasticsearch JS client. |
| options | <code>CallAPIOptions</code> | Options that affect the way we call the API and process the result. |
<b>Returns:</b>

View file

@ -4,47 +4,57 @@
[partintro]
--
Ready to get some hands-on experience with {kib}? There are two ways to start:
Youre new to Kibana and want to give it a try. {kib} has sample data sets and
tutorials to help you get started.
* <<tutorial-sample-data, Explore {kib} using the Flights dashboard>>
+
Load the Flights sample data and dashboard with one click and start
interacting with {kib} visualizations in seconds.
[float]
=== Sample data
* <<tutorial-build-dashboard, Build your own dashboard>>
+
Manually load a data set and build your own visualizations and dashboard.
You can use the <<add-sample-data, sample data
sets>> to take {kib} for a test ride without having
to go through the process of loading data yourself. With one click,
you can install a sample data set and start interacting with
{kib} visualizations in seconds. You can access the sample data
from the {kib} home page.
Before you begin, make sure you've <<install, installed Kibana>> and established
a {kibana-ref}/connect-to-elasticsearch.html[connection to Elasticsearch].
You might also be interested in the
https://www.elastic.co/webinars/getting-started-kibana[Getting Started with Kibana]
video tutorial.
[float]
=== Add data tutorials
{kib} has built-in *Add Data* tutorials to help you set up
data flows in the Elastic Stack. These tutorials are available
from the Kibana home page. In *Add Data to Kibana*, find the data type
youre interested in, and click its button to view a list of available tutorials.
[float]
=== Hands-on experience
The following tutorials walk you through searching, analyzing,
and visualizing data.
* <<tutorial-sample-data, Explore Kibana using sample data>>. You'll
learn to filter and query data, edit visualizations, and interact with dashboards.
* <<tutorial-build-dashboard, Build your own dashboard>>. You'll manually load a data set and build
your own visualizations and dashboard.
[float]
=== Before you begin
Make sure you've <<install, installed Kibana>> and established
a <<connect-to-elasticsearch, connection to Elasticsearch>>.
If you are running our https://cloud.elastic.co[hosted Elasticsearch Service]
on Elastic Cloud, you can access Kibana with a single click.
--
include::getting-started/add-sample-data.asciidoc[]
include::getting-started/tutorial-sample-data.asciidoc[]
include::getting-started/tutorial-sample-filter.asciidoc[]
include::getting-started/tutorial-sample-query.asciidoc[]
include::getting-started/tutorial-sample-discover.asciidoc[]
include::getting-started/tutorial-sample-edit.asciidoc[]
include::getting-started/tutorial-sample-inspect.asciidoc[]
include::getting-started/tutorial-sample-remove.asciidoc[]
include::getting-started/tutorial-full-experience.asciidoc[]
include::getting-started/tutorial-load-dataset.asciidoc[]
include::getting-started/tutorial-define-index.asciidoc[]
include::getting-started/tutorial-discovering.asciidoc[]
@ -53,6 +63,3 @@ include::getting-started/tutorial-visualizing.asciidoc[]
include::getting-started/tutorial-dashboard.asciidoc[]
include::getting-started/tutorial-inspect.asciidoc[]
include::getting-started/wrapping-up.asciidoc[]

View file

@ -1,32 +1,28 @@
[[add-sample-data]]
== Get up and running with sample data
== Add sample data
{kib} has several sample data sets that you can use to explore {kib} before loading your own data.
Sample data sets install prepackaged visualizations, dashboards,
{kibana-ref}/canvas-getting-started.html[Canvas workpads],
and {kibana-ref}/maps.html[Maps].
The sample data sets showcase a variety of use cases:
These sample data sets showcase a variety of use cases:
* *eCommerce orders* includes visualizations for product-related information,
such as cost, revenue, and price.
* *Flight data* enables you to view and interact with flight routes.
* *Web logs* lets you analyze website traffic.
* *Flight data* enables you to view and interact with flight routes for four airlines.
To get started, go to the home page and click the link next to *Add sample data*.
Once you have loaded a data set, click *View data* to view visualizations in *Dashboard*.
*Note:* The timestamps in the sample data sets are relative to when they are installed.
If you uninstall and reinstall a data set, the timestamps will change to reflect the most recent installation.
To get started, go to the {kib} home page and click the link underneath *Add sample data*.
Once you've loaded a data set, click *View data* to view prepackaged
visualizations, dashboards, Canvas workpads, Maps, and Machine Learning jobs.
[role="screenshot"]
image::images/add-sample-data.png[]
NOTE: The timestamps in the sample data sets are relative to when they are installed.
If you uninstall and reinstall a data set, the timestamps will change to reflect the most recent installation.
[float]
==== Next steps
=== Next steps
Play with the sample flight data in the {kibana-ref}/tutorial-sample-data.html[flight dashboard tutorial].
* Explore {kib} by following the <<tutorial-sample-data, sample data tutorial>>.
Learn how to load data, define index patterns and build visualizations by {kibana-ref}/tutorial-build-dashboard.html[building your own dashboard].
* Learn how to load data, define index patterns, and build visualizations by <<tutorial-build-dashboard, building your own dashboard>>.

View file

@ -1,27 +1,57 @@
[[tutorial-dashboard]]
=== Displaying your visualizations in a dashboard
=== Add visualizations to a dashboard
A dashboard is a collection of visualizations that you can arrange and share.
You'll build a dashboard that contains the visualizations you saved during
this tutorial.
. Open *Dashboard*.
. Click *Create new dashboard*.
. Click *Add*.
. On the Dashboard overview page, click *Create new dashboard*.
. Click *Add* in the menu bar.
. Add *Bar Example*, *Map Example*, *Markdown Example*, and *Pie Example*.
Your sample dashboard look like this:
+
Your sample dashboard should look like this:
+
[role="screenshot"]
image::images/tutorial-dashboard.png[]
. Try out the editing controls.
+
You can rearrange the visualizations by clicking a the header of a
visualization and dragging. The gear icon in the top right of a visualization
displays controls for editing and deleting the visualization. A resize control
is on the lower right.
To get a link to share or HTML code to embed the dashboard in a web page, save
the dashboard and click *Share*.
. *Save* your dashboard.
==== Inspect the data
Seeing visualizations of your data is great,
but sometimes you need to look at the actual data to
understand what's really going on. You can inspect the data behind any visualization
and view the {es} query used to retrieve it.
. In the dashboard, hover the pointer over the pie chart, and then click the icon in the upper right.
. From the *Options* menu, select *Inspect*.
+
[role="screenshot"]
image::images/tutorial-full-inspect1.png[]
. To look at the query used to fetch the data for the visualization, select *View > Requests*
in the upper right of the Inspect pane.
[float]
=== Next steps
Now that you have a handle on the basics, you're ready to start exploring
your own data with Kibana.
* See {kibana-ref}/discover.html[Discover] for information about searching and filtering
your data.
* See {kibana-ref}/visualize.html[Visualize] for information about the visualization
types Kibana has to offer.
* See {kibana-ref}/management.html[Management] for information about configuring Kibana
and managing your saved objects.
* See {kibana-ref}/console-kibana.html[Console] to learn about the interactive
console you can use to submit REST requests to Elasticsearch.
*Save* your dashboard.

View file

@ -1,45 +1,53 @@
[[tutorial-define-index]]
=== Defining your index patterns
=== Define your index patterns
Index patterns tell Kibana which Elasticsearch indices you want to explore.
An index pattern can match the name of a single index, or include a wildcard
(*) to match multiple indices.
(*) to match multiple indices.
For example, Logstash typically creates a
series of indices in the format `logstash-YYYY.MMM.DD`. To explore all
of the log data from May 2018, you could specify the index pattern
`logstash-2018.05*`.
You'll create patterns for the Shakespeare data set, which has an
[float]
==== Create your first index pattern
First you'll create index patterns for the Shakespeare data set, which has an
index named `shakespeare,` and the accounts data set, which has an index named
`bank.` These data sets don't contain time-series data.
`bank`. These data sets don't contain time series data.
. In Kibana, open *Management*, and then click *Index Patterns.*
. If this is your first index pattern, the *Create index pattern* page opens automatically.
Otherwise, click *Create index pattern* in the upper left.
Otherwise, click *Create index pattern*.
. Enter `shakes*` in the *Index pattern* field.
+
[role="screenshot"]
image::images/tutorial-pattern-1.png[]
. Click *Next step*.
. In *Configure settings*, click *Create index pattern*. For this pattern,
you don't need to configure any settings.
. Define a second index pattern named `ba*` You don't need to configure any settings for this pattern.
. In *Configure settings*, click *Create index pattern*.
+
Youre presented a table of all fields and associated data types in the index.
Now create an index pattern for the Logstash data set. This data set
contains time-series data.
. Return to the *Index patterns* overview page and define a second index pattern named `ba*`.
[float]
==== Create an index pattern for time series data
Now create an index pattern for the Logstash index, which
contains time series data.
. Define an index pattern named `logstash*`.
. Click *Next step*.
. In *Configure settings*, select *@timestamp* in the *Time Filter field name* dropdown menu.
. Open the *Time Filter field name* dropdown and select *@timestamp*.
. Click *Create index pattern*.
NOTE: When you define an index pattern, the indices that match that pattern must
exist in Elasticsearch and they must contain data. To check which indices are
available, go to *Dev Tools > Console* and enter `GET _cat/indices`. Alternately, use
`curl -XGET "http://localhost:9200/_cat/indices"`.

View file

@ -1,5 +1,5 @@
[[tutorial-discovering]]
=== Discovering your data
=== Discover your data
Using the Discover application, you can enter
an {ref}/query-dsl-query-string-query.html#query-string-syntax[Elasticsearch
@ -11,23 +11,26 @@ The current index pattern appears below the filter bar, in this case `shakes*`.
You might need to click *New* in the menu bar to refresh the data.
. Click the caret to the right of the current index pattern, and select `ba*`.
+
By default, all fields are shown for each matching document.
. In the search field, enter the following string:
+
[source,text]
account_number<100 AND balance>47500
+
The search returns all account numbers between zero and 99 with balances in
excess of 47,500. It returns results for account numbers 8, 32, 78, 85, and 97.
excess of 47,500. Results appear for account numbers 8, 32, 78, 85, and 97.
+
[role="screenshot"]
image::images/tutorial-discover-2.png[]
By default, all fields are shown for each matching document. To choose which
fields to display, hover the pointer over the list of *Available Fields*
+
. To choose which
fields to display, hover the pointer over the list of *Available fields*
and then click *add* next to each field you want include as a column in the table.
+
For example, if you add the `account_number` field, the display changes to a list of five
account numbers.
+
[role="screenshot"]
image::images/tutorial-discover-3.png[]

View file

@ -1,12 +1,213 @@
[[tutorial-build-dashboard]]
== Building your own dashboard
== Build your own dashboard
Ready to load some data and build a dashboard? This tutorial shows you how to:
Want to load some data into Kibana and build a dashboard? This tutorial shows you how to:
* Load a data set into Elasticsearch
* Define an index pattern
* Discover and explore the data
* Visualize the data
* Add visualizations to a dashboard
* Inspect the data behind a visualization
* <<tutorial-load-dataset, Load a data set into Elasticsearch>>
* <<tutorial-define-index, Define an index pattern to connect to Elasticsearch>>
* <<tutorial-discovering, Discover and explore the data>>
* <<tutorial-visualizing, Visualize the data>>
* <<tutorial-dashboard, Add visualizations to a dashboard>>
When you complete this tutorial, you'll have a dashboard that looks like this.
[role="screenshot"]
image::images/tutorial-dashboard.png[]
[float]
[[tutorial-load-dataset]]
=== Load sample data
This tutorial requires you to download three data sets:
* The complete works of William Shakespeare, suitably parsed into fields
* A set of fictitious accounts with randomly generated data
* A set of randomly generated log files
[float]
==== Download the data sets
Create a new working directory where you want to download the files. From that directory, run the following commands:
[source,shell]
curl -O https://download.elastic.co/demos/kibana/gettingstarted/8.x/shakespeare.json
curl -O https://download.elastic.co/demos/kibana/gettingstarted/8.x/accounts.zip
curl -O https://download.elastic.co/demos/kibana/gettingstarted/8.x/logs.jsonl.gz
Two of the data sets are compressed. To extract the files, use these commands:
[source,shell]
unzip accounts.zip
gunzip logs.jsonl.gz
[float]
==== Structure of the data sets
The Shakespeare data set has this structure:
[source,json]
{
"line_id": INT,
"play_name": "String",
"speech_number": INT,
"line_number": "String",
"speaker": "String",
"text_entry": "String",
}
The accounts data set is structured as follows:
[source,json]
{
"account_number": INT,
"balance": INT,
"firstname": "String",
"lastname": "String",
"age": INT,
"gender": "M or F",
"address": "String",
"employer": "String",
"email": "String",
"city": "String",
"state": "String"
}
The logs data set has dozens of different fields. Here are the notable fields for this tutorial:
[source,json]
{
"memory": INT,
"geo.coordinates": "geo_point"
"@timestamp": "date"
}
[float]
==== Set up mappings
Before you load the Shakespeare and logs data sets, you must set up {ref}/mapping.html[_mappings_] for the fields.
Mappings divide the documents in the index into logical groups and specify the characteristics
of the fields. These characteristics include the searchability of the field
and whether it's _tokenized_, or broken up into separate words.
NOTE: If security is enabled, you must have the `all` Kibana privilege to run this tutorial.
You must also have the `create`, `manage` `read`, `write,` and `delete`
index privileges. See {xpack-ref}/security-privileges.html[Security Privileges]
for more information.
In Kibana *Dev Tools > Console*, set up a mapping for the Shakespeare data set:
[source,js]
PUT /shakespeare
{
"mappings": {
"properties": {
"speaker": {"type": "keyword"},
"play_name": {"type": "keyword"},
"line_id": {"type": "integer"},
"speech_number": {"type": "integer"}
}
}
}
//CONSOLE
This mapping specifies field characteristics for the data set:
* The `speaker` and `play_name` fields are keyword fields. These fields are not analyzed.
The strings are treated as a single unit even if they contain multiple words.
* The `line_id` and `speech_number` fields are integers.
The logs data set requires a mapping to label the latitude and longitude pairs
as geographic locations by applying the `geo_point` type.
[source,js]
PUT /logstash-2015.05.18
{
"mappings": {
"properties": {
"geo": {
"properties": {
"coordinates": {
"type": "geo_point"
}
}
}
}
}
}
//CONSOLE
[source,js]
PUT /logstash-2015.05.19
{
"mappings": {
"properties": {
"geo": {
"properties": {
"coordinates": {
"type": "geo_point"
}
}
}
}
}
}
//CONSOLE
[source,js]
PUT /logstash-2015.05.20
{
"mappings": {
"properties": {
"geo": {
"properties": {
"coordinates": {
"type": "geo_point"
}
}
}
}
}
}
//CONSOLE
The accounts data set doesn't require any mappings.
[float]
==== Load the data sets
At this point, you're ready to use the Elasticsearch {ref}/docs-bulk.html[bulk]
API to load the data sets:
[source,shell]
curl -u elastic -H 'Content-Type: application/x-ndjson' -XPOST '<host>:<port>/bank/account/_bulk?pretty' --data-binary @accounts.json
curl -u elastic -H 'Content-Type: application/x-ndjson' -XPOST '<host>:<port>/shakespeare/_bulk?pretty' --data-binary @shakespeare.json
curl -u elastic -H 'Content-Type: application/x-ndjson' -XPOST '<host>:<port>/_bulk?pretty' --data-binary @logs.jsonl
Or for Windows users, in Powershell:
[source,shell]
Invoke-RestMethod "http://<host>:<port>/bank/account/_bulk?pretty" -Method Post -ContentType 'application/x-ndjson' -InFile "accounts.json"
Invoke-RestMethod "http://<host>:<port>/shakespeare/_bulk?pretty" -Method Post -ContentType 'application/x-ndjson' -InFile "shakespeare.json"
Invoke-RestMethod "http://<host>:<port>/_bulk?pretty" -Method Post -ContentType 'application/x-ndjson' -InFile "logs.jsonl"
These commands might take some time to execute, depending on the available computing resources.
Verify successful loading:
[source,js]
GET /_cat/indices?v
//CONSOLE
Your output should look similar to this:
[source,shell]
health status index pri rep docs.count docs.deleted store.size pri.store.size
yellow open bank 1 1 1000 0 418.2kb 418.2kb
yellow open shakespeare 1 1 111396 0 17.6mb 17.6mb
yellow open logstash-2015.05.18 1 1 4631 0 15.6mb 15.6mb
yellow open logstash-2015.05.19 1 1 4624 0 15.7mb 15.7mb
yellow open logstash-2015.05.20 1 1 4750 0 16.4mb 16.4mb

View file

@ -1,24 +0,0 @@
[[tutorial-inspect]]
=== Inspecting the data
Seeing visualizations of your data is great,
but sometimes you need to look at the actual data to
understand what's really going on. You can inspect the data behind any visualization
and view the {es} query used to retrieve it.
. In the dashboard, hover the pointer over the pie chart.
. Click the icon in the upper right.
. From the *Options* menu, select *Inspect*.
+
[role="screenshot"]
image::images/tutorial-full-inspect1.png[]
You can also look at the query used to fetch the data for the visualization.
. Open the *View:Data* menu and select *Requests*.
. Click the tabs to look at the request statistics, the Elasticsearch request,
and the response in JSON.
. To close the Inspector, click X in the upper right.
+
[role="screenshot"]
image::images/tutorial-full-inspect2.png[]

View file

@ -1,190 +0,0 @@
[[tutorial-load-dataset]]
=== Loading sample data
This tutorial requires three data sets:
* The complete works of William Shakespeare, suitably parsed into fields
* A set of fictitious accounts with randomly generated data
* A set of randomly generated log files
Create a new working directory where you want to download the files. From that directory, run the following commands:
[source,shell]
curl -O https://download.elastic.co/demos/kibana/gettingstarted/8.x/shakespeare.json
curl -O https://download.elastic.co/demos/kibana/gettingstarted/8.x/accounts.zip
curl -O https://download.elastic.co/demos/kibana/gettingstarted/8.x/logs.jsonl.gz
Two of the data sets are compressed. To extract the files, use these commands:
[source,shell]
unzip accounts.zip
gunzip logs.jsonl.gz
==== Structure of the data sets
The Shakespeare data set has this structure:
[source,json]
{
"line_id": INT,
"play_name": "String",
"speech_number": INT,
"line_number": "String",
"speaker": "String",
"text_entry": "String",
}
The accounts data set is structured as follows:
[source,json]
{
"account_number": INT,
"balance": INT,
"firstname": "String",
"lastname": "String",
"age": INT,
"gender": "M or F",
"address": "String",
"employer": "String",
"email": "String",
"city": "String",
"state": "String"
}
The logs data set has dozens of different fields. Here are the notable fields for this tutorial:
[source,json]
{
"memory": INT,
"geo.coordinates": "geo_point"
"@timestamp": "date"
}
==== Set up mappings
Before you load the Shakespeare and logs data sets, you must set up {ref}/mapping.html[_mappings_] for the fields.
Mappings divide the documents in the index into logical groups and specify the characteristics
of the fields. These characteristics include the searchability of the field
and whether it's _tokenized_, or broken up into separate words.
NOTE: If security is enabled, you must have the `all` Kibana privilege to run this tutorial.
You must also have the `create`, `manage` `read`, `write,` and `delete`
index privileges. See {xpack-ref}/security-privileges.html[Security Privileges]
for more information.
In Kibana *Dev Tools > Console*, set up a mapping for the Shakespeare data set:
[source,js]
PUT /shakespeare
{
"mappings": {
"properties": {
"speaker": {"type": "keyword"},
"play_name": {"type": "keyword"},
"line_id": {"type": "integer"},
"speech_number": {"type": "integer"}
}
}
}
//CONSOLE
This mapping specifies field characteristics for the data set:
* The `speaker` and `play_name` fields are keyword fields. These fields are not analyzed.
The strings are treated as a single unit even if they contain multiple words.
* The `line_id` and `speech_number` fields are integers.
The logs data set requires a mapping to label the latitude and longitude pairs
as geographic locations by applying the `geo_point` type.
[source,js]
PUT /logstash-2015.05.18
{
"mappings": {
"properties": {
"geo": {
"properties": {
"coordinates": {
"type": "geo_point"
}
}
}
}
}
}
//CONSOLE
[source,js]
PUT /logstash-2015.05.19
{
"mappings": {
"properties": {
"geo": {
"properties": {
"coordinates": {
"type": "geo_point"
}
}
}
}
}
}
//CONSOLE
[source,js]
PUT /logstash-2015.05.20
{
"mappings": {
"properties": {
"geo": {
"properties": {
"coordinates": {
"type": "geo_point"
}
}
}
}
}
}
//CONSOLE
The accounts data set doesn't require any mappings.
==== Load the data sets
At this point, you're ready to use the Elasticsearch {ref}/docs-bulk.html[bulk]
API to load the data sets:
[source,shell]
curl -u elastic -H 'Content-Type: application/x-ndjson' -XPOST '<host>:<port>/bank/account/_bulk?pretty' --data-binary @accounts.json
curl -u elastic -H 'Content-Type: application/x-ndjson' -XPOST '<host>:<port>/shakespeare/_bulk?pretty' --data-binary @shakespeare.json
curl -u elastic -H 'Content-Type: application/x-ndjson' -XPOST '<host>:<port>/_bulk?pretty' --data-binary @logs.jsonl
Or for Windows users, in Powershell:
[source,shell]
Invoke-RestMethod "http://<host>:<port>/bank/account/_bulk?pretty" -Method Post -ContentType 'application/x-ndjson' -InFile "accounts.json"
Invoke-RestMethod "http://<host>:<port>/shakespeare/_bulk?pretty" -Method Post -ContentType 'application/x-ndjson' -InFile "shakespeare.json"
Invoke-RestMethod "http://<host>:<port>/_bulk?pretty" -Method Post -ContentType 'application/x-ndjson' -InFile "logs.jsonl"
These commands might take some time to execute, depending on the available computing resources.
Verify successful loading:
[source,js]
GET /_cat/indices?v
//CONSOLE
Your output should look similar to this:
[source,shell]
health status index pri rep docs.count docs.deleted store.size pri.store.size
yellow open bank 1 1 1000 0 418.2kb 418.2kb
yellow open shakespeare 1 1 111396 0 17.6mb 17.6mb
yellow open logstash-2015.05.18 1 1 4631 0 15.6mb 15.6mb
yellow open logstash-2015.05.19 1 1 4624 0 15.7mb 15.7mb
yellow open logstash-2015.05.20 1 1 4750 0 16.4mb 16.4mb

View file

@ -1,31 +1,207 @@
[[tutorial-sample-data]]
== Explore {kib} using the Flight dashboard
== Explore {kib} using sample data
Youre new to {kib} and want to try it out. With one click, you can install
the Flights sample data and start interacting with Kibana.
Ready to get some hands-on experience with Kibana?
In this tutorial, youll work
with Kibana sample data and learn to:
The Flights data set contains data for four airlines.
You can load the data and preconfigured dashboard from the {kib} home page.
* <<tutorial-sample-filter, Filter and query data in visualizations>>
* <<tutorial-sample-discover, Discover and explore your documents>>
* <<tutorial-sample-edit, Edit a visualization>>
* <<tutorial-sample-inspect, Inspect the data behind a visualization>>
. On the home page, click the link next to *Sample data*.
. On the *Sample flight data* card, click *Add*.
. Click *View data*.
Youre taken to the *Global Flight* dashboard, a collection of charts, graphs,
maps, and other visualizations of the the data in the `kibana_sample_data_flights` index.
[role="screenshot"]
image::images/tutorial-sample-dashboard.png[]
In this tutorial, youll learn to:
* Filter the data
* Query the data
* Discover the data
* Edit a visualization
* Inspect the data behind the scenes
NOTE: If security is enabled, you must have `read`, `write`, and `manage` privileges
on the `kibana_sample_data_*` indices. See {xpack-ref}/security-privileges.html[Security Privileges]
for more information.
[float]
=== Add sample data
Install the Flights sample data set, if you haven't already.
. On the {kib} home page, click the link underneath *Add sample data*.
. On the *Sample flight data* card, click *Add data*.
. Once the data is added, click *View data > Dashboard*.
+
Youre taken to the *Global Flight* dashboard, a collection of charts, graphs,
maps, and other visualizations of the the data in the `kibana_sample_data_flights` index.
+
[role="screenshot"]
image::images/tutorial-sample-dashboard.png[]
[float]
[[tutorial-sample-filter]]
=== Filter and query the data
You can use filters and queries to
narrow the view of the data.
For more detailed information on these actions, see
{ref}/query-filter-context.html[Query and filter context].
[float]
==== Filter the data
. In the *Controls* visualization, set an *Origin City* and a *Destination City*.
. Click *Apply changes*.
+
The `OriginCityName` and the `DestCityName` fields are filtered to match
the data you specified.
+
For example, this dashboard shows the data for flights from London to Oslo.
+
[role="screenshot"]
image::images/tutorial-sample-filter.png[]
. To add a filter manually, click *Add filter* in the filter bar,
and specify the data you want to view.
. When you are finished experimenting, remove all filters.
[float]
[[tutorial-sample-query]]
==== Query the data
. To find all flights out of Rome, enter this query in the query bar and click *Update*:
+
[source,text]
OriginCityName:Rome
. For a more complex query with AND and OR, try this:
+
[source,text]
OriginCityName:Rome AND (Carrier:JetBeats OR "Kibana Airlines")
+
The dashboard updates to show data for the flights out of Rome on JetBeats and
{kib} Airlines.
+
[role="screenshot"]
image::images/tutorial-sample-query.png[]
. When you are finished exploring the dashboard, remove the query by
clearing the contents in the query bar and clicking *Update*.
[float]
[[tutorial-sample-discover]]
=== Discover the data
In Discover, you have access to every document in every index that
matches the selected index pattern. The index pattern tells {kib} which {es} index you are currently
exploring. You can submit search queries, filter the
search results, and view document data.
. In the side navigation, click *Discover*.
. Ensure `kibana_sample_data_flights` is the current index pattern.
You might need to click *New* in the menu bar to refresh the data.
+
You'll see a histogram that shows the distribution of
documents over time. A table lists the fields for
each matching document. By default, all fields are shown.
+
[role="screenshot"]
image::images/tutorial-sample-discover1.png[]
. To choose which fields to display,
hover the pointer over the list of *Available fields*, and then click *add* next
to each field you want include as a column in the table.
+
For example, if you add the `DestAirportID` and `DestWeather` fields,
the display includes columns for those two fields.
+
[role="screenshot"]
image::images/tutorial-sample-discover2.png[]
[float]
[[tutorial-sample-edit]]
=== Edit a visualization
You have edit permissions for the *Global Flight* dashboard, so you can change
the appearance and behavior of the visualizations. For example, you might want
to see which airline has the lowest average fares.
. In the side navigation, click *Recently viewed* and open the *Global Flight Dashboard*.
. In the menu bar, click *Edit*.
. In the *Average Ticket Price* visualization, click the gear icon in
the upper right.
. From the *Options* menu, select *Edit visualization*.
+
*Average Ticket Price* is a metric visualization.
To specify which groups to display
in this visualization, you use an {es} {ref}/search-aggregations.html[bucket aggregation].
This aggregation sorts the documents that match your search criteria into different
categories, or buckets.
[float]
==== Create a bucket aggregation
. In the *Buckets* pane, select *Add > Split group*.
. In the *Aggregation* dropdown, select *Terms*.
. In the *Field* dropdown, select *Carrier*.
. Set *Descending* to *4*.
. Click *Apply changes* image:images/apply-changes-button.png[].
+
You now see the average ticket price for all four airlines.
+
[role="screenshot"]
image::images/tutorial-sample-edit1.png[]
[float]
==== Save the visualization
. In the menu bar, click *Save*.
. Leave the visualization name as is and confirm the save.
. Go to the *Global Flight* dashboard and scroll the *Average Ticket Price* visualization to see the four prices.
. Optionally, edit the dashboard. Resize the panel
for the *Average Ticket Price* visualization by dragging the
handle in the lower right. You can also rearrange the visualizations by clicking
the header and dragging. Be sure to save the dashboard.
+
[role="screenshot"]
image::images/tutorial-sample-edit2.png[]
[float]
[[tutorial-sample-inspect]]
=== Inspect the data
Seeing visualizations of your data is great,
but sometimes you need to look at the actual data to
understand what's really going on. You can inspect the data behind any visualization
and view the {es} query used to retrieve it.
. In the dashboard, hover the pointer over the pie chart, and then click the icon in the upper right.
. From the *Options* menu, select *Inspect*.
+
The initial view shows the document count.
+
[role="screenshot"]
image::images/tutorial-sample-inspect1.png[]
. To look at the query used to fetch the data for the visualization, select *View > Requests*
in the upper right of the Inspect pane.
[float]
[[tutorial-sample-remove]]
=== Remove the sample data set
When youre done experimenting with the sample data set, you can remove it.
. Go to the *Sample data* page.
. On the *Sample flight data* card, click *Remove*.
[float]
=== Next steps
Now that you have a handle on the {kib} basics, you might be interested in the
tutorial <<tutorial-build-dashboard, Build your own dashboard>>, where you'll learn to:
* Load data
* Define an index pattern
* Discover and explore data
* Create visualizations
* Add visualizations to a dashboard

View file

@ -1,27 +0,0 @@
[[tutorial-sample-discover]]
=== Using Discover
In the Discover application, the Flight data is presented in a table. You can
interactively explore the data, including searching and filtering.
* In the side navigation, select *Discover*.
The current index pattern appears below the filter bar. An
<<index-patterns, index pattern>> tells {kib} which {es} indices you want to
explore.
The `kibana_sample_data_flights` index contains a time field. A histogram
shows the distribution of documents over time.
[role="screenshot"]
image::images/tutorial-sample-discover1.png[]
By default, all fields are shown for each matching document. To choose which fields to display,
hover the pointer over the the list of *Available Fields* and then click *add* next
to each field you want include as a column in the table.
For example, if you add the `DestAirportID` and `DestWeather` fields,
the display includes columns for those two fields:
[role="screenshot"]
image::images/tutorial-sample-discover2.png[]

View file

@ -1,45 +0,0 @@
[[tutorial-sample-edit]]
=== Editing a visualization
You have edit permissions for the *Global Flight* dashboard so you can change
the appearance and behavior of the visualizations. For example, you might want
to see which airline has the lowest average fares.
. Go to the *Global Flight* dashboard.
. In the menu bar, click *Edit*.
. In the *Average Ticket Price* visualization, click the gear icon in
the upper right.
. From the *Options* menu, select *Edit visualization*.
==== Edit a metric visualization
*Average Ticket Price* is a metric visualization.
To specify which groups to display
in this visualization, you use an {es} {ref}/search-aggregations.html[bucket aggregation].
This aggregation sorts the documents that match your search criteria into different
categories, or buckets.
. In the *Buckets* pane, select *Split Group*.
. In the *Aggregation* dropdown menu, select *Terms*.
. In the *Field* dropdown, select *Carrier*.
. Set *Descending* to four.
. Click *Apply changes* image:images/apply-changes-button.png[].
You now see the average ticket price for all four airlines.
[role="screenshot"]
image::images/tutorial-sample-edit1.png[]
==== Save the changes
. In the menu bar, click *Save*.
. Leave the visualization name unchanged and click *Save*.
. Go to the *Global Flight* dashboard.
. Resize the panel for the *Average Ticket Price* visualization by dragging the
handle in the lower right.
You can also rearrange the visualizations by clicking the header and dragging.
. In the menu bar, click *Save* and then confirm the save.
+
[role="screenshot"]
image::images/tutorial-sample-edit2.png[]

View file

@ -1,23 +0,0 @@
[[tutorial-sample-filter]]
=== Filtering the data
Many visualizations in the *Global Flight* dashboard are interactive. You can
apply filters to modify the view of the data across all visualizations.
. In the *Controls* visualization, set an *Origin City* and a *Destination City*.
. Click *Apply changes*.
+
The `OriginCityName` and the `DestCityName` fields are filtered to match
the data you specified.
+
For example, this dashboard shows the data for flights from London to Newark
and Pittsburgh.
+
[role="screenshot"]
image::images/tutorial-sample-filter.png[]
+
. To remove the filters, in the *Controls* visualization, click *Clear form*, and then
*Apply changes*.
You can also add filters manually. In the filter bar, click *Add a Filter*
and specify the data you want to view.

View file

@ -1,24 +0,0 @@
[[tutorial-sample-inspect]]
=== Inspecting the data
Seeing visualizations of your data is great,
but sometimes you need to look at the actual data to
understand what's really going on. You can inspect the data behind any visualization
and view the {es} query used to retrieve it.
. Hover the pointer over the *Flight Count and Average Ticket Price* visualization.
. Click the icon in the upper right.
. From the *Options* menu, select *Inspect*.
+
[role="screenshot"]
image::images/tutorial-sample-inspect1.png[]
You can also look at the query used to fetch the data for the visualization.
. Open the *View: Data* menu and select *Requests*.
. Click the tabs to look at the request statistics, the Elasticsearch request,
and the response in JSON.
. To close the editor, click X in the upper right.
+
[role="screenshot"]
image::images/tutorial-sample-inspect2.png[]

View file

@ -1,30 +0,0 @@
[[tutorial-sample-query]]
=== Querying the data
You can enter an {es} query to narrow the view of the data.
. To find all flights out of Rome, submit this query:
+
[source,text]
OriginCityName:Rome
. For a more complex query with AND and OR, try this:
+
[source,text]
OriginCityName:Rome AND (Carrier:JetBeats OR "Kibana Airlines")
+
The dashboard updates to show data for the flights out of Rome on JetBeats and
{kib} Airlines.
+
[role="screenshot"]
image::images/tutorial-sample-query.png[]
. When you are finished exploring the dashboard, remove the query by
clearing the contents in the query bar and pressing Enter.
In general, filters are faster than queries. For more information, see {ref}/query-filter-context.html[Query and filter context].
TIP: {kib} has an experimental autocomplete feature that can
help jumpstart your queries. To turn on this feature, click *Options* on the
right of the query bar and opt in. With autocomplete enabled,
search suggestions are displayed when you start typing your query.

View file

@ -1,18 +0,0 @@
[[tutorial-sample-remove]]
=== Wrapping up
When youre done experimenting with the sample data set, you can remove it.
. Go to the {kib} home page and click the link next to *Sample data*.
. On the *Sample flight data* card, click *Remove*.
Now that you have a handle on the {kib} basics, you might be interested in:
* <<tutorial-build-dashboard, Building your own dashboard>>. Youll learn how to load your own
data, define an index pattern, and create visualizations and dashboards.
* <<visualize>>. Youll find information about all the visualization types
{kib} has to offer.
* <<dashboard>>. You have the ability to share a dashboard, or embed the dashboard in a web page.
* <<discover>>. You'll learn more about searching data and filtering by field.

View file

@ -1,46 +1,48 @@
[[tutorial-visualizing]]
=== Visualizing your data
=== Visualize your data
In the Visualize application, you can shape your data using a variety
of charts, tables, and maps, and more. You'll create four
visualizations: a pie chart, bar chart, coordinate map, and Markdown widget.
of charts, tables, and maps, and more. In this tutorial, you'll create four
visualizations:
. Open *Visualize.*
. Click *Create a visualization* or the *+* button. You'll see all the visualization
* <<tutorial-visualize-pie, Pie chart>>
* <<tutorial-visualize-bar, Bar chart>>
* <<tutorial-visualize-map, Coordinate map>>
* <<tutorial-visualize-markdown, Markdown widget>>
[float]
[[tutorial-visualize-pie]]
=== Pie chart
You'll use the pie chart to
gain insight into the account balances in the bank account data.
. Open *Visualize* to show the overview page.
. Click *Create new visualization*. You'll see all the visualization
types in Kibana.
+
[role="screenshot"]
image::images/tutorial-visualize-wizard-step-1.png[]
. Click *Pie*.
. In *New Search*, select the `ba*` index pattern. You'll use the pie chart to
gain insight into the account balances in the bank account data.
. In *Choose a source*, select the `ba*` index pattern.
+
[role="screenshot"]
image::images/tutorial-visualize-wizard-step-2.png[]
=== Pie chart
Initially, the pie contains a single "slice."
That's because the default search matched all documents.
[role="screenshot"]
image::images/tutorial-visualize-pie-1.png[]
+
To specify which slices to display in the pie, you use an Elasticsearch
{ref}/search-aggregations.html[bucket aggregation]. This aggregation
sorts the documents that match your search criteria into different
categories, also known as _buckets_.
Use a bucket aggregation to establish
categories. You'll use a bucket aggregation to establish
multiple ranges of account balances and find out how many accounts fall into
each range.
. In the *Buckets* pane, click *Split Slices.*
. In the *Aggregation* dropdown menu, select *Range*.
. In the *Field* dropdown menu, select *balance*.
. Click *Add Range* four times to bring the total number of ranges to six.
. Define the following ranges:
. In the *Buckets* pane, click *Add > Split slices.*
+
.. In the *Aggregation* dropdown, select *Range*.
.. In the *Field* dropdown, select *balance*.
.. Click *Add range* four times to bring the total number of ranges to six.
.. Define the following ranges:
+
[source,text]
0 999
@ -51,120 +53,117 @@ each range.
31000 50000
. Click *Apply changes* image:images/apply-changes-button.png[].
+
Now you can see what proportion of the 1000 accounts fall into each balance
range.
+
[role="screenshot"]
image::images/tutorial-visualize-pie-2.png[]
Add another bucket aggregation that looks at the ages of the account
. Add another bucket aggregation that looks at the ages of the account
holders.
. At the bottom of the *Buckets* pane, click *Add sub-buckets*.
. In *Select buckets type,* click *Split Slices*.
. In the *Sub Aggregation* dropdown, select *Terms*.
. In the *Field* dropdown, select *age*.
. Click *Apply changes* image:images/apply-changes-button.png[].
.. At the bottom of the *Buckets* pane, click *Add*.
.. For *sub-bucket type,* select *Split slices*.
.. In the *Sub aggregation* dropdown, select *Terms*.
.. In the *Field* dropdown, select *age*.
. Click *Apply changes* image:images/apply-changes-button.png[].
+
Now you can see the break down of the ages of the account holders, displayed
in a ring around the balance ranges.
+
[role="screenshot"]
image::images/tutorial-visualize-pie-3.png[]
To save this chart so you can use it later:
Click *Save* in the top menu bar and enter `Pie Example`.
. To save this chart so you can use it later, click *Save* in
the top menu bar and enter `Pie Example`.
[float]
[[tutorial-visualize-bar]]
=== Bar chart
You'll use a bar chart to look at the Shakespeare data set and compare
the number of speaking parts in the plays.
Create a *Vertical Bar* chart and set the search source to `shakes*`.
. Create a *Vertical Bar* chart and set the search source to `shakes*`.
+
Initially, the chart is a single bar that shows the total count
of documents that match the default wildcard query.
[role="screenshot"]
image::images/tutorial-visualize-bar-1.png[]
. Show the number of speaking parts per play along the Y-axis.
Show the number of speaking parts per play along the Y-axis.
This requires you to configure the Y-axis
{ref}/search-aggregations.html[metric aggregation.]
This aggregation computes metrics based on values from the search results.
.. In the *Metrics* pane, expand *Y-axis*.
.. Set *Aggregation* to *Unique Count*.
.. Set *Field* to *speaker*.
.. In the *Custom label* box, enter `Speaking Parts`.
. In the *Metrics* pane, expand *Y-Axis*.
. Set *Aggregation* to *Unique Count*.
. Set *Field* to *speaker*.
. In the *Custom Label* box, enter `Speaking Parts`.
. Click *Apply changes* image:images/apply-changes-button.png[].
. Show the plays along the X-axis.
.. In the *Buckets* pane, click *Add > X-axis*.
.. Set *Aggregation* to *Terms*.
.. Set *Field* to *play_name*.
.. To list plays alphabetically, in the *Order* dropdown, select *Ascending*.
.. Give the axis a custom label, `Play Name`.
. Click *Apply changes* image:images/apply-changes-button.png[].
+
[role="screenshot"]
image::images/tutorial-visualize-bar-1.5.png[]
Show the plays along the X-axis.
. In the *Buckets* pane, click *X-Axis*.
. Set *Aggregation* to *Terms* and *Field* to *play_name*.
. To list plays alphabetically, in the *Order* dropdown menu, select *Ascending*.
. Give the axis a custom label, `Play Name`.
. Click *Apply changes* image:images/apply-changes-button.png[].
. *Save* this chart with the name `Bar Example`.
+
Hovering over a bar shows a tooltip with the number of speaking parts for
that play.
+
Notice how the individual play names show up as whole phrases, instead of
broken into individual words. This is the result of the mapping
you did at the beginning of the tutorial, when you marked the `play_name` field
as `not analyzed`.
*Save* this chart with the name `Bar Example`.
[float]
[[tutorial-visualize-map]]
=== Coordinate map
Using a coordinate map, you can visualize geographic information in the log file sample data.
. Create a *Coordinate map* and set the search source to `logstash*`.
. In the top menu bar, click the time picker on the far right.
. Click *Absolute*.
. Set the start time to May 18, 2015 and the end time to May 20, 2015.
. Click *Go*.
+
You haven't defined any buckets yet, so the visualization is a map of the world.
[role="screenshot"]
image::images/tutorial-visualize-map-1.png[]
. Set the time.
.. In the time filter, click *Show dates*.
.. Click the start date, then *Absolute*.
.. Set the *Start date* to May 18, 2015.
.. In the time filter, click *now*, then *Absolute*.
.. Set the *End date* to May 20, 2015.
Now map the geo coordinates from the log files.
. Map the geo coordinates from the log files.
.. In the *Buckets* pane, click *Add > Geo coordinates*.
.. Set *Aggregation* to *Geohash*.
.. Set *Field* to *geo.coordinates*.
. In the *Buckets* pane, click *Geo Coordinates*.
. Set *Aggregation* to *Geohash* and *Field* to *geo.coordinates*.
. Click *Apply changes* image:images/apply-changes-button.png[].
+
The map now looks like this:
+
[role="screenshot"]
image::images/tutorial-visualize-map-2.png[]
You can navigate the map by clicking and dragging. The controls
on the top left of the map enable you to zoom the map and set filters.
Give them a try.
[role="screenshot"]
image::images/tutorial-visualize-map-3.png[]
*Save* this map with the name `Map Example`.
. Navigate the map by clicking and dragging. Use the controls
on the left to zoom the map and set filters.
. *Save* this map with the name `Map Example`.
[float]
[[tutorial-visualize-markdown]]
=== Markdown
The final visualization is a Markdown widget that renders formatted text.
. Create a *Markdown* visualization.
. In the text box, enter the following:
. Copy the following text into the text box.
+
[source,markdown]
# This is a tutorial dashboard!
@ -172,10 +171,10 @@ The Markdown widget uses **markdown** syntax.
> Blockquotes in Markdown use the > character.
. Click *Apply changes* image:images/apply-changes-button.png[].
The Markdown renders in the preview pane:
+
The Markdown renders in the preview pane.
+
[role="screenshot"]
image::images/tutorial-visualize-md-2.png[]
*Save* this visualization with the name `Markdown Example`.
. *Save* this visualization with the name `Markdown Example`.

View file

@ -1,14 +0,0 @@
[[wrapping-up]]
=== Wrapping up
Now that you have a handle on the basics, you're ready to start exploring
your own data with Kibana.
* See {kibana-ref}/discover.html[Discover] for information about searching and filtering
your data.
* See {kibana-ref}/visualize.html[Visualize] for information about the visualization
types Kibana has to offer.
* See {kibana-ref}/management.html[Management] for information about configuring Kibana
and managing your saved objects.
* See {kibana-ref}/console-kibana.html[Console] to learn about the interactive
console you can use to submit REST requests to Elasticsearch.

Some files were not shown because too many files have changed in this diff Show more