Aller au contenu

Présentation de Pydantic Logfire

Logfire, issu de l'équipe derrière Pydantic, est une plateforme d'observabilité construite sur la même conviction que nos bibliothèques open source: les outils les plus puissants peuvent être faciles à utiliser.

Ce qui rend Logfire différent:

  • est simple mais puissant: le tableau de bord deLogfire est simple par rapport aux fonctionnalités qu 'il offre, ce qui garantit que toute votre équipe d'ingénieurs l'utilisera réellement.
  • Aperçus centrés sur Python:vous offre une visibilité inégalée sur le comportement de vos applications Python, de l'affichage riche des objets Python à la télémétrie des boucles d'événements, en passant par l'analyse du code Python et des requêtes de base de données.
  • SQL Format:utilise SQL standard pour interroger les données-tous les contrôles, sans (pour beaucoup) apprendre quoi que ce soit de nouveau.
  • OpenTelemetry:Logfire est un wrapper auto-satisfait pour OpenTelemetry qui vous permet de tirer parti des outils, de l'infrastructure et des outils existants pour développer de nombreux paquets Python courants et prendre en charge presque tous les langages.
  • Pydantic Integration:comprend les données qui circulent dans le modèle Pydantic et obtient une analyse intégrée de la validation.

Pydantic Logfire vous aide à détecter votre application avec moins de code, moins de temps et une meilleure compréhension.

Trouver des aiguilles dans_stack tracking_

Logfire FastAPI Screenshot

Pydantic Logfire a été conçu par des développeurs Python pour les développeurs Python afin de répondre aux défis et aux opportunités uniques de l'environnement Python. il ne s'agit pas seulement d'avoir des données; il s'agit d'avoir les bonnes données_pour_, présentées de manière significative pour une application Python.

Dans l'esprit de Python

  • Simple mais puissant: à l'image de la philosophie de la bibliothèque Pydantic, Pydantic Logfire offre un point de départ intuitif pour les débutants tout en offrant la profondeur requise par les experts. il atteint le même équilibre entre facilité d'utilisation, complexité et productivité et a été repensé pour l'observabilité.
  • est né de Python et de Pydantic: alors que les créateurs s'immergeaient dans l'écosystème open source de Python, nous avons conçu Pydantic Logfire pour s'intégrer profondément aux nuances de Python et de Pydantic, offrant une expérience beaucoup plus personnalisée qu 'une plateforme d'observabilité universelle.

Transformer les données en insights

  • Intégration Python avec profondeur, Pydantic Logfire détecte automatiquement votre code, avec un minimum d'effort manuel, fournit un aperçu supérieur du code asynchrone, fournit une analyse détaillée des performances et affiche les objets Python de la même manière qu 'un interpréteur.
  • Données structurées et accès SQL direct signifie que vous pouvez utiliser des outils familiers (comme Pandas, SQLAlchemy ou psql) pour les requêtes, peut s'intégrer parfaitement aux outils de BI et peut même utiliser l'IA pour générer du SQL, garantissant que vos objets Python et vos données structurées sont disponibles pour les requêtes.
  • par Avec OpenTelemetry, Pydantic Logfire fournit une détection automatique pour les paquets Python populaires, prend en charge l'intégration de données multilingues et permet l'exportation de données vers n'importe quel backend ou proxy compatible avec OpenTelemetry.

Pydantic Logfire: la plateforme d'observabilité que vous méritez

Pydantic Logfiren'est pas seulement un autre outil dans le hangar; c'est une solution personnalisée conçue par les développeurs Python pour les développeurs Python, garantissant que vos efforts de développement sont aussi fluides et efficaces que Python lui-même.

Du plus petit script au déploiement à grande échelle, Pydantic Logfire est la solution d'observabilité que vous attendiez.


Simple et puissant: rocket: {#simplicity}

Pydantic Logfiredevrait être très simple et facile à utiliser, il suffit de lancer:

pip install logfire # (1)!
logfire auth # (2)!
  1. Pydantic LogfireSDK peut être installé à partir de PyPI ou Conda,En savoir plus.

  2. SDK est livré avec une CLI pour l'authentification et plus encore,Veuillez en savoir plus.

Ensuite, dans votre code:

import logfire
from datetime import date

logfire.configure()  # (1)!

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

with logfire.span('Asking the user their {question}', question='age'):  # (3)!
    user_input = input('How old are you [YYYY-mm-dd]? ')
    dob = date.fromisoformat(user_input)  # (4)!
    logfire.debug('{dob=} {age=!r}', dob=dob, age=date.today() - dob)  # (5)!
1. Cela devrait être appelé une fois avant la journalisation pour initialiser Logfire. Si aucun élément n'est configuré pour le répertoire courant, une invite interactive vous guidera vers la création du projet.

  1. Ceci enregistrera Hello world! avec le niveau 信息.name='world' sera stocké en tant que propriété pouvant être interrogée à l'aide de SQL.

  2. Les span vous permettent d'imbriquer d'autres appels Logfire et de mesurer le temps nécessaire à l'exécution du code-ce sont des composants fondamentaux des traces!

  3. Essayez d'extraire la date de l'entrée de l'utilisateur. si une exception est levée, la portée externe contiendra les détails de l'exception.

  4. Par exemple, cela enregistrera dob=2000-01-01 age=datetime.timedelta(days=8838) avec 调试 niveaux.

Cela peut sembler similaire à la simple journalisation, mais c'est beaucoup plus puissant-vous obtenez:

  • Données structurées dans les logs
  • Logs/traces imbriquées pour contextualiser ce que vous regardez
  • Une plateforme personnalisée pour visualiser vos données sans configuration
  • Et bien plus encore, par exemple un bel affichage des objets Python-voir ci-dessous

Attention

Si vous avez des applications existantes à détecter, vous tirerez le meilleur parti de la configuration OTel intégration avant de commencer à ajouter des appels logfire.* à votre code.

Logfire hello world screenshot

Python et Pydantic Insight: Snake: {#python}

De l'affichage riche d'objets Python à la télémétrie en boucle d'événements et à l'analyse du code Python, Pydantic Logfire vous donne une idée plus claire du fonctionnement de Python que tout autre outil d'observabilité.

Logfire dispose également d'une intégration Pydantic prête à l'emploi qui vous permet de comprendre les données qui passent par le modèle Pydantic et d'obtenir une analyse de validation.

Nous pouvons documenter directement le modèle pydantique:

from datetime import date
import logfire
from pydantic import BaseModel

logfire.configure()

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

user = User(name='Anne', country_code='USA', dob='2000-01-01')
logfire.info('user processed: {user!r}', user=user)  # (1)!
  1. Cela affichera 用户处理的:User(name='Anne', country_code='US', dob=datetime.date(2000, 1, 1))), mais vous permettra également de voir une « belle » vue du modèle dans la plate-forme Logfire.

Logfire pydantic screenshot manuel

Alternativement, nous pouvons enregistrer automatiquement des informations sur la vérification:

from datetime import date
import logfire
from pydantic import BaseModel

logfire.configure(pydantic_plugin=logfire.PydanticPlugin(record='all'))  # (1)!

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

User(name='Anne', country_code='USA', dob='2000-01-01')  # (2)!
User(name='Ben', country_code='USA', dob='2000-02-02')
User(name='Charlie', country_code='GBR', dob='1990-03-03')
  1. Cette configuration signifie que les détails sur toutes les validations du modèle Pydantic seront enregistrés. vous pouvez également enregistrer uniquement les détails sur les échecs de validation, ou uniquement les métriques; voir Documentation sur le plugin Pydantic。

  2. Puisque nous avons activé le plugin Pydantic, toutes les vérifications Pydantic seront enregistrées dans Logfire.

en savoir plus sur le plugin Pydantic ici.

Logfire Pydantic Plugin Screenshot

OpenTelemetry sous le capot: le télescope:{#otel}

Depuis que Le Pydantic Logfire est basé sur OpenTelemetry est un système construit pour que vous puissiez utiliser un grand nombre d'outils et d'infrastructures existants, y compris Détection de nombreux paquets Python courants。

Par exemple, nous pouvons détecter une simple application FastAPI avec seulement 2 lignes de code:

fastapi_example.py
from datetime import date
import logfire
from pydantic import BaseModel
from fastapi import FastAPI

app = FastAPI()

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


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


@app.post('/')
async def add_user(user: User):
    # we would store the user here
    return {'message': f'{user.name} added'}
  1. En plus de Configuration de Logfire En dehors de cela, cette ligne est généralement tout ce dont vous avez besoin pour détecter une application FastAPI avec Logfire, et il en va de même pour la plupart des autres frameworks Web Python populaires.

La page2. "Intégration" contient plus d'informations sur la façon de détecter d'autres parties de votre application.

Il faut installer Le package FastAPI contrib FastAPI lui-même et uvicorn pour l'exécuter:

pip install 'logfire[fastapi]' fastapi uvicorn  # (1)!
uvicorn fastapi_example:app # (2)!
  1. Installez le package 'logfire' avec 'fastapi' extra, FastAPI et uvicorn.

  2. Utilisez uvicorn pour exécuter une application FastAPI

Cela vous donnera des informations sur la requête HTTP, ainsi que des détails sur les résultats de la validation de la saisie réussie:

Logfire FastAPI 200 réponses à Screenshot

Et les détails de la validation d'entrée qui a échoué:

Logfire FastAPI 422 réponse à Screenshot

Données structurées et SQL: abacus: {#sql}

Interroger les données avec Postgres SQL purement canonique-tout le contrôle, sans (pour beaucoup) apprendre quoi que ce soit de nouveau. nous offrons même un accès direct à la base de données Postgres sous-jacente, ce qui signifie que vous pouvez interroger Logfire avec n'importe quel outil compatible Postgres que vous préférez. Cela inclut les plates-formes de création de tableaux de bord telles que Superset, Grafana et Google Looker Studio, mais aussiPandas,SQLAlchemyet même psql.

Un grand avantage des bases de données SQL les plus utilisées est que les outils d'IA générative comme ChatGPT sont excellents pour écrire SQL pour vous.

Il suffit d'être en Logfire est une Incluez votre objet Python dans un appel (liste, dictionnaire, classe de données, modèle Pydantic, cadre de données, etc.) et il sera disponible en tant que données structurées dans notre plate-forme.

Par exemple, en utilisant les données du modèle 用户 ci-dessus, nous pouvons répertorier les utilisateurs des États-Unis:

SELECT attributes->'result'->>'name' as name, age(attributes->'result'->>'dob') as age
FROM records
WHERE attributes->'result'->>'country_code' = 'USA'

Logfire explore les requêtes Screenshot

Vous pouvez également filtrer pour afficher uniquement les pistes pertinentes pour les utilisateurs américains dans Live View.

attributes->'result'->>'country_code' = 'USA'

Logfire search query screenshot


本文总阅读量次