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=secretDéfinissez le mot de passe root sur "secret". -
-e MYSQL_DATABASE=databaseCréez une nouvelle base de données appelée « database ». -
-e MYSQL_USER=userCréez un nouvel utilisateur appelé « utilisateur ». -
-e MYSQL_PASSWORD=secretDéfinissez le mot de passe du nouvel utilisateur sur « secret ». -
-p 3306:3306Mappez le port 3306 à l'intérieur de Docker au port 3306 sur l'hôte. -
-d mysqlExé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.
本文总阅读量次