Mijn SQL¶
logfire.instrument_mysql() Methoden kunnen worden gebruikt om Logvuur detecteren MySQL-connector / Python Databasestuurprogramma dat voor elke query een overspanning maakt.
installeren¶
Installeer logfire met mysql extra:
{{ install_logfire(extras=['mysql']) }}
gebruik¶
Laten we een MySQL-database opzetten met Docker en een Python-script uitvoeren dat verbinding maakt met de database met behulp van een MySQL-connector om te demonstreren hoeLogfiremet MySQL te gebruiken.
¶
Het opzetten van een MySQL database met Docker
Eerst moeten we een MySQL-database initialiseren. Dit kan eenvoudig worden gedaan met Docker met het volgende commando:
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
Deze bestelling voltooit de volgende bewerkingen:
-
--name mysqlNoem de container "MySQL". -
-e MYSQL_ROOT_PASSWORD=secretStel het root wachtwoord in op "geheim". -
-e MYSQL_DATABASE=databaseMaak een nieuwe database genaamd "database". -
-e MYSQL_USER=userMaak een nieuwe gebruiker met de naam "user". -
-e MYSQL_PASSWORD=secretStel het wachtwoord van de nieuwe gebruiker in op "geheim". -
-p 3306:3306Kaart poort 3306 in Docker naar poort 3306 op de host. -
-d mysqlVoer de container op de achtergrond uit en druk de container-ID af. De afbeelding is "mysql".
Voer een Python-script uit¶
Het volgende Python-script maakt verbinding met een MySQL-database en voert enkele SQL-query 's uit:
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() gebruiken OpenTelemetrie MySQL Instrumentatie Tas, dat kan Hier is het. Lees meer over het pakket.
本文总阅读量次