Aller au contenu

par MySQL

La méthode logfire.instrument_mysql() peut être utilisée pour détecter les pilotes de base de données MySQL Connector/Python avecLogfire, créant une portée pour chaque requête.

Installation de

Installer logfire avec mysql extra:

{{ install_logfire(extras=['mysql']) }}

Utilisation de

Configurer une base de données MySQL avec Docker et exécuter un script Python qui se connecte à la base de données en utilisant un connecteur MySQL pour montrer comment utiliserLogfireavec MySQL.

Configurer une base de données MySQL avec Docker

Tout d'abord, nous devons initialiser une base de données MySQL. cela peut être facilement fait avec Docker en utilisant la commande suivante:

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

Cette commande fait ce qui suit: .

  • --name mysql: Nommez le conteneur « mysql ».

  • -e MYSQL_ROOT_PASSWORD=secret Définissez le mot de passe root sur "secret".

  • -e MYSQL_DATABASE=database Créez une nouvelle base de données appelée « database ».

  • -e MYSQL_USER=user Créez un nouvel utilisateur appelé « utilisateur ».

  • -e MYSQL_PASSWORD=secret Définissez le mot de passe du nouvel utilisateur sur « secret ».

  • -p 3306:3306 Mappez le port 3306 à l'intérieur de Docker au port 3306 sur l'hôte.

  • -d mysql Exécutez le conteneur en arrière-plan et imprimez l'ID du conteneur. l'image est "mysql".

Exécuter un script Python

Le script Python suivant se connecte à une base de données MySQL et effectue quelques requêtes 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() Utilisation de OpenTelemetry Instrumentation MySQL Le sac, vous pouvez Ici, là où Trouvez plus d'informations sur le pack.


本文总阅读量次