Skip to main content

Plugin to implement instrumentation of elastic apm on a bottle server.

Project description

Bottle Elastic APM

Simple plugin to use ELK with APM server for your bottle application

Using default_app

default_app() uses AppStack, so you only need to install it once.

from bottle import default_app, run
from bottle_elastic_apm import ElasticAPM, make_apm_client

ELK_CONFIG = {
    'service_name': 'my-app',
}

app = default_app()
app2 = default_app()

apm_client = make_apm_client(**ELK_CONFIG) # avoid multi client instances
app.install(ElasticAPM(client=apm_client))

@app.get('/')
def index():
    return 'Hello world!'

@app2.get('/2')
def index2():
    return 'Hello world!'

run(app)

Using Bottle()

Bottle() don't uses AppStack, so you need to install on all of them.

from bottle import Bottle, run
from bottle_elastic_apm import ElasticAPM, make_apm_client

ELK_CONFIG = {
    'service_name': 'my-app',
}

app = Bottle()
app2 = Bottle()
app.mount('v2', app2)

apm_client = make_apm_client(**ELK_CONFIG) # avoid multi client instances
app.install(ElasticAPM(client=apm_client))
app2.install(ElasticAPM(client=apm_client))

@app.get('/')
def index():
    return 'Hello world!'

@app2.get('/2')
def index2():
    return 'Hello world!'

run(app)

Avoid capture specific errors

from bottle import default_app
from bottle_elastic_apm import ElasticAPM, make_apm_client

ELK_CONFIG = {
    'service_name': 'my-app',
}

app = default_app()
apm_client = make_apm_client(**ELK_CONFIG) # avoid multi client instances
app.install(ElasticAPM(client=apm_client, avoided_errors={(401, 'JWT: Signature has expired',)}))

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

bottle-elastic-apm-0.1.1.tar.gz (4.2 kB view hashes)

Uploaded Source

Built Distribution

bottle_elastic_apm-0.1.1-py3-none-any.whl (4.9 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page