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

Psycopg(Отель West Copg)

logfire.instrument_psycopg() Функции доступны для использования Logfire. Проверка Psychopg Драйвер PostgreSQL. Это работает для psycopg2 и psycopg(Psycopg 3) пакет.

Дополнительные сведения см. в документации по пакетам OpenTelemetry Psycopg Instrumentation или OpenTelemetry Psycopg2 Instrumentation.

Монтаж

Установка logfire с помощью psycopg extra:

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

Или использовать psycopg2 extra:

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

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

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

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

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

docker run --name postgres \
    -e POSTGRES_USER=user \
    -e POSTGRES_PASSWORD=secret \
    -e POSTGRES_DB=database \
    -p 5432:5432 -d postgres

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

  • --name postgres Определяет имя контейнера Docker.

  • -e POSTGRES_USER=user Настройка пользователей для сервера PostgreSQL.

  • -e POSTGRES_PASSWORD=secret Установка пароля для сервера PostgreSQL.

  • -e POSTGRES_DB=database Это создаст новую базу данных под названием "database", аналогичную той, которая используется в скриптах Python.

  • -p 5432:5432 Это делает экземпляр PostgreSQL доступным на локальном компьютере через порт 5432.

  • -d postgres: Это означает образ Docker, который будет использоваться, в данном случае-«postgres».

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

Следующие сценарии Python подключаются к базе данных PostgreSQL и выполняют некоторые SQL-запросы:

import logfire
import psycopg

logfire.configure()

# To instrument the whole module:
logfire.instrument_psycopg(psycopg)
# or
logfire.instrument_psycopg('psycopg')
# or just instrument whichever modules (psycopg and/or psycopg2) are installed:
logfire.instrument_psycopg()

connection = psycopg.connect(
    'dbname=database user=user password=secret host=0.0.0.0 port=5432'
)

# Or instrument just the connection:
logfire.instrument_psycopg(connection)

with logfire.span('Create table and insert data'), connection.cursor() as cursor:
    cursor.execute(
        'CREATE TABLE IF NOT EXISTS test (id serial PRIMARY KEY, num integer, data varchar);'
    )

    # 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')

При переходе к элементу пользовательского интерфейса отображается диапазон, созданный сценарием.

Комментатор SQL

Чтобы добавить комментарии SQL в конец запроса, чтобы обогатить журнал базы данных другим контекстом, используйте параметр enable_commenter:

Скачать Logfire

Логотип ()
logfire. instrument_psycopg (enable_commenter = Истина)

Это можно использовать только при обнаружении всего модуля, но не при обнаружении отдельных соединений.

По умолчанию примечания SQL содержат значения следующих ключей:

  • db_driver
  • dbapi_threadsafety
  • dbapi_level
  • libpq_version
  • driver_paramstyle
  • opentelemetry_values

Эти ключи и значения можно включить путем передачи False Словарь, чтобы исключить любой из этих ключей commenter_options Например:

import logfire

logfire.configure()
logfire.instrument_psycopg(enable_commenter=True, commenter_options={'db_driver': False, 'dbapi_threadsafety': False})

本文总阅读量次