Ga naar inhoud

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 mysql Noem de container "MySQL".

  • -e MYSQL_ROOT_PASSWORD=secret Stel het root wachtwoord in op "geheim".

  • -e MYSQL_DATABASE=database Maak een nieuwe database genaamd "database".

  • -e MYSQL_USER=user Maak een nieuwe gebruiker met de naam "user".

  • -e MYSQL_PASSWORD=secret Stel het wachtwoord van de nieuwe gebruiker in op "geheim".

  • -p 3306:3306 Kaart poort 3306 in Docker naar poort 3306 op de host.

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


本文总阅读量次