parent
80b58a589d
commit
7f908a58f2
|
@ -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]
|
||||
|
|
|
@ -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]
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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
|
||||
------------
|
||||
|
||||
|
|
|
@ -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]
|
||||
|
|
|
@ -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"]
|
||||
----
|
||||
|
|
|
@ -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"]
|
||||
|
|
|
@ -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]
|
||||
|
|
|
@ -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.
|
||||
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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.
|
||||
|
||||
|
||||
|
|
|
@ -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 ` `.
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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*.
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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`.
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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>>
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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.
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in a new issue