Перейти к содержанию

MySQL.

Метод logfire.instrument_mysql() может быть использован для обнаружения MySQL Connector/Python с помощью драйвера базы данныхLogfire, чтобы создать диапазон для каждого запроса.

Монтаж

Установите logfire с помощью mysql extra:

{{ install_logfire(extras=['mysql']) }}

Использование

Давайте настроить базу данных MySQL с помощью Docker и запустим скрипт Python, который подключается к базе данных с помощью разъема MySQL, чтобы показать, как использоватьLogfireс MySQL.

Настройка базы данных MySQL с помощью Docker

Во-первых, нам нужно инициализировать базу данных MySQL. Это можно легко сделать с помощью Docker с помощью следующей команды:

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

Эта команда выполняет следующие действия:

  • --name mysql Контейнер получил название «mysql».

  • -e MYSQL_ROOT_PASSWORD=secret Установите пароль root на "Secret".

  • -e MYSQL_DATABASE=database Создайте новую базу данных под названием "database".

  • -e MYSQL_USER=user Создайте нового пользователя с именем user.

  • -e MYSQL_PASSWORD=secret Установите пароль для нового пользователя на "secret".

  • -p 3306:3306 Составьте порт 3306 в Docker в порт 3306 на хосте.

  • -d mysql Запустите контейнер в фоновом режиме и распечатайте идентификатор контейнера. Изображение:«mysql».

Запуск скриптов Python

Следующие сценарии Python подключаются к базе данных MySQL и выполняют несколько 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() Использование OpenTelemetry MySQL Instrument Пакет, вы можете Здесь. Найдите дополнительную информацию об этом пакете.


本文总阅读量次