Pengantar Logfire Pydantic¶
Logfire, dari tim di belakang Pydantic, adalah platform observabilitas yang dibangun dengan keyakinan yang sama seperti perpustakaan sumber terbuka kami - bahwa alat yang paling kuat dapat dengan mudah digunakan.
Apa yang membuat Logfire unik:
- Sederhana dan kuat:Dasbor Logfire sederhana dibandingkan dengan fungsionalitas yang disediakannya, memastikan bahwa seluruh tim teknik Anda benar-benar akan menggunakannya.
- Wawasan Python-centric:Dari tampilan objek Python yang kaya, hingga telemetri loop peristiwa, hingga menganalisis kode Python dan kueri basis data, Logfire memberi Anda visibilitas yang tak tertandingi ke dalam perilaku aplikasi Python.
- Format SQL:Data kueri menggunakan SQL standar - semua kontrol, (untuk banyak orang) tanpa mempelajari sesuatu yang baru. Menggunakan SQL juga berarti Anda dapat query data menggunakan alat BI yang ada dan pustaka kueri database.
- OpenTelemetry:Logfire adalah pembungkus yang benar sendiri untuk OpenTelemetry yang memungkinkan Anda memanfaatkan alat, infrastruktur, dan alat yang ada untuk mengembangkan banyak paket Python umum dan mendukung hampir semua bahasa.
- Pydantic Integration:memahami data yang mengalir melalui model Pydantic dan mendapatkan analitik built-in untuk validasi.
Pydantic Logfire membantu Anda menguji aplikasi Anda dengan lebih sedikit kode, lebih sedikit waktu, dan pemahaman yang lebih baik.
ada_tumpukan jejak_Temukan jarumnya¶
Kami memahami Python dan fitur-fiturnya. Pydantic Logfire dibuat oleh pengembang Python untuk pengembang Python untuk mengatasi tantangan dan peluang unik dari lingkungan Python. Ini bukan hanya tentang memiliki data; ini tentang memiliki data_yang tepat untuk_, disajikan dengan cara yang masuk akal untuk aplikasi Python.
Dalam semangat Python
- sederhana dan kuat: Meniru filosofi perpustakaan Pydantic, Pydantic Logfire memberikan titik awal intuitif untuk pemula sambil memberikan ke dalaman yang dibutuhkan oleh para ahli. Ini mencapai keseimbangan yang sama antara kemudahan penggunaan, kompleksitas, dan produktivitas, dan telah ditata ulang untuk diamati.
- lahir di Python dan Pydantic: Ketika pencipta membenamkan diri dalam ekosistem sumber terbuka Python, kami merancang Pydantic Logfire untuk berintegrasi secara mendalam dengan nuansa Python dan Pydantic, memberikan lebih banyak penyesuaian daripada platform pengamatan universal Pengalaman.
Terjemahkan kalimat ini ke dalam bahasa Inggris: Terjemahkan kalimat ini ke dalam bahasa Inggris: Terjemahkan kalimat ini ke dalam bahasa Inggris: Terjemahkan kalimat ini ke dalam bahasa Inggris: Terjemahkan: Terjemahkan kalimat ini ke dalam bahasa Inggris: Terjemahkan: Terjemahkan kalimat ini ke dalam bahasa Inggris: Terjemahkan: Terjemahkan: Terjemahkan: Terjemahkan: Terjemahkan: Terjemahkan: Terjemahkan: Terjemahkan: Terjemahkan: Terjemahkan: Terjemahkan: Terjemahkan: Terjemahkan: Terjemahkan: Terjemahkan: Terjemahkan
- Integrasi Deep Python melalui ****, Pydantic Logfire secara otomatis mendeteksi kode Anda dengan usaha manual minimal, memberikan wawasan yang sangat baik tentang kode asinkron, memberikan analisis kinerja terperinci, dan sama dengan penerjemah Untuk pengguna Pydantic yang ada, ini juga memberikan wawasan yang tak tertandingi tentang bagaimana Anda bekerja dengan model Pydantic.
- Data terstruktur dan akses SQL langsung berarti Anda dapat menggunakan alat yang sudah dikenal seperti Pandas, SQLAlchemy, atau
psqluntuk pertanyaan, berintegrasi dengan mulus dengan alat BI, dan bahkan memanfaatkan generasi AI SQL, memastikan bahwa objek Python dan data terstruktur Anda tersedia untuk kueri. Menggunakan vanilla PostgreSQL sebagai bahasa kueri di seluruh platform memastikan pengalaman kueri yang konsisten, kuat, dan fleksibel. - memanfaatkan OpenTelemetry melalui , Pydantic Logfire menyediakan deteksi otomatis untuk paket Python populer, mendukung Layanan Transmisi Data lintas bahasa, dan mendukung ekspor data ke OpenTelemetry-compatible backend atau proxy.
Pydantic Logfire: Platform pengamatan yang layak Anda dapatkan¶
Pydantic Logfirelebih dari sekadar alat lain di gudang; ini adalah solusi khusus yang dibuat dengan hati-hati oleh pengembang Python untuk pengembang Python, memastikan bahwa upaya pengembangan Anda semulus dan seefisien Python itu sendiri.
Dari skrip minimal hingga penyebaran skala besar, Pydantic Logfire adalah solusi pengamatan yang Anda tunggu-tunggu.
Sederhana dan kuat: roket: {#simplicity}
Pydantic Logfireharus sangat mudah digunakan, jalankan saja:
pip install logfire # (1)!
logfire auth # (2)!
-
Pydantic LogfireSDK dapat dipasang dari PyPI atau Conda,Pelajari lebih lanjut.
-
SDK dilengkapi dengan CLI untuk otentikasi, dll.Tolong pahami detailnya....
Kemudian dalam kode Anda:
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)!
-
Ini akan mencatat
Hello world!dengan tingkat信息.name='world'akan disimpan sebagai properti yang dapat ditanyakan menggunakan SQL. -
Bentang memungkinkan Anda untuk bersarang panggilan Logfire lainnya dan juga mengukur waktu yang dibutuhkan kode Anda untuk berjalan. Mereka adalah bagian mendasar dari jejak!
-
Cobalah untuk mengekstrak tanggal dari input pengguna. Jika ada pengecualian yang dilemparkan, bentang luar akan berisi detail pengecualian.
-
Misalnya, ini akan merekam
dob=2000-01-01 age=datetime.timedelta(days=8838)dari调试Tingkat.
Ini mungkin tampak mirip dengan penebangan sederhana, tetapi jauh lebih kuat - Anda mendapatkan:
- Data terstruktur dalam log
- Log / jejak bersarang untuk menempatkan konten yang Anda lihat dalam konteks
- Platform khusus untuk melihat data Anda tanpa konfigurasi
- Dan banyak lagi, seperti tampilan objek Python yang bagus - lihat di bawah
Perhatian
Jika Anda memiliki aplikasi yang ada untuk dideteksi, tambahkan ke kode di awal logfire.* Sebelum menelepon, Anda akan Mengkonfigurasi Integrasi OTel Dapatkan nilai maksimal dari itu.
Wawasan Python dan Pydantic: ular: {#python}
Dari tampilan objek Python yang kaya hingga telemetri loop peristiwa dan analisis kode Python, Pydantic Logfire memberi Anda pemahaman yang lebih baik tentang cara kerja Python daripada alat pengamatan lainnya.
Logfire juga memiliki integrasi Pydantic out-of-the-box yang memungkinkan Anda memahami data yang melewati model Pydantic dan mendapatkan analisis validasi.
Kami dapat langsung mendokumentasikan model Pydantic:
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)!
- Ini akan menunjukkan
用户处理的:User(name='Anne', country_code='US', dob=datetime.date(2000, 1, 1))), tetapi juga memungkinkan Anda untuk melihat tampilan model yang "bagus" di platform Logfire.
Atau, kami dapat merekam informasi tentang verifikasi secara otomatis:
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')
-
Konfigurasi ini berarti bahwa detail tentang semua validasi model Pydantic akan dicatat. Anda juga dapat mencatat hanya detail tentang kegagalan validasi, atau hanya metrik; lihat dokumentasi plugin Pydantic.
-
Karena kami telah mengaktifkan plugin Pydantic, semua validasi Pydantic akan dicatat di Logfire.
Pelajari lebih lanjut tentang plugin Pydantic di sini.
OpenTelemetry di bawah kap: Teleskop:{#otel}
karena Logfire Pirang Berdasarkan OpenTelemetri Dibangun agar Anda dapat menggunakan berbagai alat dan infrastruktur yang ada, termasuk Deteksi banyak paket Python umum...
Misalnya, kita dapat mendeteksi aplikasi FastAPI sederhana hanya dengan 2 baris kode:
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'}
- Kecuali Konfigurasi logfire Selain itu, baris ini biasanya yang Anda butuhkan untuk mendeteksi aplikasi Fast API dengan Logfire, dan hal yang sama berlaku untuk sebagian besar kerangka kerja web Python populer lainnya.
Halaman2. "Integrasi" berisi informasi lebih lanjut tentang cara mendeteksi bagian lain dari aplikasi Anda.
Kita perlu menginstal paket contrib FastAPI, FastAPI itu sendiri, dan uvicorn untuk menjalankannya:
pip install 'logfire[fastapi]' fastapi uvicorn # (1)!
uvicorn fastapi_example:app # (2)!
-
Instal paket 'logfire' dengan ekstra 'fastapi', FastAPI, dan uvicorn.
-
Jalankan aplikasi Fast API dengan uvicorn.
Ini akan memberi Anda informasi tentang permintaan HTTP, serta detail tentang hasil validasi input yang berhasil.
Dan rincian validasi input yang gagal:
Data terstruktur dan SQL: sempoa: {#sql}
Data kueri dengan spesifikasi murni Postgres SQL - semua kontrol, (untuk banyak orang) tanpa mempelajari sesuatu yang baru. Kami bahkan menyediakan akses langsung ke database Postgres yang mendasarinya, yang berarti Anda dapat menanyakan Logfire dengan alat yang kompatibel dengan Postgres yang Anda suka.
Ini termasuk platform pembuatan dasbor seperti Superset, Grafana, dan Google Looker Studio, serta Panda,SQLAlchemy bahkan psql...
Salah satu keuntungan utama menggunakan database SQL yang paling banyak digunakan adalah bahwa alat AI generatif seperti ChatGPT sangat baik dalam menulis SQL untuk Anda.
Cukup sertakan objek Python Anda dalam panggilanLogfire(daftar, kamus, kelas data, model Pydantic, bingkai data, dll.), dan akan siap untuk kueri sebagai data terstruktur di platform kami.
Misalnya, dengan menggunakan data dari model 用户 di atas, kami dapat mencantumkan pengguna dari Amerika Serikat:
SELECT attributes->'result'->>'name' as name, age(attributes->'result'->>'dob') as age
FROM records
WHERE attributes->'result'->>'country_code' = 'USA'
Anda juga dapat memfilter untuk hanya menampilkan trek yang terkait dengan pengguna AS di Live View
attributes->'result'->>'country_code' = 'USA'
本文总阅读量次






