Skip to main content

Auklet performance monitoring agent for Python IoT apps

Project description

Auklet - Problem Solving Software for Python

Auklet for Python

This is the official Python agent for Auklet. It officially supports Python 2.7.9+ and 3.4-3.7, and runs on most POSIX-based operating systems (Debian, Ubuntu Core, Raspbian, QNX, etc).

Features

  • Automatic report of unhandled exceptions
  • Automatic Function performance issue reporting
  • Location, system architecture, and system metrics identification for all issues
  • Ability to define data usage restriction

Compliance

Auklet is an edge first application performance monitor; therefore, starting with version 1.0.0 we maintain the following compliance levels:

  • Automotive Safety Integrity Level B (ASIL B)

If there are additional compliances that your industry requires please contact the team at hello@auklet.io.

Quickstart

To install the agent with pip:

pip install auklet

To setup Auklet monitoring in your application:

from auklet.monitoring import Monitoring
auklet_monitoring = Monitoring(
    api_key="<API_KEY>",
    app_id="<APP_ID>",
    release="<CURRENT_COMMIT_HASH>"
)
auklet_monitoring.start()
# Call your main function
main()
auklet_monitoring.stop()

Authorization

To authorize your application you need to provide both an API key and app ID. These values are available in the connection settings of your application as well as during initial setup.

Optional: Release Tracking

You can track releases and identify which devices are running what variant of code. To do this, you may provide the git commit hash of your deployed code and a version string you can modify. This release value should be passed into the constructor through the release argument, and your custom version should be passed via the version argument. The release value must be the git commit hash that represents the deployed version of your application. The version value is a string that you may set to whatever value you wish to define your versions. Please note that you can provide either a release value, version value, or both.

  • Providing release enables code snippets to be shown for identified errors if you’ve linked your GitHub.
  • Including version allows you to track what version of code had the issue.
curl -X POST https://api.auklet.io/v1/releases/ \
            -H "Content-Type: application/json" \
            -H "Authorization: JWT <API_KEY>" \
            -d '{"application": "<APP_ID>", "release": "'$(git rev-parse HEAD)'", "version": "<YOUR_DEFINED_VERSION>"}'

Get Release via Subprocess

If you package and deploy your entire Git repository (including the .git directory), and if you have git installed on your devices, you can get the commit hash via a subprocess:

git_commit_hash = subprocess.check_output(['git', 'rev-parse', 'HEAD'])
                  .decode('utf8').strip('\n')

Get Release via Environment Variable

If you package your app and deploy it without access to git, you can pass the commit hash to your app using the environment variable APPLICATION_GIT_COMMIT_HASH:

git_commit_hash = os.environ.get("APPLICATION_GIT_COMMIT_HASH")

Get Release via File

Lastly, if it is difficult or impossible to set an environment variable via your deployment platform, you can include a new file in your packaged deployment which contains the commit hash. You can read from this file and supply the value to the constructor.

At packaging time, write the commit hash to a file and then include it in your package:

git rev-parse HEAD > path/to/git_commit_hash.txt

At runtime, read the included file as follows:

release_file = open("git_commit_hash.txt", "r")
git_commit_hash = release_file.read().decode('utf8').strip('\n')

Define Your Own Version

You can also provide your own version string in the constructor:

from auklet.monitoring import Monitoring
auklet_monitoring = Monitoring(
    api_key="<API_KEY>",
    app_id="<APP_ID>",
    release="<CURRENT_COMMIT_HASH>",
    version="<DEFINED_VERSION>"
)

Resources

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

auklet-1.0.1.tar.gz (32.9 kB view details)

Uploaded Source

Built Distributions

auklet-1.0.1-py3.7.egg (82.1 kB view details)

Uploaded Egg

auklet-1.0.1-py3.6.egg (81.9 kB view details)

Uploaded Egg

auklet-1.0.1-py3.5.egg (83.3 kB view details)

Uploaded Egg

auklet-1.0.1-py3.4.egg (83.5 kB view details)

Uploaded Egg

auklet-1.0.1-py2.py3-none-any.whl (42.9 kB view details)

Uploaded Python 2Python 3

auklet-1.0.1-py2.7.egg (81.0 kB view details)

Uploaded Egg

File details

Details for the file auklet-1.0.1.tar.gz.

File metadata

  • Download URL: auklet-1.0.1.tar.gz
  • Upload date:
  • Size: 32.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.19.1 setuptools/40.4.3 requests-toolbelt/0.8.0 tqdm/4.27.0 CPython/3.6.6

File hashes

Hashes for auklet-1.0.1.tar.gz
Algorithm Hash digest
SHA256 e2516693641e5ee23bfd916624eb46b05de93fa80748699c19444bc69bcbf47f
MD5 56cc1d52e8311dc927394f90f7f5aecb
BLAKE2b-256 b5fa2cc1b65cf574bbff6078efa8f97ee691842939dba9834c89023260e5694d

See more details on using hashes here.

File details

Details for the file auklet-1.0.1-py3.7.egg.

File metadata

  • Download URL: auklet-1.0.1-py3.7.egg
  • Upload date:
  • Size: 82.1 kB
  • Tags: Egg
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.19.1 setuptools/40.4.3 requests-toolbelt/0.8.0 tqdm/4.27.0 CPython/3.6.6

File hashes

Hashes for auklet-1.0.1-py3.7.egg
Algorithm Hash digest
SHA256 50f19f9e3b6daf36858afed08cc7525b4082e27104170f9b2fd3a8bb47f7f9cb
MD5 8d08e4029139dbc55a9abf05dbd05f1c
BLAKE2b-256 8a9c1d1f79c0b96715c860f40edd92320230e424d4415df925ae2cd00e3de88a

See more details on using hashes here.

File details

Details for the file auklet-1.0.1-py3.6.egg.

File metadata

  • Download URL: auklet-1.0.1-py3.6.egg
  • Upload date:
  • Size: 81.9 kB
  • Tags: Egg
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.19.1 setuptools/40.4.3 requests-toolbelt/0.8.0 tqdm/4.27.0 CPython/3.6.6

File hashes

Hashes for auklet-1.0.1-py3.6.egg
Algorithm Hash digest
SHA256 250faf8f87733c0e52768be9bea4704a2de34c3ef5927828264d6939a7a12c97
MD5 88ddc18d78bdd5ac59f1f1e557522813
BLAKE2b-256 534414c65450f635a4019e73b9bbdac5f7c8884646f3c35186de20e72556993c

See more details on using hashes here.

File details

Details for the file auklet-1.0.1-py3.5.egg.

File metadata

  • Download URL: auklet-1.0.1-py3.5.egg
  • Upload date:
  • Size: 83.3 kB
  • Tags: Egg
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.19.1 setuptools/40.4.3 requests-toolbelt/0.8.0 tqdm/4.27.0 CPython/3.6.6

File hashes

Hashes for auklet-1.0.1-py3.5.egg
Algorithm Hash digest
SHA256 7a7c4462376369f53a40236c677b85b9f5b251ca4b3dfb5ae218fd631e3633db
MD5 c914f7217d962c9bacab9fdae35a643f
BLAKE2b-256 1d4103bdf8af16fbaadd547feeb1c0d7b115a02df1dddc33f55d37fc62a9df57

See more details on using hashes here.

File details

Details for the file auklet-1.0.1-py3.4.egg.

File metadata

  • Download URL: auklet-1.0.1-py3.4.egg
  • Upload date:
  • Size: 83.5 kB
  • Tags: Egg
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.19.1 setuptools/40.4.3 requests-toolbelt/0.8.0 tqdm/4.27.0 CPython/3.6.6

File hashes

Hashes for auklet-1.0.1-py3.4.egg
Algorithm Hash digest
SHA256 47a7e0700cc2be7959048f40d7f192ad1151f62a4a170d97cedc4460fd816806
MD5 3122c12a41eddfeedf22de645cc2e292
BLAKE2b-256 853ee95896c72d158901fa02163e0d98fbf288924a4b66a51d431db6bb5a0851

See more details on using hashes here.

File details

Details for the file auklet-1.0.1-py2.py3-none-any.whl.

File metadata

  • Download URL: auklet-1.0.1-py2.py3-none-any.whl
  • Upload date:
  • Size: 42.9 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.19.1 setuptools/40.4.3 requests-toolbelt/0.8.0 tqdm/4.27.0 CPython/3.6.6

File hashes

Hashes for auklet-1.0.1-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 2c9733f060591c342adc85e3c08c0ee986b07dff27750eb179a71bc42801bc8e
MD5 65231fbec80c83579e8c37a6a826d816
BLAKE2b-256 dd6565efb32f4398074367fad33168dc239279d08c5973be4a6f2a6492d769e7

See more details on using hashes here.

File details

Details for the file auklet-1.0.1-py2.7.egg.

File metadata

  • Download URL: auklet-1.0.1-py2.7.egg
  • Upload date:
  • Size: 81.0 kB
  • Tags: Egg
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.19.1 setuptools/40.4.3 requests-toolbelt/0.8.0 tqdm/4.27.0 CPython/3.6.6

File hashes

Hashes for auklet-1.0.1-py2.7.egg
Algorithm Hash digest
SHA256 c1ea5030fb60e6685da4a899c4ad9e41c1944284eef2d4c3f36f34e013b5c764
MD5 878a2526ae76df1cd04324972e0118a5
BLAKE2b-256 45ccdf8e0d1a9271017cdec16eaa02c953ed4709df8cd53dfcdd7ae08a1b883d

See more details on using hashes here.

Supported by

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