MySQL¶
logfire.instrument_mysql() Metode dapat digunakan untuk Logfire mendeteksi Konektor MySQL / Piton Driver database yang menciptakan rentang untuk setiap pertanyaan.
menginstal¶
Instal logfire dengan mysql ekstra:
{{ install_logfire(extras=['mysql']) }}
penggunaan¶
Mari kita atur database MySQL menggunakan Docker dan jalankan skrip Python yang terhubung ke database menggunakan konektor MySQL untuk mendemonstrasikan cara menggunakanLogfiredengan MySQL.
¶
Menyiapkan database MySQL dengan Docker
Pertama, kita perlu menginisialisasi database MySQL. Ini dapat dengan mudah dilakukan menggunakan Docker dengan perintah berikut:
docker run --name mysql \
-e MYSQL_ROOT_PASSWORD=secret \
-e MYSQL_DATABASE=database \
-e MYSQL_USER=user \
-e MYSQL_PASSWORD=secret \
-p 3306:3306 -d mysql
Perintah ini melengkapi operasi berikut:
-
--name mysqlBeri nama wadah "MySQL." -
-e MYSQL_ROOT_PASSWORD=secretAtur kata sandi root ke "rahasia." -
-e MYSQL_DATABASE=databaseBuat database baru yang disebut "database." -
-e MYSQL_USER=userBuat pengguna baru bernama "pengguna." -
-e MYSQL_PASSWORD=secretAtur kata sandi pengguna baru ke "rahasia." -
-p 3306:3306Peta port 3306 di Docker ke port 3306 pada tuan rumah. -
-d mysqlJalankan wadah di latar belakang dan cetak ID wadah. Gambarnya adalah "mysql."
Jalankan skrip Python¶
Script Python berikut terhubung ke database MySQL dan mengeksekusi beberapa kueri SQL:
import logfire
import mysql.connector
logfire.configure()
# To instrument the whole module:
logfire.instrument_mysql()
connection = mysql.connector.connect(
host="localhost",
user="user",
password="secret",
database="database",
port=3306,
use_pure=True,
)
# Or instrument just the connection:
# connection = logfire.instrument_mysql(connection)
with logfire.span('Create table and insert data'), connection.cursor() as cursor:
cursor.execute(
'CREATE TABLE IF NOT EXISTS test (id INT AUTO_INCREMENT PRIMARY KEY, num integer, data varchar(255));'
)
# Insert some data
cursor.execute('INSERT INTO test (num, data) VALUES (%s, %s)', (100, 'abc'))
cursor.execute('INSERT INTO test (num, data) VALUES (%s, %s)', (200, 'def'))
# Query the data
cursor.execute('SELECT * FROM test')
results = cursor.fetchall() # Fetch all rows
for row in results:
print(row) # Print each row
logfire.instrument_mysql() menggunakan Instrumentasi MySQL OpenTelemetry Tas, Anda bisa Ini dia. Cari tahu lebih lanjut tentang paket.
本文总阅读量次