Zum Inhalt

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=secret Setzen Sie das Root-Passwort auf "secret".

  • -e MYSQL_DATABASE=database Erstellen Sie eine neue Datenbank namens "database".

  • -e MYSQL_USER=user Erstellen Sie einen neuen Benutzer mit dem Namen "Benutzer".

  • -e MYSQL_PASSWORD=secret Legen Sie das Kennwort des neuen Benutzers auf „ geheim "fest.

  • -p 3306:3306 Ordnen Sie Port 3306 innerhalb von Docker dem Port 3306 auf dem Host zu.

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


本文总阅读量次