My SQLの¶
logfire.instrument_mysql() メソッドは、Logfireを使用して、My SQL Connector/Pythonデータベースドライバを検出し、クエリごとにスパンを作成するために使用できます。
インストール¶
mysql extraを使用して logfire をインストールする:
{{ install_logfire(extras=['mysql']) }}
使い方¶
Dockerを使用してMy SQLデータベースを設定し、My SQLコネクタを使用してデータベースに接続するPythonスクリプトを実行して、LogfireをMy SQLで使用する方法を示します。
¶
Dockerを使用したMy SQLデータベースの設定
まず、My SQLデータベースを初期化する必要があります。これは、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=secretrootパスワードを「secret」に設定します。 -
-e MYSQL_DATABASE=databaseデータベースという名前の新しいデータベースを作成します。 -
-e MYSQL_USER=user「user」という名前の新しいユーザーを作成します。 -
-e MYSQL_PASSWORD=secret新しいユーザーのパスワードを「secret」に設定します。 -
-p 3306:3306Docker内のポート3306をホスト上のポート3306にマッピングします。 -
-d mysqlコンテナをバックグラウンドで実行し、コンテナIDを印刷します。画像は「mysql」です。
Pythonスクリプトの実行¶
次のPythonスクリプトはMy SQLデータベースに接続し、いくつかの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() ご利用になる OpenTelemometry My SQLインストルメンテーション パッケージをすることができます。ここでパッケージに関する詳細情報を検索します。
本文总阅读量次