Merge branch 'main' into issue-104094-update-legend-position

This commit is contained in:
Kate Farrar 2021-11-08 19:13:19 -07:00 committed by GitHub
commit dddaf7a038
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3128 changed files with 47260 additions and 38742 deletions

View file

@ -13,10 +13,10 @@ test --experimental_guard_against_concurrent_changes
query --experimental_guard_against_concurrent_changes
## Cache action outputs on disk so they persist across output_base and bazel shutdown (eg. changing branches)
common --disk_cache=~/.bazel-cache/disk-cache
build --disk_cache=~/.bazel-cache/disk-cache
## Bazel repo cache settings
common --repository_cache=~/.bazel-cache/repository-cache
build --repository_cache=~/.bazel-cache/repository-cache
# Bazel will create symlinks from the workspace directory to output artifacts.
# Build results will be placed in a directory called "bazel-bin"

View file

@ -147,6 +147,13 @@ steps:
key: linting
timeout_in_minutes: 90
- command: .buildkite/scripts/steps/lint_with_types.sh
label: 'Linting (with types)'
agents:
queue: c2-16
key: linting_with_types
timeout_in_minutes: 90
- command: .buildkite/scripts/steps/checks.sh
label: 'Checks'
agents:

View file

@ -145,6 +145,13 @@ steps:
key: linting
timeout_in_minutes: 90
- command: .buildkite/scripts/steps/lint_with_types.sh
label: 'Linting (with types)'
agents:
queue: c2-16
key: linting_with_types
timeout_in_minutes: 90
- command: .buildkite/scripts/steps/checks.sh
label: 'Checks'
agents:

View file

@ -0,0 +1,11 @@
steps:
- command: .buildkite/scripts/steps/functional/fleet_cypress.sh
label: 'Fleet Cypress Tests'
agents:
queue: ci-group-6
depends_on: build
timeout_in_minutes: 120
retry:
automatic:
- exit_status: '*'
limit: 1

View file

@ -6,7 +6,17 @@ source .buildkite/scripts/common/util.sh
source .buildkite/scripts/common/setup_bazel.sh
echo "--- yarn install and bootstrap"
retry 2 15 yarn kbn bootstrap
if ! yarn kbn bootstrap; then
echo "bootstrap failed, trying again in 15 seconds"
sleep 15
# Most bootstrap failures will result in a problem inside node_modules that does not get fixed on the next bootstrap
# So, we should just delete node_modules in between attempts
rm -rf node_modules
echo "--- yarn install and bootstrap, attempt 2"
yarn kbn bootstrap
fi
###
### upload ts-refs-cache artifacts as quickly as possible so they are available for download

View file

@ -42,7 +42,11 @@ if is_pr; then
export ELASTIC_APM_ACTIVE=false
fi
export CHECKS_REPORTER_ACTIVE=true
if [[ "${GITHUB_STEP_COMMIT_STATUS_ENABLED:-}" != "true" ]]; then
export CHECKS_REPORTER_ACTIVE=true
else
export CHECKS_REPORTER_ACTIVE=false
fi
# These can be removed once we're not supporting Jenkins and Buildkite at the same time
# These are primarily used by github checks reporter and can be configured via /github_checks_api.json

View file

@ -5,7 +5,9 @@ set -euo pipefail
BUILD_SUCCESSFUL=$(node "$(dirname "${0}")/build_status.js")
export BUILD_SUCCESSFUL
"$(dirname "${0}")/commit_status_complete.sh"
if [[ "${GITHUB_BUILD_COMMIT_STATUS_ENABLED:-}" != "true" ]]; then
"$(dirname "${0}")/commit_status_complete.sh"
fi
node "$(dirname "${0}")/ci_stats_complete.js"

View file

@ -4,7 +4,9 @@ set -euo pipefail
source .buildkite/scripts/common/util.sh
"$(dirname "${0}")/commit_status_start.sh"
if [[ "${GITHUB_BUILD_COMMIT_STATUS_ENABLED:-}" != "true" ]]; then
"$(dirname "${0}")/commit_status_start.sh"
fi
export CI_STATS_TOKEN="$(retry 5 5 vault read -field=api_token secret/kibana-issues/dev/kibana_ci_stats)"
export CI_STATS_HOST="$(retry 5 5 vault read -field=api_host secret/kibana-issues/dev/kibana_ci_stats)"

View file

@ -76,6 +76,16 @@ const uploadPipeline = (pipelineContent) => {
pipeline.push(getPipeline('.buildkite/pipelines/pull_request/apm_cypress.yml'));
}
if (
(await doAnyChangesMatch([
/^x-pack\/plugins\/fleet/,
/^x-pack\/test\/fleet_cypress/,
])) ||
process.env.GITHUB_PR_LABELS.includes('ci:all-cypress-suites')
) {
pipeline.push(getPipeline('.buildkite/pipelines/pull_request/fleet_cypress.yml'));
}
if (await doAnyChangesMatch([/^x-pack\/plugins\/uptime/])) {
pipeline.push(getPipeline('.buildkite/pipelines/pull_request/uptime.yml'));
}

View file

@ -0,0 +1,20 @@
#!/usr/bin/env bash
set -euo pipefail
source .buildkite/scripts/common/util.sh
.buildkite/scripts/bootstrap.sh
.buildkite/scripts/download_build_artifacts.sh
export JOB=kibana-fleet-cypress
echo "--- Fleet Cypress tests"
cd "$XPACK_DIR"
checks-reporter-with-killswitch "Fleet Cypress Tests" \
node scripts/functional_tests \
--debug --bail \
--kibana-install-dir "$KIBANA_BUILD_LOCATION" \
--config test/fleet_cypress/cli_config.ts

View file

@ -0,0 +1,12 @@
#!/usr/bin/env bash
set -euo pipefail
source .buildkite/scripts/common/util.sh
export BUILD_TS_REFS_DISABLE=false
.buildkite/scripts/bootstrap.sh
echo '--- Lint: eslint (with types)'
checks-reporter-with-killswitch "Lint: eslint (with types)" \
node scripts/eslint_with_types

View file

@ -1,7 +1,7 @@
# NOTE: This Dockerfile is ONLY used to run certain tasks in CI. It is not used to run Kibana or as a distributable.
# If you're looking for the Kibana Docker image distributable, please see: src/dev/build/tasks/os_packages/docker_generator/templates/dockerfile.template.ts
ARG NODE_VERSION=16.11.1
ARG NODE_VERSION=16.13.0
FROM node:${NODE_VERSION} AS base

View file

@ -902,17 +902,6 @@ module.exports = {
},
},
/**
* Cases overrides
*/
{
files: ['x-pack/plugins/cases/**/*.{js,mjs,ts,tsx}'],
rules: {
'no-duplicate-imports': 'off',
'@typescript-eslint/no-duplicate-imports': ['error'],
},
},
/**
* Security Solution overrides. These rules below are maintained and owned by
* the people within the security-solution-platform team. Please see ping them
@ -928,6 +917,8 @@ module.exports = {
'x-pack/plugins/security_solution/common/**/*.{js,mjs,ts,tsx}',
'x-pack/plugins/timelines/public/**/*.{js,mjs,ts,tsx}',
'x-pack/plugins/timelines/common/**/*.{js,mjs,ts,tsx}',
'x-pack/plugins/cases/public/**/*.{js,mjs,ts,tsx}',
'x-pack/plugins/cases/common/**/*.{js,mjs,ts,tsx}',
],
rules: {
'import/no-nodejs-modules': 'error',
@ -949,10 +940,12 @@ module.exports = {
files: [
'x-pack/plugins/security_solution/**/*.{ts,tsx}',
'x-pack/plugins/timelines/**/*.{ts,tsx}',
'x-pack/plugins/cases/**/*.{ts,tsx}',
],
excludedFiles: [
'x-pack/plugins/security_solution/**/*.{test,mock,test_helper}.{ts,tsx}',
'x-pack/plugins/timelines/**/*.{test,mock,test_helper}.{ts,tsx}',
'x-pack/plugins/cases/**/*.{test,mock,test_helper}.{ts,tsx}',
],
rules: {
'@typescript-eslint/no-non-null-assertion': 'error',
@ -963,6 +956,7 @@ module.exports = {
files: [
'x-pack/plugins/security_solution/**/*.{ts,tsx}',
'x-pack/plugins/timelines/**/*.{ts,tsx}',
'x-pack/plugins/cases/**/*.{ts,tsx}',
],
rules: {
'@typescript-eslint/no-this-alias': 'error',
@ -985,6 +979,7 @@ module.exports = {
files: [
'x-pack/plugins/security_solution/**/*.{js,mjs,ts,tsx}',
'x-pack/plugins/timelines/**/*.{js,mjs,ts,tsx}',
'x-pack/plugins/cases/**/*.{js,mjs,ts,tsx}',
],
plugins: ['eslint-plugin-node', 'react'],
env: {

2
.github/CODEOWNERS vendored
View file

@ -61,6 +61,7 @@
/examples/partial_results_example/ @elastic/kibana-app-services
/packages/elastic-datemath/ @elastic/kibana-app-services
/packages/kbn-interpreter/ @elastic/kibana-app-services
/packages/kbn-react-field/ @elastic/kibana-app-services
/src/plugins/bfetch/ @elastic/kibana-app-services
/src/plugins/data/ @elastic/kibana-app-services
/src/plugins/data_views/ @elastic/kibana-app-services
@ -232,6 +233,7 @@
/src/core/ @elastic/kibana-core
/src/plugins/saved_objects_tagging_oss @elastic/kibana-core
/config/kibana.yml @elastic/kibana-core
/typings/ @elastic/kibana-core
/x-pack/plugins/banners/ @elastic/kibana-core
/x-pack/plugins/features/ @elastic/kibana-core
/x-pack/plugins/licensing/ @elastic/kibana-core

6
.gitignore vendored
View file

@ -19,6 +19,7 @@ target
.idea
*.iml
*.log
types.eslint.config.js
# Ignore example plugin builds
/examples/*/build
@ -86,3 +87,8 @@ report.asciidoc
/bazel
/bazel-*
.bazelrc.user
elastic-agent-*
fleet-server-*
elastic-agent.yml
fleet-server.yml

View file

@ -1 +1 @@
16.11.1
16.13.0

2
.nvmrc
View file

@ -1 +1 @@
16.11.1
16.13.0

View file

@ -27,14 +27,14 @@ check_rules_nodejs_version(minimum_version_string = "3.8.0")
# we can update that rule.
node_repositories(
node_repositories = {
"16.11.1-darwin_amd64": ("node-v16.11.1-darwin-x64.tar.gz", "node-v16.11.1-darwin-x64", "ba54b8ed504bd934d03eb860fefe991419b4209824280d4274f6a911588b5e45"),
"16.11.1-darwin_arm64": ("node-v16.11.1-darwin-arm64.tar.gz", "node-v16.11.1-darwin-arm64", "5e772e478390fab3001b7148a923e4f22fca50170000f18b28475337d3a97248"),
"16.11.1-linux_arm64": ("node-v16.11.1-linux-arm64.tar.xz", "node-v16.11.1-linux-arm64", "083fc51f0ea26de9041aaf9821874651a9fd3b20d1cf57071ce6b523a0436f17"),
"16.11.1-linux_s390x": ("node-v16.11.1-linux-s390x.tar.xz", "node-v16.11.1-linux-s390x", "855b5c83c2ccb05273d50bb04376335c68d47df57f3187cdebe1f22b972d2825"),
"16.11.1-linux_amd64": ("node-v16.11.1-linux-x64.tar.xz", "node-v16.11.1-linux-x64", "493bcc9b660eff983a6de65a0f032eb2717f57207edf74c745bcb86e360310b3"),
"16.11.1-windows_amd64": ("node-v16.11.1-win-x64.zip", "node-v16.11.1-win-x64", "4d3c179b82d42e66e321c3948a4e332ed78592917a69d38b86e3a242d7e62fb7"),
"16.13.0-darwin_amd64": ("node-v16.13.0-darwin-x64.tar.gz", "node-v16.13.0-darwin-x64", "37e09a8cf2352f340d1204c6154058d81362fef4ec488b0197b2ce36b3f0367a"),
"16.13.0-darwin_arm64": ("node-v16.13.0-darwin-arm64.tar.gz", "node-v16.13.0-darwin-arm64", "46d83fc0bd971db5050ef1b15afc44a6665dee40bd6c1cbaec23e1b40fa49e6d"),
"16.13.0-linux_arm64": ("node-v16.13.0-linux-arm64.tar.xz", "node-v16.13.0-linux-arm64", "93a0d03f9f802353cb7052bc97a02cd9642b49fa985671cdc16c99936c86d7d2"),
"16.13.0-linux_s390x": ("node-v16.13.0-linux-s390x.tar.xz", "node-v16.13.0-linux-s390x", "49e972bf3e969d621157df4c8f2fa18ff748c167d5ebd0efc87e1b9f0c6541cc"),
"16.13.0-linux_amd64": ("node-v16.13.0-linux-x64.tar.xz", "node-v16.13.0-linux-x64", "a876ce787133149abd1696afa54b0b5bc5ce3d5ae359081d407ff776e39b7ba8"),
"16.13.0-windows_amd64": ("node-v16.13.0-win-x64.zip", "node-v16.13.0-win-x64", "5a39ec5d4786c2814a6c04488bebac6423c2aaa12832b24f0882456f2e4674e1"),
},
node_version = "16.11.1",
node_version = "16.13.0",
node_urls = [
"https://nodejs.org/dist/v{version}/{filename}",
],

View file

@ -1793,7 +1793,7 @@
"section": "def-server.RulesClient",
"text": "RulesClient"
},
", \"create\" | \"delete\" | \"find\" | \"get\" | \"resolve\" | \"update\" | \"aggregate\" | \"enable\" | \"disable\" | \"muteAll\" | \"getAlertState\" | \"getAlertInstanceSummary\" | \"updateApiKey\" | \"unmuteAll\" | \"muteInstance\" | \"unmuteInstance\" | \"listAlertTypes\" | \"getSpaceId\">"
", \"create\" | \"delete\" | \"find\" | \"get\" | \"resolve\" | \"update\" | \"aggregate\" | \"enable\" | \"disable\" | \"muteAll\" | \"getAlertState\" | \"getAlertSummary\" | \"updateApiKey\" | \"unmuteAll\" | \"muteInstance\" | \"unmuteInstance\" | \"listAlertTypes\" | \"getSpaceId\">"
],
"path": "x-pack/plugins/alerting/server/plugin.ts",
"deprecated": false,
@ -2223,15 +2223,15 @@
"AggregateOptions",
" | undefined; }) => Promise<",
"AggregateResult",
">; enable: ({ id }: { id: string; }) => Promise<void>; disable: ({ id }: { id: string; }) => Promise<void>; muteAll: ({ id }: { id: string; }) => Promise<void>; getAlertState: ({ id }: { id: string; }) => Promise<void | { alertTypeState?: { [x: string]: unknown; } | undefined; alertInstances?: { [x: string]: { state?: { [x: string]: unknown; } | undefined; meta?: { lastScheduledActions?: ({ subgroup?: string | undefined; } & { group: string; date: Date; }) | undefined; } | undefined; }; } | undefined; previousStartedAt?: Date | null | undefined; }>; getAlertInstanceSummary: ({ id, dateStart, }: ",
"GetAlertInstanceSummaryParams",
">; enable: ({ id }: { id: string; }) => Promise<void>; disable: ({ id }: { id: string; }) => Promise<void>; muteAll: ({ id }: { id: string; }) => Promise<void>; getAlertState: ({ id }: { id: string; }) => Promise<void | { alertTypeState?: { [x: string]: unknown; } | undefined; alertInstances?: { [x: string]: { state?: { [x: string]: unknown; } | undefined; meta?: { lastScheduledActions?: ({ subgroup?: string | undefined; } & { group: string; date: Date; }) | undefined; } | undefined; }; } | undefined; previousStartedAt?: Date | null | undefined; }>; getAlertSummary: ({ id, dateStart }: ",
"GetAlertSummaryParams",
") => Promise<",
{
"pluginId": "alerting",
"scope": "common",
"docId": "kibAlertingPluginApi",
"section": "def-common.AlertInstanceSummary",
"text": "AlertInstanceSummary"
"section": "def-common.AlertSummary",
"text": "AlertSummary"
},
">; updateApiKey: ({ id }: { id: string; }) => Promise<void>; unmuteAll: ({ id }: { id: string; }) => Promise<void>; muteInstance: ({ alertId, alertInstanceId }: ",
"MuteOptions",
@ -3155,273 +3155,6 @@
],
"initialIsOpen": false
},
{
"parentPluginId": "alerting",
"id": "def-common.AlertInstanceStatus",
"type": "Interface",
"tags": [],
"label": "AlertInstanceStatus",
"description": [],
"path": "x-pack/plugins/alerting/common/alert_instance_summary.ts",
"deprecated": false,
"children": [
{
"parentPluginId": "alerting",
"id": "def-common.AlertInstanceStatus.status",
"type": "CompoundType",
"tags": [],
"label": "status",
"description": [],
"signature": [
"\"OK\" | \"Active\""
],
"path": "x-pack/plugins/alerting/common/alert_instance_summary.ts",
"deprecated": false
},
{
"parentPluginId": "alerting",
"id": "def-common.AlertInstanceStatus.muted",
"type": "boolean",
"tags": [],
"label": "muted",
"description": [],
"path": "x-pack/plugins/alerting/common/alert_instance_summary.ts",
"deprecated": false
},
{
"parentPluginId": "alerting",
"id": "def-common.AlertInstanceStatus.actionGroupId",
"type": "string",
"tags": [],
"label": "actionGroupId",
"description": [],
"signature": [
"string | undefined"
],
"path": "x-pack/plugins/alerting/common/alert_instance_summary.ts",
"deprecated": false
},
{
"parentPluginId": "alerting",
"id": "def-common.AlertInstanceStatus.actionSubgroup",
"type": "string",
"tags": [],
"label": "actionSubgroup",
"description": [],
"signature": [
"string | undefined"
],
"path": "x-pack/plugins/alerting/common/alert_instance_summary.ts",
"deprecated": false
},
{
"parentPluginId": "alerting",
"id": "def-common.AlertInstanceStatus.activeStartDate",
"type": "string",
"tags": [],
"label": "activeStartDate",
"description": [],
"signature": [
"string | undefined"
],
"path": "x-pack/plugins/alerting/common/alert_instance_summary.ts",
"deprecated": false
}
],
"initialIsOpen": false
},
{
"parentPluginId": "alerting",
"id": "def-common.AlertInstanceSummary",
"type": "Interface",
"tags": [],
"label": "AlertInstanceSummary",
"description": [],
"path": "x-pack/plugins/alerting/common/alert_instance_summary.ts",
"deprecated": false,
"children": [
{
"parentPluginId": "alerting",
"id": "def-common.AlertInstanceSummary.id",
"type": "string",
"tags": [],
"label": "id",
"description": [],
"path": "x-pack/plugins/alerting/common/alert_instance_summary.ts",
"deprecated": false
},
{
"parentPluginId": "alerting",
"id": "def-common.AlertInstanceSummary.name",
"type": "string",
"tags": [],
"label": "name",
"description": [],
"path": "x-pack/plugins/alerting/common/alert_instance_summary.ts",
"deprecated": false
},
{
"parentPluginId": "alerting",
"id": "def-common.AlertInstanceSummary.tags",
"type": "Array",
"tags": [],
"label": "tags",
"description": [],
"signature": [
"string[]"
],
"path": "x-pack/plugins/alerting/common/alert_instance_summary.ts",
"deprecated": false
},
{
"parentPluginId": "alerting",
"id": "def-common.AlertInstanceSummary.alertTypeId",
"type": "string",
"tags": [],
"label": "alertTypeId",
"description": [],
"path": "x-pack/plugins/alerting/common/alert_instance_summary.ts",
"deprecated": false
},
{
"parentPluginId": "alerting",
"id": "def-common.AlertInstanceSummary.consumer",
"type": "string",
"tags": [],
"label": "consumer",
"description": [],
"path": "x-pack/plugins/alerting/common/alert_instance_summary.ts",
"deprecated": false
},
{
"parentPluginId": "alerting",
"id": "def-common.AlertInstanceSummary.muteAll",
"type": "boolean",
"tags": [],
"label": "muteAll",
"description": [],
"path": "x-pack/plugins/alerting/common/alert_instance_summary.ts",
"deprecated": false
},
{
"parentPluginId": "alerting",
"id": "def-common.AlertInstanceSummary.throttle",
"type": "CompoundType",
"tags": [],
"label": "throttle",
"description": [],
"signature": [
"string | null"
],
"path": "x-pack/plugins/alerting/common/alert_instance_summary.ts",
"deprecated": false
},
{
"parentPluginId": "alerting",
"id": "def-common.AlertInstanceSummary.enabled",
"type": "boolean",
"tags": [],
"label": "enabled",
"description": [],
"path": "x-pack/plugins/alerting/common/alert_instance_summary.ts",
"deprecated": false
},
{
"parentPluginId": "alerting",
"id": "def-common.AlertInstanceSummary.statusStartDate",
"type": "string",
"tags": [],
"label": "statusStartDate",
"description": [],
"path": "x-pack/plugins/alerting/common/alert_instance_summary.ts",
"deprecated": false
},
{
"parentPluginId": "alerting",
"id": "def-common.AlertInstanceSummary.statusEndDate",
"type": "string",
"tags": [],
"label": "statusEndDate",
"description": [],
"path": "x-pack/plugins/alerting/common/alert_instance_summary.ts",
"deprecated": false
},
{
"parentPluginId": "alerting",
"id": "def-common.AlertInstanceSummary.status",
"type": "CompoundType",
"tags": [],
"label": "status",
"description": [],
"signature": [
"\"OK\" | \"Active\" | \"Error\""
],
"path": "x-pack/plugins/alerting/common/alert_instance_summary.ts",
"deprecated": false
},
{
"parentPluginId": "alerting",
"id": "def-common.AlertInstanceSummary.lastRun",
"type": "string",
"tags": [],
"label": "lastRun",
"description": [],
"signature": [
"string | undefined"
],
"path": "x-pack/plugins/alerting/common/alert_instance_summary.ts",
"deprecated": false
},
{
"parentPluginId": "alerting",
"id": "def-common.AlertInstanceSummary.errorMessages",
"type": "Array",
"tags": [],
"label": "errorMessages",
"description": [],
"signature": [
"{ date: string; message: string; }[]"
],
"path": "x-pack/plugins/alerting/common/alert_instance_summary.ts",
"deprecated": false
},
{
"parentPluginId": "alerting",
"id": "def-common.AlertInstanceSummary.instances",
"type": "Object",
"tags": [],
"label": "instances",
"description": [],
"signature": [
"{ [x: string]: ",
{
"pluginId": "alerting",
"scope": "common",
"docId": "kibAlertingPluginApi",
"section": "def-common.AlertInstanceStatus",
"text": "AlertInstanceStatus"
},
"; }"
],
"path": "x-pack/plugins/alerting/common/alert_instance_summary.ts",
"deprecated": false
},
{
"parentPluginId": "alerting",
"id": "def-common.AlertInstanceSummary.executionDuration",
"type": "Object",
"tags": [],
"label": "executionDuration",
"description": [],
"signature": [
"{ average: number; values: number[]; }"
],
"path": "x-pack/plugins/alerting/common/alert_instance_summary.ts",
"deprecated": false
}
],
"initialIsOpen": false
},
{
"parentPluginId": "alerting",
"id": "def-common.AlertsHealth",
@ -3530,6 +3263,273 @@
],
"initialIsOpen": false
},
{
"parentPluginId": "alerting",
"id": "def-common.AlertStatus",
"type": "Interface",
"tags": [],
"label": "AlertStatus",
"description": [],
"path": "x-pack/plugins/alerting/common/alert_summary.ts",
"deprecated": false,
"children": [
{
"parentPluginId": "alerting",
"id": "def-common.AlertStatus.status",
"type": "CompoundType",
"tags": [],
"label": "status",
"description": [],
"signature": [
"\"OK\" | \"Active\""
],
"path": "x-pack/plugins/alerting/common/alert_summary.ts",
"deprecated": false
},
{
"parentPluginId": "alerting",
"id": "def-common.AlertStatus.muted",
"type": "boolean",
"tags": [],
"label": "muted",
"description": [],
"path": "x-pack/plugins/alerting/common/alert_summary.ts",
"deprecated": false
},
{
"parentPluginId": "alerting",
"id": "def-common.AlertStatus.actionGroupId",
"type": "string",
"tags": [],
"label": "actionGroupId",
"description": [],
"signature": [
"string | undefined"
],
"path": "x-pack/plugins/alerting/common/alert_summary.ts",
"deprecated": false
},
{
"parentPluginId": "alerting",
"id": "def-common.AlertStatus.actionSubgroup",
"type": "string",
"tags": [],
"label": "actionSubgroup",
"description": [],
"signature": [
"string | undefined"
],
"path": "x-pack/plugins/alerting/common/alert_summary.ts",
"deprecated": false
},
{
"parentPluginId": "alerting",
"id": "def-common.AlertStatus.activeStartDate",
"type": "string",
"tags": [],
"label": "activeStartDate",
"description": [],
"signature": [
"string | undefined"
],
"path": "x-pack/plugins/alerting/common/alert_summary.ts",
"deprecated": false
}
],
"initialIsOpen": false
},
{
"parentPluginId": "alerting",
"id": "def-common.AlertSummary",
"type": "Interface",
"tags": [],
"label": "AlertSummary",
"description": [],
"path": "x-pack/plugins/alerting/common/alert_summary.ts",
"deprecated": false,
"children": [
{
"parentPluginId": "alerting",
"id": "def-common.AlertSummary.id",
"type": "string",
"tags": [],
"label": "id",
"description": [],
"path": "x-pack/plugins/alerting/common/alert_summary.ts",
"deprecated": false
},
{
"parentPluginId": "alerting",
"id": "def-common.AlertSummary.name",
"type": "string",
"tags": [],
"label": "name",
"description": [],
"path": "x-pack/plugins/alerting/common/alert_summary.ts",
"deprecated": false
},
{
"parentPluginId": "alerting",
"id": "def-common.AlertSummary.tags",
"type": "Array",
"tags": [],
"label": "tags",
"description": [],
"signature": [
"string[]"
],
"path": "x-pack/plugins/alerting/common/alert_summary.ts",
"deprecated": false
},
{
"parentPluginId": "alerting",
"id": "def-common.AlertSummary.ruleTypeId",
"type": "string",
"tags": [],
"label": "ruleTypeId",
"description": [],
"path": "x-pack/plugins/alerting/common/alert_summary.ts",
"deprecated": false
},
{
"parentPluginId": "alerting",
"id": "def-common.AlertSummary.consumer",
"type": "string",
"tags": [],
"label": "consumer",
"description": [],
"path": "x-pack/plugins/alerting/common/alert_summary.ts",
"deprecated": false
},
{
"parentPluginId": "alerting",
"id": "def-common.AlertSummary.muteAll",
"type": "boolean",
"tags": [],
"label": "muteAll",
"description": [],
"path": "x-pack/plugins/alerting/common/alert_summary.ts",
"deprecated": false
},
{
"parentPluginId": "alerting",
"id": "def-common.AlertSummary.throttle",
"type": "CompoundType",
"tags": [],
"label": "throttle",
"description": [],
"signature": [
"string | null"
],
"path": "x-pack/plugins/alerting/common/alert_summary.ts",
"deprecated": false
},
{
"parentPluginId": "alerting",
"id": "def-common.AlertSummary.enabled",
"type": "boolean",
"tags": [],
"label": "enabled",
"description": [],
"path": "x-pack/plugins/alerting/common/alert_summary.ts",
"deprecated": false
},
{
"parentPluginId": "alerting",
"id": "def-common.AlertSummary.statusStartDate",
"type": "string",
"tags": [],
"label": "statusStartDate",
"description": [],
"path": "x-pack/plugins/alerting/common/alert_summary.ts",
"deprecated": false
},
{
"parentPluginId": "alerting",
"id": "def-common.AlertSummary.statusEndDate",
"type": "string",
"tags": [],
"label": "statusEndDate",
"description": [],
"path": "x-pack/plugins/alerting/common/alert_summary.ts",
"deprecated": false
},
{
"parentPluginId": "alerting",
"id": "def-common.AlertSummary.status",
"type": "CompoundType",
"tags": [],
"label": "status",
"description": [],
"signature": [
"\"OK\" | \"Active\" | \"Error\""
],
"path": "x-pack/plugins/alerting/common/alert_summary.ts",
"deprecated": false
},
{
"parentPluginId": "alerting",
"id": "def-common.AlertSummary.lastRun",
"type": "string",
"tags": [],
"label": "lastRun",
"description": [],
"signature": [
"string | undefined"
],
"path": "x-pack/plugins/alerting/common/alert_summary.ts",
"deprecated": false
},
{
"parentPluginId": "alerting",
"id": "def-common.AlertSummary.errorMessages",
"type": "Array",
"tags": [],
"label": "errorMessages",
"description": [],
"signature": [
"{ date: string; message: string; }[]"
],
"path": "x-pack/plugins/alerting/common/alert_summary.ts",
"deprecated": false
},
{
"parentPluginId": "alerting",
"id": "def-common.AlertSummary.alerts",
"type": "Object",
"tags": [],
"label": "alerts",
"description": [],
"signature": [
"{ [x: string]: ",
{
"pluginId": "alerting",
"scope": "common",
"docId": "kibAlertingPluginApi",
"section": "def-common.AlertStatus",
"text": "AlertStatus"
},
"; }"
],
"path": "x-pack/plugins/alerting/common/alert_summary.ts",
"deprecated": false
},
{
"parentPluginId": "alerting",
"id": "def-common.AlertSummary.executionDuration",
"type": "Object",
"tags": [],
"label": "executionDuration",
"description": [],
"signature": [
"{ average: number; values: number[]; }"
],
"path": "x-pack/plugins/alerting/common/alert_summary.ts",
"deprecated": false
}
],
"initialIsOpen": false
},
{
"parentPluginId": "alerting",
"id": "def-common.AlertType",
@ -3912,20 +3912,6 @@
"deprecated": false,
"initialIsOpen": false
},
{
"parentPluginId": "alerting",
"id": "def-common.AlertInstanceStatusValues",
"type": "Type",
"tags": [],
"label": "AlertInstanceStatusValues",
"description": [],
"signature": [
"\"OK\" | \"Active\""
],
"path": "x-pack/plugins/alerting/common/alert_instance_summary.ts",
"deprecated": false,
"initialIsOpen": false
},
{
"parentPluginId": "alerting",
"id": "def-common.AlertNavigation",
@ -3990,9 +3976,9 @@
"label": "AlertStatusValues",
"description": [],
"signature": [
"\"OK\" | \"Active\" | \"Error\""
"\"OK\" | \"Active\""
],
"path": "x-pack/plugins/alerting/common/alert_instance_summary.ts",
"path": "x-pack/plugins/alerting/common/alert_summary.ts",
"deprecated": false,
"initialIsOpen": false
},
@ -4180,6 +4166,20 @@
"deprecated": false,
"initialIsOpen": false
},
{
"parentPluginId": "alerting",
"id": "def-common.RuleStatusValues",
"type": "Type",
"tags": [],
"label": "RuleStatusValues",
"description": [],
"signature": [
"\"OK\" | \"Active\" | \"Error\""
],
"path": "x-pack/plugins/alerting/common/alert_summary.ts",
"deprecated": false,
"initialIsOpen": false
},
{
"parentPluginId": "alerting",
"id": "def-common.SanitizedAlert",

View file

@ -19696,16 +19696,6 @@
"path": "x-pack/plugins/fleet/common/constants/routes.ts",
"deprecated": false
},
{
"parentPluginId": "fleet",
"id": "def-common.AGENT_API_ROUTES.ENROLL_PATTERN",
"type": "string",
"tags": [],
"label": "ENROLL_PATTERN",
"description": [],
"path": "x-pack/plugins/fleet/common/constants/routes.ts",
"deprecated": false
},
{
"parentPluginId": "fleet",
"id": "def-common.AGENT_API_ROUTES.UNENROLL_PATTERN",
@ -21889,4 +21879,4 @@
}
]
}
}
}

View file

@ -1,3 +1,7 @@
# For more configuration options see the configuration guide for Kibana in
# https://www.elastic.co/guide/index.html
# =================== System: Kibana Server ===================
# Kibana is served by a back end server. This setting specifies the port to use.
#server.port: 5601
@ -14,8 +18,7 @@
# Specifies whether Kibana should rewrite requests that are prefixed with
# `server.basePath` or require that they are rewritten by your reverse proxy.
# This setting was effectively always `false` before Kibana 6.3 and will
# default to `true` starting in Kibana 7.0.
# Defaults to `false`.
#server.rewriteBasePath: false
# Specifies the public URL at which Kibana is available for end users. If
@ -25,9 +28,17 @@
# The maximum payload size in bytes for incoming server requests.
#server.maxPayload: 1048576
# The Kibana server's name. This is used for display purposes.
# The Kibana server's name. This is used for display purposes.
#server.name: "your-hostname"
# =================== System: Kibana Server (Optional) ===================
# Enables SSL and paths to the PEM-format SSL certificate and SSL key files, respectively.
# These settings enable SSL for outgoing requests from the Kibana server to the browser.
#server.ssl.enabled: false
#server.ssl.certificate: /path/to/your/server.crt
#server.ssl.key: /path/to/your/server.key
# =================== System: Elasticsearch ===================
# The URLs of the Elasticsearch instances to use for all your queries.
#elasticsearch.hosts: ["http://localhost:9200"]
@ -39,28 +50,10 @@
#elasticsearch.password: "pass"
# Kibana can also authenticate to Elasticsearch via "service account tokens".
# If may use this token instead of a username/password.
# Service account tokens are Bearer style tokens that replace the traditional username/password based configuration.
# Use this token instead of a username/password.
# elasticsearch.serviceAccountToken: "my_token"
# Enables SSL and paths to the PEM-format SSL certificate and SSL key files, respectively.
# These settings enable SSL for outgoing requests from the Kibana server to the browser.
#server.ssl.enabled: false
#server.ssl.certificate: /path/to/your/server.crt
#server.ssl.key: /path/to/your/server.key
# Optional settings that provide the paths to the PEM-format SSL certificate and key files.
# These files are used to verify the identity of Kibana to Elasticsearch and are required when
# xpack.security.http.ssl.client_authentication in Elasticsearch is set to required.
#elasticsearch.ssl.certificate: /path/to/your/client.crt
#elasticsearch.ssl.key: /path/to/your/client.key
# Optional setting that enables you to specify a path to the PEM file for the certificate
# authority for your Elasticsearch instance.
#elasticsearch.ssl.certificateAuthorities: [ "/path/to/your/CA.pem" ]
# To disregard the validity of SSL certificates, change this setting's value to 'none'.
#elasticsearch.ssl.verificationMode: full
# Time in milliseconds to wait for Elasticsearch to respond to pings. Defaults to the value of
# the elasticsearch.requestTimeout setting.
#elasticsearch.pingTimeout: 1500
@ -80,10 +73,21 @@
# Time in milliseconds for Elasticsearch to wait for responses from shards. Set to 0 to disable.
#elasticsearch.shardTimeout: 30000
# Specifies the path where Kibana creates the process ID file.
#pid.file: /run/kibana/kibana.pid
# =================== System: Elasticsearch (Optional) ===================
# These files are used to verify the identity of Kibana to Elasticsearch and are required when
# xpack.security.http.ssl.client_authentication in Elasticsearch is set to required.
#elasticsearch.ssl.certificate: /path/to/your/client.crt
#elasticsearch.ssl.key: /path/to/your/client.key
# Set the value of this setting to off to suppress all logging output, or to debug to log everything.
# Enables you to specify a path to the PEM file for the certificate
# authority for your Elasticsearch instance.
#elasticsearch.ssl.certificateAuthorities: [ "/path/to/your/CA.pem" ]
# To disregard the validity of SSL certificates, change this setting's value to 'none'.
#elasticsearch.ssl.verificationMode: full
# =================== System: Logging ===================
# Set the value of this setting to off to suppress all logging output, or to debug to log everything. Defaults to 'info'
#logging.root.level: debug
# Enables you to specify a file where Kibana stores log output.
@ -108,10 +112,47 @@
# - name: metrics.ops
# level: debug
# =================== System: Other ===================
# The path where Kibana stores persistent data not saved in Elasticsearch. Defaults to data
#path.data: data
# Specifies the path where Kibana creates the process ID file.
#pid.file: /run/kibana/kibana.pid
# Set the interval in milliseconds to sample system and process performance
# metrics. Minimum is 100ms. Defaults to 5000.
# metrics. Minimum is 100ms. Defaults to 5000ms.
#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 .
#i18n.locale: "en"
# =================== Frequently used (Optional)===================
# =================== Saved Objects: Migrations ===================
# Saved object migrations run at startup. If you run into migration-related issues, you might need to adjust these settings.
# The number of documents migrated at a time.
# If Kibana can't start up or upgrade due to an Elasticsearch `circuit_breaking_exception`,
# use a smaller batchSize value to reduce the memory pressure. Defaults to 1000 objects per batch.
#migrations.batchSize: 1000
# The maximum payload size for indexing batches of upgraded saved objects.
# To avoid migrations failing due to a 413 Request Entity Too Large response from Elasticsearch.
# This value should be lower than or equal to your Elasticsearch clusters `http.max_content_length`
# configuration option. Default: 100mb
#migrations.maxBatchSizeBytes: 100mb
# The number of times to retry temporary migration failures. Increase the setting
# if migrations fail frequently with a message such as `Unable to complete the [...] step after
# 15 attempts, terminating`. Defaults to 15
#migrations.retryAttempts: 15
# =================== Search Autocomplete ===================
# Time in milliseconds to wait for autocomplete suggestions from Elasticsearch.
# This value must be a whole number greater than zero. Defaults to 1000ms
#data.autocomplete.valueSuggestions.timeout: 1000
# Maximum number of documents loaded by each shard to generate autocomplete suggestions.
# This value must be a whole number greater than zero. Defaults to 100_000
#data.autocomplete.valueSuggestions.terminateAfter: 100000

View file

@ -37,6 +37,28 @@ Pull requests are made into the master branch and then backported when it is saf
- Resolve merge conflicts by rebasing the target branch over your feature branch, and force-pushing (see below for instructions).
- When merging, well squash your commits into a single commit.
### Commit using your `@elastic.co` email address
In order to assist with developer tooling we ask that all Elastic engineers use their `@elastic.co` email address when committing to the Kibana repo. We have implemented a CI check that validates any PR opened by a member of the `@elastic` organization has at least one commit that is attributed to an `@elastic.co` email address. If you have a PR that is failing because of this check you can fix your PR by following these steps:
1. Ensure that you don't have any staged changes
1. Checkout the branch for your PR
1. Update the git config for your current repository to commit with your `@elastic.co` email:
```bash
git config --local user.email YOUR_ELASTIC_EMAIL@elastic.co
```
1. Create a commit using the new email address
```bash
git commit -m 'commit using @elastic.co' --allow-empty
```
1. Push the new commit to your PR and the status should now be green
**Note:** If doing this prevents your commits from being attributed to your Github account then make sure to add your `@elastic.co` address at [https://github.com/settings/emails](https://github.com/settings/emails).
### Rebasing and fixing merge conflicts
Rebasing can be tricky, and fixing merge conflicts can be even trickier because it involves force pushing. This is all compounded by the fact that attempting to push a rebased branch remotely will be rejected by git, and youll be prompted to do a pull, which is not at all what you should do (this will really mess up your branchs history).

View file

@ -458,7 +458,7 @@ describe('Plugin', () => {
const [coreStartMock, startDepsMock] = await coreSetup.getStartServices();
const unmountMock = jest.fn();
renderAppMock.mockReturnValue(unmountMock);
const params = coreMock.createAppMountParamters('/fake/base/path');
const params = coreMock.createAppMountParameters('/fake/base/path');
new Plugin(coreMock.createPluginInitializerContext()).setup(coreSetup);
// Grab registered mount function
@ -528,7 +528,7 @@ import { renderApp } from './application';
describe('renderApp', () => {
it('mounts and unmounts UI', () => {
const params = coreMock.createAppMountParamters('/fake/base/path');
const params = coreMock.createAppMountParameters('/fake/base/path');
const core = coreMock.createStart();
// Verify some expected DOM element is rendered into the element
@ -540,7 +540,7 @@ describe('renderApp', () => {
});
it('unsubscribes from uiSettings', () => {
const params = coreMock.createAppMountParamters('/fake/base/path');
const params = coreMock.createAppMountParameters('/fake/base/path');
const core = coreMock.createStart();
// Create a fake Subject you can use to monitor observers
const settings$ = new Subject();
@ -555,7 +555,7 @@ describe('renderApp', () => {
});
it('resets chrome visibility', () => {
const params = coreMock.createAppMountParamters('/fake/base/path');
const params = coreMock.createAppMountParameters('/fake/base/path');
const core = coreMock.createStart();
// Verify stateful Core API was called on mount

View file

@ -10,10 +10,526 @@
Review important information about the {kib} 8.0.0 releases.
* <<release-notes-8.0.0-beta1>>
* <<release-notes-8.0.0-alpha2>>
* <<release-notes-8.0.0-alpha1>>
--
[[release-notes-8.0.0-beta1]]
== {kib} 8.0.0-beta1
coming::[8.0.0-beta1]
Review the {kib} 8.0.0-beta1 changes, then use the <<upgrade-assistant,Upgrade Assistant>> to complete the upgrade.
[float]
[[breaking-changes-8.0.0-beta1]]
=== Breaking changes
Breaking changes can prevent your application from optimal operation and performance. Review the following breaking changes, then mitigate the impact to your application.
To review the breaking changes in previous versions, refer to the following:
<<breaking-changes-8.0.0-alpha2,8.0.0-alpha2>> | <<breaking-changes-8.0.0-alpha1,8.0.0-alpha1>>
// tag::notable-breaking-changes[]
[float]
[[alerting-breaking-changes-8.0.0-beta1]]
==== Alerting
[discrete]
[[breaking-114558]]
.Removes `xpack.task_manager.index`
[%collapsible]
====
*Details* +
The `xpack.task_manager.index` setting has been removed. For more information, refer to {kibana-pull}114558[#114558].
*Impact* +
Before you upgrade to 8.0.0, remove `xpack.task_manager.index` from kibana.yml.
====
[discrete]
[[breaking-113461]]
.Removes ability to remove plugins
[%collapsible]
====
*Details* +
The `xpack.actions.enabled` setting has been removed. For more information, refer to {kibana-pull}113461[#113461].
*Impact* +
Before you upgrade to 8.0.0, remove `xpack.actions.enabled` from kibana.yml.
====
[float]
[[lens-visualizations-breaking-changes-8.0.0-beta1]]
==== Lens & visualizations
[discrete]
[[breaking-113516]]
.Removes display options from legacy gauge
[%collapsible]
====
*Details* +
The *Display warnings* option has been removed from the aggregation-based gauge visualization. For more information, refer to {kibana-pull}113516[#113516].
*Impact* +
When you create aggregation-based gauge visualizations, the *Display warnings* option is no longer available in *Options > Labels*.
====
[discrete]
[[breaking-112643]]
.Removes settings from visEditors plugins
[%collapsible]
====
*Details* +
The following deprecated visEditors plugin settings have been removed:
* `metric_vis.enabled`
* `table_vis.enabled`
* `tagcloud.enabled`
* `metrics.enabled`
* `metrics.chartResolution`
* `chartResolution`
* `metrics.minimumBucketSize`
* `minimumBucketSize`
* `vega.enabled`
* `vega.enableExternalUrls`
* `vis_type_table.legacyVisEnabled`
* `timelion_vis.enabled`
* `timelion.enabled`
* `timelion.graphiteUrls`
* `timelion.ui.enabled`
For more information, refer to {kibana-pull}112643[#112643].
*Impact* +
Before you upgrade, make the following changes in kibana.yml:
* Replace `metric_vis.enabled` with `vis_type_metric.enabled`
* Replace `table_vis.enabled` with `vis_type_table.enabled`
* Replace `tagcloud.enabled` with `vis_type_tagcloud.enabled`
* Replace `metrics.enabled` with `vis_type_timeseries.enabled`
* Replace `metrics.chartResolution` and `chartResolution` with `vis_type_timeseries.chartResolution`
* Replace `metrics.minimumBucketSize` and `minimumBucketSize` with `vis_type_timeseries.minimumBucketSize`
* Replace `vega.enabled` with `vis_type_vega.enabled`
* Replace `vega.enableExternalUrls` with `vis_type_vega.enableExternalUrls`
* Remove `vis_type_table.legacyVisEnabled`
* Replace `timelion_vis.enabled` with `vis_type_timelion.enabled`
* Replace `timelion.enabled` with `vis_type_timelion.enabled`
* Replace `timelion.graphiteUrls` with `vis_type_timelion.graphiteUrls`
* Remove `timelion.ui.enabled`
====
[discrete]
[[breaking-111704]]
.Removes dimming opacity setting
[%collapsible]
====
*Details* +
The *Dimming opacity* setting in *Advanced Settings* has been removed. For more information, refer to {kibana-pull}111704[#111704].
*Impact* +
When you upgrade to 8.0.0, you are no longer able to configure the dimming opactiy for visualizations.
====
[discrete]
[[breaking-110985]]
.Removes Less stylesheet support
[%collapsible]
====
*Details* +
In *TSVB*, custom Less stylesheets have been removed. For more information, refer to {kibana-pull}110985[#110985].
*Impact* +
Existing less stylesheets are automatically converted to CSS stylesheets.
====
[discrete]
[[breaking-110571]]
.Disables the input string mode
[%collapsible]
====
*Details* +
In *TSVB*, the *Index pattern selection mode* option has been removed. For more information, refer to {kibana-pull}110571[#110571].
*Impact* +
To use index patterns and {es} indices in *TSVB* visualizations:
. Open the main menu, then click *Stack Management > Advanced Settings*.
. Select *Allow string indices in TSVB*.
. Click *Save changes*.
====
[float]
[[logs-breaking-changes-8.0.0-beta1]]
==== Logs
[discrete]
[[breaking-115974]]
.Removes deprecated alias config entries
[%collapsible]
====
*Details* +
The deprecated `xpack.infra.sources.default.logAlias` and `xpack.infra.sources.default.logAlias` settings have been removed. For more information, refer to {kibana-pull}115974[#115974].
*Impact* +
Before you upgrade, remove the settings from kibana.yml, then configure the settings in <<logs-app,Logs>>.
====
[discrete]
[[breaking-61302]]
.Removes configurable fields in settings
[%collapsible]
====
*Details* +
The *Logs* and *Metrics* configurable fields settings have been removed. For more information, refer to {kibana-pull}61302[#61302].
*Impact* +
Configure the settings in https://www.elastic.co/guide/en/ecs/current/ecs-reference.html[ECS].
====
[float]
[[machine-learning-breaking-changes-8.0.0-beta1]]
==== Machine learning
[discrete]
[[breaking-115444]]
.Grants access to machine learning features when base privileges are used
[%collapsible]
====
*Details* +
Machine learning features are included as base privileges. For more information, refer to {kibana-pull}115444[#115444].
*Impact* +
If you do not want to grant users privileges to machine learning features, update <<xpack-security,*Users* and *Roles*>>.
====
[float]
[[maps-breaking-changes-8.0.0-beta1]]
==== Maps
[discrete]
[[breaking-116184]]
.Removes proxyElasticMapsServiceInMaps
[%collapsible]
====
*Details* +
The `map.proxyElasticMapsServiceInMaps` setting has been removed. For more information, refer to {kibana-pull}116184[#116184].
*Impact* +
Install the on-prem version of the <<maps-connect-to-ems,Elastic Maps Service>>, which is a Docker service that resides in the Elastic Docker registry, in an accessible location on your internal network. When you complete the installation, update kibana.yml to point to the service.
====
[float]
[[operations-breaking-changes-8.0.0-beta1]]
==== Operations
[discrete]
[[breaking-111535]]
.Removes environment variables
[%collapsible]
====
*Details* +
The `CONFIG_PATH` and `DATA_PATH` environment variables have been removed. For more information, refer to {kibana-pull}111535[#111535].
*Impact* +
Replace the `CONFIG_PATH` environment variable with `KBN_PATH_CONF`, and replace `DATA_PATH` with the `path.data` setting.
====
[float]
[[platform-breaking-changes-8.0.0-beta1]]
==== Platform
[discrete]
[[breaking-114379]]
.Removes supports for csp.rules configuration
[%collapsible]
====
*Details* +
Support for the `csp.rules` configuration property has been removed. For more information, refer to {kibana-pull}114379[#114379].
*Impact* +
Configuring the default `csp.script_src`, `csp.workers_src`, and `csp.style_src` values is not required.
====
[discrete]
[[breaking-113653]]
.Changes and removes deprecated core settings and deprecated settings from core plugins
[%collapsible]
====
*Details* +
The deprecation notice for `server.cors` has changed from `level:critical` to `level:warning`.
The following settings have changed:
* The `xpack.banners.placement` value has been renamed
* The `newsfeed.defaultLanguage` newsfeed item retrieval method and default language has changed
Support for the following configuration settings has been removed:
* `newsfeed.defaultLanguage`
* `cpu.cgroup.path.override`
* `cpuacct.cgroup.path.override`
* `server.xsrf.whitelist`
* `xpack.xpack_main.xpack_api_polling_frequency_millis`
* `KIBANA_PATH_CONF`
For more information, refer to {kibana-pull}113653[#113653].
*Impact* +
* The `header` value provided to the `xpack.banners.placement` configuration has been renamed to 'top'
* The `newsfeed.defaultLanguage` newsfeed items are retrieved based on the browser locale and default to English
* Replace `cpu.cgroup.path.override` with `ops.cGroupOverrides.cpuPath`
* Replace `cpuacct.cgroup.path.override` with `ops.cGroupOverrides.cpuAcctPath`
* Replace `server.xsrf.whitelist` with `server.xsrf.allowlist`
* Replace `xpack.xpack_main.xpack_api_polling_frequency_millis` with `xpack.licensing.api_polling_frequency`
* Replace `KIBANA_PATH_CONF` path to the {kib} configuration file using the `KBN_PATH_CONF` environment variable
====
[discrete]
[[breaking-113495]]
.Removes `enabled` settings from plugins
[%collapsible]
====
*Details* +
Using `{plugin_name}.enabled` to disable plugins has been removed. Some plugins, such as `telemetry`, `newsfeed`, `reporting`, and the various `vis_type` plugins will continue to support this setting. All other {kib} plugins will not support this setting. Any new plugin will support this setting only when specified in the `configSchema`. For more information, refer to {kibana-pull}113495[#113495].
The `xpack.security.enabled` setting has been removed. For more information, refer to {kibana-pull}111681[#111681].
*Impact* +
Before you upgrade to 8.0.0:
* Remove `{plugin_name}.enabled` from kibana.yml. If you use the setting to control user access to {kib} applications, use <<tutorial-secure-access-to-kibana,*Features* controls>> instead.
* Replace `xpack.security.enabled` with {ref}/security-settings.html#general-security-settings[`xpack.security.enabled`] in elasticsearch.yml.
====
[discrete]
[[breaking-113367]]
.Removes `--plugin-dir` cli option
[%collapsible]
====
*Details* +
The `plugins.scanDirs` setting and `--plugin-dir` cli option have been removed. For more information, refer to {kibana-pull}113367[#113367].
*Impact* +
Before you upgrade to 8.0.0, remove `plugins.scanDirs` from kibana.yml.
====
[discrete]
[[breaking-113296]]
.Removes support for `optimize.*` settings
[%collapsible]
====
*Details* +
The legacy `optimize.*` settings have been removed. If your configuration uses the following legacy `optimize.*` settings, {kib} fails to start:
* `optimize.lazy`
* `optimize.lazyPort`
* `optimize.lazyHost`
* `optimize.lazyPrebuild`
* `optimize.lazyProxyTimeout`
* `optimize.enabled`
* `optimize.bundleFilter`
* `optimize.bundleDir`
* `optimize.viewCaching`
* `optimize.watch`
* `optimize.watchPort`
* `optimize.watchHost`
* `optimize.watchPrebuild`
* `optimize.watchProxyTimeout`
* `optimize.useBundleCache`
* `optimize.sourceMaps`
* `optimize.workers`
* `optimize.profile`
* `optimize.validateSyntaxOfNodeModules`
For more information, refer to {kibana-pull}113296[#113296].
*Impact* +
To run the `@kbn/optimizer` separately in development, pass `--no-optimizer` to `yarn start`. For more details, refer to {kibana-pull}73154[#73154].
====
[discrete]
[[breaking-113173]]
.Removes `so/server/es` settings
[%collapsible]
====
*Details* +
Some of the `so/server/es` settings have been removed. If your configuration uses the following settings, {kib} fails to start:
* `savedObjects.indexCheckTimeout`
* `server.xsrf.token`
* `elasticsearch.preserveHost`
* `elasticsearch.startupTimeout`
For more information, refer to {kibana-pull}113173[#113173].
*Impact* +
Before you upgrade to 8.0.0., remove these settings from kibana.yml.
====
[discrete]
[[breaking-113068]]
.Adds requirement for inline scripting
[%collapsible]
====
*Details* +
To start {kib}, you must enable inline scripting in {es}. For more information, refer to {kibana-pull}113068[#113068].
*Impact* +
Enable link:https://www.elastic.co/guide/en/elasticsearch/reference/master/modules-scripting-security.html[inline scripting].
====
[discrete]
[[breaking-112773]]
.Removes `kibana.index` settings
[%collapsible]
====
*Details* +
The `kibana.index`, `xpack.reporting.index`, and `xpack.task_manager.index` settings have been removed. For more information, refer to {kibana-pull}112773[#112773].
*Impact* +
Use spaces, cross-cluster replication, or cross-cluster search. To migrate to <<xpack-spaces,spaces>>, export your <<managing-saved-objects, saved objects>> from a tenant into the default space. For more details, refer to link:https://github.com/elastic/kibana/issues/82020[#82020].
====
[discrete]
[[breaking-112305]]
.Removes legacy logging
[%collapsible]
====
*Details* +
The logging configuration and log output format has changed. For more information, refer to {kibana-pull}112305[#112305].
*Impact* +
Use the new <<logging-configuration-migration,logging system>>.
====
[float]
[[reporting-breaking-changes-8.0.0-beta1]]
==== Reporting
[discrete]
[[breaking-114216]]
.Removes reporting settings
[%collapsible]
====
*Details* +
The following settings have been removed:
* `xpack.reporting.capture.concurrency`
* `xpack.reporting.capture.settleTime`
* `xpack.reporting.capture.timeout`
* `xpack.reporting.kibanaApp`
For more information, refer to {kibana-pull}114216[#114216].
*Impact* +
Before you upgrade to 8.0.0, remove the settings from kibana.yml.
====
[float]
[[rest-api-breaking-changes-8.0.0-beta1]]
==== REST API
[discrete]
[[breaking-114730]]
.Removes `/api/settings`
[%collapsible]
====
*Details* +
The `/api/settings` REST API has been removed. For more information, refer to {kibana-pull}114730[#114730].
*Impact* +
Use `/api/stats`.
====
[float]
[[security-breaking-changes-8.0.0-beta1]]
==== Security
[discrete]
[[breaking-116191]]
.Removes legacy audit logger
[%collapsible]
====
*Details* +
The legacy audit logger has been removed. For more information, refer to {kibana-pull}116191[#116191].
*Impact* +
Audit logs will be written to the default location in the new ECS format. To change the output file, filter events, and more, use the <<audit-logging-settings, audit logging settings>>.
====
// end::notable-breaking-changes[]
[float]
[[deprecations-8.0.0-beta1]]
=== Deprecations
Deprecated functionality does not have an immediate impact on your application, but we strongly recommend you make the necessary updates after you complete the upgrade.
To review the 8.0.0 depcrecations, refer to the <<deprecations-8.0.0-alpha1,8.0.0-alpha1 release notes>>.
[float]
[[features-8.0.0]]
=== Features
The 8.0.0-beta1 release adds the following new and notable features.
Dashboard::
* Dashboard Integration {kibana-pull}115991[#115991]
Elastic Security::
For the Elastic Security 8.0.0 release information, refer to {security-guide}/release-notes.html[_Elastic Security Solution Release Notes_].
Machine Learning::
* Addition of new Model Management tab {kibana-pull}115772[#115772]
Platform::
* Changes edit view to json read-only view {kibana-pull}112034[#112034]
[float]
[[enhancement-v8.0.0-beta1]]
=== Enhancements
The 8.0.0-beta1 release includes the following enhancements.
Canvas::
* By-Value embeddables {kibana-pull}113827[#113827]
* Toolbar UI updates {kibana-pull}113329[#113329]
Elastic Security::
For the Elastic Security 8.0.0 release information, refer to {security-guide}/release-notes.html[_Elastic Security Solution Release Notes_].
Lens & Visualizations::
* Handle removal of deprecated date histogram interval in *Vega* {kibana-pull}109090[#109090]
* Adds value labels to Heatmap in *Lens* {kibana-pull}106406[#106406]
Logs::
* Make Alerts page use shared Kibana time range {kibana-pull}115192[#115192]
Machine Learning::
* Adds support to {fleet} {integrations} for installing ML models {kibana-pull}107710[#107710]
* Adds Index data visualizer grid embeddable as extra view within Discover {kibana-pull}107184[#107184]
Maps::
* Use Elastic Maps Service v8.0 {kibana-pull}116217[#116217]
* Use desaturated map tiles instead of bright map tiles by default {kibana-pull}116179[#116179]
* Use ES mvt {kibana-pull}114553[#114553]
Security::
* Register "minimal" feature privileges regardless of the current license level {kibana-pull}115992[#115992]
Uptime::
* Uptime index config using kibana.yml {kibana-pull}115775[#115775]
[float]
[[fixes-v8.0.0-beta1]]
=== Bug fixes
The 8.0.0-beta1 release includes the following bug fixes.
Management::
* Removes freeze action from Cold phase {kibana-pull}116160[#116160]
* Disallow creating runtime and scripted fields with * in the name {kibana-pull}116119[#116119]
Querying & Filtering::
* Fixes Add filter button doesnt close popup after openning {kibana-pull}111917[#111917]
[[release-notes-8.0.0-alpha2]]
== {kib} 8.0.0-alpha2
@ -26,7 +542,7 @@ Review the {kib} 8.0.0-alpha2 changes, then use the <<upgrade-assistant,Upgrade
Breaking changes can prevent your application from optimal operation and performance. Review the following breaking changes, then mitigate the impact to your application.
//tag::notable-breaking-changes[]
To review the breaking changes in the previous version, refer to <<breaking-changes-8.0.0-alpha1,8.0.0-alpha1>>.
[discrete]
[[breaking-110830]]
@ -130,9 +646,13 @@ The deprecated `xpack.maps.showMapVisualizationTypes` setting in kibana.yml has
When you upgrade, remove `xpack.maps.showMapVisualizationTypes` from your kibana.yml file.
====
For the {kib} 8.0.0-alpha1 breaking changes, refer to <<breaking-changes-8.0.0,Breaking changes>>.
[float]
[[deprecations-8.0.0-alpha2]]
=== Deprecations
//end::notable-breaking-changes[]
Deprecated functionality does not have an immediate impact on your application, but we strongly recommend you make the necessary updates after you complete the upgrade.
To review the 8.0.0 depcrecations, refer to the <<deprecations-8.0.0-alpha1,8.0.0-alpha1 release notes>>.
[float]
[[features-8.0.0-alpha2]]
@ -152,27 +672,17 @@ For the Elastic Security 8.0.0-alpha2 release information, refer to {security-gu
Security::
* Interactive setup mode {kibana-pull}106881[#106881]
[float]
[[fixes-v8.0.0-alpha2]]
=== Bug fix
The 8.0.0-alpha2 release includes the following bug fix.
Operations::
* Moves systemd service to /usr/lib/systemd/system {kibana-pull}83571[#83571]
[[release-notes-8.0.0-alpha1]]
== {kib} 8.0.0-alpha1
Review the {kib} 8.0.0-alpha1 changes, then use the <<upgrade-assistant,Upgrade Assistant>> to complete the upgrade.
[float]
[[breaking-changes-8.0.0]]
[[breaking-changes-8.0.0-alpha1]]
=== Breaking changes
Breaking changes can prevent your application from optimal operation and performance. Review the breaking changes, then mitigate the impact to your application.
//tag::notable-breaking-changes[]
[float]
[[enterprise-search-change]]
==== Enterprise Search changes
@ -336,7 +846,7 @@ The default values for the session timeout `xpack.security.session.{lifespan|idl
*Impact* +
Use the following default values:
* `xpack.security.session.idleTimeout: 1h`
* `xpack.security.session.idleTimeout: 8h`
* `xpack.security.session.lifespan: 30d`
====
@ -388,10 +898,8 @@ The environment variables `CONFIG_PATH` and `DATA_PATH` have been removed. For
Use the environment variable `KBN_PATH_CONF` instead of `CONFIG_PATH`. Use the setting `path.data` instead of `DATA_PATH`.
====
// end::notable-breaking-changes[]
[float]
[[deprecations-8.0.0]]
[[deprecations-8.0.0-alpha1]]
=== Deprecations
The following functionality is deprecated in 8.0.0, and will be removed in 9.0.0. Deprecated functionality does not have an immediate impact on your application, but we strongly recommend you make the necessary updates after you complete the upgrade.

View file

@ -1,7 +1,7 @@
[[dashboard-api]]
== Import and export dashboard APIs
deprecated::[7.15.0,These experimental APIs have been deprecated in favor of <<saved-objects-api-import>> and <<saved-objects-api-export>>.]
deprecated::[7.15.0,Both of these APIs have been deprecated in favor of <<saved-objects-api-import>> and <<saved-objects-api-export>>.]
Import and export dashboards with the corresponding saved objects, such as visualizations, saved
searches, and index patterns.

View file

@ -6,7 +6,7 @@
deprecated::[7.15.0,Use <<saved-objects-api-export>> instead.]
experimental[] Export dashboards and corresponding saved objects.
Export dashboards and corresponding saved objects.
[[dashboard-api-export-request]]
==== Request

View file

@ -6,7 +6,7 @@
deprecated::[7.15.0,Use <<saved-objects-api-import>> instead.]
experimental[] Import dashboards and corresponding saved objects.
Import dashboards and corresponding saved objects.
[[dashboard-api-import-request]]
==== Request

View file

@ -1,45 +1,45 @@
[[index-patterns]]
=== Create an index pattern
[[data-views]]
=== Create a data view
{kib} requires an index pattern to access the {es} data that you want to explore.
An index pattern selects the data to use and allows you to define properties of the fields.
{kib} requires a data view to access the {es} data that you want to explore.
A data view selects the data to use and allows you to define properties of the fields.
An index pattern can point to one or more indices, {ref}/data-streams.html[data stream], or {ref}/alias.html[index aliases].
For example, an index pattern can point to your log data from yesterday,
A data view can point to one or more indices, {ref}/data-streams.html[data stream], or {ref}/alias.html[index aliases].
For example, a data view can point to your log data from yesterday,
or all indices that contain your data.
[float]
[[index-patterns-read-only-access]]
[[data-views-read-only-access]]
=== Required permissions
* Access to *Index Patterns* requires the <<xpack-kibana-role-management, {kib} privilege>>
`Index Pattern Management`.
* Access to *Data Views* requires the <<xpack-kibana-role-management, {kib} privilege>>
`Data View Management`.
* To create an index pattern, you must have the <<xpack-kibana-role-management,{es} privilege>>
* To create a data view, you must have the <<xpack-kibana-role-management,{es} privilege>>
`view_index_metadata`.
* If a read-only indicator appears in {kib}, you have insufficient privileges
to create or save index patterns. The buttons to create new index patterns or
save existing index patterns are not visible. For more information,
to create or save data views. The buttons to create new data views or
save existing data views are not visible. For more information,
refer to <<xpack-security-authorization,Granting access to {kib}>>.
[float]
[[settings-create-pattern]]
=== Create an index pattern
=== Create a data view
If you collected data using one of the {kib} <<connect-to-elasticsearch,ingest options>>,
uploaded a file, or added sample data,
you get an index pattern for free, and can start exploring your data.
If you loaded your own data, follow these steps to create an index pattern.
you get a data view for free, and can start exploring your data.
If you loaded your own data, follow these steps to create a data view.
. Open the main menu, then click to *Stack Management > Index Patterns*.
. Open the main menu, then click to *Stack Management > Data Views*.
. Click *Create data view*.
. Click *Create index pattern*.
+
[role="screenshot"]
image:management/index-patterns/images/create-index-pattern.png["Create index pattern"]
image:management/index-patterns/images/create-index-pattern.png["Create data view"]
. Start typing in the *Index pattern* field, and {kib} looks for the names of
. Start typing in the *name* field, and {kib} looks for the names of
indices, data streams, and aliases that match your input.
+
** To match multiple sources, use a wildcard (*). For example, `filebeat-*` matches
@ -61,21 +61,21 @@ global time filters on your dashboards. This is useful if
you have multiple time fields and want to create dashboards that combine visualizations
based on different timestamps.
. Click *Create index pattern*.
. Click *Create data view*.
+
[[reload-fields]] {kib} is now configured to use your {es} data. When a new field is added to an index,
the index pattern field list is updated
the next time the index pattern is loaded, for example, when you load the page or
the data view field list is updated
the next time the data view is loaded, for example, when you load the page or
move between {kib} apps.
. Select this index pattern when you search and visualize your data.
. Select this data view when you search and visualize your data.
[float]
[[rollup-index-pattern]]
==== Create an index pattern for rolled up data
[[rollup-data-view]]
==== Create a data view for rolled up data
An index pattern can match one rollup index. For a combination rollup
index pattern with both raw and rolled up data, use the standard notation:
A data view can match one rollup index. For a combination rollup
data view with both raw and rolled up data, use the standard notation:
```ts
rollup_logstash,kibana_sample_data_logs
@ -84,7 +84,7 @@ For an example, refer to <<rollup-data-tutorial,Create and visualize rolled up d
[float]
[[management-cross-cluster-search]]
==== Create an index pattern that searches across clusters
==== Create a data view that searches across clusters
If your {es} clusters are configured for {ref}/modules-cross-cluster-search.html[{ccs}],
you can create an index pattern to search across the clusters of your choosing. Use the
@ -129,20 +129,20 @@ To exclude a cluster having a name starting with `cluster_`:
`cluster_*:logstash-*,cluster_one:-*`
```
Once you configure an index pattern to use the {ccs} syntax, all searches and
aggregations using that index pattern in {kib} take advantage of {ccs}.
Once you configure a data view to use the {ccs} syntax, all searches and
aggregations using that data view in {kib} take advantage of {ccs}.
[float]
[[delete-index-pattern]]
=== Delete index patterns
[[delete-data-view]]
=== Delete data views
When you delete an index pattern, you cannot recover the associated field formatters, runtime fields, source filters,
and field popularity data. Deleting an index pattern does not remove any indices or data documents from {es}.
When you delete a data view, you cannot recover the associated field formatters, runtime fields, source filters,
and field popularity data. Deleting a data view does not remove any indices or data documents from {es}.
WARNING: Deleting an index pattern breaks all visualizations, saved searches, and other saved objects that reference the index pattern.
WARNING: Deleting a data view breaks all visualizations, saved searches, and other saved objects that reference the data view.
. Open the main menu, then click *Stack Management > Index Patterns*.
. Open the main menu, then click *Stack Management > Data Views*.
. Click the index pattern to delete.
. Click the data view to delete.
. Delete (image:management/index-patterns/images/delete.png[Delete icon]) the index pattern.
. Delete (image:management/index-patterns/images/delete.png[Delete icon]) the data view.

View file

@ -35,19 +35,19 @@ Open the search bar using the keyboard shortcut Ctrl+/ on Windows and Linux, Com
image:concepts/images/global-search.png["Global search showing matches to apps and saved objects for the word visualize"]
[float]
=== Accessing data with index patterns
=== Accessing data with data views
{kib} requires an index pattern to tell it which {es} data you want to access,
and whether the data is time-based. An index pattern can point to one or more {es}
{kib} requires a data view to tell it which {es} data you want to access,
and whether the data is time-based. A data view can point to one or more {es}
data streams, indices, or index aliases by name.
For example, `logs-elasticsearch-prod-*` is an index pattern,
and it is time-based with a time field of `@timestamp`. The time field is not editable.
Index patterns are typically created by an administrator when sending data to {es}.
You can <<index-patterns,create or update index patterns>> in *Stack Management*, or by using a script
Data views are typically created by an administrator when sending data to {es}.
You can <<data-views,create or update data views>> in *Stack Management*, or by using a script
that accesses the {kib} API.
{kib} uses the index pattern to show you a list of fields, such as
{kib} uses the data view to show you a list of fields, such as
`event.duration`. You can customize the display name and format for each field.
For example, you can tell {kib} to display `event.duration` in seconds.
{kib} has <<managing-fields,field formatters>> for strings,
@ -75,7 +75,7 @@ and can optionally contain the time filter and extra filters.
==== Time filter
The <<set-time-filter, global time filter>> limits the time range of data displayed.
In most cases, the time filter applies to the time field in the index pattern,
In most cases, the time filter applies to the time field in the data view,
but some apps allow you to use a different time field.
Using the time filter, you can configure a refresh rate to periodically
@ -159,7 +159,7 @@ Use the global search to quickly open a saved object.
* Go to <<discover, Discover>> for instructions on searching your data.
include::index-patterns.asciidoc[]
include::data-views.asciidoc[]
include::set-time-filter.asciidoc[]

View file

@ -2,7 +2,7 @@
=== Set the time range
Display data within a
specified time range when your index contains time-based events, and a time-field is configured for the
selected <<index-patterns, index pattern>>.
selected <<data-views, data view>>.
The default time range is 15 minutes, but you can customize
it in <<advanced-options,Advanced Settings>>.

View file

@ -42,6 +42,28 @@ explanation of _why_ you made the changes that you did.
feature branch, and force-pushing (see below for instructions).
* When merging, we'll squash your commits into a single commit.
[discrete]
==== Commit using your `@elastic.co` email address
In order to assist with developer tooling we ask that all Elastic engineers use their `@elastic.co` email address when committing to the Kibana repo. We have implemented a CI check that validates any PR opened by a member of the `@elastic` organization has at least one commit that is attributed to an `@elastic.co` email address. If you have a PR that is failing because of this check you can fix your PR by following these steps:
1. Ensure that you don't have any staged changes
2. Checkout the branch for your PR
3. Update the git config for your current repository to commit with your `@elastic.co` email:
+
["source","shell"]
-----------
git config --local user.email YOUR_ELASTIC_EMAIL@elastic.co
-----------
4. Create a commit using the new email address
+
["source","shell"]
-----------
git commit -m 'commit using @elastic.co' --allow-empty
-----------
+
5. Push the new commit to your PR and the status should now be green
[discrete]
==== Rebasing and fixing merge conflicts

View file

@ -261,5 +261,8 @@ readonly links: {
readonly rubyOverview: string;
readonly rustGuide: string;
};
readonly endpoints: {
readonly troubleshooting: string;
};
};
```

File diff suppressed because one or more lines are too long

View file

@ -8,7 +8,7 @@
<b>Signature:</b>
```typescript
export interface HttpResponse<TResponseBody = any>
export interface HttpResponse<TResponseBody = unknown>
```
## Properties

View file

@ -7,5 +7,5 @@
<b>Signature:</b>
```typescript
readonly body?: any;
readonly body?: TResponseBody;
```

View file

@ -8,14 +8,14 @@
<b>Signature:</b>
```typescript
export interface IHttpFetchError extends Error
export interface IHttpFetchError<TResponseBody = unknown> extends Error
```
## Properties
| Property | Type | Description |
| --- | --- | --- |
| [body](./kibana-plugin-core-public.ihttpfetcherror.body.md) | <code>any</code> | |
| [body](./kibana-plugin-core-public.ihttpfetcherror.body.md) | <code>TResponseBody</code> | |
| [name](./kibana-plugin-core-public.ihttpfetcherror.name.md) | <code>string</code> | |
| [req](./kibana-plugin-core-public.ihttpfetcherror.req.md) | <code>Request</code> | |
| [request](./kibana-plugin-core-public.ihttpfetcherror.request.md) | <code>Request</code> | |

View file

@ -9,7 +9,7 @@ Properties that can be returned by HttpInterceptor.request to override the respo
<b>Signature:</b>
```typescript
export interface IHttpResponseInterceptorOverrides<TResponseBody = any>
export interface IHttpResponseInterceptorOverrides<TResponseBody = unknown>
```
## Properties

View file

@ -97,6 +97,7 @@ The plugin integrates with the core system via lifecycle events: `setup`<!-- -->
| [Plugin](./kibana-plugin-core-public.plugin.md) | The interface that should be returned by a <code>PluginInitializer</code>. |
| [PluginInitializerContext](./kibana-plugin-core-public.plugininitializercontext.md) | The available core services passed to a <code>PluginInitializer</code> |
| [ResolvedSimpleSavedObject](./kibana-plugin-core-public.resolvedsimplesavedobject.md) | This interface is a very simple wrapper for SavedObjects resolved from the server with the [SavedObjectsClient](./kibana-plugin-core-public.savedobjectsclient.md)<!-- -->. |
| [ResponseErrorBody](./kibana-plugin-core-public.responseerrorbody.md) | |
| [SavedObject](./kibana-plugin-core-public.savedobject.md) | |
| [SavedObjectAttributes](./kibana-plugin-core-public.savedobjectattributes.md) | The data for a Saved Object is stored as an object in the <code>attributes</code> property. |
| [SavedObjectError](./kibana-plugin-core-public.savedobjecterror.md) | |

View file

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

View file

@ -20,6 +20,7 @@ export interface OverlayFlyoutOpenOptions
| [className](./kibana-plugin-core-public.overlayflyoutopenoptions.classname.md) | <code>string</code> | |
| [closeButtonAriaLabel](./kibana-plugin-core-public.overlayflyoutopenoptions.closebuttonarialabel.md) | <code>string</code> | |
| [hideCloseButton](./kibana-plugin-core-public.overlayflyoutopenoptions.hideclosebutton.md) | <code>boolean</code> | |
| [maskProps](./kibana-plugin-core-public.overlayflyoutopenoptions.maskprops.md) | <code>EuiOverlayMaskProps</code> | |
| [maxWidth](./kibana-plugin-core-public.overlayflyoutopenoptions.maxwidth.md) | <code>boolean &#124; number &#124; string</code> | |
| [onClose](./kibana-plugin-core-public.overlayflyoutopenoptions.onclose.md) | <code>(flyout: OverlayRef) =&gt; void</code> | EuiFlyout onClose handler. If provided the consumer is responsible for calling flyout.close() to close the flyout; |
| [ownFocus](./kibana-plugin-core-public.overlayflyoutopenoptions.ownfocus.md) | <code>boolean</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-core-public](./kibana-plugin-core-public.md) &gt; [ResponseErrorBody](./kibana-plugin-core-public.responseerrorbody.md) &gt; [attributes](./kibana-plugin-core-public.responseerrorbody.attributes.md)
## ResponseErrorBody.attributes property
<b>Signature:</b>
```typescript
attributes?: Record<string, unknown>;
```

View file

@ -0,0 +1,21 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [kibana-plugin-core-public](./kibana-plugin-core-public.md) &gt; [ResponseErrorBody](./kibana-plugin-core-public.responseerrorbody.md)
## ResponseErrorBody interface
<b>Signature:</b>
```typescript
export interface ResponseErrorBody
```
## Properties
| Property | Type | Description |
| --- | --- | --- |
| [attributes](./kibana-plugin-core-public.responseerrorbody.attributes.md) | <code>Record&lt;string, unknown&gt;</code> | |
| [message](./kibana-plugin-core-public.responseerrorbody.message.md) | <code>string</code> | |
| [statusCode](./kibana-plugin-core-public.responseerrorbody.statuscode.md) | <code>number</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-core-public](./kibana-plugin-core-public.md) &gt; [ResponseErrorBody](./kibana-plugin-core-public.responseerrorbody.md) &gt; [message](./kibana-plugin-core-public.responseerrorbody.message.md)
## ResponseErrorBody.message property
<b>Signature:</b>
```typescript
message: 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-core-public](./kibana-plugin-core-public.md) &gt; [ResponseErrorBody](./kibana-plugin-core-public.responseerrorbody.md) &gt; [statusCode](./kibana-plugin-core-public.responseerrorbody.statuscode.md)
## ResponseErrorBody.statusCode property
<b>Signature:</b>
```typescript
statusCode: number;
```

View file

@ -3,7 +3,7 @@
You can search your data in any app that has a query bar, or by clicking on
elements in a visualization. A search matches indices in the current
<<index-patterns, index pattern>> and in the current <<set-time-filter,time frame>>.
<<data-views, data view>> and in the current <<set-time-filter,time frame>>.
[float]

View file

@ -156,16 +156,16 @@ image::maps/images/asset-tracking-tutorial/logstash_output.png[]
. Leave the terminal window open and Logstash running throughout this tutorial.
[float]
==== Step 3: Create a {kib} index pattern for the tri_met_tracks {es} index
==== Step 3: Create a data view for the tri_met_tracks {es} index
. In Kibana, open the main menu, and click *Stack Management > Index Patterns*.
. Click *Create index pattern*.
. Give the index pattern a name: *tri_met_tracks**.
. In {kib}, open the main menu, and click *Stack Management > Data Views*.
. Click *Create data view*.
. Give the data view a name: *tri_met_tracks**.
. Click *Next step*.
. Set the *Time field* to *time*.
. Click *Create index pattern*.
. Click *Create data view*.
{kib} shows the fields in your index pattern.
{kib} shows the fields in your data view.
[role="screenshot"]
image::maps/images/asset-tracking-tutorial/index_pattern.png[]
@ -174,7 +174,7 @@ image::maps/images/asset-tracking-tutorial/index_pattern.png[]
==== Step 4: Explore the Portland bus data
. Open the main menu, and click *Discover*.
. Set the index pattern to *tri_met_tracks**.
. Set the data view to *tri_met_tracks**.
. Open the <<set-time-filter, time filter>>, and set the time range to the last 15 minutes.
. Expand a document and explore some of the fields that you will use later in this tutorial: `bearing`, `in_congestion`, `location`, and `vehicle_id`.
@ -202,7 +202,7 @@ Add a layer to show the bus routes for the last 15 minutes.
. Click *Add layer*.
. Click *Tracks*.
. Select the *tri_met_tracks** index pattern.
. Select the *tri_met_tracks** data view.
. Define the tracks:
.. Set *Entity* to *vehicle_id*.
.. Set *Sort* to *time*.
@ -225,7 +225,7 @@ image::maps/images/asset-tracking-tutorial/tracks_layer.png[]
Add a layer that uses attributes in the data to set the style and orientation of the buses. Youll see the direction buses are headed and what traffic is like.
. Click *Add layer*, and then select *Top Hits per entity*.
. Select the *tri_met_tracks** index pattern.
. Select the *tri_met_tracks** data view.
. To display the most recent location per bus:
.. Set *Entity* to *vehicle_id*.
.. Set *Documents per entity* to 1.

View file

@ -30,11 +30,11 @@ a preview of the data on the map.
. Use the default *Index type* of {ref}/geo-point.html[geo_point] for point data,
or override it and select {ref}/geo-shape.html[geo_shape].
All other shapes will default to a type of `geo_shape`.
. Leave the default *Index name* and *Index pattern* names (the name of the uploaded
. Leave the default *Index name* and *Data view* names (the name of the uploaded
file minus its extension). You might need to change the index name if it is invalid.
. Click *Import file*.
+
Upon completing the indexing process and creating the associated index pattern,
Upon completing the indexing process and creating the associated data view,
the Elasticsearch responses are shown on the *Layer add panel* and the indexed data
appears on the map. The geospatial data on the map
should be identical to the locally-previewed data, but now it's indexed data from Elasticsearch.

View file

@ -58,8 +58,8 @@ auto-populate *Index type* with either {ref}/geo-point.html[geo_point] or
. Click *Import file*.
+
You'll see activity as the GeoJSON Upload utility creates a new index
and index pattern for the data set. When the process is complete, you should
receive messages that the creation of the new index and index pattern
and data view for the data set. When the process is complete, you should
receive messages that the creation of the new index and data view
were successful.
. Click *Add layer*.

View file

@ -62,7 +62,7 @@ To enable a grid aggregation layer:
To enable a blended layer that dynamically shows clusters or documents:
. Click *Add layer*, then select the *Documents* layer.
. Configure *Index pattern* and the *Geospatial field*.
. Configure *Data view* and the *Geospatial field*.
. In *Scaling*, select *Show clusters when results exceed 10000*.
@ -77,7 +77,7 @@ then accumulates the most relevant documents based on sort order for each entry
To enable top hits:
. Click *Add layer*, then select the *Top hits per entity* layer.
. Configure *Index pattern* and *Geospatial field*.
. Configure *Data view* and *Geospatial field*.
. Set *Entity* to the field that identifies entities in your documents.
This field will be used in the terms aggregation to group your documents into entity buckets.
. Set *Documents per entity* to configure the maximum number of documents accumulated per entity.

View file

@ -49,7 +49,7 @@ and lighter shades will symbolize countries with less traffic.
. From the **Layer** dropdown menu, select **World Countries**.
. In **Statistics source**, set:
** **Index pattern** to **kibana_sample_data_logs**
** **Data view** to **kibana_sample_data_logs**
** **Join field** to **geo.dest**
. Click **Add layer**.
@ -95,7 +95,7 @@ The layer is only visible when users zoom in.
. Click **Add layer**, and then click **Documents**.
. Set **Index pattern** to **kibana_sample_data_logs**.
. Set **Data view** to **kibana_sample_data_logs**.
. Set **Scaling** to *Limits results to 10000.*
@ -129,7 +129,7 @@ more total bytes transferred, and smaller circles will symbolize
grids with less bytes transferred.
. Click **Add layer**, and select **Clusters and grids**.
. Set **Index pattern** to **kibana_sample_data_logs**.
. Set **Data view** to **kibana_sample_data_logs**.
. Click **Add layer**.
. In **Layer settings**, set:
** **Name** to `Total Requests and Bytes`

View file

@ -141,7 +141,7 @@ PUT kibana_sample_data_logs/_settings
----------------------------------
. Open the main menu, and click *Discover*.
. Set the index pattern to *kibana_sample_data_logs*.
. Set the data view to *kibana_sample_data_logs*.
. Open the <<set-time-filter, time filter>>, and set the time range to the last 30 days.
. Scan through the list of *Available fields* until you find the `csa.GEOID` field. You can also search for the field by name.
. Click image:images/reverse-geocoding-tutorial/add-icon.png[Add icon] to toggle the field into the document table.
@ -162,10 +162,10 @@ Now that our web traffic contains CSA region identifiers, you'll visualize CSA r
. Click *Choropleth*.
. For *Boundaries source*:
.. Select *Points, lines, and polygons from Elasticsearch*.
.. Set *Index pattern* to *csa*.
.. Set *Data view* to *csa*.
.. Set *Join field* to *GEOID*.
. For *Statistics source*:
.. Set *Index pattern* to *kibana_sample_data_logs*.
.. Set *Data view* to *kibana_sample_data_logs*.
.. Set *Join field* to *csa.GEOID.keyword*.
. Click *Add layer*.
. Scroll to *Layer Style* and Set *Label* to *Fixed*.

View file

@ -43,7 +43,7 @@ To prevent the global search from applying to a layer, configure the following:
[[maps-narrow-layer-by-global-time]]
==== Narrow layers by global time
Layers that request data from {es} using an <<index-patterns, index pattern>> with a configured time field are narrowed by the <<set-time-filter, global time>>.
Layers that request data from {es} using a <<data-views, data view>> with a configured time field are narrowed by the <<set-time-filter, global time>>.
These layers contain the clock icon image:maps/images/clock_icon.png[clock icon] next to the layer name in the legend.
Use the time slider to quickly select time slices within the global time range:

View file

@ -21,18 +21,18 @@ image::maps/images/inspector.png[]
=== Solutions to common problems
[float]
==== Index not listed when adding layer
==== Data view not listed when adding layer
* Verify your geospatial data is correctly mapped as {ref}/geo-point.html[geo_point] or {ref}/geo-shape.html[geo_shape].
** Run `GET myIndexPatternTitle/_field_caps?fields=myGeoFieldName` in <<console-kibana, Console>>, replacing `myIndexPatternTitle` and `myGeoFieldName` with your index pattern title and geospatial field name.
** Run `GET myIndexName/_field_caps?fields=myGeoFieldName` in <<console-kibana, Console>>, replacing `myIndexName` and `myGeoFieldName` with your index and geospatial field name.
** Ensure response specifies `type` as `geo_point` or `geo_shape`.
* Verify your geospatial data is correctly mapped in your <<managing-fields,index pattern>>.
** Open your index pattern in <<management, Stack Management>>.
* Verify your geospatial data is correctly mapped in your <<managing-fields, data view>>.
** Open your data view in <<management, Stack Management>>.
** Ensure your geospatial field type is `geo_point` or `geo_shape`.
** Ensure your geospatial field is searchable and aggregatable.
** If your geospatial field type does not match your Elasticsearch mapping, click the *Refresh* button to refresh the field list from Elasticsearch.
* Index patterns with thousands of fields can exceed the default maximum payload size.
Increase <<settings, `server.maxPayload`>> for large index patterns.
* Data views with thousands of fields can exceed the default maximum payload size.
Increase <<settings, `server.maxPayload`>> for large data views.
[float]
==== Features are not displayed

View file

@ -18,7 +18,7 @@ image::maps/images/multifeature_tooltip.png[]
==== Format tooltips
You can format the attributes in a tooltip by adding <<managing-fields, field formatters>> to your
index pattern. You can use field formatters to round numbers, provide units,
data view. You can use field formatters to round numbers, provide units,
and even display images in your tooltip.
[float]

View file

@ -358,3 +358,8 @@ This content has moved. Refer to <<xpack-profiler>>.
== Rendering pre-captured profiler JSON
This content has moved. Refer to <<xpack-profiler>>.
[role="exclude",id="index-patterns"]
== Index patterns has been renamed to data views.
This content has moved. Refer to <<data-views>>.

View file

@ -84,7 +84,7 @@ You can manage your roles, privileges, and spaces in **{stack-manage-app}** in
If the {kib} ingest options don't work for you, you can index your
data into Elasticsearch with {ref}/getting-started-index.html[REST APIs]
or https://www.elastic.co/guide/en/elasticsearch/client/index.html[client libraries].
After you add your data, you're required to create an <<index-patterns,index pattern>> to tell
After you add your data, you're required to create a <<data-views,data view>> to tell
{kib} where to find the data.
* To add data for Elastic Observability, refer to {observability-guide}/add-observability-data.html[Send data to Elasticsearch].

View file

@ -26,6 +26,9 @@ see {subscriptions}[the subscription page].
| <<rule-type-es-query>>
| Run a user-configured {es} query, compare the number of matches to a configured threshold, and schedule actions to run when the threshold condition is met.
| {ref}/transform-alerts.html[{transform-cap} rules] beta:[]
| beta:[] Run scheduled checks on a {ctransform} to check its health. If a {ctransform} meets the conditions, an alert is created and the associated action is triggered.
|===
[float]
@ -47,7 +50,7 @@ Domain rules are registered by *Observability*, *Security*, <<maps, Maps>> and <
| Run an {es} query to determine if any documents are currently contained in any boundaries from a specified boundary index and generate alerts when a rule's conditions are met.
| {ml-docs}/ml-configuring-alerts.html[{ml-cap} rules] beta:[]
| Run scheduled checks on an anomaly detection job to detect anomalies with certain conditions. If an anomaly meets the conditions, an alert is created and the associated action is triggered.
| beta:[] Run scheduled checks on an {anomaly-job} to detect anomalies with certain conditions. If an anomaly meets the conditions, an alert is created and the associated action is triggered.
|===

View file

@ -43,7 +43,7 @@ To create workpads, you must meet the minimum requirements.
* If you need to set up {kib}, use https://www.elastic.co/cloud/elasticsearch-service/signup?baymax=docs-body&elektra=docs[our free trial].
* Make sure you have {ref}/getting-started-index.html[data indexed into {es}] and an <<index-patterns,index pattern>>.
* Make sure you have {ref}/getting-started-index.html[data indexed into {es}] and a <<data-views, data view>>.
* Have an understanding of {ref}/documents-indices.html[{es} documents and indices].

View file

@ -5,7 +5,7 @@
--
**_Visualize your data with dashboards._**
The best way to understand your data is to visualize it. With dashboards, you can turn your data from one or more <<index-patterns, index patterns>> into a collection of panels
The best way to understand your data is to visualize it. With dashboards, you can turn your data from one or more <<data-views, data views>> into a collection of panels
that bring clarity to your data, tell a story about your data, and allow you to focus on only the data that's important to you.
[role="screenshot"]
@ -53,7 +53,7 @@ To create dashboards, you must meet the minimum requirements.
* If you need to set up {kib}, use https://www.elastic.co/cloud/elasticsearch-service/signup?baymax=docs-body&elektra=docs[our free trial].
* Make sure you have {ref}/getting-started-index.html[data indexed into {es}] and an <<index-patterns,index pattern>>.
* Make sure you have {ref}/getting-started-index.html[data indexed into {es}] and a <<data-views, data view>>.
* When the read-only indicator appears, you have insufficient privileges
to create or save dashboards, and the options to create and save dashboards are not visible. For more information,

Binary file not shown.

After

Width:  |  Height:  |  Size: 77 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 74 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 176 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 147 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 859 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 45 KiB

After

Width:  |  Height:  |  Size: 1 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 MiB

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 157 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 103 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 151 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 90 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 55 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 119 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 101 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 67 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 126 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 259 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 125 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

View file

@ -2,18 +2,21 @@
== Analyze time series data
In this tutorial, you'll use the ecommerce sample data to analyze sales trends, but you can use any type of data to complete the tutorial.
Before using this tutorial, review the <<kibana-concepts-analysts>>.
When you're done, you'll have a complete overview of the sample web logs data.
[role="screenshot"]
image::images/final_time_series_analysis_dashboard.png[Final dashboard with ecommerce sample data, width=50%]
image::images/lens_timeSeriesDataTutorialDashboard_7.16.png[Final dashboard with ecommerce sample data]
Before you begin, you should be familiar with the <<kibana-concepts-analysts>>.
[discrete]
[[add-the-data-and-create-the-dashboard-advanced]]
=== Add the data and create the dashboard
Add the sample ecommerce data that you'll use to create the dashboard panels.
Add the sample ecommerce data, and create and set up the dashboard.
. Go to the {kib} *Home* page, then click *Try our sample data*.
. Go to the *Home* page, then click *Try sample data*.
. On the *Sample eCommerce orders* card, click *Add data*.
@ -25,40 +28,30 @@ Create the dashboard where you'll display the visualization panels.
[float]
[[open-and-set-up-lens-advanced]]
=== Open and set up Lens
=== Open and set up the visualization editor
Open *Lens*, then make sure the correct fields appear.
Open the visualization editor, then make sure the correct fields appear.
. From the dashboard, click *Create visualization*.
. On the dashboard, click *Create visualization*.
. Make sure the *kibana_sample_data_ecommerce* index appears.
+
If you are using your own data, select the <<index-patterns, index pattern>> that contains your data.
. Make sure the *kibana_sample_data_ecommerce* index appears, then set the <<set-time-filter,time filter>> to *Last 30 days*.
[discrete]
[[custom-time-interval]]
=== View a date histogram with a custom time interval
=== Create visualizations with custom time intervals
It is common to use the automatic date histogram interval, but sometimes you want a larger or smaller
interval. For performance reasonse, *Lens* lets you choose the minimum time interval, not the exact time interval. The performance limit is controlled by the <<histogram-maxbars, `histogram:maxBars`>> setting and the <<set-time-filter,time range>>.
When you create visualizations with time series data, you can use the default time interval, or increase and decrease the interval. For performance reasons, the visualization editor allows you to choose the minimum time interval, but not the exact time interval. The interval limit is controlled by the <<histogram-maxbars, `histogram:maxBars`>> setting and <<set-time-filter,time range>>.
If you are using your own data, use one of the following options to see hourly sales over the last 30 days:
* View less than 30 days at a time, then use the time filter to select each day separately.
* Increase `histogram:maxBars` to at least 720, which is the number of hours in 30 days. This affects all visualizations and can reduce performance.
If you are using the sample data, use *Normalize unit*, which converts *Average sales per 12 hours*
into *Average sales per 12 hours (per hour)* by dividing the number of hours:
. Set the <<set-time-filter,time filter>> to *Last 30 days*.
To analyze the data with a custom time interval, create a bar chart that shows you how many orders were made at your store every hour:
. From the *Available fields* list, drag *Records* to the workspace.
+
The visualization editor creates a bar chart.
. To zoom in on the data you want to view, click and drag your cursor across the bars.
. To zoom in on the data, click and drag your cursor across the bars.
+
[role="screenshot"]
image::images/lens_advanced_1_1.png[Added records to the workspace]
image::images/lens_clickAndDragZoom_7.16.gif[Cursor clicking and dragging across the bars to zoom in on the data]
. In the layer pane, click *Count of Records*.
@ -67,32 +60,51 @@ image::images/lens_advanced_1_1.png[Added records to the workspace]
.. Click *Add advanced options > Normalize by unit*.
.. From the *Normalize by unit* dropdown, select *per hour*, then click *Close*.
+
*Normalize unit* converts *Average sales per 12 hours* into *Average sales per 12 hours (per hour)* by dividing the number of hours.
. To hide the *Horizontal axis* label, open the *Bottom Axis* menu, then deselect *Show*.
+
You have a bar chart that shows you how many orders were made at your store every hour.
To identify the 75th percentile of orders, add a reference line:
. In the layer pane, click *Add layer > Add reference layer*.
. Click *Static value*.
. Click the *Percentile* function, then enter `75` in the *Percentile* field.
. Configure the display options.
.. In the *Display name* field, enter `75th`.
.. Select *Show display name*.
.. From the *Icon* dropdown, select *Tag*.
.. In the *Color* field, enter `#E7664C`.
. Click *Close*.
+
[role="screenshot"]
image::images/lens_advanced_1_2.png[Orders per day]
image::images/lens_barChartCustomTimeInterval_7.16.png[Orders per day]
. Click *Save and return*.
[discrete]
[[add-a-data-layer-advanced]]
=== Monitor multiple series
=== Analyze multiple data series
It is often required to monitor multiple series within a time interval. These series can have similar configurations with minor differences.
*Lens* copies a function when you drag it to the *Drop a field or click to add* field within the same group.
You can create visualizations with multiple data series within the same time interval, even when the series have similar configurations with minor differences.
To quickly create many copies of a percentile metric that shows distribution of price over time:
To analyze multiple series, create a line chart that displays the price distribution of products sold over time:
. On the dashboard, click *Create visualization*.
. Open the *Chart Type* dropdown, then select *Line*.
. Open the *Visualization type* dropdown, then select *Line*.
. From the *Available fields* list, drag *products.price* to the workspace.
Create the 95th percentile.
Create the 95th price distribution percentile:
. In the layer pane, click *Median of products.price*.
@ -100,9 +112,9 @@ Create the 95th percentile.
. In the *Display name* field, enter `95th`, then click *Close*.
To create the 90th percentile, duplicate the `95th` percentile.
To copy a function, you drag it to the *Drop a field or click to add* field within the same group. To create the 90th percentile, duplicate the `95th` percentile:
. Drag the *95th* field to the *Drop a field or click to add* field in the *Vertical axis* group.
. Drag the *95th* field to *Add or drag-and-drop a field* for *Vertical axis*.
+
[role="screenshot"]
image::images/lens_advanced_2_2.gif[Easily duplicate the items with drag and drop]
@ -111,22 +123,22 @@ image::images/lens_advanced_2_2.gif[Easily duplicate the items with drag and dro
. In the *Display name* field enter `90th`, then click *Close*.
. Repeat the duplication steps to create the `50th` and `10th` percentiles.
. To create the `50th` and `10th` percentiles, repeat the duplication steps.
. Open the *Left Axis* menu, then enter `Percentiles for product prices` in the *Axis name* field.
+
You have a line chart that shows you the price distribution of products sold over time.
+
[role="screenshot"]
image::images/lens_advanced_2_3.png[Percentiles for product prices chart]
image::images/lens_lineChartMultipleDataSeries_7.16.png[Percentiles for product prices chart]
. Click *Save and return*.
[discrete]
[[add-a-data-layer]]
==== Add multiple chart types or index patterns
=== Analyze multiple visualization types
To overlay visualization types or index patterns, add layers. When you create layered charts, match the data on the horizontal axis so that it uses the same scale.
With layers, you can analyze your data with multiple visualization types. When you create layered visualizations, match the data on the horizontal axis so that it uses the same scale.
To analyze multiple visualization types, create an area chart that displays the average order prices, then add a line chart layer that displays the number of customers.
. On the dashboard, click *Create visualization*.
@ -136,19 +148,19 @@ To overlay visualization types or index patterns, add layers. When you create la
.. Click the *Average* function.
.. In the *Display name* field, enter `Average of prices`, then click *Close*.
.. In the *Display name* field, enter `Average price`, then click *Close*.
. Open the *Chart Type* dropdown, then select *Area*.
. Open the *Visualization type* dropdown, then select *Area*.
Create a new layer to overlay with custom traffic.
Add a layer to display the customer traffic:
. In the layer pane, click *+*.
. In the layer pane, click *Add layer > Add visualization layer*.
. From the *Available fields* list, drag *customer_id* to the *Vertical Axis* field in the second layer.
. In the second layer, click *Unique count of customer_id*.
. In the layer pane, click *Unique count of customer_id*.
.. In the *Display name* field, enter `Unique customers`.
.. In the *Display name* field, enter `Number of customers`.
.. In the *Series color* field, enter *#D36086*.
@ -156,12 +168,15 @@ Create a new layer to overlay with custom traffic.
. From the *Available fields* list, drag *order_date* to the *Horizontal Axis* field in the second layer.
. In the second layer pane, open the *Chart type* menu, then click the line chart.
. In the second layer, open the *Layer visualization type* menu, then click *Line*.
+
[role="screenshot"]
image::images/lens_advanced_3_2.png[Change layer type]
image::images/lens_layerVisualizationTypeMenu_7.16.png[Layer visualization type menu]
. Open the *Legend* menu, then select the arrow that points up.
. To change the position of the legend, open the *Legend* menu, then select the *Alignment* arrow that points up.
+
[role="screenshot"]
image::images/lens_mixedXYChart_7.16.png[Layer visualization type menu]
. Click *Save and return*.
@ -169,35 +184,35 @@ image::images/lens_advanced_3_2.png[Change layer type]
[[percentage-stacked-area]]
=== Compare the change in percentage over time
By default, *Lens* shows *date histograms* using a stacked chart visualization, which helps understand how distinct sets of documents perform over time. Sometimes it is useful to understand how the distributions of these sets change over time.
Combine *filters* and *date histogram* functions to see the change over time in specific
sets of documents. To view this as a percentage, use a *Stacked percentage* bar or area chart.
By default, the visualization editor displays time series data with stacked charts, which show how the different document sets change over time.
To view change over time as a percentage, create an *Area percentage* chart that displays three order categories over time:
. On the dashboard, click *Create visualization*.
. From the *Available fields* list, drag *Records* to the workspace.
. Open the *Chart type* dropdown, then select *Area percentage*.
. Open the *Visualization type* dropdown, then select *Area percentage*.
For each category type, create a filter.
For each order category, create a filter:
. In the layer pane, click the *Drop a field or click to add* field for *Break down by*.
. In the layer pane, click *Add or drag-and-drop a field* for *Break down by*.
. Click the *Filters* function.
. Click *All records*, enter the following, then press Return:
. Click *All records*, enter the following in the query bar, then press Return:
* *KQL* &mdash; `category.keyword : *Clothing`
* *Label* &mdash; `Clothing`
. Click *Add a filter*, enter the following, then press Return:
. Click *Add a filter*, enter the following in the query bar, then press Return:
* *KQL* &mdash; `category.keyword : *Shoes`
* *Label* &mdash; `Shoes`
. Click *Add a filter*, enter the following, then press Return:
. Click *Add a filter*, enter the following in the query bar, then press Return:
* *KQL* &mdash; `category.keyword : *Accessories`
@ -205,10 +220,10 @@ For each category type, create a filter.
. Click *Close*.
. Open the *Legend* menu, then select the arrow that points up.
. Open the *Legend* menu, then select the *Alignment* arrow that points up.
+
[role="screenshot"]
image::images/lens_advanced_4_1.png[Prices share by category]
image::images/lens_areaPercentageNumberOfOrdersByCategory_7.16.png[Prices share by category]
. Click *Save and return*.
@ -220,9 +235,9 @@ To determine the number of orders made only on Saturday and Sunday, create an ar
. On the dashboard, click *Create visualization*.
. Open the *Chart Type* dropdown, then select *Area*.
. Open the *Visualization type* dropdown, then select *Area*.
Configure the cumulative sum of the store orders.
Configure the cumulative sum of store orders:
. From the *Available fields* list, drag *Records* to the workspace.
@ -230,15 +245,15 @@ Configure the cumulative sum of the store orders.
. Click the *Cumulative sum* function.
. In the *Display name* field, enter `Cumulative orders during weekend days`, then click *Close*.
. In the *Display name* field, enter `Cumulative weekend orders`, then click *Close*.
Filter the results to display the data for only Saturday and Sunday.
Filter the results to display the data for only Saturday and Sunday:
. In the layer pane, click the *Drop a field or click to add* field for *Break down by*.
. In the layer pane, click *Add or drag-and-drop a field* for *Break down by*.
. Click the *Filters* function.
. Click *All records*, enter the following, then press Return:
. Click *All records*, enter the following in the query bar, then press Return:
* *KQL* &mdash; `day_of_week : "Saturday" or day_of_week : "Sunday"`
@ -249,7 +264,7 @@ The <<kuery-query,KQL filter>> displays all documents where `day_of_week` matche
. Open the *Legend* menu, then click *Hide*.
+
[role="screenshot"]
image::images/lens_advanced_5_2.png[Line chart with cumulative sum of orders made on the weekend]
image::images/lens_areaChartCumulativeNumberOfSalesOnWeekend_7.16.png[Area chart with cumulative sum of orders made on the weekend]
. Click *Save and return*.
@ -257,30 +272,25 @@ image::images/lens_advanced_5_2.png[Line chart with cumulative sum of orders mad
[[compare-time-ranges]]
=== Compare time ranges
*Lens* allows you to compare the selected time range with historical data using the *Time shift* option.
With *Time shift*, you can compare the data from different time ranges. To make sure the data correctly displays, choose a multiple of the date histogram interval when you use multiple time shifts. For example, you are unable to use a *36h* time shift for one series, and a *1d* time shift for the second series if the interval is *days*.
If multiple time shifts are used in a single chart, a multiple of the date histogram interval should be chosen, or the data points might not line up and gaps can appear.
For example, if a daily interval is used, shifting one series by *36h*, and another by *1d* is not recommended. You can reduce the interval to *12h*, or create two separate charts.
To compare current sales numbers with sales from a week ago, follow these steps:
To compare two time ranges, create a line chart that compares the sales in the current week with sales from the previous week:
. On the dashboard, click *Create visualization*.
. Open the *Chart Type* dropdown, then select *Line*.
. Open the *Visualization type* dropdown, then select *Line*.
. From the *Available fields* list, drag *Records* to the workspace.
. In the layer pane, drag *Count of Records* to the *Drop a field or click to add* field in the *Vertical axis* group.
. To duplicate *Count of Records*, drag *Count of Records* to *Add or drag-and-drop a field* for *Vertical axis* in the layer pane.
To create a week-over-week comparison, shift the second *Count of Records* by one week.
To create a week-over-week comparison, shift *Count of Records [1]* by one week:
. In the layer pane, click *Count of Records [1]*.
. Open the *Add advanced options* dropdown, then select *Time shift*.
. Click *1 week ago*.
. Click *Add advanced options > Time shift*, select *1 week ago*, then click *Close*.
+
To define custom time shifts, enter the time value, the time increment, then press Enter. For example, to use a one week time shift, enter *1w*.
To use custom time shifts, enter the time value and increment, then press Enter. For example, enter *1w* to use the *1 week ago* time shift.
+
[role="screenshot"]
image::images/lens_time_shift.png[Line chart with week-over-week sales comparison]
@ -289,9 +299,11 @@ image::images/lens_time_shift.png[Line chart with week-over-week sales compariso
[float]
[[compare-time-as-percent]]
==== Compare time ranges as a percent change
==== Analyze the percent change between time ranges
To view the percent change in sales between the current time and the previous week, create a *Formula*.
With *Formula*, you can analyze the percent change in your data from different time ranges.
To compare time range changes as a percent, create a bar chart that compares the sales in the current week with sales from the previous week:
. On the dashboard, click *Create visualization*.
@ -299,11 +311,11 @@ To view the percent change in sales between the current time and the previous we
. In the layer pane, click *Count of Records*.
.. Click *Formula*, then enter `count() / count(shift='1w') - 1`.
. Click *Formula*, then enter `count() / count(shift='1w') - 1`.
.. Open the *Value format* dropdown, select *Percent*, then enter `0` in the *D*ecimals* field.
. Open the *Value format* dropdown, select *Percent*, then enter `0` in the *Decimals* field.
.. In the *Display name* field, enter `Percent change`, then click *Close*.
. In the *Display name* field, enter `Percent of change`, then click *Close*.
+
[role="screenshot"]
image::images/lens_percent_chage.png[Bar chart with percent change in sales between the current time and the previous week]
@ -312,34 +324,33 @@ image::images/lens_percent_chage.png[Bar chart with percent change in sales betw
[discrete]
[[view-customers-over-time-by-continents]]
=== Create a table of customers by category over time
=== Analyze the data in a table
Tables are useful when you want to display the actual field values.
You can build a date histogram table, and group the customer count metric by category, such as the continent registered in user accounts.
With tables, you can view and compare the field values, which is useful for displaying the locations of customer orders.
In *Lens* you can split the metric in a table leveraging the *Columns* field, where each data value from the aggregation is used as column of the table and the relative metric value is shown.
Create a date histogram table and group the customer count metric by category, such as the continent registered in user accounts:
. On the dashboard, click *Create visualization*.
. Open the *Chart Type* dropdown, then click *Table*.
. Open the *Visualization type* dropdown, then select *Table*.
. From the *Available fields* list, drag *customer_id* to the *Metrics* field in the layer pane.
. In the layer pane, click *Unique count of customer_id*.
.. In the layer pane, click *Unique count of customer_id*.
. In the *Display name* field, enter `Customers`, then click *Close*.
.. In the *Display name* field, enter `Customers`, then click *Close*.
. From the *Available fields* list, drag *order_date* to the *Rows* field in the layer pane.
. In the layer pane, click the *order_date*.
.. In the layer pane, click the *order_date*.
.. Select *Customize time interval*.
.. Change the *Minimum interval* to *1 days*.
.. In the *Display name* field, enter `Sale`, then click *Close*.
.. In the *Display name* field, enter `Sales`, then click *Close*.
Add columns for each continent.
To split the metric, add columns for each continent using the *Columns* field:
. From the *Available fields* list, drag *geoip.continent_name* to the *Columns* field in the layer pane.
+
@ -360,3 +371,6 @@ Now that you have a complete overview of your ecommerce sales data, save the das
. Select *Store time with dashboard*.
. Click *Save*.
[role="screenshot"]
image::images/lens_timeSeriesDataTutorialDashboard_7.16.png[Final dashboard with ecommerce sample data]

View file

@ -48,6 +48,8 @@ Choose the data you want to visualize.
. If you want to learn more about the data a field contains, click the field.
. To visualize more than one index pattern, click *Add layer > Add visualization layer*, then select the index pattern.
Edit and delete.
. To change the aggregation *Quick function* and display options, click the field in the layer pane.
@ -60,11 +62,11 @@ Edit and delete.
Change the fields list to display a different index pattern, different time range, or add your own fields.
* To create a visualization with fields in a different index pattern, open the *Change index pattern* dropdown, then select the index pattern.
* To create a visualization with fields in a different index pattern, open the *Index pattern* dropdown, then select the index pattern.
* If the fields list is empty, change the <<set-time-filter,time filter>>.
* To add fields, open the action menu (*...*) next to the *Change index pattern* dropdown, then select *Add field to index pattern*.
* To add fields, open the action menu (*...*) next to the *Index pattern* dropdown, then select *Add field to index pattern*.
+
[role="screenshot"]
image:images/runtime-field-menu.png[Dropdown menu located next to index pattern field with items for adding and managing fields, width=50%]
@ -176,6 +178,29 @@ Compare your real-time data set to the results that are offset by a time increme
For a time shift example, refer to <<compare-time-ranges>>.
[float]
[[add-reference-lines]]
==== Add reference lines
With reference lines, you can identify specific values in your visualizations with icons, colors, and other display options. You can add reference lines to any visualization type that displays axes.
For example, to track the number of bytes in the 75th percentile, add a shaded *Percentile* reference line to your time series visualization.
[role="screenshot"]
image::images/lens_referenceLine_7.16.png[Lens drag and drop focus state]
. In the layer pane, click *Add layer > Add reference layer*.
. Click the reference line value, then specify the reference line you want to use:
* To add a static reference line, click *Static*, then enter the reference line value you want to use.
* To add a dynamic reference line, click *Quick functions*, then click and configure the functions you want to use.
* To calculate the reference line value with math, click *Formula*, then enter the formula.
. Specify the display options, such as *Display name* and *Icon*, then click *Close*.
[float]
[[filter-the-data]]
==== Apply filters
@ -236,9 +261,29 @@ The following component menus are available:
* *Left axis*, *Bottom axis*, and *Right axis* &mdash; Specify how you want to display the chart axes. For example, add axis labels and change the orientation and bounds.
[float]
[[view-data-and-requests]]
==== View the visualization data and requests
To view the data included in the visualization and the requests that collected the data, use the *Inspector*.
. In the toolbar, click *Inspect*.
. Open the *View* dropdown, then click *Data*.
.. From the dropdown, select the table that contains the data you want to view.
.. To download the data, click *Download CSV*, then select the format type.
. Open the *View* dropdown, then click *Requests*.
.. From the dropdown, select the requests you want to view.
.. To view the requests in *Console*, click *Request*, then click *Open in Console*.
[float]
[[save-the-lens-panel]]
===== Save and add the panel
==== Save and add the panel
Save the panel to the *Visualize Library* and add it to the dashboard, or add it to the dashboard without saving.
@ -408,7 +453,7 @@ To configure the bounds, use the menus in the editor toolbar. Bar and area chart
.*Is it possible to display icons in data tables?*
[%collapsible]
====
You can display icons with <<managing-index-patterns, field formatter>> in data tables.
You can display icons with <<managing-index-patterns, field formatters>> in data tables.
====
[discrete]

View file

@ -8,7 +8,7 @@ With *TSVB*, you can:
* Combine an infinite number of <<aggregation-reference,aggregations>> to display your data.
* Annotate time series data with timestamped events from an {es} index.
* View the data in several types of visualizations, including charts, data tables, and markdown panels.
* Display multiple <<index-patterns, index patterns>> in each visualization.
* Display multiple <<data-views, data views>> in each visualization.
* Use custom functions and some math on aggregations.
* Customize the data with labels and colors.

View file

@ -1,21 +1,24 @@
[[create-a-dashboard-of-panels-with-web-server-data]]
== Build your first dashboard
== Create your first dashboard
Learn the most common ways to build a dashboard from your own data.
Learn the most common ways to create a dashboard from your own data.
The tutorial will use sample data from the perspective of an analyst looking
at website logs, but this type of dashboard works on any type of data.
Before using this tutorial, you should be familiar with the <<kibana-concepts-analysts>>.
When you're done, you'll have a complete overview of the sample web logs data.
[role="screenshot"]
image::images/lens_end_to_end_dashboard.png[Final dashboard vis]
image::images/lens_logsDashboard_7.16.png[Logs dashboard]
Before you begin, you should be familiar with the <<kibana-concepts-analysts>>.
[discrete]
[[add-the-data-and-create-the-dashboard]]
=== Add the data and create the dashboard
Add the sample web logs data that you'll use to create the dashboard panels.
Add the sample web logs data, and create and set up the dashboard.
. Go to the {kib} *Home* page, then click *Try our sample data*.
. Go to the *Home* page, then click *Try sample data*.
. On the *Sample web logs* card, click *Add data*.
@ -29,56 +32,70 @@ Create the dashboard where you'll display the visualization panels.
[float]
[[open-and-set-up-lens]]
=== Open Lens and get familiar with the data
=== Open the visualization editor and get familiar with the data
Open the visualization editor, then make sure the correct fields appear.
. On the dashboard, click *Create visualization*.
. Make sure the *kibana_sample_data_logs* index appears.
+
[role="screenshot"]
image::images/lens_end_to_end_1_2.png[Lens index pattern selector, width=50%]
image::images/lens_indexPatternDropDown_7.16.png[Index pattern dropdown]
. To create the visualizations in this tutorial, you'll use the *Records*, *timestamp*, *bytes*, *clientip*, and *referer.keyword* fields. To see the most frequent values of a field, hover over the field name, then click *i*.
To create the visualizations in this tutorial, you'll use the following fields:
* *Records*
* *timestamp*
* *bytes*
* *clientip*
* *referer.keyword*
To see the most frequent values in a field, hover over the field name, then click *i*.
[discrete]
[[view-the-number-of-website-visitors]]
=== Create your first visualization
Pick a field you want to analyze, such as *clientip*. If you want
to analyze only this field, you can use the *Metric* visualization to display a big number.
The only number function that you can use with *clientip* is *Unique count*.
*Unique count*, also referred to as cardinality, approximates the number of unique values
of the *clientip* field.
Pick a field you want to analyze, such as *clientip*. To analyze only the *clientip* field, use the *Metric* visualization to display the field as a number.
. To select the visualization type, open the *Chart type* dropdown, then select *Metric*.
The only number function that you can use with *clientip* is *Unique count*, also referred to as cardinality, which approximates the number of unique values.
. Open the *Visualization type* dropdown, then select *Metric*.
+
[role="screenshot"]
image::images/lens_end_to_end_1_2_1.png[Chart Type dropdown with Metric selected, width=50%]
image::images/lens_visualizationTypeDropdown_7.16.png[Visualization type dropdown]
. From the *Available fields* list, drag *clientip* to the workspace.
. From the *Available fields* list, drag *clientip* to the workspace or layer pane.
+
[role="screenshot"]
image::images/lens_end_to_end_1_3.png[Changed type and dropped clientip field]
image::images/lens_metricUniqueCountOfClientip_7.16.png[Metric visualization of the clientip field]
+
*Lens* selects the *Unique count* function because it is the only numeric function
that works for IP addresses. You can also drag *clientip* to the layer pane for the same result.
In the layer pane, *Unique count of clientip* appears because the editor automatically applies the *Unique count* function to the *clientip* field. *Unique count* is the only numeric function that works with IP addresses.
. In the layer pane, click *Unique count of clientip*.
.. In the *Display name* field, enter `Unique visitors`.
.. Click *Close*.
+
[role="screenshot"]
image::images/lens_metricUniqueVisitors_7.16.png[Metric visualization that displays number of unique visitors]
. Click *Save and return*.
+
The metric visualization has its own label, so you do not need to add a panel title.
*[No Title]* appears in the visualization panel header. Since the visualization has its own `Unique visitors` label, you do not need to add a panel title.
[discrete]
[[mixed-multiaxis]]
=== View a metric over time
*Lens* has two shortcuts that simplify viewing metrics over time.
If you drag a numeric field to the workspace, *Lens* adds the default
There are two shortcuts you can use to view metrics over time.
When you drag a numeric field to the workspace, the visualization editor adds the default
time field from the index pattern. When you use the *Date histogram* function, you can
replace the time field by dragging the field to the workspace.
@ -88,78 +105,76 @@ To visualize the *bytes* field over time:
. From the *Available fields* list, drag *bytes* to the workspace.
+
*Lens* creates a bar chart with the *timestamp* and *Median of bytes* fields, and automatically chooses a date interval.
The visualization editor creates a bar chart with the *timestamp* and *Median of bytes* fields.
. To zoom in on the data you want to view, click and drag your cursor across the bars.
. To zoom in on the data, click and drag your cursor across the bars.
+
[role="screenshot"]
image::images/lens_end_to_end_3_1_1.gif[Zoom in on the data]
To emphasize the change in *Median of bytes* over time, change to a line chart with one of the following options:
To emphasize the change in *Median of bytes* over time, change the visualization type to *Line* with one of the following options:
* From the *Suggestions*, click the line chart.
* Open the *Chart type* dropdown in the editor toolbar, then select *Line*.
* Open the *Chart type* menu in the layer pane, then click the line chart.
* In the *Suggestions*, click the line chart.
* In the editor toolbar, open the *Visualization type* dropdown, then select *Line*.
* In the layer pane, open the *Layer visualization type* menu, then click *Line*.
You can increase and decrease the minimum interval that *Lens* uses, but you are unable to decrease the interval
below the <<advanced-options,*Advanced Settings*>>.
To set the minimum time interval:
To increase the minimum time interval:
. In the layer pane, click *timestamp*.
. Select *Customize time interval*.
. Change the *Minimum interval* to *1 days*, then click *Close*.
+
You can increase and decrease the minimum interval, but you are unable to decrease the interval below the <<advanced-options,*Advanced Settings*>>.
To save space on the dashboard, hide the vertical and horizontal axis labels.
To save space on the dashboard, hide the axis labels.
. Open the *Left axis* menu, then deselect *Show*.
+
[role="screenshot"]
image::images/lens_end_to_end_4_3.png[Turn off axis label]
image::images/lens_leftAxisMenu_7.16.png[Left axis menu]
. Open the *Bottom axis* menu, then deselect *Show*.
+
[role="screenshot"]
image::images/lens_lineChartMetricOverTime_7.16.png[Line chart that displays metric data over time]
. Click *Save and return*
Add a panel title to explain the panel, which is necessary because you removed the axis labels.
Since you removed the axis labels, add a panel title:
.. Open the panel menu, then select *Edit panel title*.
. Open the panel menu, then select *Edit panel title*.
.. In the *Panel title* field, enter `Median of bytes`, then click *Save*.
. In the *Panel title* field, enter `Median of bytes`, then click *Save*.
[discrete]
[[view-the-distribution-of-visitors-by-operating-system]]
=== View the top values of a field
Create a visualization that displays the most frequent values of *request.keyword* on your website, ranked by the unique visitors.
To create the visualization, use *Top values of request.keyword* ranked by *Unique count of clientip*, instead of being ranked by *Count of records*.
The *Top values* function ranks the unique values of a field by another function.
The values are the most frequent when ranked by a *Count* function, and the largest when ranked by the *Sum* function.
Create a visualization that displays the most frequent values of *request.keyword* on your website, ranked by the unique visitors.
To create the visualization, use *Top values of request.keyword* ranked by *Unique count of clientip*, instead of
being ranked by *Count of records*.
. On the dashboard, click *Create visualization*.
. From the *Available fields* list, drag *clientip* to the *Vertical axis* field in the layer pane.
+
*Lens* automatically chooses the *Unique count* function. If you drag *clientip* to the workspace, *Lens* adds the field to the incorrect axis.
+
When you drag a text or IP address field to the workspace,
*Lens* adds the *Top values* function ranked by *Count of records* to show the most frequent values.
The visualization editor automatically applies the *Unique count* function. If you drag *clientip* to the workspace, the editor adds the field to the incorrect axis.
. Drag *request.keyword* to the workspace.
+
[role="screenshot"]
image::images/lens_end_to_end_2_1_1.png[Vertical bar chart with top values of request.keyword by most unique visitors]
+
*Lens* adds *Top values of request.keyword* to the *Horizontal axis*.
When you drag a text or IP address field to the workspace,
the editor adds the *Top values* function ranked by *Count of records* to show the most frequent values.
The chart is hard to read because the *request.keyword* field contains long text. You could try
using one of the *Suggestions*, but the suggestions also have issues with long text. Instead, create a *Table* visualization.
The chart labels are unable to display because the *request.keyword* field contains long text fields. You could use one of the *Suggestions*, but the suggestions also have issues with long text. The best way to display long text fields is with the *Table* visualization.
. Open the *Chart type* dropdown, then select *Table*.
. Open the *Visualization type* dropdown, then select *Table*.
+
[role="screenshot"]
image::images/lens_end_to_end_2_1_2.png[Table with top values of request.keyword by most unique visitors]
@ -171,16 +186,19 @@ image::images/lens_end_to_end_2_1_2.png[Table with top values of request.keyword
.. In the *Display name* field, enter `Page URL`.
.. Click *Close*.
+
[role="screenshot"]
image::images/lens_tableTopFieldValues_7.16.png[Table that displays the top field values]
. Click *Save and return*.
+
The table does not need a panel title because the columns are clearly labeled.
Since the table columns are labeled, you do not need to add a panel title.
[discrete]
[[custom-ranges]]
=== Compare a subset of documents to all documents
Create a proportional visualization that helps you to determine if your users transfer more bytes from documents under 10KB versus documents over 10 Kb.
Create a proportional visualization that helps you determine if your users transfer more bytes from documents under 10KB versus documents over 10Kb.
. On the dashboard, click *Create visualization*.
@ -190,12 +208,14 @@ Create a proportional visualization that helps you to determine if your users tr
. From the *Available fields* list, drag *bytes* to the *Break down by* field in the layer pane.
Use the *Intervals* function to select documents based on the number range of a field.
If the ranges were non numeric, or if the query required multiple clauses, you could use the *Filters* function.
To select documents based on the number range of a field, use the *Intervals* function.
When the ranges are non numeric, or the query requires multiple clauses, you could use the *Filters* function.
. To specify the file size ranges, click *bytes* in the layer pane.
Specify the file size ranges:
. Click *Create custom ranges*, enter the following, then press Return:
. In the layer pane, click *bytes*.
. Click *Create custom ranges*, enter the following in the *Ranges* field, then press Return:
* *Ranges* &mdash; `0` -> `10240`
@ -214,27 +234,30 @@ image::images/lens_end_to_end_6_1.png[Custom ranges configuration]
To display the values as a percentage of the sum of all values, use the *Pie* chart.
. Open the *Chart Type* dropdown, then select *Pie*.
. Open the *Visualization Type* dropdown, then select *Pie*.
+
[role="screenshot"]
image::images/lens_pieChartCompareSubsetOfDocs_7.16.png[Pie chart that compares a subset of documents to all documents]
. Click *Save and return*.
. Add a panel title.
Add a panel title:
.. Open the panel menu, then select *Edit panel title*.
. Open the panel menu, then select *Edit panel title*.
.. In the *Panel title* field, enter `Sum of bytes from large requests`, then click *Save*.
. In the *Panel title* field, enter `Sum of bytes from large requests`, then click *Save*.
[discrete]
[[histogram]]
=== View the distribution of a number field
Knowing the distribution of a number helps you find patterns. For example, you can analyze the website traffic per hour to find the best time to do routine maintenance.
The distribution of a number can help you find patterns. For example, you can analyze the website traffic per hour to find the best time for routine maintenance.
. On the dashboard, click *Create visualization*.
. From the *Available fields* list, drag *bytes* to *Vertical axis* field in the layer pane.
. In the layer pane, click *Median of bytes*
. In the layer pane, click *Median of bytes*.
.. Click the *Sum* function.
@ -246,70 +269,80 @@ Knowing the distribution of a number helps you find patterns. For example, you c
. In the layer pane, click *hour_of_day*, then slide the *Intervals granularity* slider until the horizontal axis displays hourly intervals.
+
The *Intervals* function displays an evenly spaced distribution of the field.
[role="screenshot"]
image::images/lens_barChartDistributionOfNumberField_7.16.png[Bar chart that displays the distribution of a number field]
. Click *Save and return*.
Add a panel title:
. Open the panel menu, then select *Edit panel title*.
. In the *Panel title* field, enter `Website traffic`, then click *Save*.
[discrete]
[[treemap]]
=== Create a multi-level chart
You can use multiple functions in data tables and proportion charts. For example,
to create a chart that breaks down the traffic sources and user geography, use *Filters* and
*Top values*.
*Table* and *Proportion* visualizations support multiple functions. For example, to create visualizations that break down the data by website traffic sources and user geography, apply the *Filters* and *Top values* functions.
. On the dashboard, click *Create visualization*.
. Open the *Chart type* dropdown, then select *Treemap*.
. Open the *Visualization type* dropdown, then select *Treemap*.
. From the *Available fields* list, drag *Records* to the *Size by* field in the layer pane.
. In the editor, click the *Drop a field or click to add* field for *Group by*, then create a filter for each website traffic source.
. In the editor, click *Add or drag-and-drop a field* for *Group by*.
.. From *Select a function*, click *Filters*.
Create a filter for each website traffic source:
.. Click *All records*, enter the following, then press Return:
. From *Select a function*, click *Filters*.
. Click *All records*, enter the following in the query bar, then press Return:
* *KQL* &mdash; `referer : *facebook.com*`
* *Label* &mdash; `Facebook`
.. Click *Add a filter*, enter the following, then press Return:
. Click *Add a filter*, enter the following in the query bar, then press Return:
* *KQL* &mdash; `referer : *twitter.com*`
* *Label* &mdash; `Twitter`
.. Click *Add a filter*, enter the following, then press Return:
. Click *Add a filter*, enter the following in the query bar, then press Return:
* *KQL* &mdash; `NOT referer : *twitter.com* OR NOT referer: *facebook.com*`
* *Label* &mdash; `Other`
.. Click *Close*.
. Click *Close*.
Add a geography grouping:
Add the user geography grouping:
. From the *Available fields* list, drag *geo.src* to the workspace.
. From the *Available fields* list, drag *geo.srcdest* to the workspace.
. To change the *Group by* order, drag *Top values of geo.src* so that it appears first.
. To change the *Group by* order, drag *Top values of geo.srcdest* in the layer pane so that appears first.
+
[role="screenshot"]
image::images/lens_end_to_end_7_2.png[Treemap visualization]
. To view only the Facebook and Twitter data, remove the *Other* category.
Remove the documents that do not match the filter criteria:
.. In the layer pane, click *Top values of geo.src*.
. In the layer pane, click *Top values of geo.srcdest*.
.. Open the *Advanced* dropdown, deselect *Group other values as "Other"*, then click *Close*.
. Click *Advanced*, then deselect *Group other values as "Other"*, the click *Close*.
+
[role="screenshot"]
image::images/lens_treemapMultiLevelChart_7.16.png[Treemap visualization]
. Click *Save and return*.
. Add a panel title.
Add a panel title:
.. Open the panel menu, then select *Edit panel title*.
. Open the panel menu, then select *Edit panel title*.
.. In the *Panel title* field, enter `Page views by location and referrer`, then click *Save*.
. In the *Panel title* field, enter `Page views by location and referrer`, then click *Save*.
[float]
[[arrange-the-lens-panels]]
@ -317,7 +350,7 @@ image::images/lens_end_to_end_7_2.png[Treemap visualization]
Resize and move the panels so they all appear on the dashboard without scrolling.
Decrease the size of the following panels, then move them to the first row:
Decrease the size of the following panels, then move the panels to the first row:
* *Unique visitors*
@ -325,7 +358,10 @@ Decrease the size of the following panels, then move them to the first row:
* *Sum of bytes from large requests*
* *hour_of_day*
* *Website traffic*
+
[role="screenshot"]
image::images/lens_logsDashboard_7.16.png[Logs dashboard]
[discrete]
=== Save the dashboard

View file

@ -64,7 +64,7 @@ Tell {kib} where to find the data you want to explore, and then specify the time
. Select the data you want to work with.
+
{kib} uses an <<index-patterns,index pattern>> to tell it where to find
{kib} uses a <<data-views, data view>> to tell it where to find
your {es} data.
To view the ecommerce sample data, make sure the index pattern is set to **kibana_sample_data_ecommerce**.
+

View file

@ -3,7 +3,7 @@
== Create a graph
You must index data into {es} before you can create a graph.
<<index-patterns, Learn how>> or get started with a <<add-sample-data, sample data set>>.
<<data-views, Learn how>> or get started with a <<add-sample-data, sample data set>>.
[float]
[[exploring-connections]]

View file

@ -144,6 +144,10 @@ Refer to the corresponding {es} logs for potential write errors.
| `unknown` | User is updating a space.
| `failure` | User is not authorized to update a space.
.2+| `alert_update`
| `unknown` | User is updating an alert.
| `failure` | User is not authorized to update an alert.
3+a|
====== Type: deletion
@ -214,6 +218,14 @@ Refer to the corresponding {es} logs for potential write errors.
| `success` | User has accessed a space as part of a search operation.
| `failure` | User is not authorized to search for spaces.
.2+| `alert_get`
| `success` | User has accessed an alert.
| `failure` | User is not authorized to access an alert.
.2+| `alert_find`
| `success` | User has accessed an alert as part of a search operation.
| `failure` | User is not authorized to access alerts.
3+a|
===== Category: web

View file

@ -108,7 +108,7 @@ TIP: For more information on Basic Authentication and additional methods of auth
TIP: You can define as many different roles for your {kib} users as you need.
For example, create roles that have `read` and `view_index_metadata` privileges
on specific index patterns. For more information, see
on specific data views. For more information, see
{ref}/authorization.html[User authorization].
--

View file

@ -10,4 +10,4 @@ import { DeveloperExamplesPlugin } from './plugin';
export const plugin = () => new DeveloperExamplesPlugin();
export { DeveloperExamplesSetup } from './plugin';
export type { DeveloperExamplesSetup } from './plugin';

View file

@ -6,5 +6,6 @@
* Side Public License, v 1.
*/
export { TodoSavedObjectAttributes } from './todo_saved_object_attributes';
export { BookSavedObjectAttributes, BOOK_SAVED_OBJECT } from './book_saved_object_attributes';
export type { TodoSavedObjectAttributes } from './todo_saved_object_attributes';
export type { BookSavedObjectAttributes } from './book_saved_object_attributes';
export { BOOK_SAVED_OBJECT } from './book_saved_object_attributes';

View file

@ -6,14 +6,16 @@
* Side Public License, v 1.
*/
export type { HelloWorldEmbeddableFactory } from './hello_world';
export {
HELLO_WORLD_EMBEDDABLE,
HelloWorldEmbeddable,
HelloWorldEmbeddableFactoryDefinition,
HelloWorldEmbeddableFactory,
} from './hello_world';
export { ListContainer, LIST_CONTAINER, ListContainerFactory } from './list_container';
export { TODO_EMBEDDABLE, TodoEmbeddableFactory } from './todo';
export type { ListContainerFactory } from './list_container';
export { ListContainer, LIST_CONTAINER } from './list_container';
export type { TodoEmbeddableFactory } from './todo';
export { TODO_EMBEDDABLE } from './todo';
export { BOOK_EMBEDDABLE } from './book';
@ -21,10 +23,8 @@ export { SIMPLE_EMBEDDABLE } from './migrations';
import { EmbeddableExamplesPlugin } from './plugin';
export {
SearchableListContainer,
SEARCHABLE_LIST_CONTAINER,
SearchableListContainerFactory,
} from './searchable_list_container';
export { MULTI_TASK_TODO_EMBEDDABLE, MultiTaskTodoEmbeddableFactory } from './multi_task_todo';
export type { SearchableListContainerFactory } from './searchable_list_container';
export { SearchableListContainer, SEARCHABLE_LIST_CONTAINER } from './searchable_list_container';
export type { MultiTaskTodoEmbeddableFactory } from './multi_task_todo';
export { MULTI_TASK_TODO_EMBEDDABLE } from './multi_task_todo';
export const plugin = () => new EmbeddableExamplesPlugin();

View file

@ -7,4 +7,5 @@
*/
export { ListContainer, LIST_CONTAINER } from './list_container';
export { ListContainerFactoryDefinition, ListContainerFactory } from './list_container_factory';
export type { ListContainerFactory } from './list_container_factory';
export { ListContainerFactoryDefinition } from './list_container_factory';

View file

@ -7,7 +7,5 @@
*/
export { SearchableListContainer, SEARCHABLE_LIST_CONTAINER } from './searchable_list_container';
export {
SearchableListContainerFactoryDefinition,
SearchableListContainerFactory,
} from './searchable_list_container_factory';
export type { SearchableListContainerFactory } from './searchable_list_container_factory';
export { SearchableListContainerFactoryDefinition } from './searchable_list_container_factory';

View file

@ -8,12 +8,12 @@
import { LocatorExamplesPlugin } from './plugin';
export {
export type {
HelloLocator,
HelloLocatorV1Params,
HelloLocatorV2Params,
HelloLocatorParams,
HELLO_LOCATOR,
} from './locator';
export { HELLO_LOCATOR } from './locator';
export const plugin = () => new LocatorExamplesPlugin();

View file

@ -17,7 +17,7 @@ import {
EuiText,
} from '@elastic/eui';
import React, { useEffect, useState } from 'react';
import type { HttpSetup, IHttpFetchError } from 'src/core/public';
import type { HttpSetup, IHttpFetchError, ResponseErrorBody } from 'src/core/public';
export const App = ({ http, token }: { http: HttpSetup; token?: string }) => {
const onCompleteSetup = async ({ shouldReloadConfig }: { shouldReloadConfig: boolean }) => {
@ -41,7 +41,8 @@ export const App = ({ http, token }: { http: HttpSetup; token?: string }) => {
.post('/api/preboot/connect_to_es', { body: JSON.stringify(elasticsearchConfig) })
.then(
(response) => setConnectResponse(JSON.stringify(response)),
(err: IHttpFetchError) => setConnectResponse(err?.body?.message || 'ERROR')
(err: IHttpFetchError<ResponseErrorBody>) =>
setConnectResponse(err?.body?.message || 'ERROR')
);
};

View file

@ -15,4 +15,4 @@ import { SearchExamplesPlugin } from './plugin';
export function plugin() {
return new SearchExamplesPlugin();
}
export { SearchExamplesPluginSetup, SearchExamplesPluginStart } from './types';
export type { SearchExamplesPluginSetup, SearchExamplesPluginStart } from './types';

View file

@ -13,4 +13,4 @@ export function plugin(initializerContext: PluginInitializerContext) {
return new SearchExamplesPlugin(initializerContext);
}
export { SearchExamplesPluginSetup, SearchExamplesPluginStart } from './types';
export type { SearchExamplesPluginSetup, SearchExamplesPluginStart } from './types';

View file

@ -62,7 +62,8 @@
"backport-skip-ci": "backport --prDescription \"[skip-ci]\"",
"storybook": "node scripts/storybook",
"cover:report": "nyc report --temp-dir target/kibana-coverage/functional --report-dir target/coverage/report --reporter=lcov && open ./target/coverage/report/lcov-report/index.html",
"cover:functional:merge": "nyc report --temp-dir target/kibana-coverage/functional --report-dir target/coverage/report/functional --reporter=json-summary"
"cover:functional:merge": "nyc report --temp-dir target/kibana-coverage/functional --report-dir target/coverage/report/functional --reporter=json-summary",
"postinstall": "node scripts/kbn patch_native_modules"
},
"repository": {
"type": "git",
@ -87,7 +88,7 @@
"**/underscore": "^1.13.1"
},
"engines": {
"node": "16.11.1",
"node": "16.13.0",
"yarn": "^1.21.1"
},
"dependencies": {
@ -95,14 +96,14 @@
"@dnd-kit/core": "^3.1.1",
"@dnd-kit/sortable": "^4.0.0",
"@dnd-kit/utilities": "^2.0.0",
"@elastic/apm-synthtrace": "link:bazel-bin/packages/elastic-apm-synthtrace",
"@elastic/apm-rum": "^5.9.1",
"@elastic/apm-rum-react": "^1.3.1",
"@elastic/charts": "38.1.0",
"@elastic/apm-synthtrace": "link:bazel-bin/packages/elastic-apm-synthtrace",
"@elastic/charts": "38.1.3",
"@elastic/datemath": "link:bazel-bin/packages/elastic-datemath",
"@elastic/elasticsearch": "npm:@elastic/elasticsearch-canary@^8.0.0-canary.35",
"@elastic/ems-client": "8.0.0",
"@elastic/eui": "40.0.0",
"@elastic/eui": "40.1.0",
"@elastic/filesaver": "1.1.2",
"@elastic/maki": "6.3.0",
"@elastic/node-crypto": "1.2.1",
@ -111,7 +112,10 @@
"@elastic/request-crypto": "1.1.4",
"@elastic/safer-lodash-set": "link:bazel-bin/packages/elastic-safer-lodash-set",
"@elastic/search-ui-app-search-connector": "^1.6.0",
"@emotion/cache": "^11.4.0",
"@emotion/css": "^11.4.0",
"@emotion/react": "^11.4.0",
"@emotion/serialize": "^1.0.2",
"@hapi/accept": "^5.0.2",
"@hapi/boom": "^9.1.4",
"@hapi/cookie": "^11.0.2",
@ -136,6 +140,7 @@
"@kbn/logging": "link:bazel-bin/packages/kbn-logging",
"@kbn/mapbox-gl": "link:bazel-bin/packages/kbn-mapbox-gl",
"@kbn/monaco": "link:bazel-bin/packages/kbn-monaco",
"@kbn/react-field": "link:bazel-bin/packages/kbn-react-field",
"@kbn/rule-data-utils": "link:bazel-bin/packages/kbn-rule-data-utils",
"@kbn/securitysolution-autocomplete": "link:bazel-bin/packages/kbn-securitysolution-autocomplete",
"@kbn/securitysolution-es-utils": "link:bazel-bin/packages/kbn-securitysolution-es-utils",
@ -542,6 +547,7 @@
"@types/jest-when": "^2.7.2",
"@types/joi": "^17.2.3",
"@types/jquery": "^3.3.31",
"@types/js-levenshtein": "^1.1.0",
"@types/js-search": "^1.4.0",
"@types/js-yaml": "^3.11.1",
"@types/jsdom": "^16.2.3",
@ -595,6 +601,7 @@
"@types/react-router-dom": "^5.1.5",
"@types/react-test-renderer": "^16.9.1",
"@types/react-virtualized": "^9.18.7",
"@types/react-vis": "^1.11.9",
"@types/read-pkg": "^4.0.0",
"@types/recompose": "^0.30.6",
"@types/reduce-reducers": "^1.0.0",
@ -633,9 +640,9 @@
"@types/xml2js": "^0.4.5",
"@types/yauzl": "^2.9.1",
"@types/zen-observable": "^0.8.0",
"@typescript-eslint/eslint-plugin": "^4.31.2",
"@typescript-eslint/parser": "^4.31.2",
"@typescript-eslint/typescript-estree": "^4.31.2",
"@typescript-eslint/eslint-plugin": "^5.2.0",
"@typescript-eslint/parser": "^5.2.0",
"@typescript-eslint/typescript-estree": "^5.2.0",
"@yarnpkg/lockfile": "^1.1.0",
"abab": "^2.0.4",
"aggregate-error": "^3.1.0",
@ -766,7 +773,6 @@
"oboe": "^2.1.4",
"parse-link-header": "^1.0.1",
"pbf": "3.2.1",
"pdf-to-img": "^1.1.1",
"pirates": "^4.0.1",
"pixelmatch": "^5.1.0",
"postcss": "^7.0.32",

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