Skip to main content

The best Python observability tool! 🪵🔥

Project description

Pydantic Logfire — Uncomplicated Observability

CI codecov pypi license versions

From the team behind Pydantic, Logfire is an observability platform built on the same belief as our open source library — that the most powerful tools can be easy to use.

What sets Logfire apart:

  • Simple and Powerful: Logfire's dashboard is simple relative to the power it provides, ensuring your entire engineering team will actually use it.
  • Python-centric Insights: From rich display of Python objects, to event-loop telemetry, to profiling Python code and database queries, Logfire gives you unparalleled visibility into your Python application's behavior.
  • SQL: Query your data using standard SQL — all the control and (for many) nothing new to learn. Using SQL also means you can query your data with existing BI tools and database querying libraries.
  • OpenTelemetry: Logfire is an opinionated wrapper around OpenTelemetry, allowing you to leverage existing tooling, infrastructure, and instrumentation for many common Python packages, and enabling support for virtually any language.
  • Pydantic Integration: Understand the data flowing through your Pydantic models and get built-in analytics on validations.

See the documentation for more information.

Feel free to report issues and ask any questions about Logfire in this repository!

This repo contains the Python SDK for logfire and documentation; the server application for recording and displaying data is closed source.

Using Logfire

This is a very brief overview of how to use Logfire, the documentation has much more detail.

Install

pip install logfire

(learn more)

Authenticate

logfire auth

(learn more)

Manual tracing

Here's a simple manual tracing (aka logging) example:

import logfire
from datetime import date

logfire.info('Hello, {name}!', name='world')

with logfire.span('Asking the user their {question}', question='age'):
    user_input = input('How old are you [YYYY-mm-dd]? ')
    dob = date.fromisoformat(user_input)
    logfire.debug('{dob=} {age=!r}', dob=dob, age=date.today() - dob)

(learn more)

Integration

Or you can also avoid manual instrumentation and instead integrate with lots of popular packages, here's an example of integrating with FastAPI:

import logfire
from pydantic import BaseModel
from fastapi import FastAPI

app = FastAPI()

logfire.configure()
logfire.instrument_fastapi(app)
# next, instrument your database connector, http library etc. and add the logging handler

class User(BaseModel):
    name: str
    country_code: str

@app.post('/')
async def add_user(user: User):
    # we would store the user here
    return {'message': f'{user.name} added'}

(learn more)

Logfire gives you a view into how your code is running like this:

Logfire screenshot

Contributing

We'd love anyone interested to contribute to the Logfire SDK and documentation, see the contributing guide.

Reporting a Security Vulnerability

See our security policy.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

logfire-2.1.0.tar.gz (244.6 kB view details)

Uploaded Source

Built Distribution

logfire-2.1.0-py3-none-any.whl (167.1 kB view details)

Uploaded Python 3

File details

Details for the file logfire-2.1.0.tar.gz.

File metadata

  • Download URL: logfire-2.1.0.tar.gz
  • Upload date:
  • Size: 244.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for logfire-2.1.0.tar.gz
Algorithm Hash digest
SHA256 76d71b8f3bc96084b126c845a5b2f45bcad8c180e78075579ad034a6c0b27582
MD5 7c5abca5481f30d184dc196448a2598a
BLAKE2b-256 c280230ba1c9f3362ed07b4e33d44e05efc5ebdc15f8934accc9efd3ed812f91

See more details on using hashes here.

Provenance

The following attestation bundles were made for logfire-2.1.0.tar.gz:

Publisher: GitHub
  • Repository: pydantic/logfire
  • Workflow: main.yml
Attestations:
  • Statement type: https://in-toto.io/Statement/v1
    • Predicate type: https://docs.pypi.org/attestations/publish/v1
    • Subject name: logfire-2.1.0.tar.gz
    • Subject digest: 76d71b8f3bc96084b126c845a5b2f45bcad8c180e78075579ad034a6c0b27582
    • Transparency log index: 145148257
    • Transparency log integration time:

File details

Details for the file logfire-2.1.0-py3-none-any.whl.

File metadata

  • Download URL: logfire-2.1.0-py3-none-any.whl
  • Upload date:
  • Size: 167.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for logfire-2.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 240277790440cb64d973b0b39b18e6d404262bc557d9653db9c2d3c5ef77d16c
MD5 c78b8b1d3558dfc0ce10aaf511196fad
BLAKE2b-256 550ca5bd8bd02a3c136cbfbd620b3e67d7c8a44b295a35488f7def18e73a6542

See more details on using hashes here.

Provenance

The following attestation bundles were made for logfire-2.1.0-py3-none-any.whl:

Publisher: GitHub
  • Repository: pydantic/logfire
  • Workflow: main.yml
Attestations:
  • Statement type: https://in-toto.io/Statement/v1
    • Predicate type: https://docs.pypi.org/attestations/publish/v1
    • Subject name: logfire-2.1.0-py3-none-any.whl
    • Subject digest: 240277790440cb64d973b0b39b18e6d404262bc557d9653db9c2d3c5ef77d16c
    • Transparency log index: 145148263
    • Transparency log integration time:

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page