Skip to content

Commit

Permalink
[apmpackage] Add config options supported in ESS (#4690)
Browse files Browse the repository at this point in the history
part of #4528
  • Loading branch information
simitt committed Feb 15, 2021
1 parent 9ad7072 commit a25b110
Show file tree
Hide file tree
Showing 5 changed files with 80 additions and 20 deletions.
10 changes: 1 addition & 9 deletions apmpackage/apm/0.1.0/_dev/docs/README.template.md
Expand Up @@ -53,22 +53,14 @@ both the service name and the environment as the namespace.
The APM integration requires Kibana 7.11 and Elasticsearch with basic license.
This version is experimental and has some limitations, listed bellow:

- It is not yet possible to change APM Server settings dynamically.
You must update the policy with any changes you need and restart the APM Server process.
- Sourcemap enrichment is not yet supported.
- There is no default ILM policy for traces (spans and transactions).
- You can't use an Elastic Agent enrolled before 7.11 with an APM integration.
- Only a handful of configuration options are supported yet.

IMPORTANT: If you run APM Server with Elastic Agent manually in standalone mode, you must install the APM integration before ingestion starts.

## Configuration parameters

- `Host`: APM Server host and port to listen on.
- `Secret token`: Authorization token for sending data to APM Server. See the [documentation](https://www.elastic.co/guide/en/apm/server/current/configuration-rum.html) for details.
- `Enable RUM`: Enables support for RUM monitoring. See the [documentation](https://www.elastic.co/guide/en/apm/server/current/configuration-rum.html) for details.
- `API Key for Central Configuration`: Gives privileges for APM Agent central configuration. See the [documentation](https://www.elastic.co/guide/en/kibana/master/agent-configuration.html)
- `API Key for Sourcemaps`: Gives priveleges to read sourcemaps. See the [documentation](https://www.elastic.co/guide/en/apm/agent/rum-js/current/sourcemap.html).

## Traces

Traces are comprised of [spans and transactions](https://www.elastic.co/guide/en/apm/get-started/current/apm-data-model.html).
Expand Down
16 changes: 14 additions & 2 deletions apmpackage/apm/0.1.0/agent/input/template.yml.hbs
@@ -1,8 +1,20 @@
apm-server:
host: {{host}}
secret_token: {{secret_token}}
max_event_size: {{max_event_bytes}}
capture_personal_data: {{capture_personal_data}}
kibana:
api_key: {{kibana_api_key}}
rum:
enabled: {{enable_rum}}
source_mapping.elasticsearch.api_key: {{sourcemap_api_key}}
kibana:
api_key: {{kibana_api_key}}
allow_origins: {{rum_allow_origins}}
allow_headers: {{rum_allow_headers}}
library_pattern: {{rum_library_pattern}}
exclude_from_grouping: {{rum_exclude_from_grouping}}
response_headers: {{rum_response_headers}}
event_rate.limit: {{rum_event_rate_limit}}
event_rate.lru_size: {{rum_event_rate_lru_size}}
api_key:
enabled: {{api_key_enabled}}
limit: {{api_key_limit}}
10 changes: 1 addition & 9 deletions apmpackage/apm/0.1.0/docs/README.md
Expand Up @@ -53,22 +53,14 @@ both the service name and the environment as the namespace.
The APM integration requires Kibana 7.11 and Elasticsearch with basic license.
This version is experimental and has some limitations, listed bellow:

- It is not yet possible to change APM Server settings dynamically.
You must update the policy with any changes you need and restart the APM Server process.
- Sourcemap enrichment is not yet supported.
- There is no default ILM policy for traces (spans and transactions).
- You can't use an Elastic Agent enrolled before 7.11 with an APM integration.
- Only a handful of configuration options are supported yet.

IMPORTANT: If you run APM Server with Elastic Agent manually in standalone mode, you must install the APM integration before ingestion starts.

## Configuration parameters

- `Host`: APM Server host and port to listen on.
- `Secret token`: Authorization token for sending data to APM Server. See the [documentation](https://www.elastic.co/guide/en/apm/server/current/configuration-rum.html) for details.
- `Enable RUM`: Enables support for RUM monitoring. See the [documentation](https://www.elastic.co/guide/en/apm/server/current/configuration-rum.html) for details.
- `API Key for Central Configuration`: Gives privileges for APM Agent central configuration. See the [documentation](https://www.elastic.co/guide/en/kibana/master/agent-configuration.html)
- `API Key for Sourcemaps`: Gives priveleges to read sourcemaps. See the [documentation](https://www.elastic.co/guide/en/apm/agent/rum-js/current/sourcemap.html).

## Traces

Traces are comprised of [spans and transactions](https://www.elastic.co/guide/en/apm/get-started/current/apm-data-model.html).
Expand Down
63 changes: 63 additions & 0 deletions apmpackage/apm/0.1.0/manifest.yml
Expand Up @@ -36,9 +36,17 @@ policy_templates:
title: Secret token
required: false
show_user: true
- name: api_key_enabled
type: bool
title: API Key Auth
description: Enable API Key auth between APM Server and APM Agents.
required: false
show_user: true
default: false
- name: enable_rum
type: bool
title: Enable RUM
description: Enable Real User Monitoring (RUM).
required: true
show_user: true
default: false
Expand All @@ -54,6 +62,61 @@ policy_templates:
required: false
description: Enter as <Id>:<API Key>
show_user: true
- name: api_key_limit
type: int
title: Maximum number of API Keys
description: Restrict number of unique API Keys per minute, used for auth between APM Agents and Server.
required: false
show_user: false
default: 100
- name: capture_personal_data
type: bool
title: Capture personal data
description: Capture personal data such as IP or User Agent.
required: false
show_user: false
default: true
- name: rum_allow_origins
type: string
title: RUM - Origin Headers
description: Allowed Origin headers to be sent by User Agents.
multi: true
required: false
show_user: false
default: ['*']
- name: rum_allow_headers
type: string
title: RUM - Access-Control-Allow-Headers
description: Supported Access-Control-Allow-Headers in addition to "Content-Type", "Content-Encoding" and "Accept".
multi: true
required: false
show_user: false
- name: rum_response_headers
type: yaml
title: RUM - Custom HTTP response headers
description: Added to RUM responses, e.g. for security policy compliance.
required: false
show_user: false
- name: rum_event_rate_limit
type: int
title: RUM - Rate limit events per IP
description: Maximum number of events allowed per IP per second.
required: false
show_user: false
default: 300
- name: rum_event_rate_lru_size
type: int
title: RUM - Rate limit cache size
description: Number of unique IPs to be cached for the rate limiter.
required: false
show_user: false
default: 1000
- name: max_event_bytes
type: int
title: Maximum size per event (bytes)
required: false
show_user: false
default: 307200
template_path: template.yml.hbs
owner:
github: elastic/apm-server
1 change: 1 addition & 0 deletions changelogs/head.asciidoc
Expand Up @@ -27,6 +27,7 @@ https://github.com/elastic/apm-server/compare/7.11\...master[View commits]
* OpenTelemetry Protocol (OTLP) over gRPC is now supported on the standard endpoint (8200) {pull}4677[4677]
* Add initial support for APM central config and sourcemaps when running under Fleet {pull}4670[4670]
* Data stream and ILM policy for tail-based sampling {pull}4707[4707]
* Support additional config options when running under Fleet {pull}4690[4690]

[float]
==== Deprecated
Expand Down

0 comments on commit a25b110

Please sign in to comment.