MySQL ist.¶
logfire.instrument_mysql() Methode kann verwendet werden Logfeuer Prüfung | MySQL Connector für Python Datenbanktreiber, der für jede Abfrage einen Bereich erstellt.
Installiert¶
Installieren Sie logfire mit mysql extra:
{{ install_logfire(extras=['mysql']) }}
Verwendung¶
Lassen Sie uns eine MySQL-Datenbank mit Docker einrichten und ein Python-Skript ausführen, das über einen MySQL-Connector eine Verbindung zur Datenbank herstellt, um zu demonstrieren, wie SieLogfiremit MySQL verwenden.
¶
Einrichten einer MySQL-Datenbank mit Docker
Zuerst müssen wir eine MySQL-Datenbank initialisieren, was mit Docker einfach gemacht werden kann, indem wir den folgenden Befehl ausführen:
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
Dieser Befehl führt die folgenden Operationen durch:
-
--name mysql: Geben Sie dem Container den Namen "MySQL". -
-e MYSQL_ROOT_PASSWORD=secretSetzen Sie das Root-Passwort auf "secret". -
-e MYSQL_DATABASE=databaseErstellen Sie eine neue Datenbank namens "database". -
-e MYSQL_USER=userErstellen Sie einen neuen Benutzer mit dem Namen "Benutzer". -
-e MYSQL_PASSWORD=secretLegen Sie das Kennwort des neuen Benutzers auf „ geheim "fest. -
-p 3306:3306Ordnen Sie Port 3306 innerhalb von Docker dem Port 3306 auf dem Host zu. -
-d mysqlDer Container wird im Hintergrund ausgeführt und die Container-ID wird als "mysql" gedruckt.
Python Skripte ausführen¶
Das folgende Python-Skript stellt eine Verbindung mit der MySQL-Datenbank her und führt einige SQL-Abfragen aus:
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() Verwendung OpenTelemetry mit MySQL-Instrumentation Pack, das können Sie Hier hier Weitere Informationen zu diesem Paket.
本文总阅读量次