40 | ++++
--------------------------------------------------------------------------------
/schema/apm-8.3/docs/legacy/tab-widgets/configure-agent.asciidoc:
--------------------------------------------------------------------------------
1 | // tag::central-config[]
2 | Central configuration allows you to fine-tune your agent configuration from within the {apm-app}.
3 | Changes are automatically propagated to your APM agents, and there’s no need to redeploy.
4 |
5 | A select number of configuration options are supported.
6 | See {apm-app-ref}/agent-configuration.html[Agent configuration in {kib}]
7 | for more information and a configuration reference.
8 | // end::central-config[]
9 |
10 | // tag::reg-config[]
11 | For a full list of agent configuration options, see the relevant agent reference:
12 |
13 | * {apm-go-ref-v}/configuration.html[Go Agent configuration]
14 | * {apm-ios-ref-v}/configuration.html[iOS Agent configuration]
15 | * {apm-java-ref-v}/configuration.html[Java Agent configuration]
16 | * {apm-dotnet-ref-v}/configuration.html[.NET Agent configuration]
17 | * {apm-node-ref}/configuring-the-agent.html[Node.js Agent configuration]
18 | * {apm-py-ref-v}/configuration.html[Python Agent configuration]
19 | * {apm-ruby-ref-v}/configuration.html[Ruby Agent configuration]
20 | * {apm-rum-ref-v}/configuration.html[RUM Agent configuration]
21 | // end::reg-config[]
22 |
--------------------------------------------------------------------------------
/schema/apm-8.3/docs/legacy/tab-widgets/configure-server-widget.asciidoc:
--------------------------------------------------------------------------------
1 | ++++
2 |
40 | ++++
--------------------------------------------------------------------------------
/schema/apm-8.3/docs/legacy/tab-widgets/configure-server.asciidoc:
--------------------------------------------------------------------------------
1 | // tag::ess[]
2 |
3 | If you're running APM Server in Elastic cloud, you can configure your own user settings right in the {es} Service Console.
4 | Any changes are automatically appended to the `apm-server.yml` configuration file for your instance.
5 |
6 | Full details are available in the {cloud}/ec-manage-apm-settings.html[APM user settings] documentation.
7 |
8 | // end::ess[]
9 |
10 | // tag::self-managed[]
11 |
12 | If you've installed APM Server yourself, you can edit the `apm-server.yml` configuration file to make changes.
13 | More information is available in {apm-guide-ref}/configuring-howto-apm-server.html[configuring APM Server].
14 |
15 | Don't forget to also read about
16 | {apm-guide-ref}/securing-apm-server.html[securing APM Server], and
17 | {apm-guide-ref}/monitoring.html[monitoring APM Server].
18 |
19 | // end::self-managed[]
20 |
--------------------------------------------------------------------------------
/schema/apm-8.3/docs/legacy/tab-widgets/jaeger-sampling-widget.asciidoc:
--------------------------------------------------------------------------------
1 | ++++
2 |
40 | ++++
--------------------------------------------------------------------------------
/schema/apm-8.3/docs/legacy/tab-widgets/jaeger-sampling.asciidoc:
--------------------------------------------------------------------------------
1 | // tag::ess[]
2 | Visit the {kibana-ref}/agent-configuration.html[Agent configuration] page in the {apm-app} to add a new sampling rate.
3 |
4 | // end::ess[]
5 |
6 | // tag::self-managed[]
7 | APM Agent central configuration requires the <> to be configured.
8 | To enable the {kib} endpoint, set <> to `true`,
9 | and point <> at the {kib} host that APM Server will communicate with.
10 |
11 | Once configured,
12 | visit the {kibana-ref}/agent-configuration.html[Agent configuration] page in the {apm-app} to add a new sampling rate.
13 |
14 | // end::self-managed[]
15 |
--------------------------------------------------------------------------------
/schema/apm-8.3/docs/legacy/tab-widgets/jaeger-widget.asciidoc:
--------------------------------------------------------------------------------
1 | ++++
2 |
40 | ++++
--------------------------------------------------------------------------------
/schema/apm-8.3/docs/legacy/tab-widgets/jaeger.asciidoc:
--------------------------------------------------------------------------------
1 | // tag::ess[]
2 | . Log into {ess-console}[{ecloud}] and select your deployment.
3 | Copy your APM endpoint and APM Server secret token; you'll need these in the next step.
4 |
5 | . Configure APM Server as a collector for your Jaeger agents.
6 | +
7 | As of this writing, the Jaeger agent binary offers the following CLI flags,
8 | which can be used to enable TLS, output to {ecloud}, and set the APM Server secret token:
9 | +
10 | [source,terminal]
11 | ----
12 | --reporter.grpc.tls.enabled=true
13 | --reporter.grpc.host-port=
14 | --agent.tags="elastic-apm-auth=Bearer "
15 | ----
16 |
17 | TIP: For the equivalent environment variables,
18 | change all letters to upper-case and replace punctuation with underscores (`_`).
19 | See the https://www.jaegertracing.io/docs/1.22/cli/[Jaeger CLI flags documentation] for more information.
20 |
21 | // end::ess[]
22 |
23 | // tag::self-managed[]
24 | . Configure APM Server as a collector for your Jaeger agents.
25 | +
26 | As of this writing, the Jaeger agent binary offers the `--reporter.grpc.host-port` CLI flag.
27 | Use this to define the <> that APM Server is listening on:
28 | +
29 | [source,terminal]
30 | ----
31 | --reporter.grpc.host-port=
32 | ----
33 |
34 | . (Optional) Enable encryption
35 | +
36 | When <> is enabled in APM Server, Jaeger agents must also enable TLS communication:
37 | +
38 | [source,terminal]
39 | ----
40 | --reporter.grpc.tls.enabled=true
41 | ----
42 |
43 | . (Optional) Enable token-based authorization
44 | +
45 | A <> or <> can be used to ensure only authorized
46 | Jaeger agents can send data to the APM Server.
47 | When enabled, use an agent level tag to authorize Jaeger agent communication with the APM Server:
48 | +
49 | [source,terminal]
50 | ----
51 | --agent.tags="elastic-apm-auth=Bearer "
52 | ----
53 |
54 | TIP: For the equivalent environment variables,
55 | change all letters to upper-case and replace punctuation with underscores (`_`).
56 | See the https://www.jaegertracing.io/docs/1.22/cli/[Jaeger CLI flags documentation] for more information.
57 |
58 | // end::self-managed[]
59 |
--------------------------------------------------------------------------------
/schema/apm-8.3/docs/legacy/tab-widgets/kibana-endpoint-widget.asciidoc:
--------------------------------------------------------------------------------
1 | ++++
2 |
40 | ++++
--------------------------------------------------------------------------------
/schema/apm-8.3/docs/legacy/tab-widgets/spin-up-stack.asciidoc:
--------------------------------------------------------------------------------
1 | // tag::ess[]
2 | There's no faster way to get started with Elastic APM than with our hosted {ess} on {ecloud}.
3 | {ess} is available on AWS, GCP, and Azure,
4 | and automatically configures APM Server to work with {es} and {kib}:
5 |
6 | . {ess-trial}[Get a free trial].
7 |
8 | . Log into {ess-console}[{ecloud}].
9 |
10 | . Click *Create deployment*.
11 |
12 | . Select *Elastic {observability}* and give your deployment a name.
13 |
14 | . Click *Create deployment* and copy the password for the `elastic` user.
15 |
16 | . Select *APM* from the menu on the left and make note of the APM endpoint and APM Server secret token.
17 | You'll need these in step two.
18 |
19 | // end::ess[]
20 |
21 | // tag::self-managed[]
22 | To install and run {es} and {kib}, see {stack-ref}/installing-elastic-stack.html[Installing the {stack}].
23 |
24 | Next, install, set up, and run APM Server:
25 |
26 | . {apm-server-ref-v}/installing.html[Install APM Server].
27 | . {apm-server-ref-v}/apm-server-configuration.html[Set up APM Server]
28 | . {apm-server-ref-v}/setting-up-and-running.html[Start APM Server].
29 |
30 | Use the config file if you need to change the default configuration that APM Server uses to connect to {es},
31 | or if you need to specify credentials:
32 |
33 | * {apm-server-ref-v}/configuring-howto-apm-server.html[Configuring APM Server]
34 | ** {apm-server-ref-v}/configuration-process.html[General configuration options]
35 | ** {apm-server-ref-v}/configuring-output.html[Configure the {es} output]
36 |
37 | [[secure-api-access]]
38 | If you change the listen address from `localhost` to something that is accessible from outside of the machine,
39 | we recommend setting up firewall rules to ensure that only your own systems can access the API.
40 | Alternatively,
41 | you can use a {apm-server-ref-v}/securing-apm-server.html[TLS and a secret token or API key].
42 |
43 | If you have APM Server running on the same host as your service,
44 | you can configure it to listen on a Unix domain socket.
45 |
46 | [[more-information]]
47 | TIP: For detailed instructions on how to install and secure APM Server in your server environment,
48 | including details on how to run APM Server in a highly available environment,
49 | please see the full {apm-server-ref-v}/index.html[APM Server documentation].
50 |
51 | // end::self-managed[]
52 |
--------------------------------------------------------------------------------
/schema/apm-8.3/docs/legacy/transaction-api.asciidoc:
--------------------------------------------------------------------------------
1 | [[transaction-api]]
2 | === Transactions
3 |
4 | Transactions are events corresponding to an incoming request or similar task occurring in a monitored service.
5 |
6 | [[transaction-schema]]
7 | [float]
8 | ==== Transaction Schema
9 |
10 | APM Server uses JSON Schema to validate requests. The specification for transactions is defined on
11 | {github_repo_link}/docs/spec/v2/transaction.json[GitHub] and included below:
12 |
13 | [source,json]
14 | ----
15 | include::../spec/v2/transaction.json[]
16 | ----
17 |
--------------------------------------------------------------------------------
/schema/apm-8.3/docs/legacy/transaction-indices.asciidoc:
--------------------------------------------------------------------------------
1 | [[transaction-indices]]
2 | == Example transaction documents
3 |
4 | ++++
5 | Transaction documents
6 | ++++
7 |
8 | This example shows what transaction documents can look like when indexed in {es}:
9 |
10 | [source,json]
11 | ----
12 | include::../data/elasticsearch/generated/transactions.json[]
13 | ----
14 |
--------------------------------------------------------------------------------
/schema/apm-8.3/docs/legacy/transaction-metrics.asciidoc:
--------------------------------------------------------------------------------
1 | [x-pack]
2 | [[transaction-metrics]]
3 | == Configure transaction metrics
4 |
5 | ++++
6 | Transaction metrics
7 | ++++
8 |
9 | IMPORTANT: {deprecation-notice-config}
10 |
11 | {beatname_uc} produces transaction histogram metrics that are used to power the {apm-app}.
12 | Shifting this responsibility from {apm-app} to APM Server removes the need to store unsampled transactions, reducing storage costs.
13 |
14 | Example config file:
15 |
16 | ["source","yaml"]
17 | ----
18 | apm-server:
19 | aggregation:
20 | transactions:
21 | interval: 1m
22 | ----
23 |
24 | [float]
25 | [[configuration-aggregation]]
26 | === Configuration options: `apm-server.aggregation.transactions.*`
27 |
28 | [[transactions-interval]]
29 | [float]
30 | ==== `interval`
31 |
32 | Controls the frequency of metrics publication.
33 |
34 | Default: `1m`.
35 |
36 | [[transactions-max_groups]]
37 | [float]
38 | ==== `max_groups`
39 |
40 | Maximum number of transaction groups to keep track of.
41 | Once exceeded, APM Server devolves into recording a metrics document for each transaction that is not in one
42 | of the transaction groups being tracked.
43 |
44 | Default: `10000`.
45 |
46 | [[transactions-hdrhistogram_significant_figures]]
47 | [float]
48 | ==== `hdrhistogram_significant_figures`
49 |
50 | The fixed, worst-case percentage error (specified as a number of significant digits)
51 | to maintain for recorded metrics.
52 | Supported values are `1` through `5`.
53 | See {ref}/search-aggregations-metrics-percentile-aggregation.html#_hdr_histogram_2[HDR histogram] for more information.
54 |
55 | Default: `2`.
56 |
--------------------------------------------------------------------------------
/schema/apm-8.3/docs/legacy/troubleshooting.asciidoc:
--------------------------------------------------------------------------------
1 | [[troubleshooting]]
2 | = Troubleshoot
3 |
4 | IMPORTANT: {deprecation-notice-data}
5 |
6 | If you have issues installing or running APM Server,
7 | read the following tips:
8 |
9 | * <>
10 | * <>
11 | * <>
12 |
13 | Other sections in the documentation may also be helpful:
14 |
15 | * <>
16 | * <>
17 | * <>
18 | * <>
19 | * {apm-overview-ref-v}/agent-server-compatibility.html[Agent/Server compatibility matrix]
20 |
21 | If your issue is potentially related to other components of the APM ecosystem,
22 | don't forget to check the relevant troubleshooting guides:
23 |
24 | * {kibana-ref}/troubleshooting.html[{apm-app} troubleshooting]
25 | * {apm-dotnet-ref-v}/troubleshooting.html[.NET agent troubleshooting]
26 | * {apm-go-ref-v}/troubleshooting.html[Go agent troubleshooting]
27 | * {apm-ios-ref-v}/troubleshooting.html[iOS agent troubleshooting]
28 | * {apm-java-ref-v}/trouble-shooting.html[Java agent troubleshooting]
29 | * {apm-node-ref-v}/troubleshooting.html[Node.js agent troubleshooting]
30 | * {apm-php-ref-v}/troubleshooting.html[PHP agent troubleshooting]
31 | * {apm-py-ref-v}/troubleshooting.html[Python agent troubleshooting]
32 | * {apm-ruby-ref-v}/debugging.html[Ruby agent troubleshooting]
33 | * {apm-rum-ref-v}/troubleshooting.html[RUM troubleshooting]
34 |
35 | include::common-problems.asciidoc[]
36 |
37 | [[enable-apm-server-debugging]]
38 | == Debug
39 |
40 | include::{libbeat-dir}/debugging.asciidoc[]
41 |
42 | [[getting-help]]
43 | == Get help
44 |
45 | include::{libbeat-dir}/getting-help.asciidoc[]
--------------------------------------------------------------------------------
/schema/apm-8.3/docs/notices.asciidoc:
--------------------------------------------------------------------------------
1 | // For installation, get started, and setup docs
2 | :deprecation-notice-installation: This method of installing APM Server will be deprecated and removed in a future release. Please consider getting started with the <> instead.
3 |
4 | // Generic "running" message
5 | // Usually followed by a link to the corresponding APM integration docs
6 | :deprecation-notice-data: This documentation refers to the standalone (legacy) method of running APM Server. This method of running APM Server will be deprecated and removed in a future release. Please consider <>.
7 |
8 | // For monitoring docs
9 | :deprecation-notice-monitor: This documentation refers to monitoring the standalone (legacy) APM Server. This method of running APM Server will be deprecated and removed in a future release. Please consider <>.
10 |
11 | // For configuration docs
12 | :deprecation-notice-config: This documentation refers to configuring the standalone (legacy) APM Server. This method of running APM Server will be deprecated and removed in a future release. Please consider <>.
13 |
14 | // For API docs
15 | :deprecation-notice-api: This documentation refers to the API of the standalone (legacy) APM Server. This method of running APM Server will be deprecated and removed in a future release. Please consider <>.
16 |
--------------------------------------------------------------------------------
/schema/apm-8.3/docs/overview.asciidoc:
--------------------------------------------------------------------------------
1 | [[apm-overview]]
2 | == Free and open application performance monitoring
3 |
4 | ++++
5 | What is APM?
6 | ++++
7 |
8 | Elastic APM is an application performance monitoring system built on the {stack}.
9 | It allows you to monitor software services and applications in real-time, by
10 | collecting detailed performance information on response time for incoming requests,
11 | database queries, calls to caches, external HTTP requests, and more.
12 | This makes it easy to pinpoint and fix performance problems quickly.
13 |
14 | Elastic APM also automatically collects unhandled errors and exceptions.
15 | Errors are grouped based primarily on the stack trace,
16 | so you can identify new errors as they appear and keep an eye on how many times specific errors happen.
17 |
18 | Metrics are another vital source of information when debugging production systems.
19 | Elastic APM agents automatically pick up basic host-level metrics and agent-specific metrics,
20 | like JVM metrics in the Java Agent, and Go runtime metrics in the Go Agent.
21 |
22 | [float]
23 | === Give Elastic APM a try
24 |
25 | Learn more about the <> that make up Elastic APM,
26 | or jump right into the <>.
27 |
28 | NOTE: These docs will indiscriminately use the word "service" for both services and applications.
29 |
--------------------------------------------------------------------------------
/schema/apm-8.3/docs/processing-performance.asciidoc:
--------------------------------------------------------------------------------
1 | [[processing-and-performance]]
2 | === Processing and performance
3 |
4 | APM Server performance depends on a number of factors: memory and CPU available,
5 | network latency, transaction sizes, workload patterns,
6 | agent and server settings, versions, and protocol.
7 |
8 | Let's look at a simple example that makes the following assumptions:
9 |
10 | * The load is generated in the same region as where APM Server and {es} are deployed.
11 | * We're using the default settings in cloud.
12 | * A small number of agents are reporting.
13 |
14 | This leaves us with relevant variables like payload and instance sizes.
15 | See the table below for approximations.
16 | As a reminder, events are
17 | <> and
18 | <>.
19 |
20 | [options="header"]
21 | |=======================================================================
22 | |Transaction/Instance |512 MB Instance |2 GB Instance |8 GB Instance
23 | |Small transactions
24 |
25 | _5 spans with 5 stack frames each_ |600 events/second |1200 events/second |4800 events/second
26 | |Medium transactions
27 |
28 | _15 spans with 15 stack frames each_ |300 events/second |600 events/second |2400 events/second
29 | |Large transactions
30 |
31 | _30 spans with 30 stack frames each_ |150 events/second |300 events/second |1400 events/second
32 | |=======================================================================
33 |
34 | In other words, a 512 MB instance can process \~3 MB per second,
35 | while an 8 GB instance can process ~20 MB per second.
36 |
37 | APM Server is CPU bound, so it scales better from 2 GB to 8 GB than it does from 512 MB to 2 GB.
38 | This is because larger instance types in {ecloud} come with much more computing power.
39 |
40 | Don't forget that the APM Server is stateless.
41 | Several instances running do not need to know about each other.
42 | This means that with a properly sized {es} instance, APM Server scales out linearly.
43 |
44 | NOTE: RUM deserves special consideration. The RUM agent runs in browsers, and there can be many thousands reporting to an APM Server with very variable network latency.
--------------------------------------------------------------------------------
/schema/apm-8.3/docs/release-notes.asciidoc:
--------------------------------------------------------------------------------
1 | :root-dir: ../
2 |
3 | [[release-notes]]
4 | = Release notes
5 | :issue: https://github.com/elastic/apm-server/issues/
6 | :pull: https://github.com/elastic/apm-server/pull/
7 |
8 | This section summarizes the changes in each release.
9 |
10 | * <>
11 | * <>
12 | * <>
13 | * <>
14 |
15 | Looking for a previous version? See the {apm-guide-7x}/release-notes.html[7.x release notes].
16 |
17 | include::{root-dir}/CHANGELOG.asciidoc[]
18 |
--------------------------------------------------------------------------------
/schema/apm-8.3/docs/shared/jaeger/jaeger-widget.asciidoc:
--------------------------------------------------------------------------------
1 | ++++
2 |