71 lines
3.7 KiB
Text
71 lines
3.7 KiB
Text
[[troubleshooting]]
|
|
=== Troubleshooting common problems
|
|
|
|
If you have something to add to this section, please consider creating a pull request with
|
|
your proposed changes in the https://github.com/elastic/kibana[Kibana repository].
|
|
|
|
Also check out the https://discuss.elastic.co/c/apm[APM discussion forum].
|
|
|
|
==== No APM data found
|
|
|
|
This section can help with any of the following:
|
|
|
|
* Data isn't displaying in the APM app
|
|
* You're seeing a message like "No Services Found",
|
|
* You're seeing errors like "Fielddata is disabled on text fields by default..."
|
|
|
|
There are a number of factors that could be at play here.
|
|
One important thing to double-check first is your index template.
|
|
|
|
*Index template*
|
|
An APM index template must exist for the APM app to work correctly.
|
|
By default, this index template is created by APM Server on startup.
|
|
However, this only happens if `setup.template.enabled` is `true` in `apm-server.yml`.
|
|
You can create the index template manually by running `apm-server setup`.
|
|
Take note that index templates *cannot* be applied retroactively -- they are only applied at index creation time.
|
|
More information is available in {apm-server-ref}/apm-server-configuration.html[Set up and configure].
|
|
|
|
You can check for the existence of an APM index template using the
|
|
{ref}/indices-get-template.html[Get index template API].
|
|
If you're using the default index naming pattern, that request would be:
|
|
|
|
[source,js]
|
|
--------------------------------------------------
|
|
GET /_template/apm-{version}
|
|
--------------------------------------------------
|
|
// CONSOLE
|
|
|
|
*Using Logstash, Kafka, etc.*
|
|
If you're not outputting data directly from APM Server to Elasticsearch (perhaps you're using Logstash or Kafka),
|
|
then the index template will not be set up automatically. Instead, you'll need to
|
|
{apm-server-ref}/_manually_loading_template_configuration.html[load the template manually].
|
|
|
|
*Using a custom index names*
|
|
This problem can also occur if you've customized the index name that you write APM data to.
|
|
The default index name that APM writes events to can be found
|
|
{apm-server-ref}/elasticsearch-output.html#index-option-es[here].
|
|
If you change the default, you must also configure the `setup.template.name` and `setup.template.pattern` options.
|
|
See {apm-server-ref}/configuration-template.html[Load the Elasticsearch index template].
|
|
If the Elasticsearch index template has already been successfully loaded to the index,
|
|
you can customize the indices that the APM app uses to display data.
|
|
Navigate to *APM* > *Settings* > *Indices*, and change all `apm_oss.*Pattern` values to
|
|
include the new index pattern. For example: `customIndexName-*`.
|
|
|
|
==== Unknown route
|
|
|
|
The {apm-app-ref}/transactions.html[transaction overview] will only display helpful information
|
|
when the transactions in your services are named correctly.
|
|
If you're seeing "GET unknown route" or "unknown route" in the APM app,
|
|
it could be a sign that something isn't working like it should.
|
|
|
|
Elastic APM Agents come with built-in support for popular frameworks out-of-the-box.
|
|
This means, among other things, that the Agent will try to automatically name HTTP requests.
|
|
As an example, the Node.js Agent uses the route that handled the request, while the Java Agent uses the Servlet name.
|
|
|
|
"Unknown route" indicates that the Agent can't determine what to name the request,
|
|
perhaps because the technology you're using isn't supported, the Agent has been installed incorrectly,
|
|
or because something is happening to the request that the Agent doesn't understand.
|
|
|
|
To resolve this, you'll need to head over to the relevant {apm-agents-ref}[Agent documentation].
|
|
Specifically, view the Agent's supported technologies page.
|
|
You can also use the Agent's public API to manually set a name for the transaction.
|