PostgreSQL 14, libpq ile günlüğe kaydetmeyi geliştiriyor
PG14'te libpq işlevi, uygulama sunucusu/istemci iletişiminin kullanılabilirliğini izlemek için geliştirildi. Çıkış formatını kontrol etmek için yeni seçenekler ekler.
arka fon
libpq istemci kitaplıklarından biridir; kullanıcılar istemci-sunucu iletişimini kaydetmek için PQtrace işlevini çalıştırabilir. Bu iletişim, PG tarafından kullanılan bir tür protokol bilgisidir ve şunları içerir: mesaj tipinin tanımlayıcısı, mesajın uzunluğu ve değişim bilgilerinin mesaj içeriği.
Uygulama geliştiricileri, iletişimin beklendiği gibi performans gösterip göstermediğini belirlemek için bu günlüğü kullanabilir. Örnek olarak aşağıdaki ifadeyi kullanın:
CREATE TABLESPACE gerilemesi_tblspacewith
KONUM '/ev/postgres/src/test/regress/testtablespace'
(rastgele_sayfa_maliyet = 3.0);
PG13'te PQtrace'i çağıran uygulama, belirtilen dosyaya aşağıdaki günlük türlerinin çıktısını verecektir:
PG13'te libpq tarafından oluşturulan günlükler
Geçerli PG sürümünün PQtrace günlük çıktısının bir zaman damgası içermediğine, dolayısıyla yavaş sorguları analiz etmek için referans olarak kullanılamayacağına dikkat edilmelidir. Ayrıca mesaj tanımlayıcı, sunucu/istemci mesaj uzunluğu ve çıktı içeriği ayrı bir satırda olduğundan güvenilirlik nispeten düşüktür ve protokol mesajlarının analizi daha zordur. 1 ile işaretlenen Z ve C, protokol mesajının tanımlayıcılarıdır. Her tanımlayıcının anlamını anlamak için kılavuzun Mesaj Formatları bölümüne bakın.
Özellik iyileştirmelerine genel bakış
PG14'te PQtrace işlevi, çıkış günlüğünü daha okunabilir hale getirmek ve bir zaman damgası eklemek için geliştirildi. Zaman damgasının çıktısını kontrol etmek için yeni bir PQsetTraceFlags işlevi eklendi.
Günlük çıktısını iyileştirin
PG14'teki geliştirilmiş izleme işlevi aşağıdakine benzer çıktılar üretir:
PG 14'te libpq tarafından oluşturulan günlükler
1) Zaman damgası içerir
2) Mesaj yönünün kodu daha sezgiseldir: F ön uç, B arka uç anlamına gelir
3) Protokol mesajının tanımlayıcısı yerine resmi mesaj adının çıktısını alın
4) Anlamlı protokol mesajları tek satırda görüntülenir
Günlük alma yöntemi
Daha önce olduğu gibi, libpq'nin PQtrace işlevini çağırarak günlüğe kaydetmeye başlayın. Zaman damgasının çıktısını almanız gerekmiyorsa bunu PQsetTraceFlags işlevi aracılığıyla kontrol edebilirsiniz.
Etkilemek
PQtrace, kullanıcıların yavaş sorguları tanımlamasına yardımcı olabilecek zaman damgaları üretir. Uygulama aniden yavaşlarsa, sunucunun mu yoksa istemcinin mi daha uzun sürdüğünü belirlemek için günlükteki zaman damgası farkını kontrol edebilirsiniz. Önemli protokol mesajları tek satırda yayınlanır, böylece lipq loglarına aşina olmayan kişiler sunucu ile istemci arasında gönderilen iletişimi kolayca anlayabilir. Zaman damgasının çıktısının alınıp alınmayacağını kontrol etmek için PQsetTraceFlags işlevini kullanarak bu günlüğü regresyon testi için kullanabilirsiniz. Zaman damgası çıkarmayarak günlüğü beklenen test çalıştırmasının sonuçlarıyla doldurabilir ve bunu test çalıştırması sırasında elde edilen günlükle kolayca karşılaştırabilirsiniz.
gelecek
PG14'ün libpq günlüğü zaman damgaları ve daha okunabilir metinler içerecektir. Sonraki sürümlerde kullanılabilirliği aşağıdaki yönlerden daha da geliştireceğiz:
1) Geçerli işlev, günlüğü PQtrace işlevine atanan dosyaya yazar. Bazı durumlarda günlük dosyası çok genişler ve bu da dosyanın çalışmasını etkiler. Bu sorunu çözmek için dosyanın maksimum boyutunu belirleyen bir işlev sağlamayı umuyoruz.
2) Günlük çıktısının dizin konumunu ve günlük dosyası adını, uygulamayı değiştirmeden ortama uyum sağlayacak şekilde ayarlamak için ortam değişkenleri ve bağlantı parametreleri eklemeyi umuyorum.
Bağlantılar: