* Update filter and query content * Edits following review * Minor edit
|
@ -2,42 +2,63 @@
|
|||
[[advanced-queries]]
|
||||
=== Query your data
|
||||
|
||||
Querying your APM data is a powerful tool that can make finding bottlenecks in your code even easier.
|
||||
Imagine you have a user that complains about a slow response time in a specific service.
|
||||
With the query bar, you can easily filter the APM app to only display trace data for that user,
|
||||
or, to only show transactions that are slower than a specified time threshold.
|
||||
Querying your APM data is an essential tool that can make finding bottlenecks in your code even more straightforward.
|
||||
|
||||
Using the query bar, a powerful data query feature, you can pass advanced queries on your data
|
||||
to filter on specific pieces of information you’re interested in.
|
||||
|
||||
The query bar comes with a handy autocomplete that helps find the fields and even provides suggestions to the data they include.
|
||||
You can select the query bar and hit the down arrow on your keyboard to begin scanning recommendations.
|
||||
|
||||
[float]
|
||||
==== Example APM app queries
|
||||
[[apm-app-advanced-queries]]
|
||||
=== Querying in the APM app
|
||||
|
||||
* Exclude response times slower than 2000 ms: `transaction.duration.us > 2000000`
|
||||
* Filter by response status code: `context.response.status_code ≥ 400`
|
||||
* Filter by single user ID: `context.user.id : 12`
|
||||
|
||||
When querying in the APM app, you're merely searching and selecting data from fields in Elasticsearch documents.
|
||||
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.
|
||||
When querying in the APM app, you’re merely searching and selecting data from fields in {es} documents. 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.
|
||||
|
||||
When you type, 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]
|
||||
|
||||
TIP: Read the {kibana-ref}/kuery-query.html[Kibana Query Language Enhancements] documentation to learn more about the capabilities of the {kib} query language.
|
||||
[TIP]
|
||||
=====
|
||||
To learn more about the {kib} query language capabilities, see the {kibana-ref}/kuery-query.html[Kibana Query Language Enhancements] documentation.
|
||||
=====
|
||||
|
||||
[float]
|
||||
[[apm-app-queries]]
|
||||
==== APM app queries
|
||||
|
||||
APM queries can be handy for removing noise from your data in the <<services,Services>>, <<transactions,Transactions>>,
|
||||
<<errors,Errors>>, <<metrics,Metrics>>, and <<traces,Traces>> views.
|
||||
|
||||
For example, in the *Services* view, you can quickly view a list of all the instrumented services running on your production
|
||||
environment: `service.environment : production`. Or filter the list by including the APM agent's name and the host it’s running on:
|
||||
`service.environment : "production" and agent.name : "java" and host.name : "prod-server1"`.
|
||||
|
||||
On the *Traces* view, you might want to view failed transaction results from any of your running containers:
|
||||
`transaction.result :"FAILURE" and container.id : *`.
|
||||
|
||||
On the *Transactions* view, you may want to list only the slower transactions than a specified time threshold: `transaction.duration.us > 2000000`.
|
||||
Or filter the list by including the service version and the Kubernetes pod it's running on:
|
||||
`transaction.duration.us > 2000000 and service.version : "7.12.0" and kubernetes.pod.name : "pod-5468b47f57-pqk2m"`.
|
||||
|
||||
[float]
|
||||
[[discover-advanced-queries]]
|
||||
=== Querying in Discover
|
||||
|
||||
Alternatively, you can query your APM documents in {kibana-ref}/discover.html[*Discover*].
|
||||
Querying documents in *Discover* works the same way as querying in the APM app,
|
||||
Querying documents in *Discover* works the same way as queries in the APM app,
|
||||
and *Discover* supports all of the example APM app queries shown on this page.
|
||||
|
||||
[float]
|
||||
==== Example Discover query
|
||||
[[discover-queries]]
|
||||
==== Discover queries
|
||||
|
||||
One example where you may want to make use of *Discover*,
|
||||
is for viewing _all_ transactions for an endpoint, instead of just a sample.
|
||||
is to view _all_ transactions for an endpoint instead of just a sample.
|
||||
|
||||
TIP: Starting in v7.6, you can view ten samples per bucket in the APM app, instead of just one.
|
||||
|
||||
|
|
|
@ -6,49 +6,34 @@
|
|||
<titleabbrev>Filter data</titleabbrev>
|
||||
++++
|
||||
|
||||
APM provides two different ways you can filter your data within the APM App:
|
||||
|
||||
* <<global-filters>>
|
||||
* <<contextual-filters>>
|
||||
|
||||
[[global-filters]]
|
||||
==== Global filters
|
||||
|
||||
Global filters are ways you can filter any and all data across the APM app.
|
||||
They are available in the Services, Transactions, Errors, Metrics, and Traces views,
|
||||
and any filter applied will persist as you move between pages.
|
||||
Global filters are ways you can filter data across the APM app based on a specific
|
||||
time range or environment. They are available in the Services, Transactions, Errors,
|
||||
Metrics, and Traces views, and any filter applied will persist as you move between pages.
|
||||
|
||||
[role="screenshot"]
|
||||
image::apm/images/global-filters.png[Global filters available in the APM app in Kibana]
|
||||
|
||||
[float]
|
||||
===== Global time range
|
||||
[NOTE]
|
||||
=====
|
||||
If you prefer to use advanced queries on your data to filter on specific pieces
|
||||
of information, see <<advanced-queries,Query your data>>.
|
||||
=====
|
||||
|
||||
[[global-time-range]]
|
||||
==== Global time range
|
||||
|
||||
The <<set-time-filter,global time range filter>> in {kib} restricts APM data to a specific time period.
|
||||
|
||||
[float]
|
||||
[[query-bar]]
|
||||
===== Query bar
|
||||
|
||||
The query bar is a powerful data query feature.
|
||||
Similar to the query bar in {kibana-ref}/discover.html[Discover],
|
||||
it enables you to pass advanced queries on your data to filter on particular pieces of information that you're interested in.
|
||||
It comes with a handy autocomplete that helps find the fields and even provides suggestions to the data they include.
|
||||
You can select the query bar and hit the down arrow on your keyboard to begin seeing recommendations.
|
||||
|
||||
See <<query-bar,advanced queries>> for more information and sample queries.
|
||||
|
||||
[float]
|
||||
[[environment-selector]]
|
||||
===== Service environment filter
|
||||
==== Service environment filter
|
||||
|
||||
The environment selector is a global filter for `service.environment`.
|
||||
It allows you to view only relevant data, and is especially useful for separating development from production environments.
|
||||
It allows you to view only relevant data and is especially useful for separating development from production environments.
|
||||
By default, all environments are displayed. If there are no environment options, you'll see "not defined".
|
||||
|
||||
Service environments are defined when configuring your APM agents.
|
||||
It's vital to be consistent when naming environments in your agents.
|
||||
See the documentation for each agent you're using to learn how to configure service environments:
|
||||
To learn how to configure service environments, see the specific agent documentation:
|
||||
|
||||
* *Go:* {apm-go-ref}/configuration.html#config-environment[`ELASTIC_APM_ENVIRONMENT`]
|
||||
* *Java:* {apm-java-ref}/config-core.html#config-environment[`environment`]
|
||||
|
@ -58,19 +43,3 @@ See the documentation for each agent you're using to learn how to configure serv
|
|||
* *Python:* {apm-py-ref}/configuration.html#config-environment[`environment`]
|
||||
* *Ruby:* {apm-ruby-ref}/configuration.html#config-environment[`environment`]
|
||||
* *Real User Monitoring:* {apm-rum-ref}/configuration.html#environment[`environment`]
|
||||
|
||||
[[contextual-filters]]
|
||||
==== Contextual filters
|
||||
|
||||
Contextual filters are ways you can filter your specific APM data on each individual page.
|
||||
The filters shown are relevant to your data, and will persist between pages,
|
||||
but only where they are applicable -- they are typically most useful in their original context.
|
||||
As an example, if you select a host on the Services overview, then select a transaction group,
|
||||
the host filter will still be applied.
|
||||
|
||||
These filters are very useful for quickly and easily removing noise from your data.
|
||||
With just a click, you can filter your transactions by the transaction result,
|
||||
host, container ID, Kubernetes pod, and more.
|
||||
|
||||
[role="screenshot"]
|
||||
image::apm/images/local-filter.png[Local filters available in the APM app in Kibana]
|
Before Width: | Height: | Size: 300 KiB After Width: | Height: | Size: 296 KiB |
Before Width: | Height: | Size: 256 KiB After Width: | Height: | Size: 279 KiB |
Before Width: | Height: | Size: 534 KiB After Width: | Height: | Size: 362 KiB |
Before Width: | Height: | Size: 274 KiB After Width: | Height: | Size: 401 KiB |
Before Width: | Height: | Size: 272 KiB After Width: | Height: | Size: 187 KiB |
Before Width: | Height: | Size: 657 KiB After Width: | Height: | Size: 564 KiB |
Before Width: | Height: | Size: 96 KiB After Width: | Height: | Size: 77 KiB |
Before Width: | Height: | Size: 158 KiB After Width: | Height: | Size: 134 KiB |