Lewati ke isi

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 mysql Beri nama wadah "MySQL."

  • -e MYSQL_ROOT_PASSWORD=secret Atur kata sandi root ke "rahasia."

  • -e MYSQL_DATABASE=database Buat database baru yang disebut "database."

  • -e MYSQL_USER=user Buat pengguna baru bernama "pengguna."

  • -e MYSQL_PASSWORD=secret Atur kata sandi pengguna baru ke "rahasia."

  • -p 3306:3306 Peta port 3306 di Docker ke port 3306 pada tuan rumah.

  • -d mysql Jalankan 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.


本文总阅读量次