Skip to main content

Elasticsearch Logger Middleware for FastAPI

Elasticsearch Logger Middleware for FastAPI is designed to facilitate detailed and efficient logging directly to Elasticsearch servers from FastAPI applications. It streamlines the logging processes by capturing detailed HTTP requests data and automates telemetry to provide insights into application performance.

Key Features

  1. Elasticsearch Integration: Send logs directly to an Elasticsearch server.
  2. Flexible Configuration: Configure to suit various environment needs.
  3. Automated Detailed Data Logging: Automatically captures headers, query parameters, and the request body.
  4. Effortless Telemetry: Automatically generates telemetry for monitoring request times.
  5. Enhanced Data Control: Limit payload sizes for efficient Elasticsearch indexing.

Installation

To install this middleware, ensure you have Python installed and then run:

pip install fastapi-elasticsearch-middleware

Usage

Configure the middleware by creating a config dictionary in your FastAPI application as follows:

config = {
    'url': 'http://localhost:9200',
    'user': 'elasticsearch_user',
    'password': 'password',
    'index': 'my_app_logs',
    'environment': 'development',
    'limit': True,
    'debug': False
}

The debug parameter prevents sending logs to Elasticsearch.

Integrate the middleware into your FastAPI application like this:

from fastapi import FastAPI
from fastapi_elasticsearch_middleware.elasticsearch_middleware import ElasticsearchLoggerMiddleware

app = FastAPI()
app.add_middleware(ElasticsearchLoggerMiddleware, config=config)

How It Works

The middleware captures each HTTP request, processes it, and sends log data to your Elasticsearch server based on the configured parameters. It includes detailed logs of request headers, body data, and response metrics.

How to Contribute

We welcome contributions from the community and are pleased to have you join us. Here are some guidelines that will help you get started.

Prerequisites

Before contributing, please ensure you have the following:

  • A basic understanding of Python and FastAPI.
  • A basic understanding of Middlewares.

Setting Up Your Development Environment

  1. Fork the Repository: Start by forking the repository to your GitHub account.
  2. Clone the Repository: Clone your fork to your local machine.
    git clone https://github.com/GGontijo/fastapi-elasticsearch-middleware
    cd repository-name
    
  3. Install Dependencies: Install the required dependencies.
    pip install -r requirements.txt
    

Making Changes

  1. Create a New Branch: Create a new branch for your feature or bug fix.
    git checkout -b awesome-feature
    
  2. Make Your Changes: Implement your feature or fix a bug. Be sure to adhere to the coding standards and include comments where necessary.

Submitting a Pull Request

  1. Commit Your Changes: Once your tests pass, commit your changes.
    git commit -m 'Add some feature'
    
  2. Push to GitHub: Push your changes to your fork on GitHub.
    git push origin awesome-feature
    
  3. Open a Pull Request: Go to the original repository and click the Compare & pull request button. Then submit your pull request with a clear title and description.

Code Review

Once your pull request is opened, it will be reviewed by the maintainers. Some changes may be requested. Please be patient and responsive. Once the pull request has been approved, it will be merged into the master branch.

Thank you for contributing!

Metadata

Release files for fastapi-elasticsearch-middleware 1.1.8

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for fastapi-elasticsearch-middleware 1.1.8
File Size Uploaded
fastapi_elasticsearch_middleware-1.1.8.tar.gz 6.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for fastapi-elasticsearch-middleware 1.1.8
File Interpreter ABI Platform
fastapi_elasticsearch_middleware-1.1.8-py3-none-any.whl Python 3 none any Details

Total release size: 13.5 kB

Release files / fastapi_elasticsearch_middleware-1.1.8.tar.gz

Download URL fastapi_elasticsearch_middleware-1.1.8.tar.gz
Size 6.4 kB
Tags Source
SHA-256 checksum
How to use checksums
f51d09d95b1ec709aa294442754e489f12f7de018b91f754fab0c82235fda89f
BLAKE2b-256 checksum
How to use checksums
ccbb78cb97487cc464d0adb4721041961ad42ce114a0f23854a4ef17027546ab
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.9.25

Release files / fastapi_elasticsearch_middleware-1.1.8-py3-none-any.whl

Download URL fastapi_elasticsearch_middleware-1.1.8-py3-none-any.whl
Size 7.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
f6917bf52f4be25959ec777698721a02eafac13a2a93b61b625f2917f0e0c3da
BLAKE2b-256 checksum
How to use checksums
e0f0c08c6d9d6ada58f950bdf1623eda628fdb30d5835a351acebd053a2cb4ea
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.9.25

Release history Release notifications | RSS feed

This release

1.1.8 This release

2 release files

1.1.7

2 release files

1.1.6

2 release files

1.1.5

2 release files

1.1.4

2 release files

1.1.3

2 release files

1.1.2

2 release files

1.1.1

2 release files

1.1.0

2 release files

1.0.9

2 release files

1.0.8

2 release files

1.0.7

2 release files

1.0.6

2 release files

1.0.4

2 release files

1.0.2

2 release files

1.0.1

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page