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

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.5
File Size Uploaded
fastapi_elasticsearch_middleware-1.1.5.tar.gz 6.2 kB Details

Built distribution (wheel)

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

Total release size: 13.1 kB

Release files / fastapi_elasticsearch_middleware-1.1.5.tar.gz

Download URL fastapi_elasticsearch_middleware-1.1.5.tar.gz
Size 6.2 kB
Tags Source
SHA-256 checksum
How to use checksums
8d5483dd6b527d7f4368fe70bac20e3dd18097d0bc27ca47971f8dbaa0f80bfc
BLAKE2b-256 checksum
How to use checksums
514b76635f9e564816f634292c049c80404ea24bbbda2c89eab0b7ae69233b41
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.5-py3-none-any.whl

Download URL fastapi_elasticsearch_middleware-1.1.5-py3-none-any.whl
Size 6.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
b89eb51c86c8ef0072b519d9415fe2461be14f564085ed21515b92f4c9dbb271
BLAKE2b-256 checksum
How to use checksums
578b83e8c9ae4057c3edd851d28f47577d795ba9c2a8e3f13bc013ad91954b43
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

1.1.6

2 release files

This release

1.1.5 This release

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