![Create React App Officially Deprecated Amid React 19 Compatibility Issues](https://cdn.sanity.io/images/cgdhsj6q/production/04fa08cf844d798abc0e1a6391c129363cc7e2ab-1024x1024.webp?w=400&fit=max&auto=format)
Security News
Create React App Officially Deprecated Amid React 19 Compatibility Issues
Create React App is officially deprecated due to React 19 issues and lack of maintenance—developers should switch to Vite or other modern alternatives.
AppOptics APM libraries, instrumentation, and web middleware components for WSGI, Django, and Tornado.
The 'appoptics_apm' module provides automatic instrumentation and metrics/tracing SDK hooks for use with AppOptics.
The appoptics_apm module provides middleware and other instrumentation for popular web frameworks such as Django, Tornado, Pyramid, and WSGI, as well as commonly used libraries like SQLAlchemy, httplib, redis, memcached. Read more at our full documentation.
The Python instrumentation for AppOptics uses a module named appoptics_apm
, which is distributed via pypi.
pip install appoptics_apm
Alternately, you can use this repository to build a local copy.
See our documentation on configuring the python instrumentation.
To upgrade an existing installation, you simply need to run:
pip install --upgrade appoptics_apm
docker build -t python-appoptics:dev-container .
./run_docker_dev.sh
make
for more details.The test suite is organized into three main components, which are described in the following sections. All components
are configured to run in a docker environment, which is provided under test/docker
. All test can be executed locally,
and the unit tests are configured to run automatically in Travis.
When running the unit tests locally, a pre-built agent distribution found under dist
will be used. The agent version of the pre-built distribution is determined by the APPOPTICS_APM_VERSION
environment variable and the tests will fail if no source distribution or compatible wheel can be found under dist
. If the environment variable is unset, the version as specified by the source code currently checked out will be assumed.
test/unit
test/docker/unit
test/docker/unit/logs
test/docker/unit/reports
When running the install tests locally, a pre-built agent distribution found under dist
will be used. The agent version of the pre-built distribution is determined by the APPOPTICS_APM_VERSION
environment variable and the tests will fail no source distribution or compatible wheel can be found under dist
. If the environment variable is unset, the version as specified by the source code currently checked out will be assumed.
test/docker/install
test/docker/install/logs
When running the unit tests locally, a pre-built agent distribution found under dist
will be used.
test/unit
test/docker/lambda_layer
dist/
directory using make package
.
dist/
directory.make sdist
when you only want to run the unit tests.To run unit, install and AWS Lambda tests locally, simply navigate to test/docker/unit
, test/docker/install
, test/docker/lambda_layer
, respectively.
In the directory you can now execute the following commands:
docker-compose config
docker-compose up -d
APPOPTICS_APM_VERSION=1.2.3 docker-compose up -d
Note that the source and binary distribution of the version as specified in APPOPTICS_APM_VERSION
must be available under dist/
already, otherwise all tests will fail.
test/docker/unit|install/logs
, and each composed service (i.e. test run) will exit 1 if there are test failures, you can check via:docker-compose ps
docker-compose down --remove-orphans
To activate code coverage reports for the unit tests, you can simply set the following environment variable in your shell:
PYTHON_APPOPTICS_CODECOVERAGE=1
This will measure your code coverage with the coverage
Python module and create html-reports in the test/docker/unit/reports
directory for the unit tests. The reports will be stored under
<project_root>/test/docker/unit/reports/<service>/unit/index.html
and can simply be viewed with your browser.
For example, if the project is checked out under ~/source/python-appoptics
:
Run the desired service <service>
with temporarily activated coverage measurement:
PYTHON_APPOPTICS_CODECOVERAGE=1 docker-compose up <service> -d
After the tests have been completed, you should find the coverage report for this service under
~/source/python-appoptics/test/docker/unit/reports/<service>
To view e.g. the unit test results, just open
~/source/python-appoptics/test/docker/unit/reports/<service>/unit/index.html
in your browser.
If you find a bug or would like to request an enhancement, feel free to file an issue. For all other support requests, please email technicalsupport@solarwinds.com.
You are obviously a person of great sense and intelligence. We happily appreciate all contributions to the appoptics_apm module whether it is documentation, a bug fix, new instrumentation for a library or framework or anything else we haven't thought of.
We welcome you to send us PRs. We also humbly request that any new instrumentation submissions have corresponding tests that accompany them. This way we don't break any of your additions when we (and others) make changes after the fact.
The release process is handled through GitHub Actions. There are two different actions to release the agent which are described in more detail below.
You can manually publish a release candidate to TestPyPi by running the Publish to TestPyPi action through the manual workflow trigger. When running this action, you can manually select which branch you would like to publish the release candidate from.
To publish the agent to PyPi, perform the following steps:
release/rel-<release-version>
appoptics_apm/version.py
file to change the __version__
variable to the correct release versionrelease/rel-<release-version>
to masterrel-<release-version>
This repo provides a folder hooks, in which all git hook related scripts can be found. Currently, there is only a pre-commit hook which runs Pylint on the changed *.py files.
To set up the pre-commit hook, simply run the install_hook.sh
script in this folder. This will install a project-specific virtual Python environment under which the code will be linted. Note that this requires Pyenv and Pyenv-virtualenv to be installed on your system.
Note:
Pyenv-virtualenv provides a functionality to automatically detect your project-specific virtual environment (e.g. when changing into the project folder in the terminal). To activate the auto-detection, you only need to make sure that you added pyenv virtualenv-init
to your shell (refer to the installation section for pyenv-virtualenv for more details).
To make sure that the code conforms the standards defined in the .pylintrc
file, the pre-commit hook will not allow you to commit code if Pylint does issue any errors or warnings on the files you changed.
You can change this behaviour by setting certain environment variables when invoking git commit
.
You can commit your code even though Pylint issued warning messages by setting
PYTHON_APPOPTICS_PYLINT_IGNORE_WARNINGS=1
when invoking git commit.
You can commit your code even though Pylint issued error messages by setting
PYTHON_APPOPTICS_PYLINT_IGNORE_ERRORS=1
when invoking git commit. Please use this option with great care as Pylint error messages usually indicate genuine bugs in your code.
For a more consistent formatting of the Python files, this repository comes with the code formatter Yapf pre-installed in the virtual environment. The configurations of Yapf are stored in the .style.yapf
file in the root directory of this repository. Please consult the Yapf documentation for more information about the auto-formatter.
Currently, the formatting is not enforced through any commit hooks, but you can invoke Yapf with the provided configuration in your local development environment.
We have made a large effort to expose as much technical information as possible to assist developers wishing to contribute to the AppOptics module. Below are the three major sources for information and help for developers:
If you have any questions or ideas, don't hesitate to contact us anytime.
To see the code related to the C++ extension, take a look in appoptics_apm/swig
.
Copyright (c) 2017 SolarWinds, LLC
Released under the Apache License 2.0
FAQs
AppOptics APM libraries, instrumentation, and web middleware components for WSGI, Django, and Tornado.
We found that appoptics-apm demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 2 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Create React App is officially deprecated due to React 19 issues and lack of maintenance—developers should switch to Vite or other modern alternatives.
Security News
Oracle seeks to dismiss fraud claims in the JavaScript trademark dispute, delaying the case and avoiding questions about its right to the name.
Security News
The Linux Foundation is warning open source developers that compliance with global sanctions is mandatory, highlighting legal risks and restrictions on contributions.