You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Cleans up observability apps section including:
* In content that applies to both stateful and serverless, use `APM
Server or the managed intake service` instead of `APM Server` as there
is no APM Server in serverless.
* Add missing serverless content (e.g. getting started, api keys).
* Update syntax that leads to rendering issues.
* Simplify internal links.
* Clean up unnecessary white space.
---------
Co-authored-by: Mike Birnstiehl <[email protected]>
# Application and service monitoring [application-and-service-monitoring]
@@ -15,9 +17,9 @@ Explore the topics in this section to learn how to observe and monitor software
15
17
16
18
|||
17
19
| --- | --- |
18
-
|[LLM Observability](../../solutions/observability/apps/llm-observability.md)| Monitor LLM-powered applications to keep them reliable, efficient, cost-effective, and easy to troubleshoot.|
19
-
|[Application performance monitoring (APM)](../../solutions/observability/apps/application-performance-monitoring-apm.md)| Monitor software services and applications in real time, by collecting detailed performance information on response time for incoming requests, database queries, calls to caches, external HTTP requests, and more. |
20
-
|[Synthetic monitoring](../../solutions/observability/apps/synthetic-monitoring.md)| Monitor the availability of network endpoints and services. |
21
-
|[Real user monitoring](../../solutions/observability/apps/real-user-monitoring-user-experience.md)| Quantify and analyze the perceived performance of your web application using real-world user experiences. |
22
-
|[Uptime monitoring (deprecated)](../../solutions/observability/apps/uptime-monitoring-deprecated.md)| Periodically check the status of your services and applications. |
23
-
|[Tutorial: Monitor a Java application](../../solutions/observability/apps/tutorial-monitor-java-application.md)| Monitor a Java application using Elastic Observability: Logs, Infrastructure metrics, APM, and Uptime. |
20
+
|[LLM Observability](/solutions/observability/apps/llm-observability.md)| Monitor LLM-powered applications to keep them reliable, efficient, cost-effective, and easy to troubleshoot.|
21
+
|[Application performance monitoring (APM)](/solutions/observability/apps/application-performance-monitoring-apm.md)| Monitor software services and applications in real time, by collecting detailed performance information on response time for incoming requests, database queries, calls to caches, external HTTP requests, and more. |
22
+
|[Synthetic monitoring](/solutions/observability/apps/synthetic-monitoring.md)| Monitor the availability of network endpoints and services. |
23
+
|[Real user monitoring](/solutions/observability/apps/real-user-monitoring-user-experience.md)| Quantify and analyze the perceived performance of your web application using real-world user experiences. |
24
+
|[Uptime monitoring (deprecated)](/solutions/observability/apps/uptime-monitoring-deprecated.md)| Periodically check the status of your services and applications. |
25
+
|[Tutorial: Monitor a Java application](/solutions/observability/apps/tutorial-monitor-java-application.md)| Monitor a Java application using Elastic Observability: Logs, Infrastructure metrics, APM, and Uptime. |
:::{admonition} APM Server vs managed intake service
2
+
In {{ech}}, the _APM Server_ receives data from Elastic APM agents and transforms it into Elasticsearch documents. In {{serverless-full}} there is in fact no APM Server running, instead the _managed intake service_ receives and transforms data.
Copy file name to clipboardExpand all lines: solutions/observability/apps/analyze-monitors.md
-4Lines changed: 0 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -18,7 +18,6 @@ To access this page, go to **{{observability}} > Uptime > Monitors**. Click on a
18
18
19
19
The monitor detail screen displays several panels of information.
20
20
21
-
22
21
## Status panel [uptime-status-panel]
23
22
24
23
The **Status** panel displays a summary of the latest information regarding your monitor. You can view its availability, monitor ID, type, and any assigned tags. You can click a link to visit the targeted URL, view when the TLS certificate expires, and determine the amount of time elapsed since the last check.
@@ -32,7 +31,6 @@ The **Monitoring from** list displays service availability per monitoring locati
32
31
33
32
To display a map with each location as a pinpoint, you can toggle the availability view from list view to map view.
34
33
35
-
36
34
## Monitor duration [uptime-monitor-duration]
37
35
38
36
The **Monitor duration** chart displays the timing for each check that was performed. The visualization helps you to gain insights into how quickly requests resolve by the targeted endpoint and give you a sense of how frequently a host or endpoint was down in your selected time span.
@@ -44,7 +42,6 @@ Included on this chart is the {{anomaly-detect}} ({{ml}}) integration. For more
44
42
:screenshot:
45
43
:::
46
44
47
-
48
45
## Pings over time [uptime-pings-chart]
49
46
50
47
The **Pings over time** chart is a graphical representation of the check statuses over time. Hover over the charts to display crosshairs with specific numeric data.
@@ -54,7 +51,6 @@ The **Pings over time** chart is a graphical representation of the check statuse
54
51
:screenshot:
55
52
:::
56
53
57
-
58
54
## Check history [uptime-history-panel]
59
55
60
56
The **History** table lists the total count of this monitor’s checks for the selected date range. To help find recent problems on a per-check basis, you can filter by `status` and `location`.
Copy file name to clipboardExpand all lines: solutions/observability/apps/anonymous-authentication.md
-3Lines changed: 0 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -16,15 +16,13 @@ Elastic APM agents can send unauthenticated (anonymous) events to the APM Server
16
16
17
17
In some cases, however, it makes sense to allow both authenticated and anonymous requests. For example, it isn’t possible to authenticate requests from front-end services as the secret token or API key can’t be protected. This is the case with the Real User Monitoring (RUM) agent running in a browser, or the Android or iOS/Swift agent running in a user application. However, you still likely want to authenticate requests from back-end services. To solve this problem, you can enable anonymous authentication in the APM Server to allow the ingestion of unauthenticated client-side APM data while still requiring authentication for server-side services.
18
18
19
-
20
19
## Configuring anonymous auth for client-side services [apm-anonymous-auth-config]
21
20
22
21
::::{note}
23
22
You can only enable and configure anonymous authentication if an [API key](api-keys.md) or [secret token](secret-token.md) is configured. If neither are configured, these settings will be ignored.
24
23
25
24
::::
26
25
27
-
28
26
:::::::{tab-set}
29
27
30
28
::::::{tab-item} Fleet-managed
@@ -57,7 +55,6 @@ The remote IP address of an incoming request might be different from the end-use
57
55
58
56
If none of these headers are present, the remote address for the incoming request is used.
59
57
60
-
61
58
### Using a reverse proxy or load balancer [apm-derive-client-ip-concerns]
62
59
63
60
HTTP headers are easily modified; it’s possible for anyone to spoof the derived `client.ip` value by changing or setting, for example, the value of the `X-Forwarded-For` header. For this reason, if any of your clients are not trusted, we recommend setting up a reverse proxy or load balancer in front of the APM Server.
Copy file name to clipboardExpand all lines: solutions/observability/apps/api-keys.md
+51-16Lines changed: 51 additions & 16 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -7,26 +7,27 @@ applies_to:
7
7
8
8
# API keys [apm-api-key]
9
9
10
+
:::{include} _snippets/apm-server-vs-mis.md
11
+
:::
12
+
10
13
::::{important}
11
14
API keys are sent as plain-text, so they only provide security when used in combination with [TLS](apm-agent-tls-communication.md).
12
15
::::
13
16
14
-
15
-
When enabled, API keys are used to authorize requests to the APM Server. API keys are not applicable for APM agents running on clients, like the RUM agent, as there is no way to prevent them from being publicly exposed.
17
+
When enabled, API keys are used to authorize requests to {{apm-server-or-mis}}. API keys are not applicable for APM agents running on clients, like the RUM agent, as there is no way to prevent them from being publicly exposed.
16
18
17
19
You can assign one or more unique privileges to each API key:
18
20
19
21
***Agent configuration** (`config_agent:read`): Required for agents to read [Agent configuration remotely](apm-agent-central-configuration.md).
20
22
***Ingest** (`event:write`): Required for ingesting agent events.
21
23
22
-
To secure the communication between APM Agents and the APM Server with API keys, make sure [TLS](apm-agent-tls-communication.md) is enabled, then complete these steps:
24
+
To secure the communication between APM Agents and either {{apm-server-or-mis}} with API keys, make sure [TLS](apm-agent-tls-communication.md) is enabled, then complete these steps:
23
25
24
26
1.[Enable API keys](#apm-enable-api-key)
25
27
2.[Create an API key user](#apm-create-api-key-user)
26
28
3.[Create an API key in {{kib}}](#apm-create-an-api-key)
27
29
4.[Set the API key in your APM agents](#apm-agent-api-key)
## Create an API key user in {{kib}} [apm-create-api-key-user]
56
61
57
-
API keys can only have the same or lower access rights than the user that creates them. Instead of using a superuser account to create API keys, you can create a role with the minimum required privileges.
62
+
API keys can only have the same or lower access rights than the user that creates them.
63
+
64
+
:::::::{tab-set}
65
+
66
+
::::::{tab-item} Fleet-managed or APM Server binary
67
+
Instead of using a superuser account to create API keys, you can create a role with the minimum required privileges.
58
68
59
69
The user creating an {{apm-agent}} API key must have at least the `manage_own_api_key` cluster privilege and the APM application-level privileges that it wishes to grant. In addition, when creating an API key from the Applications UI, you’ll need the appropriate {{kib}} Space and Feature privileges.
60
70
@@ -84,14 +94,23 @@ POST /_security/role/apm_agent_key_role
84
94
85
95
1. This example assigns privileges for the default space.
86
96
87
-
88
97
Assign the newly created `apm_agent_key_role` role to any user that wishes to create {{apm-agent}} API keys.
98
+
::::::
89
99
100
+
::::::{tab-item} {{serverless-full}}
101
+
**For Observability Serverless projects**, the Editor role or higher is required to create and manage API keys. To learn more, refer to [Assign user roles and privileges](/deploy-manage/users-roles/cloud-organization/user-roles.md#general-assign-user-roles).
102
+
::::::
103
+
104
+
:::::::
90
105
91
106
## Create an API key in the Applications UI [apm-create-an-api-key]
92
107
93
108
The Applications UI has a built-in workflow that you can use to easily create and view {{apm-agent}} API keys. Only API keys created in the Applications UI will show up here.
94
109
110
+
:::::::{tab-set}
111
+
112
+
::::::{tab-item} Fleet-managed or APM Server binary
113
+
95
114
Using a superuser account, or a user with the role created in the previous step, In {{kib}}, find **Applications** in the main menu or use the [global search field](/explore-analyze/find-and-organize/find-apps-and-objects.md). Go to **Settings** → **Agent keys**. Enter a name for your API key and select at least one privilege.
96
115
97
116
For example, to create an API key that can be used to ingest APM events and read agent central configuration, select `config_agent:read` and `event:write`.
@@ -103,6 +122,27 @@ Click **Create APM Agent key** and copy the Base64 encoded API key. You will nee
103
122
:screenshot:
104
123
:::
105
124
125
+
::::::
126
+
127
+
::::::{tab-item} {{serverless-full}}
128
+
To create a new API key:
129
+
130
+
1. In your Elastic Observability Serverless project, go to any Applications page.
131
+
1. Click **Settings**.
132
+
1. Select the **Agent keys** tab.
133
+
1. Click **Create APM agent key**.
134
+
1. Name the key and assign privileges to it.
135
+
1. Click **Create APM agent key**.
136
+
1. Copy the key now. You will not be able to see it again. API keys do not expire.
137
+
138
+
To view all API keys for your project:
139
+
140
+
1. Expand **Project settings**.
141
+
1. Select **Management**.
142
+
1. Select **API keys**.
143
+
::::::
144
+
145
+
:::::::
106
146
107
147
## Set the API key in your APM agents [apm-agent-api-key]
108
148
@@ -118,15 +158,18 @@ You can now apply your newly created API keys in the configuration of each of yo
## Alternate API key creation methods [apm-configure-api-key-alternative]
123
162
163
+
```{applies_to}
164
+
stack:
165
+
serverless: unavailable
166
+
```
167
+
124
168
API keys can also be created and validated outside of {{kib}}:
125
169
126
170
* [APM Server API key workflow](#apm-create-api-key-workflow-apm-server)
127
171
* [{{es}} API key workflow](#apm-create-api-key-workflow-es)
128
172
129
-
130
173
### APM Server API key workflow [apm-create-api-key-workflow-apm-server]
131
174
132
175
This API creation method only works with the APM Server binary.
@@ -137,10 +180,8 @@ This API creation method only works with the APM Server binary.
137
180
Users should create API Keys through {{kib}} or the {{es}} REST API
138
181
::::
139
182
140
-
141
183
APM Server provides a command line interface for creating, retrieving, invalidating, and verifying API keys. Keys created using this method can only be used for communication with APM Server.
@@ -163,10 +204,8 @@ APM Server provides a command line interface for creating, retrieving, invalidat
163
204
* To **ingest agent data**, assign `event:write`.
164
205
* To **upload source maps**, assign `sourcemap:write`.
165
206
166
-
167
207
::::
168
208
169
-
170
209
**`info`**
171
210
: Query API Key(s). `--id` or `--name` required.
172
211
@@ -176,7 +215,6 @@ APM Server provides a command line interface for creating, retrieving, invalidat
176
215
**`verify`**
177
216
: Check if a credentials string has the given privilege(s). `--credentials` required.
178
217
179
-
180
218
#### Privileges [apm-create-api-key-privileges]
181
219
182
220
If privileges are not specified at creation time, the created key will have all privileges.
@@ -185,7 +223,6 @@ If privileges are not specified at creation time, the created key will have all
185
223
* `--ingest` grants the `event:write` privilege
186
224
* `--sourcemap` grants the `sourcemap:write` privilege
187
225
188
-
189
226
#### Create an API key [apm-create-api-key-workflow]
190
227
191
228
Create an API key with the `create` subcommand.
@@ -238,7 +275,6 @@ Error count ........ 0
238
275
239
276
A full list of `apikey` subcommands and flags is available in the [API key command reference](apm-server-command-reference.md#apm-apikey-command).
240
277
241
-
242
278
### {{es}} API key workflow [apm-create-api-key-workflow-es]
243
279
244
280
It is also possible to create API keys using the {{es}} [create API key API](https://www.elastic.co/docs/api/doc/elasticsearch/operation/operation-security-create-api-key).
0 commit comments