[DOCS] Removed below references (#60159) (#60272)

This commit is contained in:
Kaarina Tungseth 2020-03-16 12:12:08 -05:00 committed by GitHub
parent 80b58a589d
commit 7f908a58f2
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
24 changed files with 208 additions and 216 deletions

View file

@ -5,7 +5,7 @@ When querying in the APM app, you're simply searching and selecting data from fi
Queries entered into the query bar are also added as parameters to the URL,
so it's easy to share a specific query or view with others.
In the screenshot below, you can begin to see some of the transaction fields available for filtering on:
You can begin to see some of the transaction fields available for filtering:
[role="screenshot"]
image::apm/images/apm-query-bar.png[Example of the Kibana Query bar in APM app in Kibana]

View file

@ -12,12 +12,12 @@ This makes it useful for visualizing where the selected transaction spent most o
image::apm/images/apm-transaction-sample.png[Example of distributed trace colors in the APM app in Kibana]
View a span in detail by clicking on it in the timeline waterfall.
For example, in the below screenshot we've clicked on an SQL Select database query.
The information displayed includes the actual SQL that was executed, how long it took,
When you click on an SQL Select database query,
the information displayed includes the actual SQL that was executed, how long it took,
and the percentage of the trace's total time.
You also get a stack trace, which shows the SQL query in your code.
Finally, APM knows which files are your code and which are just modules or libraries that you've installed.
These library frames will be minimized by default in order to show you the most relevant stack trace.
These library frames will be minimized by default in order to show you the most relevant stack trace.
[role="screenshot"]
image::apm/images/apm-span-detail.png[Example view of a span detail in the APM app in Kibana]

View file

@ -54,7 +54,7 @@ If there's a particular endpoint you're worried about, you can click on it to vi
[IMPORTANT]
====
If you only see one route in the Transactions table, or if you have transactions named "unknown route",
it could be a symptom that the agent either wasn't installed correctly or doesn't support your framework.
it could be a symptom that the agent either wasn't installed correctly or doesn't support your framework.
For further details, including troubleshooting and custom implementation instructions,
refer to the documentation for each {apm-agents-ref}[APM Agent] you've implemented.
@ -107,9 +107,7 @@ The number of requests per bucket is displayed when hovering over the graph, and
[role="screenshot"]
image::apm/images/apm-transaction-duration-dist.png[Example view of transactions duration distribution graph]
Let's look at an example.
In the screenshot below,
you'll notice most of the requests fall into buckets on the left side of the graph,
Most of the requests fall into buckets on the left side of the graph,
with a long tail of smaller buckets to the right.
This is a typical distribution, and indicates most of our requests were served quickly - awesome!
It's the requests on the right, the ones taking longer than average, that we probably want to focus on.

View file

@ -3,21 +3,21 @@
=== TinyMath functions
TinyMath provides a set of functions that can be used with the Canvas expression
language to perform complex math calculations. Read on for detailed information about
the functions available in TinyMath, including what parameters each function accepts,
language to perform complex math calculations. Read on for detailed information about
the functions available in TinyMath, including what parameters each function accepts,
the return value of that function, and examples of how each function behaves.
Most of the functions below accept arrays and apply JavaScript Math methods to
each element of that array. For the functions that accept multiple arrays as
parameters, the function generally does the calculation index by index.
Most of the functions accept arrays and apply JavaScript Math methods to
each element of that array. For the functions that accept multiple arrays as
parameters, the function generally does the calculation index by index.
Any function below can be wrapped by another function as long as the return type
Any function can be wrapped by another function as long as the return type
of the inner function matches the acceptable parameter type of the outer function.
[float]
=== abs( a )
Calculates the absolute value of a number. For arrays, the function will be
Calculates the absolute value of a number. For arrays, the function will be
applied index-wise to each element.
[cols="3*^<"]
@ -29,7 +29,7 @@ applied index-wise to each element.
|a number or an array of numbers
|===
*Returns*: `number` | `Array.<number>`. The absolute value of `a`. Returns
*Returns*: `number` | `Array.<number>`. The absolute value of `a`. Returns
an array with the absolute values of each element if `a` is an array.
*Example*
@ -43,7 +43,7 @@ abs([-1 , -2, 3, -4]) // returns [1, 2, 3, 4]
[float]
=== add( ...args )
Calculates the sum of one or more numbers/arrays passed into the function. If at
Calculates the sum of one or more numbers/arrays passed into the function. If at
least one array of numbers is passed into the function, the function will calculate the sum by index.
[cols="3*^<"]
@ -55,9 +55,9 @@ least one array of numbers is passed into the function, the function will calcul
|one or more numbers or arrays of numbers
|===
*Returns*: `number` | `Array.<number>`. The sum of all numbers in `args` if `args`
contains only numbers. Returns an array of sums of the elements at each index,
including all scalar numbers in `args` in the calculation at each index if `args`
*Returns*: `number` | `Array.<number>`. The sum of all numbers in `args` if `args`
contains only numbers. Returns an array of sums of the elements at each index,
including all scalar numbers in `args` in the calculation at each index if `args`
contains at least one array.
*Throws*: `'Array length mismatch'` if `args` contains arrays of different lengths
@ -73,7 +73,7 @@ add([1, 2], 3, [4, 5], 6) // returns [(1 + 3 + 4 + 6), (2 + 3 + 5 + 6)] = [14, 1
[float]
=== cbrt( a )
Calculates the cube root of a number. For arrays, the function will be applied
Calculates the cube root of a number. For arrays, the function will be applied
index-wise to each element.
[cols="3*^<"]
@ -85,7 +85,7 @@ index-wise to each element.
|a number or an array of numbers
|===
*Returns*: `number` | `Array.<number>`. The cube root of `a`. Returns an array with
*Returns*: `number` | `Array.<number>`. The cube root of `a`. Returns an array with
the cube roots of each element if `a` is an array.
*Example*
@ -99,7 +99,7 @@ cbrt([27, 64, 125]) // returns [3, 4, 5]
[float]
=== ceil( a )
Calculates the ceiling of a number, i.e., rounds a number towards positive infinity.
Calculates the ceiling of a number, i.e., rounds a number towards positive infinity.
For arrays, the function will be applied index-wise to each element.
[cols="3*^<"]
@ -111,7 +111,7 @@ For arrays, the function will be applied index-wise to each element.
|a number or an array of numbers
|===
*Returns*: `number` | `Array.<number>`. The ceiling of `a`. Returns an array with
*Returns*: `number` | `Array.<number>`. The ceiling of `a`. Returns an array with
the ceilings of each element if `a` is an array.
*Example*
@ -125,7 +125,7 @@ ceil([1.1, 2.2, 3.3]) // returns [2, 3, 4]
[float]
=== clamp( ...a, min, max )
Restricts value to a given range and returns closed available value. If only `min`
Restricts value to a given range and returns closed available value. If only `min`
is provided, values are restricted to only a lower bound.
[cols="3*^<"]
@ -145,11 +145,11 @@ is provided, values are restricted to only a lower bound.
|(optional) The maximum value this function will return.
|===
*Returns*: `number` | `Array.<number>`. The closest value between `min` (inclusive)
and `max` (inclusive). Returns an array with values greater than or equal to `min`
*Returns*: `number` | `Array.<number>`. The closest value between `min` (inclusive)
and `max` (inclusive). Returns an array with values greater than or equal to `min`
and less than or equal to `max` (if provided) at each index.
*Throws*:
*Throws*:
- `'Array length mismatch'` if a `min` and/or `max` are arrays of different lengths
@ -194,7 +194,7 @@ count(100) // returns 1
[float]
=== cube( a )
Calculates the cube of a number. For arrays, the function will be applied
Calculates the cube of a number. For arrays, the function will be applied
index-wise to each element.
[cols="3*^<"]
@ -206,7 +206,7 @@ index-wise to each element.
|a number or an array of numbers
|===
*Returns*: `number` | `Array.<number>`. The cube of `a`. Returns an array
*Returns*: `number` | `Array.<number>`. The cube of `a`. Returns an array
with the cubes of each element if `a` is an array.
*Example*
@ -219,7 +219,7 @@ cube([3, 4, 5]) // returns [27, 64, 125]
[float]
=== divide( a, b )
Divides two numbers. If at least one array of numbers is passed into the function,
Divides two numbers. If at least one array of numbers is passed into the function,
the function will be applied index-wise to each element.
[cols="3*^<"]
@ -235,8 +235,8 @@ the function will be applied index-wise to each element.
|divisor, a number or an array of numbers, b != 0
|===
*Returns*: `number` | `Array.<number>`. Returns the quotient of `a` and `b`
if both are numbers. Returns an array with the quotients applied index-wise to
*Returns*: `number` | `Array.<number>`. Returns the quotient of `a` and `b`
if both are numbers. Returns an array with the quotients applied index-wise to
each element if `a` or `b` is an array.
*Throws*:
@ -257,7 +257,7 @@ divide([14, 42, 65, 108], [2, 7, 5, 12]) // returns [7, 6, 13, 9]
[float]
=== exp( a )
Calculates _e^x_ where _e_ is Euler's number. For arrays, the function will be applied
Calculates _e^x_ where _e_ is Euler's number. For arrays, the function will be applied
index-wise to each element.
[cols="3*^<"]
@ -269,7 +269,7 @@ index-wise to each element.
|a number or an array of numbers
|===
*Returns*: `number` | `Array.<number>`. Returns an array with the values of
*Returns*: `number` | `Array.<number>`. Returns an array with the values of
`e^x` evaluated where `x` is each element of `a` if `a` is an array.
*Example*
@ -282,7 +282,7 @@ exp([1, 2, 3]) // returns [e^1, e^2, e^3] = [2.718281828459045, 7.38905609893064
[float]
=== first( a )
Returns the first element of an array. If anything other than an array is passed
Returns the first element of an array. If anything other than an array is passed
in, the input is returned.
[cols="3*^<"]
@ -306,7 +306,7 @@ first([1, 2, 3]) // returns 1
[float]
=== fix( a )
Calculates the fix of a number, i.e., rounds a number towards 0. For arrays, the
Calculates the fix of a number, i.e., rounds a number towards 0. For arrays, the
function will be applied index-wise to each element.
[cols="3*^<"]
@ -318,7 +318,7 @@ function will be applied index-wise to each element.
|a number or an array of numbers
|===
*Returns*: `number` | `Array.<number>`. The fix of `a`. Returns an array with
*Returns*: `number` | `Array.<number>`. The fix of `a`. Returns an array with
the fixes for each element if `a` is an array.
*Example*
@ -332,7 +332,7 @@ fix([1.8, 2.9, -3.7, -4.6]) // returns [1, 2, -3, -4]
[float]
=== floor( a )
Calculates the floor of a number, i.e., rounds a number towards negative infinity.
Calculates the floor of a number, i.e., rounds a number towards negative infinity.
For arrays, the function will be applied index-wise to each element.
[cols="3*^<"]
@ -344,7 +344,7 @@ For arrays, the function will be applied index-wise to each element.
|a number or an array of numbers
|===
*Returns*: `number` | `Array.<number>`. The floor of `a`. Returns an array
*Returns*: `number` | `Array.<number>`. The floor of `a`. Returns an array
with the floor of each element if `a` is an array.
*Example*
@ -358,7 +358,7 @@ floor([1.7, 2.8, 3.9]) // returns [1, 2, 3]
[float]
=== last( a )
Returns the last element of an array. If anything other than an array is passed
Returns the last element of an array. If anything other than an array is passed
in, the input is returned.
[cols="3*^<"]
@ -382,7 +382,7 @@ last([1, 2, 3]) // returns 3
[float]
=== log( a, b )
Calculates the logarithm of a number. For arrays, the function will be applied
Calculates the logarithm of a number. For arrays, the function will be applied
index-wise to each element.
[cols="3*^<"]
@ -398,7 +398,7 @@ index-wise to each element.
|(optional) base for the logarithm. If not provided a value, the default base is e, and the natural log is calculated.
|===
*Returns*: `number` | `Array.<number>`. The logarithm of `a`. Returns an array
*Returns*: `number` | `Array.<number>`. The logarithm of `a`. Returns an array
with the the logarithms of each element if `a` is an array.
*Throws*:
@ -419,7 +419,7 @@ log([2, 4, 8, 16, 32], 2) // returns [1, 2, 3, 4, 5]
[float]
=== log10( a )
Calculates the logarithm base 10 of a number. For arrays, the function will be
Calculates the logarithm base 10 of a number. For arrays, the function will be
applied index-wise to each element.
[cols="3*^<"]
@ -431,7 +431,7 @@ applied index-wise to each element.
|a number or an array of numbers, `a` must be greater than 0
|===
*Returns*: `number` | `Array.<number>`. The logarithm of `a`. Returns an array
*Returns*: `number` | `Array.<number>`. The logarithm of `a`. Returns an array
with the the logarithms base 10 of each element if `a` is an array.
*Throws*: `'Must be greater than 0'` if `a` < 0
@ -448,8 +448,8 @@ log([10, 100, 1000, 10000, 100000]) // returns [1, 2, 3, 4, 5]
[float]
=== max( ...args )
Finds the maximum value of one of more numbers/arrays of numbers passed into the function.
If at least one array of numbers is passed into the function, the function will
Finds the maximum value of one of more numbers/arrays of numbers passed into the function.
If at least one array of numbers is passed into the function, the function will
find the maximum by index.
[cols="3*^<"]
@ -461,9 +461,9 @@ find the maximum by index.
|one or more numbers or arrays of numbers
|===
*Returns*: `number` | `Array.<number>`. The maximum value of all numbers if
`args` contains only numbers. Returns an array with the the maximum values at each
index, including all scalar numbers in `args` in the calculation at each index if
*Returns*: `number` | `Array.<number>`. The maximum value of all numbers if
`args` contains only numbers. Returns an array with the the maximum values at each
index, including all scalar numbers in `args` in the calculation at each index if
`args` contains at least one array.
*Throws*: `'Array length mismatch'` if `args` contains arrays of different lengths
@ -479,8 +479,8 @@ max([1, 9], 4, [3, 5]) // returns [max([1, 4, 3]), max([9, 4, 5])] = [4, 9]
[float]
=== mean( ...args )
Finds the mean value of one of more numbers/arrays of numbers passed into the function.
If at least one array of numbers is passed into the function, the function will
Finds the mean value of one of more numbers/arrays of numbers passed into the function.
If at least one array of numbers is passed into the function, the function will
find the mean by index.
[cols="3*^<"]
@ -492,9 +492,9 @@ find the mean by index.
|one or more numbers or arrays of numbers
|===
*Returns*: `number` | `Array.<number>`. The maximum value of all numbers if
`args` contains only numbers. Returns an array with the the maximum values at each
index, including all scalar numbers in `args` in the calculation at each index if
*Returns*: `number` | `Array.<number>`. The maximum value of all numbers if
`args` contains only numbers. Returns an array with the the maximum values at each
index, including all scalar numbers in `args` in the calculation at each index if
`args` contains at least one array.
*Throws*: `'Array length mismatch'` if `args` contains arrays of different lengths
@ -510,8 +510,8 @@ max([1, 9], 4, [3, 5]) // returns [max([1, 4, 3]), max([9, 4, 5])] = [4, 9]
[float]
=== mean( ...args )
Finds the mean value of one of more numbers/arrays of numbers passed into the function.
If at least one array of numbers is passed into the function, the function will
Finds the mean value of one of more numbers/arrays of numbers passed into the function.
If at least one array of numbers is passed into the function, the function will
find the mean by index.
[cols="3*^<"]
@ -523,9 +523,9 @@ find the mean by index.
|one or more numbers or arrays of numbers
|===
*Returns*: `number` | `Array.<number>`. The mean value of all numbers if `args`
contains only numbers. Returns an array with the the mean values of each index,
including all scalar numbers in `args` in the calculation at each index if `args`
*Returns*: `number` | `Array.<number>`. The mean value of all numbers if `args`
contains only numbers. Returns an array with the the mean values of each index,
including all scalar numbers in `args` in the calculation at each index if `args`
contains at least one array.
*Example*
@ -539,8 +539,8 @@ mean([1, 9], 5, [3, 4]) // returns [mean([1, 5, 3]), mean([9, 5, 4])] = [3, 6]
[float]
=== median( ...args )
Finds the median value(s) of one of more numbers/arrays of numbers passed into the function.
If at least one array of numbers is passed into the function, the function will
Finds the median value(s) of one of more numbers/arrays of numbers passed into the function.
If at least one array of numbers is passed into the function, the function will
find the median by index.
[cols="3*^<"]
@ -552,9 +552,9 @@ find the median by index.
|one or more numbers or arrays of numbers
|===
*Returns*: `number` | `Array.<number>`. The median value of all numbers if `args`
contains only numbers. Returns an array with the the median values of each index,
including all scalar numbers in `args` in the calculation at each index if `args`
*Returns*: `number` | `Array.<number>`. The median value of all numbers if `args`
contains only numbers. Returns an array with the the median values of each index,
including all scalar numbers in `args` in the calculation at each index if `args`
contains at least one array.
*Example*
@ -569,8 +569,8 @@ median([1, 9], 2, 4, [3, 5]) // returns [median([1, 2, 4, 3]), median([9, 2, 4,
[float]
=== min( ...args )
Finds the minimum value of one of more numbers/arrays of numbers passed into the function.
If at least one array of numbers is passed into the function, the function will
Finds the minimum value of one of more numbers/arrays of numbers passed into the function.
If at least one array of numbers is passed into the function, the function will
find the minimum by index.
[cols="3*^<"]
@ -582,9 +582,9 @@ find the minimum by index.
|one or more numbers or arrays of numbers
|===
*Returns*: `number` | `Array.<number>`. The minimum value of all numbers if
`args` contains only numbers. Returns an array with the the minimum values of each
index, including all scalar numbers in `args` in the calculation at each index if `a`
*Returns*: `number` | `Array.<number>`. The minimum value of all numbers if
`args` contains only numbers. Returns an array with the the minimum values of each
index, including all scalar numbers in `args` in the calculation at each index if `a`
is an array.
*Throws*: `'Array length mismatch'` if `args` contains arrays of different lengths.
@ -600,7 +600,7 @@ min([1, 9], 4, [3, 5]) // returns [min([1, 4, 3]), min([9, 4, 5])] = [1, 4]
[float]
=== mod( a, b )
Remainder after dividing two numbers. If at least one array of numbers is passed
Remainder after dividing two numbers. If at least one array of numbers is passed
into the function, the function will be applied index-wise to each element.
[cols="3*^<"]
@ -616,8 +616,8 @@ into the function, the function will be applied index-wise to each element.
|divisor, a number or an array of numbers, b != 0
|===
*Returns*: `number` | `Array.<number>`. The remainder of `a` divided by `b` if
both are numbers. Returns an array with the the remainders applied index-wise to
*Returns*: `number` | `Array.<number>`. The remainder of `a` divided by `b` if
both are numbers. Returns an array with the the remainders applied index-wise to
each element if `a` or `b` is an array.
*Throws*:
@ -638,8 +638,8 @@ mod([14, 42, 65, 108], [5, 4, 14, 2]) // returns [5, 2, 9, 0]
[float]
=== mode( ...args )
Finds the mode value(s) of one of more numbers/arrays of numbers passed into the function.
If at least one array of numbers is passed into the function, the function will
Finds the mode value(s) of one of more numbers/arrays of numbers passed into the function.
If at least one array of numbers is passed into the function, the function will
find the mode by index.
[cols="3*^<"]
@ -651,9 +651,9 @@ find the mode by index.
|one or more numbers or arrays of numbers
|===
*Returns*: `number` | `Array.<Array.<number>>`. An array of mode value(s) of all
numbers if `args` contains only numbers. Returns an array of arrays with mode value(s)
of each index, including all scalar numbers in `args` in the calculation at each index
*Returns*: `number` | `Array.<Array.<number>>`. An array of mode value(s) of all
numbers if `args` contains only numbers. Returns an array of arrays with mode value(s)
of each index, including all scalar numbers in `args` in the calculation at each index
if `args` contains at least one array.
*Example*
@ -668,7 +668,7 @@ mode([1, 9], 1, 4, [3, 5]) // returns [mode([1, 1, 4, 3]), mode([9, 1, 4, 5])] =
[float]
=== multiply( a, b )
Multiplies two numbers. If at least one array of numbers is passed into the function,
Multiplies two numbers. If at least one array of numbers is passed into the function,
the function will be applied index-wise to each element.
[cols="3*^<"]
@ -684,11 +684,11 @@ the function will be applied index-wise to each element.
|a number or an array of numbers
|===
*Returns*: `number` | `Array.<number>`. The product of `a` and `b` if both are
numbers. Returns an array with the the products applied index-wise to each element
*Returns*: `number` | `Array.<number>`. The product of `a` and `b` if both are
numbers. Returns an array with the the products applied index-wise to each element
if `a` or `b` is an array.
*Throws*: `'Array length mismatch'` if `a` and `b` are arrays with different lengths
*Throws*: `'Array length mismatch'` if `a` and `b` are arrays with different lengths
*Example*
[source, js]
@ -702,7 +702,7 @@ multiply([1, 2, 3, 4], [2, 7, 5, 12]) // returns [2, 14, 15, 48]
[float]
=== pow( a, b )
Calculates the cube root of a number. For arrays, the function will be applied
Calculates the cube root of a number. For arrays, the function will be applied
index-wise to each element.
[cols="3*^<"]
@ -718,7 +718,7 @@ index-wise to each element.
|the power that `a` is raised to
|===
*Returns*: `number` | `Array.<number>`. `a` raised to the power of `b`. Returns
*Returns*: `number` | `Array.<number>`. `a` raised to the power of `b`. Returns
an array with the each element raised to the power of `b` if `a` is an array.
*Throws*: `'Missing exponent'` if `b` is not provided
@ -733,8 +733,8 @@ pow([1, 2, 3], 4) // returns [1, 16, 81]
[float]
=== random( a, b )
Generates a random number within the given range where the lower bound is inclusive
and the upper bound is exclusive. If no numbers are passed in, it will return a
Generates a random number within the given range where the lower bound is inclusive
and the upper bound is exclusive. If no numbers are passed in, it will return a
number between 0 and 1. If only one number is passed in, it will return a number
between 0 and the number passed in.
@ -751,11 +751,11 @@ between 0 and the number passed in.
|(optional) must be greater than `a`
|===
*Returns*: `number`. A random number between 0 and 1 if no numbers are passed in.
Returns a random number between 0 and `a` if only one number is passed in. Returns
*Returns*: `number`. A random number between 0 and 1 if no numbers are passed in.
Returns a random number between 0 and `a` if only one number is passed in. Returns
a random number between `a` and `b` if two numbers are passed in.
*Throws*: `'Min must be greater than max'` if `a` < 0 when only `a` is passed in
*Throws*: `'Min must be greater than max'` if `a` < 0 when only `a` is passed in
or if `a` > `b` when both `a` and `b` are passed in
*Example*
@ -769,8 +769,8 @@ random(-10,10) // returns a random number between -10 (inclusive) and 10 (exclus
[float]
=== range( ...args )
Finds the range of one of more numbers/arrays of numbers passed into the function. If at
least one array of numbers is passed into the function, the function will find
Finds the range of one of more numbers/arrays of numbers passed into the function. If at
least one array of numbers is passed into the function, the function will find
the range by index.
[cols="3*^<"]
@ -782,9 +782,9 @@ the range by index.
|one or more numbers or arrays of numbers
|===
*Returns*: `number` | `Array.<number>`. The range value of all numbers if `args`
contains only numbers. Returns an array with the range values at each index,
including all scalar numbers in `args` in the calculation at each index if `args`
*Returns*: `number` | `Array.<number>`. The range value of all numbers if `args`
contains only numbers. Returns an array with the range values at each index,
including all scalar numbers in `args` in the calculation at each index if `args`
contains at least one array.
*Example*
@ -798,8 +798,8 @@ range([1, 9], 4, [3, 5]) // returns [range([1, 4, 3]), range([9, 4, 5])] = [3, 5
[float]
=== range( ...args )
Finds the range of one of more numbers/arrays of numbers into the function. If at
least one array of numbers is passed into the function, the function will find
Finds the range of one of more numbers/arrays of numbers into the function. If at
least one array of numbers is passed into the function, the function will find
the range by index.
[cols="3*^<"]
@ -811,9 +811,9 @@ the range by index.
|one or more numbers or arrays of numbers
|===
*Returns*: `number` | `Array.<number>`. The range value of all numbers if `args`
contains only numbers. Returns an array with the the range values at each index,
including all scalar numbers in `args` in the calculation at each index if `args`
*Returns*: `number` | `Array.<number>`. The range value of all numbers if `args`
contains only numbers. Returns an array with the the range values at each index,
including all scalar numbers in `args` in the calculation at each index if `args`
contains at least one array.
*Example*
@ -827,7 +827,7 @@ range([1, 9], 4, [3, 5]) // returns [range([1, 4, 3]), range([9, 4, 5])] = [3, 5
[float]
=== round( a, b )
Rounds a number towards the nearest integer by default, or decimal place (if passed in as `b`).
Rounds a number towards the nearest integer by default, or decimal place (if passed in as `b`).
For arrays, the function will be applied index-wise to each element.
[cols="3*^<"]
@ -843,7 +843,7 @@ For arrays, the function will be applied index-wise to each element.
|(optional) number of decimal places, default value: 0
|===
*Returns*: `number` | `Array.<number>`. The rounded value of `a`. Returns an
*Returns*: `number` | `Array.<number>`. The rounded value of `a`. Returns an
array with the the rounded values of each element if `a` is an array.
*Example*
@ -885,7 +885,7 @@ size(100) // returns 1
[float]
=== sqrt( a )
Calculates the square root of a number. For arrays, the function will be applied
Calculates the square root of a number. For arrays, the function will be applied
index-wise to each element.
[cols="3*^<"]
@ -897,7 +897,7 @@ index-wise to each element.
|a number or an array of numbers
|===
*Returns*: `number` | `Array.<number>`. The square root of `a`. Returns an array
*Returns*: `number` | `Array.<number>`. The square root of `a`. Returns an array
with the the square roots of each element if `a` is an array.
*Throws*: `'Unable find the square root of a negative number'` if `a` < 0
@ -913,7 +913,7 @@ sqrt([9, 16, 25]) // returns [3, 4, 5]
[float]
=== square( a )
Calculates the square of a number. For arrays, the function will be applied
Calculates the square of a number. For arrays, the function will be applied
index-wise to each element.
[cols="3*^<"]
@ -925,7 +925,7 @@ index-wise to each element.
|a number or an array of numbers
|===
*Returns*: `number` | `Array.<number>`. The square of `a`. Returns an array
*Returns*: `number` | `Array.<number>`. The square of `a`. Returns an array
with the the squares of each element if `a` is an array.
*Example*
@ -938,7 +938,7 @@ square([3, 4, 5]) // returns [9, 16, 25]
[float]
=== subtract( a, b )
Subtracts two numbers. If at least one array of numbers is passed into the function,
Subtracts two numbers. If at least one array of numbers is passed into the function,
the function will be applied index-wise to each element.
[cols="3*^<"]
@ -954,7 +954,7 @@ the function will be applied index-wise to each element.
|a number or an array of numbers
|===
*Returns*: `number` | `Array.<number>`. The difference of `a` and `b` if both are
*Returns*: `number` | `Array.<number>`. The difference of `a` and `b` if both are
numbers, or an array of differences applied index-wise to each element.
*Throws*: `'Array length mismatch'` if `a` and `b` are arrays with different lengths
@ -971,11 +971,11 @@ subtract([14, 42, 65, 108], [2, 7, 5, 12]) // returns [12, 35, 52, 96]
[float]
=== sum( ...args )
Calculates the sum of one or more numbers/arrays passed into the function. If at
least one array is passed, the function will sum up one or more numbers/arrays of
Calculates the sum of one or more numbers/arrays passed into the function. If at
least one array is passed, the function will sum up one or more numbers/arrays of
numbers and distinct values of an array. Sum accepts arrays of different lengths.
*Returns*: `number`. The sum of one or more numbers/arrays of numbers including
*Returns*: `number`. The sum of one or more numbers/arrays of numbers including
distinct values in arrays
*Example*
@ -992,7 +992,7 @@ sum([10, 20, 30, 40], 10, [1, 2, 3], 22) // returns sum(10, 20, 30, 40, 10, 1, 2
Counts the number of unique values in an array.
*Returns*: `number`. The number of unique values in the array. Returns 1 if `a`
*Returns*: `number`. The number of unique values in the array. Returns 1 if `a`
is not an array.
*Example*
@ -1003,4 +1003,3 @@ unique([]) // returns 0
unique([1, 2, 3, 4]) // returns 4
unique([1, 2, 3, 4, 2, 2, 2, 3, 4, 2, 4, 5, 2, 1, 4, 2]) // returns 5
------------

View file

@ -25,11 +25,11 @@ POST test/_bulk
// CONSOLE
--
. From the {searchprofiler}, enter "test" in the *Index* field to restrict profiled
. From the {searchprofiler}, enter "test" in the *Index* field to restrict profiled
queries to the `test` index.
. Replace the default `match_all` query in the query editor with a query that has two sub-query
components and includes a simple aggregation, like the example below.
components and includes a simple aggregation:
+
--
[source,js]

View file

@ -69,7 +69,7 @@ node scripts/functional_tests_server.js
node ../scripts/functional_test_runner.js
----------
** Selenium tests are run in headless mode on CI. Locally the same tests will be executed in a real browser. You can activate headless mode by setting the environment variable below:
** Selenium tests are run in headless mode on CI. Locally the same tests will be executed in a real browser. You can activate headless mode by setting the environment variable:
+
["source", "shell"]
----------
@ -180,7 +180,7 @@ node scripts/functional_test_runner --config test/functional/config.firefox.js
[float]
===== Anatomy of a test file
The annotated example file below shows the basic structure every test suite uses. It starts by importing https://github.com/elastic/kibana/tree/master/packages/kbn-expect[`@kbn/expect`] and defining its default export: an anonymous Test Provider. The test provider then destructures the Provider API for the `getService()` and `getPageObjects()` functions. It uses these functions to collect the dependencies of this suite. The rest of the test file will look pretty normal to mocha.js users. `describe()`, `it()`, `before()` and the lot are used to define suites that happen to automate a browser via services and objects of type `PageObject`.
This annotated example file shows the basic structure every test suite uses. It starts by importing https://github.com/elastic/kibana/tree/master/packages/kbn-expect[`@kbn/expect`] and defining its default export: an anonymous Test Provider. The test provider then destructures the Provider API for the `getService()` and `getPageObjects()` functions. It uses these functions to collect the dependencies of this suite. The rest of the test file will look pretty normal to mocha.js users. `describe()`, `it()`, `before()` and the lot are used to define suites that happen to automate a browser via services and objects of type `PageObject`.
["source","js"]
----

View file

@ -46,7 +46,7 @@ Registering a feature consists of the following fields. For more information, co
|`privileges` (required)
|{repo}blob/{branch}/x-pack/plugins/features/server/feature.ts[`FeatureWithAllOrReadPrivileges`].
|see examples below
|See <<example-1-canvas,Example 1>> and <<example-2-dev-tools,Example 2>>
|The set of privileges this feature requires to function.
|`icon`
@ -80,6 +80,7 @@ if (canUserSave) {
}
-----------
[[example-1-canvas]]
==== Example 1: Canvas Application
["source","javascript"]
-----------
@ -134,6 +135,7 @@ if (canUserSave) {
Because the `read` privilege does not define the `save` capability, users with read-only access will have their `uiCapabilities.canvas.save` flag set to `false`.
[[example-2-dev-tools]]
==== Example 2: Dev Tools
["source","javascript"]

View file

@ -161,7 +161,7 @@ Full details are {repo}tree/master/packages/kbn-i18n#angularjs[here].
To learn more about i18n tooling, see {blob}src/dev/i18n/README.md[i18n dev tooling].
To learn more about implementing i18n in the UI, follow the links below:
To learn more about implementing i18n in the UI, use the following links:
* {blob}packages/kbn-i18n/README.md[i18n plugin]
* {blob}packages/kbn-i18n/GUIDELINE.md[i18n guidelines]

View file

@ -7,8 +7,8 @@ simplified, easier to use syntax. If you have a Basic license or above, autocomp
==== Language Syntax
If you're familiar with Kibana's old lucene query syntax, you should feel right at home with the new syntax. The basics
stay the same, we've simply refined things to make the query language easier to use. Read about the changes below.
If you're familiar with Kibana's old Lucene query syntax, you should feel right at home with the new syntax. The basics
stay the same, we've simply refined things to make the query language easier to use.
`response:200` will match documents where the response field matches the value 200.

View file

@ -56,7 +56,7 @@ query language you can also submit queries using the {ref}/query-dsl.html[Elasti
[[save-open-search]]
=== Saving searches
A saved search persists your current view of Discover for later retrieval and reuse. You can reload a saved search into Discover, add it to a dashboard, and use it as the basis for a <<visualize, visualization>>.
A saved search persists your current view of Discover for later retrieval and reuse. You can reload a saved search into Discover, add it to a dashboard, and use it as the basis for a <<visualize, visualization>>.
A saved search includes the query text, filters, and optionally, the time filter. A saved search also includes the selected columns in the document table, the sort order, and the current index pattern.
@ -164,12 +164,9 @@ You can import, export, and delete saved queries from <<managing-saved-objects,
[[select-pattern]]
=== Change the indices you're searching
When you submit a search request, the indices that match the currently-selected
index pattern are searched. The current index pattern is shown below the toolbar.
To change which indices you are searching, click the index pattern and select a
different index pattern.
For more information about index patterns, see <<settings-create-pattern,
Creating an Index Pattern>>.
index pattern are searched.
To change the indices you are searching, click the index pattern and select a
different <<settings-create-pattern, index pattern>>.
[[autorefresh]]
=== Refresh the search results
@ -180,7 +177,7 @@ retrieve the latest results.
. Click image:images/time-filter-calendar.png[].
. In the *Refresh every* field, enter the refresh rate, then select the interval
. In the *Refresh every* field, enter the refresh rate, then select the interval
from the dropdown.
. Click *Start*.
@ -189,5 +186,5 @@ image::images/autorefresh-intervals.png[]
To disable auto refresh, click *Stop*.
If auto refresh is not enabled, click *Refresh* to manually refresh the search
If auto refresh is not enabled, click *Refresh* to manually refresh the search
results.

View file

@ -47,12 +47,12 @@ A user-specified string that will be used to part of the index name in Elasticse
==== Package
A package contains all the assets for the Elastic Stack. A more detailed definition of a package can be found under https://github.com/elastic/package-registry .
A package contains all the assets for the Elastic Stack. A more detailed definition of a package can be found under https://github.com/elastic/package-registry.
== Indexing Strategy
Ingest Management enforces an indexing strategy to allow the system to automically detect indices and run queries on it. In short the indexing strategy looks as following:
Ingest Management enforces an indexing strategy to allow the system to automatically detect indices and run queries on it. In short the indexing strategy looks as following:
```
{type}-{dataset}-{namespace}
@ -85,7 +85,7 @@ The version is included in each pipeline to allow upgrades. The pipeline itself
=== Templates & ILM Policies
To make the above strategy possible, alias templates are required. For each type there is a basic alias template with a default ILM policy. These default templates apply to all indices which follow the indexing strategy and do not have a more specific dataset alias template.
To make the above strategy possible, alias templates are required. For each type there is a basic alias template with a default ILM policy. These default templates apply to all indices which follow the indexing strategy and do not have a more specific dataset alias template.
The `metrics` and `logs` alias template contain all the basic fields from ECS.
@ -109,7 +109,7 @@ Filtering for data in queries for example in visualizations or dashboards should
=== Security permissions
Security permissions can be set on different levels. To set special permissions for the access on the prod namespace an index pattern as below can be used:
Security permissions can be set on different levels. To set special permissions for the access on the prod namespace, use the following index pattern:
```
/(logs|metrics)-[^-]+-prod-$/
@ -142,5 +142,3 @@ The new ingest pipeline is expected to still work with the data coming from olde
In case of a breaking change in the data structure, the new ingest pipeline is also expected to deal with this change. In case there are breaking changes which cannot be dealt with in an ingest pipeline, a new package has to be created.
Each package lists its minimal required agent version. In case there are agents enrolled with an older version, the user is notified to upgrade these agents as otherwise the new configs cannot be rolled out.

View file

@ -19,7 +19,7 @@ The numeral pattern syntax expresses:
Number of decimal places:: The `.` character turns on the option to show decimal
places using a locale-specific decimal separator, most often `.` or `,`.
To add trailing zeroes such as `5.00`, use a pattern like `0.00`.
To have optional zeroes, use the `[]` characters. Examples below.
To have optional zeroes, use the `[]` characters.
Thousands separator:: The thousands separator `,` turns on the option to group
thousands using a locale-specific separator. The separator is most often `,` or `.`,
and sometimes ` `.

View file

@ -70,11 +70,7 @@ This allows for more granular queries, such as 2h and 12h.
[float]
==== Create the rollup job
As you walk through the *Create rollup job* UI, enter the data shown in
the table below. The terms, histogram, and metrics fields reflect
the key information to retain in the rolled up data: where visitors are from (geo.src),
what operating system they are using (machine.os.keyword),
and how much data is being sent (bytes).
As you walk through the *Create rollup job* UI, enter the data:
|===
|*Field* |*Value*
@ -118,6 +114,10 @@ and how much data is being sent (bytes).
|bytes (average)
|===
The terms, histogram, and metrics fields reflect
the key information to retain in the rolled up data: where visitors are from (geo.src),
what operating system they are using (machine.os.keyword),
and how much data is being sent (bytes).
You can now use the rolled up data for analysis at a fraction of the storage cost
of the original index. The original data can live side by side with the new

View file

@ -14,7 +14,7 @@ GeoJSON is the most commonly used and flexible option.
[float]
=== Upload a GeoJSON file
Follow the instructions below to upload a GeoJSON data file, or try the
Follow these instructions to upload a GeoJSON data file, or try the
<<indexing-geojson-data-tutorial, end-to-end integrated example>>.
. Open *Elastic Maps*, and then click *Add layer*.

View file

@ -46,7 +46,7 @@ image::maps/images/fu_gs_new_england_map.png[]
=== Upload and index GeoJSON files
For each GeoJSON file you downloaded, complete the following steps:
. Below the map legend, click *Add layer*.
. Click *Add layer*.
. From the list of layer types, click *Uploaded GeoJSON*.
. Using the File Picker, upload the GeoJSON file.
+
@ -86,7 +86,7 @@ hot spots are. An advantage of having indexed
{ref}/geo-point.html[geo_point] data for the
lightning strikes is that you can perform aggregations on the data.
. Below the map legend, click *Add layer*.
. Click *Add layer*.
. From the list of layer types, click *Grid aggregation*.
+
Because you indexed `lightning_detected.geojson` using the index name and

View file

@ -12,7 +12,7 @@ For each property, you can specify whether to use a constant or data driven valu
Use static styling to specificy a constant value for a style property.
The image below shows an example of static styling using the <<add-sample-data, Kibana sample web logs>> data set.
This image shows an example of static styling using the <<add-sample-data, Kibana sample web logs>> data set.
The *kibana_sample_data_logs* layer uses static styling for all properties.
[role="screenshot"]
@ -26,7 +26,7 @@ image::maps/images/vector_style_static.png[]
Use data driven styling to symbolize features by property values.
To enable data driven styling for a style property, change the selected value from *Fixed* or *Solid* to *By value*.
The image below shows an example of data driven styling using the <<add-sample-data, Kibana sample web logs>> data set.
This image shows an example of data driven styling using the <<add-sample-data, Kibana sample web logs>> data set.
The *kibana_sample_data_logs* layer uses data driven styling for fill color and symbol size style properties.
* The `hour_of_day` property determines the fill color for each feature based on where the value fits on a linear scale.
@ -87,7 +87,7 @@ Qualitative data driven styling is available for the following styling propertie
Qualitative data driven styling uses a {ref}/search-aggregations-bucket-terms-aggregation.html[terms aggregation] to retrieve the top nine categories for the property. Feature values within the top categories are assigned a unique color. Feature values outside of the top categories are grouped into the *Other* category. A feature is assigned the *Other* category when the property value is undefined.
The image below shows an example of quantitative data driven styling using the <<add-sample-data, Kibana sample web logs>> data set.
This image shows an example of quantitative data driven styling using the <<add-sample-data, Kibana sample web logs>> data set.
The `machine.os.keyword` property determines the color of each symbol based on category.
[role="screenshot"]
@ -101,7 +101,7 @@ image::maps/images/quantitative_data_driven_styling.png[]
Class styling symbolizes features by class and requires multiple layers.
Use <<maps-layer-based-filtering, layer filtering>> to define the class for each layer, and <<maps-vector-style-static, static styling>> to symbolize each class.
The image below shows an example of class styling using the <<add-sample-data, Kibana sample web logs>> data set.
This image shows an example of class styling using the <<add-sample-data, Kibana sample web logs>> data set.
* The *Mac OS requests* layer applies the filter `machine.os : osx` so the layer only contains Mac OS requests.
The fill color is a static value of green.

View file

@ -32,7 +32,7 @@ image::settings/images/apm-settings.png[APM app settings in Kibana]
// tag::general-apm-settings[]
If you'd like to change any of the default values,
copy and paste the relevant settings below into your `kibana.yml` configuration file.
copy and paste the relevant settings into your `kibana.yml` configuration file.
xpack.apm.enabled:: Set to `false` to disabled the APM plugin {kib}. Defaults to
`true`.

View file

@ -44,7 +44,7 @@ Java Cryptography Architecture documentation]. Defaults to the value of
The following settings are used to specify a private key, certificate, and the
trusted certificates that should be used when communicating over an SSL/TLS connection.
If none of the settings below are specified, the default values are used.
If none of the settings are specified, the default values are used.
See {ref}/security-settings.html[Default TLS/SSL settings].
ifdef::server[]
@ -54,8 +54,8 @@ ifndef::server[]
A private key and certificate are optional and would be used if the server requires client authentication for PKI
authentication.
endif::server[]
If none of the settings below are specified, the defaults values are used.
See {ref}/security-settings.html[Default TLS/SSL settings].
If none of the settings bare specified, the defaults values are used.
See {ref}/security-settings.html[Default TLS/SSL settings].
[float]
===== PEM encoded files

View file

@ -20,7 +20,7 @@ then jump straight to <<install-heartbeat>>.
=== Install the stack yourself
If you'd rather install the stack yourself,
first see the https://www.elastic.co/support/matrix[Elastic Support Matrix] for information about supported operating systems and product compatibility. Then, follow the steps below.
first see the https://www.elastic.co/support/matrix[Elastic Support Matrix] for information about supported operating systems and product compatibility.
* <<install-elasticsearch>>
* <<install-kibana>>

View file

@ -1,9 +1,8 @@
[[uptime-security]]
== Elasticsearch Security
If you use Elasticsearch security, you'll need to enable certain privileges for users
that would like to access the Uptime app. Below is an example of creating
a user and support role to implement those privileges.
If you use Elasticsearch security, you'll need to enable certain privileges for users
that would like to access the Uptime app. For example, create user and support roles to implement the privileges:
[float]
=== Create a role

View file

@ -2,7 +2,7 @@
[[graph-getting-started]]
== Using Graph
You must index data into {es} before you can 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>>.
[float]
@ -11,24 +11,24 @@ You must index data into {es} before you can create a graph.
. From the side navigation, open *Graph*.
+
If this is your first graph, follow the prompts to create it.
If this is your first graph, follow the prompts to create it.
For subsequent graphs, click *New*.
. Select a data source to explore.
. Add one or more multi-value fields that contain the terms you want to
graph.
graph.
+
The vertices in the graph are selected from these terms.
. Enter a search query to discover relationships between terms in the selected
fields.
fields.
+
For example, if you are using the {kib} sample web logs data set, and you want
For example, if you are using the {kib} sample web logs data set, and you want
to generate a graph of the successful requests to
particular pages from different locations, you could search for the 200
response code. The weight of the connection between two vertices indicates how strongly they
are related.
are related.
+
[role="screenshot"]
image::user/graph/images/graph-url-connections.png["URL connections"]
@ -45,11 +45,11 @@ additional connections:
image:user/graph/images/graph-expand-button.png[Expand Selection].
* To display additional
connections between the displayed vertices, click the link icon
image:user/graph/images/graph-link-button.png[Add links to existing terms].
image:user/graph/images/graph-link-button.png[Add links to existing terms].
* To explore a particular area of the
graph, select the vertices you are interested in, and then click expand or link.
* To step back through your changes to the graph, click undo
image:user/graph/images/graph-undo-button.png[Undo] and redo
image:user/graph/images/graph-undo-button.png[Undo] and redo
image:user/graph/images/graph-redo-button.png[Redo].
. To see more relationships in your data, submit additional queries.
@ -63,61 +63,61 @@ image::user/graph/images/graph-add-query.png["Adding networks"]
[[style-vertex-properties]]
=== Style vertex properties
Each vertex has a color, icon, and label. To change
the color or icon of all vertices
of a certain field, click the field badge below the search bar, and then
Each vertex has a color, icon, and label. To change
the color or icon of all vertices
of a certain field, click it's badge, and then
select *Edit settings*.
To change the color and label of selected vertices,
To change the color and label of selected vertices,
click the style icon image:user/graph/images/graph-style-button.png[Style]
in the control bar on the right.
in the control bar on the right.
[float]
[[edit-graph-settings]]
=== Edit graph settings
By default, *Graph* is configured to tune out noise in your data.
By default, *Graph* is configured to tune out noise in your data.
If this isn't a good fit for your data, use *Settings > Advanced settings*
to adjust the way *Graph* queries your data. You can tune the graph to show
only the results relevant to you and to improve performance.
For more information, see <<graph-troubleshooting, Graph troubleshooting>>.
to adjust the way *Graph* queries your data. You can tune the graph to show
only the results relevant to you and to improve performance.
For more information, see <<graph-troubleshooting, Graph troubleshooting>>.
You can configure the number of vertices that a search or
You can configure the number of vertices that a search or
expand operation adds to the graph.
By default, only the five most relevant terms for any given field are added
at a time. This keeps the graph from overflowing. To increase this number, click
a field below the search bar, select *Edit Settings*, and change *Terms per hop*.
By default, only the five most relevant terms for any given field are added
at a time. This keeps the graph from overflowing. To increase this number, click
a field, select *Edit Settings*, and change *Terms per hop*.
[float]
[[graph-block-terms]]
=== Block terms from the graph
Documents that match a blocked term are not allowed in the graph.
To block a term, select its vertex and click
Documents that match a blocked term are not allowed in the graph.
To block a term, select its vertex and click
the block icon
image:user/graph/images/graph-block-button.png[Block selection]
in the control panel.
in the control panel.
For a list of blocked terms, go to *Settings > Blocked terms*.
[float]
[[graph-drill-down]]
=== Drill down into raw documents
With drilldowns, you can display additional information about a
selected vertex in a new browser window. For example, you might
configure a drilldown URL to perform a web search for the selected vertex term.
With drilldowns, you can display additional information about a
selected vertex in a new browser window. For example, you might
configure a drilldown URL to perform a web search for the selected vertex term.
Use the drilldown icon image:user/graph/images/graph-info-icon.png[Drilldown selection]
Use the drilldown icon image:user/graph/images/graph-info-icon.png[Drilldown selection]
in the control panel to show the drilldown buttons for the selected vertices.
To configure drilldowns, go to *Settings > Drilldowns*. See also
To configure drilldowns, go to *Settings > Drilldowns*. See also
<<disable-drill-down, Disabling drilldown configuration>>.
[float]
[[graph-run-layout]]
=== Run and pause layout
Graph uses a "force layout", where vertices behave like magnets,
pushing off of one another. By default, when you add a new vertex to
the graph, all vertices begin moving. In some cases, the movement might
go on for some time. To freeze the current vertex position,
Graph uses a "force layout", where vertices behave like magnets,
pushing off of one another. By default, when you add a new vertex to
the graph, all vertices begin moving. In some cases, the movement might
go on for some time. To freeze the current vertex position,
click the pause icon
image:user/graph/images/graph-pause-button.png[Block selection]
in the control panel.
in the control panel.

View file

@ -13,7 +13,7 @@ image::user/monitoring/images/monitoring-beats.jpg["Monitoring Beats",link="imag
To view an overview of the Beats data in the cluster, click *Overview*. The
overview page has a section for activity in the last day, which is a real-time
sample of data. Below that, a summary bar and charts follow the typical paradigm
sample of data. The summary bar and charts follow the typical paradigm
of data in the Monitoring UI, which is bound to the span of the time filter in
the top right corner of the page. This overview page can therefore show
up-to-date or historical information.

View file

@ -10,10 +10,10 @@ Kibana spaces.
==== Scenario
Our user is a web developer working on a bank's
online mortgage service. The web developer has these
online mortgage service. The web developer has these
three requirements:
* Have access to the data for that service
* Have access to the data for that service
* Build visualizations and dashboards
* Monitor the performance of the system
@ -24,28 +24,28 @@ You'll provide the web developer with the access and privileges to get the job d
To complete this tutorial, you'll need the following:
* **Administrative privileges**: You must have a role that grants privileges to create a space, role, and user. This is any role which grants the `manage_security` cluster privilege. By default, the `superuser` role provides this access. See the {ref}/built-in-roles.html[built-in] roles.
* **A space**: In this tutorial, use `Dev Mortgage` as the space
* **Administrative privileges**: You must have a role that grants privileges to create a space, role, and user. This is any role which grants the `manage_security` cluster privilege. By default, the `superuser` role provides this access. See the {ref}/built-in-roles.html[built-in] roles.
* **A space**: In this tutorial, use `Dev Mortgage` as the space
name. See <<spaces-managing, spaces management>> for
details on creating a space.
* **Data**: You can use <<tutorial-sample-data, sample data>> or
live data. In the steps below, Filebeat and Metricbeat data are used.
* **Data**: You can use <<tutorial-sample-data, sample data>> or
live data. In the following steps, Filebeat and Metricbeat data are used.
[float]
==== Steps
With the requirements in mind, here are the steps that you will work
With the requirements in mind, here are the steps that you will work
through in this tutorial:
* Create a role named `mortgage-developer`
* Give the role permission to access the data in the relevant indices
* Give the role permission to create visualizations and dashboards
* Give the role permission to create visualizations and dashboards
* Create the web developer's user account with the proper roles
[float]
==== Create a role
Go to **Management > Roles**
Go to **Management > Roles**
for an overview of your roles. This view provides actions
for you to create, edit, and delete roles.
@ -53,21 +53,21 @@ for you to create, edit, and delete roles.
image::security/images/role-management.png["Role management"]
You can create as many roles as you like. Click *Create role* and
provide a name. Use `dev-mortgage` because this role is for a developer
You can create as many roles as you like. Click *Create role* and
provide a name. Use `dev-mortgage` because this role is for a developer
working on the bank's mortgage application.
[float]
==== Give the role permission to access the data
Access to data in indices is an index-level privilege, so in
*Index privileges*, add lines for the indices that contain the
data for this role. Two privileges are required: `read` and
`view_index_metadata`. All privileges are detailed in the
Access to data in indices is an index-level privilege, so in
*Index privileges*, add lines for the indices that contain the
data for this role. Two privileges are required: `read` and
`view_index_metadata`. All privileges are detailed in the
https://www.elastic.co/guide/en/elasticsearch/reference/current/security-privileges.html[security privileges] documentation.
In the screenshots, Filebeat and Metricbeat data is used, but you
In the screenshots, Filebeat and Metricbeat data is used, but you
should use the index patterns for your indices.
[role="screenshot"]
@ -76,12 +76,12 @@ image::security/images/role-index-privilege.png["Index privilege"]
[float]
==== Give the role permission to create visualizations and dashboards
By default, roles do not give Kibana privileges. Click **Add space
By default, roles do not give Kibana privileges. Click **Add space
privilege** and associate this role with the `Dev Mortgage` space.
To enable users with the `dev-mortgage` role to create visualizations
and dashboards, click *All* for *Visualize* and *Dashboard*. Also
assign *All* for *Discover* because it is common for developers
To enable users with the `dev-mortgage` role to create visualizations
and dashboards, click *All* for *Visualize* and *Dashboard*. Also
assign *All* for *Discover* because it is common for developers
to create saved searches while designing visualizations.
[role="screenshot"]
@ -90,15 +90,14 @@ image::security/images/role-space-visualization.png["Associate space"]
[float]
==== Create the developer's user account with the proper roles
Go to **Management > Users** and click on **Create user** to create a
user. Give the user the `dev-mortgage` role
Go to **Management > Users** and click on **Create user** to create a
user. Give the user the `dev-mortgage` role
and the `monitoring-user` role, which is required for users of **Stack Monitoring**.
[role="screenshot"]
image::security/images/role-new-user.png["Developer user"]
Finally, have the developer log in and access the Dev Mortgage space
Finally, have the developer log in and access the Dev Mortgage space
and create a new visualization.
NOTE: If the user is assigned to only one space, they will automatically enter that space on login.

View file

@ -324,7 +324,7 @@ replace `"url": "data/world-110m.json"` with
`"url": "https://vega.github.io/editor/data/world-110m.json"`. Also,
regular Vega examples use `"autosize": "pad"` layout model, whereas
Kibana uses `fit`. Remove all `autosize`, `width`, and `height`
values. See link:#sizing-and-positioning[sizing and positioning] below.
values. See link:#sizing-and-positioning[sizing and positioning].
[[vega-additional-configuration-options]]
==== Additional configuration options