SQL¶
logfire.instrument_mysql() तरीकों का उपयोग किया जा सकता है लॉगफायर पता लगाना SQL कनेक्टर / पायथन डेटाबेस ड्राइवर जो प्रत्येक क्वेरी के लिए एक स्पैन बनाता है।
स्थापित करें¶
उपयोग mysql अतिरिक्त स्थापना logfire यह क्या है?
{{ install_logfire(extras=['mysql']) }}
उपयोग¶
आइए डॉकर का उपयोग करके एक SQL डेटाबेस सेट करें और एक पायथन स्क्रिप्ट चलाएं जो डेटाबेस से जुड़ता है SQL कनेक्टर का उपयोग करके प्रदर्शित करता है कि कैसे लॉगफायर यह SQL के साथ काम करता है।
¶
डॉकर के साथ SQL डेटाबेस स्थापित करना
सबसे पहले, हमें SQL डेटाबेस को इनिशियलाइज़ करने की आवश्यकता है। यह निम्नलिखित कमांड के साथ डॉकर का उपयोग करके आसानी से किया जा सकता है:
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रूट पासवर्ड को "गुप्त" पर सेट करें। -
-e MYSQL_DATABASE=database"डेटाबेस" नामक एक नया डेटाबेस बनाएं। -
-e MYSQL_USER=user"उपयोगकर्ता" नाम का एक नया उपयोगकर्ता बनाएं। -
-e MYSQL_PASSWORD=secretनए उपयोगकर्ता का पासवर्ड "गुप्त" पर सेट करें। -
-p 3306:3306होस्ट पर 3306 पोर्ट करने के लिए डॉकर में मैप पोर्ट 3306। -
-d mysqlपृष्ठभूमि में कंटेनर चलाएं और कंटेनर आईडी प्रिंट करें। छवि "mysql" है।
पायथन स्क्रिप्ट चलाएं¶
निम्नलिखित पायथन स्क्रिप्ट 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() उपयोग ओपनटेलीमेट्री SQL इंस्ट्रूमेंटेशन बैग, आप कर सकते हैंयहाँ यह है। पैकेज के बारे में अधिक जानकारी प्राप्त करें।
本文总阅读量次