Skip to main content

This package can help you create Elastic APM instrumentations using regex

Project description

Elastic APM Agent Utils

This package can help you create Elastic APM instrumentations using regex.

Dependencies

  1. python2.7+ || python3.6+
  2. elastic-apm 5.4.0+

Installation

pip install apm-agent-utils

Usage

Create a file named instrumentations.py

# instrumentations.py
from apm_agent_utils.instrumentation import InstrumentationBuilder

builder = InstrumentationBuilder("Test")
builder.add_instrument("logic.logic1", r"^hello.*")  # finding and wrapping your funtions by regex
builder.add_instrument("logic.logic2", r".*")

Test = builder.create_instrument()

In your app.py, adding the following lines at top of the file.

import elasticapm
from apm_agent_utils.utils import add_instrumentation

add_instrumentation("instrumentations.Test")
elasticapm.instrument()

==> app.py

# app.py
import elasticapm
from apm_agent_utils.utils import add_instrumentation
from elasticapm.contrib.flask import ElasticAPM
from flask import Flask

add_instrumentation("instrumentations.Instrument")
elasticapm.instrument()

app = Flask(__name__)
app.config['ELASTIC_APM'] = {
    'SERVICE_NAME': 'vuonglv_test',
    'SECRET_TOKEN': '#####',
    'SERVER_URL': 'http://##.##.##.##:8200/',
    'DEBUG': True
}

apm = ElasticAPM(app)

main.py - your controllers

# main.py
from app import app

from logic.logic1 import hello
from logic.logic2 import foo, bar


@app.route("/")
def run():
    print(hello())
    print(foo())
    print(bar())
    return {"ok": True}


if __name__ == "__main__":
    app.run(debug=True)

Project structure look like this:
structure
Run app

python3 main.py

Get your endpoint

curl --location --request GET 'http://localhost:5000'

Goto your APM dashboard, result look like this: successful dashboard

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

apm-agent-utils-1.4.tar.gz (4.7 kB view details)

Uploaded Source

Built Distribution

apm_agent_utils-1.4-py2.py3-none-any.whl (5.2 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file apm-agent-utils-1.4.tar.gz.

File metadata

  • Download URL: apm-agent-utils-1.4.tar.gz
  • Upload date:
  • Size: 4.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.5 CPython/3.8.5 Linux/5.4.0-72-generic

File hashes

Hashes for apm-agent-utils-1.4.tar.gz
Algorithm Hash digest
SHA256 fee78b6b293d1169649a3809526880c288bd6d80b360dddfcf757a509916051b
MD5 2cefd823ce425f7ec78bec79756106ba
BLAKE2b-256 6254c32e7723b97cfb765595fdd3900759f95fe7b29267ca1e03229374d9ec78

See more details on using hashes here.

File details

Details for the file apm_agent_utils-1.4-py2.py3-none-any.whl.

File metadata

  • Download URL: apm_agent_utils-1.4-py2.py3-none-any.whl
  • Upload date:
  • Size: 5.2 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.5 CPython/3.8.5 Linux/5.4.0-72-generic

File hashes

Hashes for apm_agent_utils-1.4-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 54e33c33c0e073e2e5cbb5c688d35d623317873222f0c76bc5ac4e66f2cd7454
MD5 99bfbb61d3a271df7044cc58a720c8fe
BLAKE2b-256 3dd325f34d252fbbb422936e14ebc59164506bba0bfd109894af1576e66c0501

See more details on using hashes here.

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