Commit decde0ba authored by HarisSistek's avatar HarisSistek Committed by Anthony Lapenna

Add APM server extension (#326)

Why: * Adds Elasticsearch Application Performance Monitoring extension * Can view application traces, errors and alerts trough Kibana How: * Add extension for apm-server container to the network which will receive traffic on port 8200 and report to elastic search server at port 9200
parent f286c5bc
ARG ELK_VERSION
FROM docker.elastic.co/apm/apm-server:${ELK_VERSION}
# APM Server extension
Adds a container for Elasticsearch APM server. Forwards caught errors and traces to Elasticsearch
server that can be viewed in Kibana.
## Usage
If you want to include the APM server, run Docker compose from the root of
the repository with an additional command line argument referencing the `apm-server-compose.yml` file:
```bash
$ docker-compose -f docker-compose.yml -f extensions/apm-server/apm-server-compose.yml up
```
## Connecting an agent to APM-Server
The most basic configuration to send traces to apm server. Is to specify the
`SERVICE_NAME` and `SERVICE_URL`. Here is an example Python FLASK configuration:
```python
import elasticapm
from elasticapm.contrib.flask import ElasticAPM
from flask import Flask
app = Flask(__name__)
app.config['ELASTIC_APM'] = {
# Set required service name. Allowed characters:
# a-z, A-Z, 0-9, -, _, and space
'SERVICE_NAME': 'PYTHON_FLASK_TEST_APP',
# Set custom APM Server URL (default: http://localhost:8200)
'SERVER_URL': 'http://apm-server:8200',
'DEBUG': True,
}
```
More configuration setting can be found under the **Configuration**
section for each language. Link: https://www.elastic.co/guide/en/apm/agent/index.html
## Checking Connectivity and Importing default APM Dashboards
From Kibana main window press:
1. `Add APM` button under Add Data to Kibana section
2. Ignore all the install instructions and press `Check APM Server status` button.
3. Press `Check agent status`
4. Press `Load Kibana objects` to get the default dashboards
5. Lastly press the `APM dashboard` to the bottom right.
## APM Agent Documentation
Link: https://www.elastic.co/guide/en/apm/agent/index.html
version: '2'
services:
apm-server:
build:
context: extensions/apm-server/
args:
ELK_VERSION: $ELK_VERSION
volumes:
- ./apm-server/config/apm-server.yml:/usr/share/apm-server/config/apm-server.yml:ro
ports:
- "8200:8200"
networks:
- elk
depends_on:
- elasticsearch
apm-server:
host: localhost:8200
output:
elasticsearch:
hosts: http://elasticsearch:9200
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment