-
Notifications
You must be signed in to change notification settings - Fork 70
/
Copy pathoverview.html
303 lines (282 loc) · 19.1 KB
/
overview.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
<!DOCTYPE html>
<html lang="en-us">
<head>
<meta charset="UTF-8">
<title>Overview | APM Overview [6.6] | Elastic</title>
<meta class="elastic" name="content" content="Overview | APM Overview [6.6]">
<link rel="home" href="index.html" title="APM Overview [6.6]"/>
<link rel="up" href="index.html" title="APM Overview [6.6]"/>
<link rel="prev" href="doc-directory.html" title="Documentation directory"/>
<link rel="next" href="install-and-run.html" title="Install and run"/>
<meta class="elastic" name="product_version" content="6.6"/>
<meta class="elastic" name="product_name" content="APM"/>
<meta class="elastic" name="website_area" content="documentation"/>
<meta name="DC.type" content="Learn/Docs/APM Server/Reference/6.6"/>
<meta name="DC.subject" content="APM"/>
<meta name="DC.identifier" content="6.6"/>
<meta name="robots" content="noindex,nofollow"/>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<script src="https://cdn.optimizely.com/js/18132920325.js"></script>
<link rel="apple-touch-icon" sizes="57x57" href="/apple-icon-57x57.png">
<link rel="apple-touch-icon" sizes="60x60" href="/apple-icon-60x60.png">
<link rel="apple-touch-icon" sizes="72x72" href="/apple-icon-72x72.png">
<link rel="apple-touch-icon" sizes="76x76" href="/apple-icon-76x76.png">
<link rel="apple-touch-icon" sizes="114x114" href="/apple-icon-114x114.png">
<link rel="apple-touch-icon" sizes="120x120" href="/apple-icon-120x120.png">
<link rel="apple-touch-icon" sizes="144x144" href="/apple-icon-144x144.png">
<link rel="apple-touch-icon" sizes="152x152" href="/apple-icon-152x152.png">
<link rel="apple-touch-icon" sizes="180x180" href="/apple-icon-180x180.png">
<link rel="icon" type="image/png" href="/favicon-32x32.png" sizes="32x32">
<link rel="icon" type="image/png" href="/android-chrome-192x192.png" sizes="192x192">
<link rel="icon" type="image/png" href="/favicon-96x96.png" sizes="96x96">
<link rel="icon" type="image/png" href="/favicon-16x16.png" sizes="16x16">
<link rel="manifest" href="/manifest.json">
<meta name="apple-mobile-web-app-title" content="Elastic">
<meta name="application-name" content="Elastic">
<meta name="msapplication-TileColor" content="#ffffff">
<meta name="msapplication-TileImage" content="/mstile-144x144.png">
<meta name="theme-color" content="#ffffff">
<meta name="naver-site-verification" content="936882c1853b701b3cef3721758d80535413dbfd" />
<meta name="yandex-verification" content="d8a47e95d0972434" />
<meta name="localized" content="true" />
<meta name="st:robots" content="follow,index" />
<meta property="og:image" content="https://static-www.elastic.co/v3/assets/bltefdd0b53724fa2ce/blt280217a63b82a734/6202d3378b1f312528798412/elastic-logo.svg" />
<meta property="og:image:width" content="500" />
<meta property="og:image:height" content="172" />
<link rel="shortcut icon" href="/favicon.ico" type="image/x-icon">
<link rel="icon" href="/favicon.ico" type="image/x-icon">
<link rel="apple-touch-icon-precomposed" sizes="64x64" href="/favicon_64x64_16bit.png">
<link rel="apple-touch-icon-precomposed" sizes="32x32" href="/favicon_32x32.png">
<link rel="apple-touch-icon-precomposed" sizes="16x16" href="/favicon_16x16.png">
<!-- Give IE8 a fighting chance -->
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
<![endif]-->
<link rel="stylesheet" type="text/css" href="/guide/static/styles-v1.css" />
</head>
<!--© 2015-2025 Elasticsearch B.V. -->
<!-- All Elastic documentation is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. -->
<!-- http://creativecommons.org/licenses/by-nc-nd/4.0/ -->
<body>
<!-- Google Tag Manager -->
<script>dataLayer = [];</script><noscript><iframe src="//www.googletagmanager.com/ns.html?id=GTM-58RLH5" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= '//www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-58RLH5');</script>
<!-- End Google Tag Manager -->
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-12395217-16"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'UA-12395217-16');
</script>
<!-- Google Tag Manager for GA4 -->
<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src='https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);})(window,document,'script','dataLayer','GTM-KNJMG2M');</script>
<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-KNJMG2M" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
<!-- End Google Tag Manager for GA4-->
<div id='elastic-nav' style="display:none;"></div>
<script src='https://www.elastic.co/elastic-nav.js'></script>
<div class="main-container">
<section id="content" >
<div class="content-wrapper">
<section id="guide" lang="en">
<div class="container-fluid">
<div class="row pb-3">
<div class="col-12 order-2 col-md-4 order-md-1 col-lg-3 h-almost-full-md sticky-top-md" id="left_col">
<!-- The TOC is appended here -->
</div>
<div class="col-12 order-1 col-md-8 order-md-2 col-lg-7 order-lg-2 guide-section" id="middle_col">
<!-- start body -->
<div class="page_header">
A newer version is available. For the latest information, see the
<a href="../current/index.html">current release documentation</a>.
</div>
<div class="navheader">
<span class="prev">
<a href="doc-directory.html">« Documentation directory</a>
</span>
<span class="next">
<a href="install-and-run.html">Install and run »</a>
</span>
</div>
<div class="book" lang="en">
<div class="titlepage">
<div class="breadcrumbs">
<span class="breadcrumb-link"><a href="/guide/">Elastic Docs</a></span>
<span class="chevron-right">›</span><span class="breadcrumb-link">
<div id="related-products" class="dropdown">
<div class="related-products-title">APM:</div>
<div class="dropdown-anchor" tabindex="0">Overview<span class="dropdown-icon"></span></div>
<div class="dropdown-content">
<ul>
<li class="dropdown-category">APM</li>
<ul>
<li><a href="/guide/en/observability/current/apm.html">Observability › APM</a></li>
</ul>
<li class="dropdown-category">APM agents</li>
<ul>
<li><a href="/guide/en/apm/agent/android/current/intro.html">Android Agent Reference</a></li>
<li><a href="/guide/en/apm/agent/go/current/introduction.html">Go Agent Reference</a></li>
<li><a href="/guide/en/apm/agent/swift/current/intro.html">iOS Agent Reference</a></li>
<li><a href="/guide/en/apm/agent/java/current/intro.html">Java Agent Reference</a></li>
<li><a href="/guide/en/apm/agent/dotnet/current/intro.html">.NET Agent Reference</a></li>
<li><a href="/guide/en/apm/agent/nodejs/current/intro.html">Node.js Agent Reference</a></li>
<li><a href="/guide/en/apm/agent/php/current/intro.html">PHP Agent Reference</a></li>
<li><a href="/guide/en/apm/agent/python/current/getting-started.html">Python Agent Reference</a></li>
<li><a href="/guide/en/apm/agent/ruby/current/introduction.html">Ruby Agent Reference</a></li>
<li><a href="/guide/en/apm/agent/rum-js/current/intro.html">Real User Monitoring JavaScript Agent Reference</a></li>
</ul>
<li class="dropdown-category">APM extensions</li>
<ul>
<li><a href="/guide/en/apm/lambda/current/aws-lambda-arch.html">AWS Lambda extension</a></li>
<li><a href="/guide/en/apm/attacher/current/apm-attacher.html">Attacher</a></li>
</ul>
</ul>
</div>
</div>
</div>
<div>
<div><h1 class="title"><a id="id-1"></a>Overview</h1><a class="edit_me" rel="nofollow" title="Edit this page on GitHub" href="https://github.com/elastic/apm-server/edit/6.6/docs/guide/overview.asciidoc">edit</a></div>
</div>
<!--EXTRA-->
</div>
<div id="content">
<div id="url-to-v3" class="version-warning">
<strong>IMPORTANT</strong>: This documentation is no longer updated. Refer to <a href="https://www.elastic.co/support/eol">Elastic's version policy</a> and the <a href="https://www.elastic.co/docs">latest documentation</a>.
</div>
<div class="chapter">
<div class="titlepage"><div><div>
<div class="position-relative"><h2 class="title"><a id="overview"></a>Overview</h2><a class="edit_me" rel="nofollow" title="Edit this page on GitHub" href="https://github.com/elastic/apm-server/edit/6.6/docs/guide/overview.asciidoc">edit</a></div>
</div></div></div>
<p>Elastic APM is an application performance monitoring system built on the Elastic Stack.
It allows you to monitor software services and applications in real time,
collecting detailed performance information on response time for incoming requests,
database queries, calls to caches, external HTTP requests,
etc.
This makes it easier to pinpoint and fix performance problems quickly.</p>
<p>Elastic APM also automatically collects unhandled errors and exceptions.
Errors are grouped based primarily on the stacktrace,
so you can identify new errors as they appear and keep an eye on how many times specific errors happen.</p>
<div class="note admon">
<div class="icon"></div>
<div class="admon_content">
<p>This guide will indiscriminately use the word "service" for both services and applications.</p>
</div>
</div>
<div class="position-relative"><h2><a id="components"></a>APM Components</h2><a class="edit_me" rel="nofollow" title="Edit this page on GitHub" href="https://github.com/elastic/apm-server/edit/6.6/docs/guide/overview.asciidoc">edit</a></div>
<p>Elastic APM consists of four components:</p>
<p><a href="/guide/en/apm/agent/index.html" class="ulink" target="_top"><span class="strong strong"><strong>APM agents</strong></span></a> are open source libraries written in the same language as your service.
You install them into your service as you would install any other library.
They instrument your code and collect performance data and errors at runtime.
This data is buffered for a short period and sent on to APM Server.</p>
<p><a href="/guide/en/apm/server/6.6/index.html" class="ulink" target="_top"><span class="strong strong"><strong>APM Server</strong></span></a> is an open source application written in Go which typically runs on dedicated servers.
It listens on port 8200 by default and receives data from agents through a JSON HTTP API.
Then it creates documents from that data and stores them in Elasticsearch.</p>
<p><a href="/guide/en/elasticsearch/reference/6.6/index.html" class="ulink" target="_top"><span class="strong strong"><strong>Elasticsearch</strong></span></a> is a highly scalable open-source full-text search and analytics engine.
It allows you to store, search, and analyze big volumes of data quickly and in near real time.
Elasticsearch is used to store APM performance metrics and make use of its aggregations.</p>
<p><a href="/guide/en/kibana/6.6/xpack-apm.html" class="ulink" target="_top"><span class="strong strong"><strong>Kibana</strong></span></a> is an open source analytics and visualization platform designed to work with Elasticsearch.
You use Kibana to search, view, and interact with data stored in Elasticsearch.
You can use Kibana to visualize APM data by utilizing the dedicated APM UI bundled in Basic license,
or the pre-built, open source,
Kibana dashboards that can be loaded directly via the <a href="/guide/en/kibana/6.6/apm-getting-started.html" class="ulink" target="_top">APM Kibana UI</a>.</p>
<div class="imageblock">
<div class="content">
<img src="apm-architecture.png" alt="Architecture of Elastic APM">
</div>
</div>
<div class="position-relative"><h2><a id="concepts"></a>APM Concepts</h2><a class="edit_me" rel="nofollow" title="Edit this page on GitHub" href="https://github.com/elastic/apm-server/edit/6.6/docs/guide/overview.asciidoc">edit</a></div>
<div class="position-relative"><h3><a id="_events"></a>Events</h3><a class="edit_me" rel="nofollow" title="Edit this page on GitHub" href="https://github.com/elastic/apm-server/edit/6.6/docs/guide/overview.asciidoc">edit</a></div>
<p>APM agents capture different types of information from within their instrumented applications, known as events.
Events can be <a class="xref" href="errors.html" title="Errors"><code class="literal">Errors</code></a>, <a class="xref" href="transaction-spans.html" title="Spans"><code class="literal">Spans</code></a>, or <a class="xref" href="transactions.html" title="Transactions"><code class="literal">Transactions</code></a>.
These events are then streamed to the APM Server which validates and processes the events.</p>
<p>View the APM <a class="xref" href="apm-data-model.html" title="Data Model">data model</a> for more information on events.</p>
<div class="position-relative"><h3><a id="_component_communication"></a>Component communication</h3><a class="edit_me" rel="nofollow" title="Edit this page on GitHub" href="https://github.com/elastic/apm-server/edit/6.6/docs/guide/overview.asciidoc">edit</a></div>
<p>The APM Server is a <a href="/guide/en/apm/server/6.6/why-separate-component.html" class="ulink" target="_top">separate component by design</a> - it helps keep the agents light,
prevents certain security risks,
and improves compatibility across the Elastic and APM Stack.</p>
<p>The <a href="/guide/en/apm/server/6.6/intake-api.html" class="ulink" target="_top">Intake API</a> is what we call the internal protocol that APM agents use to talk to the APM Server.
After the APM Server has validated and processed events from the APM agents (via the intake API),
the server transforms the data into Elasticsearch documents and stores them in corresponding <a href="/guide/en/apm/server/6.6/exploring-es-data.html" class="ulink" target="_top">Elasticsearch indices</a>.
In a matter of seconds you can start viewing your application performance data in Kibana.</p>
<div class="position-relative"><h3><a id="_real_user_monitoring_rum"></a>Real User Monitoring (RUM)</h3><a class="edit_me" rel="nofollow" title="Edit this page on GitHub" href="https://github.com/elastic/apm-server/edit/6.6/docs/guide/overview.asciidoc">edit</a></div>
<p>Real User Monitoring captures user interaction with clients such as web browsers.
The <a href="/guide/en/apm/agent/rum-js/3.x" class="ulink" target="_top">JavaScript Agent</a> is Elastic’s RUM Agent.
To use it you need to <a href="/guide/en/apm/server/6.6/rum.html" class="ulink" target="_top">enable RUM support</a> in the APM Server.</p>
<p>Unlike Elastic APM backend agents which monitor requests and responses,
the RUM JavaScript agent monitors the real user experience and interaction within your client-side application.
The RUM JavaScript agent is also framework-agnostic, which means it can be used with any frontend JavaScript application.</p>
<p>You will be able to measure metrics such as "Time to First Byte", <code class="literal">domInteractive</code>,
and <code class="literal">domComplete</code> which helps you discover performance issues within your client-side application as well as issues that relate to the latency of your server-side application.</p>
<div class="position-relative"><h3><a id="_distributed_tracing"></a>Distributed Tracing</h3><a class="edit_me" rel="nofollow" title="Edit this page on GitHub" href="https://github.com/elastic/apm-server/edit/6.6/docs/guide/overview.asciidoc">edit</a></div>
<p>Together, transactions and spans form a <code class="literal">Trace</code>.
Traces are not events, but group together events that have a common root.</p>
<p>All of our APM agents support <a class="xref" href="distributed-tracing.html" title="Distributed tracing">distributed tracing</a> out of the box.
Distributed tracing enables you to analyze performance throughout your microservices architecture all in one view.</p>
</div>
</div>
</div><div class="navfooter">
<span class="prev">
<a href="doc-directory.html">« Documentation directory</a>
</span>
<span class="next">
<a href="install-and-run.html">Install and run »</a>
</span>
</div>
<!-- end body -->
</div>
<div class="col-12 order-3 col-lg-2 order-lg-3 h-almost-full-lg sticky-top-lg" id="right_col">
<div id="sticky_content">
<!-- The OTP is appended here -->
<div class="row">
<div class="col-0 col-md-4 col-lg-0" id="bottom_left_col"></div>
<div class="col-12 col-md-8 col-lg-12">
<div id="rtpcontainer">
<div class="mktg-promo" id="most-popular">
<p class="aside-heading">Most Popular</p>
<div class="pb-2">
<p class="media-type">Video</p>
<a href="https://www.elastic.co/webinars/getting-started-elasticsearch?page=docs&placement=top-video">
<p class="mb-0">Get Started with Elasticsearch</p>
</a>
</div>
<div class="pb-2">
<p class="media-type">Video</p>
<a href="https://www.elastic.co/webinars/getting-started-kibana?page=docs&placement=top-video">
<p class="mb-0">Intro to Kibana</p>
</a>
</div>
<div class="pb-2">
<p class="media-type">Video</p>
<a href="https://www.elastic.co/webinars/introduction-elk-stack?page=docs&placement=top-video">
<p class="mb-0">ELK for Logs & Metrics</p>
</a>
</div>
</div>
</div>
<!-- Feedback widget -->
<div id="feedbackWidgetContainer"></div>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
</div>
<div id='elastic-footer'></div>
<script src='https://www.elastic.co/elastic-footer.js'></script>
<!-- Footer Section end-->
</section>
</div>
<!-- Feedback modal -->
<div id="feedbackModalContainer"></div>
<script src="/guide/static/jquery.js"></script>
<script type="text/javascript" src="/guide/static/docs-v1.js"></script>
<script type="text/javascript">
window.initial_state = {}</script>
</body>
</html>