Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/frgfm/openapm

OpenAPM: ligthweight APM for HTTP FastAPI backend applications
https://github.com/frgfm/openapm

apm backend fastapi http middleware postgres python

Last synced: about 1 month ago
JSON representation

OpenAPM: ligthweight APM for HTTP FastAPI backend applications

Awesome Lists containing this project

README

        


OpenAPM: ligthweight APM for FastAPI backend applications



CI Status


ruff


ruff



Test coverage percentage




PyPi Version

pyversions

License




Documentation Status

Ready-to-use APM backend service and middleware to monitor your FastAPI applications.

## Quick Tour

### Using the middleware

OpenAPM leverages [FastAPI middlewares](https://fastapi.tiangolo.com/tutorial/middleware/#create-a-middleware) and [background tasks](https://fastapi.tiangolo.com/tutorial/background-tasks/) easily retrieve performance information on your HTTP request processing.

You can find more information in the [documentation](https://frgfm.github.io/openapm/middlewares.html), then use it as follows:

```python
# Define your model
from openapm.middlewares import FastAPIMiddleware
from fastapi import FastAPI

app = FastAPI()
app.add_middleware(FastAPIMiddleware(endpoint="https://your-apm-endpoint.com"))
```

## Setup

Python 3.11 (or higher) and [pip](https://pip.pypa.io/en/stable/)/[conda](https://docs.conda.io/en/latest/miniconda.html) are required to install OpenAPM.

### Stable release

You can install the last stable release of the package using [pypi](https://pypi.org/project/openapm/) as follows:

```shell
pip install openapm
```

### Developer installation

Alternatively, if you wish to use the latest features of the project that haven't made their way to a release yet, you can install the package from source:

```shell
git clone https://github.com/frgfm/openapm.git
pip install -e openapm/.
```

## What else

### Documentation

The full package documentation is available [here](https://frgfm.github.io/openapm/) for detailed specifications.

## Citation

If you wish to cite this project, feel free to use this [BibTeX](http://www.bibtex.org/) reference:

```bibtex
@misc{openapm2024,
title={OpenAPM: lightweight APM for FastAPI backend applications},
author={François-Guillaume Fernandez},
year={2024},
month={November},
publisher = {GitHub},
howpublished = {\url{https://github.com/frgfm/openapm}}
}
```

## Contributing

Feeling like extending the range of supported backend framework? Or perhaps submitting a new metric capture? Any sort of contribution is greatly appreciated!

You can find a short guide in [`CONTRIBUTING`](CONTRIBUTING.md) to help grow this project!

## License

Distributed under the Apache 2.0 License. See [`LICENSE`](LICENSE) for more information.

[![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2Ffrgfm%2Fopenapm.svg?type=large&issueType=license)](https://app.fossa.com/projects/git%2Bgithub.com%2Ffrgfm%2Fopenapm?ref=badge_large&issueType=license)