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.6

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.6
File Size Uploaded
fastapi_elasticsearch_middleware-1.1.6.tar.gz 6.3 kB Details

Built distribution (wheel)

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

Total release size: 13.2 kB

Release files / fastapi_elasticsearch_middleware-1.1.6.tar.gz

Download URL fastapi_elasticsearch_middleware-1.1.6.tar.gz
Size 6.3 kB
Tags Source
SHA-256 checksum
How to use checksums
e7f470d9c663d0ed4ede2d2cda668aae37b7e66c91af5a6fef5d4058bfb0c295
BLAKE2b-256 checksum
How to use checksums
daf01e2e2f878df91f222adb4e55a5c7844d7291d9376f207d752b8952e5ccdc
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.6-py3-none-any.whl

Download URL fastapi_elasticsearch_middleware-1.1.6-py3-none-any.whl
Size 6.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
22b38dd494ca2b0ace57ca50e7bb9279261a9ab621a298c8719c6783924d4f71
BLAKE2b-256 checksum
How to use checksums
0ea2babd633e060e224654ab4e67f35f594bc814d82b11121be09c37695be2f7
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

1.1.8

2 release files

1.1.7

2 release files

This release

1.1.6 This release

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