Dasar ngawas PostgreSQL. Alexey Lesovsky

Abdi nyarankeun anjeun maca transkrip laporan ku Alexey Lesovsky tina Data Egret "Dasar ngawaskeun PostgreSQL"

Dina laporan ieu, Alexey Lesovsky bakal ngobrol ngeunaan titik konci statistik post-gress, naon maranéhna hartosna, sarta naha maranéhna kudu hadir dina ngawaskeun; ngeunaan grafik naon anu kedah aya dina ngawaskeun, kumaha cara nambihanana sareng kumaha napsirkeunana. Laporan éta bakal mangpaat pikeun pangurus pangkalan data, pangurus sistem sareng pamekar anu resep kana ngungkulan Postgres.

Dasar ngawas PostgreSQL. Alexey Lesovsky

Nami abdi Alexey Lesovsky, abdi ngawakilan perusahaan Data Egret.

Sababaraha kecap ngeunaan kuring sorangan. Kuring mimiti kaluar lila pisan salaku administrator sistem.

Kuring diadministrasi sagala sorts sistem Linux Ubuntu béda, digawé di sagala rupa hal nu patali jeung Linux, i.e. virtualization, ngawaskeun, gawé bareng proxy, jsb Tapi di sawatara titik kuring mimiti dianggo leuwih mibanda database, PostgreSQL. Abdi resep pisan ka anjeunna. Sarta di sawatara titik kuring mimiti dianggo dina PostgreSQL lolobana waktu gawé kuring. Sareng laun-laun kuring janten PostgreSQL DBA.

Sareng sapanjang karir kuring, kuring sok resep kana topik statistik, monitoring, sareng telemétri. Sareng nalika kuring janten administrator sistem, kuring damel raket pisan sareng Zabbix. Na kuring nulis set leutik Aksara kawas zabbix-ekstensi. Anjeunna cukup populér di jaman na. Sareng aya kamungkinan pikeun ngawas hal-hal anu penting pisan, henteu ngan ukur Linux, tapi ogé sababaraha komponén.

Ayeuna kuring nuju damel di PostgreSQL. Abdi parantos nyerat hal anu sanés anu ngamungkinkeun anjeun damel sareng statistik PostgreSQL. Disebutna pgCenter (artikel ngeunaan Habré - Statistik post-gress tanpa saraf sareng tegangan).

Dasar ngawas PostgreSQL. Alexey Lesovsky

Catetan bubuka saeutik. Kaayaan naon anu para nasabah urang, klien urang gaduh? Aya sababaraha jenis kacilakaan patali database. Sareng nalika pangkalan data parantos dibalikeun, kapala departemén atanapi kapala pamekaran sumping sareng nyarios: "Babaturan, urang kedah ngawas pangkalan data, sabab aya kajadian anu goréng sareng urang kedah nyegah ieu kajantenan di hareup." Sareng di dieu dimimitian prosés anu pikaresepeun pikeun milih sistem ngawaskeun atanapi adaptasi sistem ngawaskeun anu tos aya ku kituna anjeun tiasa ngawas databés anjeun - PostgreSQL, MySQL atanapi sababaraha anu sanés. Sareng kolega ngawitan nyarankeun: "Kuring nguping yén aya database sapertos kitu. Hayu urang nganggo." Kolega mimiti ngabantah silih. Sarta dina tungtungna tétéla yén urang milih sababaraha jenis database, tapi ngawaskeun PostgreSQL dibere di dinya rada kirang na urang salawasna kudu nambahan hal. Candak sababaraha repositories ti GitHub, clone aranjeunna, adaptasi Aksara, sarta kumaha bae ngaropea aranjeunna. Sarta dina tungtungna eta ends nepi ka sababaraha jenis karya manual.

Dasar ngawas PostgreSQL. Alexey Lesovsky

Ku alatan éta, dina obrolan ieu kuring bakal nyobian masihan anjeun sababaraha pangaweruh ngeunaan kumaha carana milih monitoring teu ukur pikeun PostgreSQL, tapi ogé pikeun database. Sareng masihan anjeun pangaweruh anu bakal ngamungkinkeun anjeun pikeun ngarengsekeun ngawaskeun anjeun pikeun nyandak sababaraha manpaat tina éta, ku kituna anjeun tiasa ngawas databés anjeun kalayan kauntungan, supados gancang-gancang nyegah kaayaan darurat anu bakal datang.

Sareng ideu anu bakal aya dina laporan ieu tiasa langsung diadaptasi kana pangkalan data naon waé, naha éta DBMS atanapi noSQL. Ku alatan éta, aya teu ngan PostgreSQL, tapi bakal aya loba resep on kumaha ngalakukeun ieu dina PostgreSQL. Bakal aya conto patarosan, conto éntitas anu PostgreSQL gaduh pikeun ngawaskeun. Sareng upami DBMS anjeun gaduh hal anu sami anu ngamungkinkeun anjeun pikeun ngawaskeunana, anjeun ogé tiasa adaptasi, tambahkeun sareng éta bakal saé.

Dasar ngawas PostgreSQL. Alexey LesovskyAbdi moal aya dina laporan
ngobrol ngeunaan kumaha carana nganteurkeun tur nyimpen metrics. Kuring moal ngomong nanaon ngeunaan pos-processing data sarta presenting ka pamaké. Sarta kuring moal ngomong nanaon ngeunaan alerting.
Tapi sakumaha carita progresses, abdi bakal némbongkeun Potret layar béda tina monitoring aya na kumaha bae nyempad aranjeunna. Tapi sanajan kitu, kuring bakal nyobian teu ngaranan merek ku kituna teu nyieun iklan atawa anti iklan pikeun produk ieu. Ku alatan éta, sagala coincidences acak sarta ditinggalkeun ka imajinasi anjeun.
Dasar ngawas PostgreSQL. Alexey Lesovsky
Kahiji, hayu urang terang naon monitoring. Ngawaskeun mangrupikeun hal anu penting pisan. Sadayana ngartos ieu. Tapi dina waktos anu sami, ngawaskeun henteu aya hubunganana sareng produk bisnis sareng henteu langsung mangaruhan kauntungan perusahaan, janten waktosna sok dialokasikeun pikeun ngawaskeun sacara sésa-sésa. Upami urang gaduh waktos, maka urang ngawaskeun; upami urang teu gaduh waktos, maka OK, urang bakal nempatkeun éta dina backlog sareng someday urang bakal uih deui ka tugas ieu.

Ku alatan éta, tina prakna urang, nalika urang datang ka klien, ngawaskeun mindeng teu lengkep jeung teu boga naon metot hal anu bakal nulungan urang ngalakukeun pakasaban hadé jeung database. Ku kituna ngawaskeun salawasna perlu réngsé.

Basis data mangrupikeun hal anu kompleks anu ogé kedah diawaskeun, sabab pangkalan data mangrupikeun gudang inpormasi. Sareng inpormasi penting pisan pikeun perusahaan; éta henteu tiasa leungit ku cara naon waé. Tapi dina waktos anu sami, pangkalan data mangrupikeun potongan parangkat lunak anu rumit. Éta diwangun ku sajumlah ageung komponén. Sareng seueur komponén ieu kedah diawaskeun.

Dasar ngawas PostgreSQL. Alexey LesovskyLamun urang ngobrol husus ngeunaan PostgreSQL, éta bisa digambarkeun dina bentuk skéma nu diwangun ku angka nu gede ngarupakeun komponén. Komponén ieu saling berinteraksi. Sareng dina waktos anu sami, PostgreSQL ngagaduhan anu disebut subsistem Stats Collector, anu ngamungkinkeun anjeun pikeun ngumpulkeun statistik ngeunaan operasi subsistem ieu sareng nyayogikeun sababaraha jinis antarmuka ka administrator atanapi pangguna supados anjeunna tiasa ningali statistik ieu.

Statistik ieu dipidangkeun dina bentuk sakumpulan fungsi sareng pandangan anu tangtu. Éta ogé bisa disebut tabel. Hartina, ngagunakeun klien psql biasa, Anjeun bisa nyambung ka database, nyieun hiji pilih on fungsi ieu sarta pintonan, tur meunangkeun sababaraha nomer husus ngeunaan operasi tina subsistem PostgreSQL.

Anjeun tiasa nambihan nomer ieu kana sistem ngawaskeun karesep anjeun, ngagambar grafik, nambihan fungsi sareng kéngingkeun analitik dina jangka panjang.

Tapi dina laporan ieu kuring moal nutupan sakabéh fungsi ieu sagemblengna, sabab bisa nyandak sakabeh poé. Kuring sacara harfiah bakal ngabahas dua, tilu atanapi opat hal sareng nyarioskeun ka anjeun kumaha aranjeunna ngabantosan ngawaskeun langkung saé.
Dasar ngawas PostgreSQL. Alexey Lesovsky
Tur upami urang ngobrol ngeunaan monitoring database, teras naon anu kudu diawaskeun? Anu mimiti, urang kedah ngawas kasadiaan, sabab pangkalan data mangrupikeun jasa anu nyayogikeun aksés data ka klien sareng urang kedah ngawas kasadiaan, sareng ogé nyayogikeun sababaraha ciri kualitatif sareng kuantitatif na.

Dasar ngawas PostgreSQL. Alexey Lesovsky

Urang ogé kudu ngawas klien nu nyambung ka database urang, sabab bisa jadi duanana klien normal jeung klien ngabahayakeun nu bisa ngarugikeun database. Éta ogé kedah diawaskeun sareng kagiatanana dilacak.

Dasar ngawas PostgreSQL. Alexey Lesovsky

Nalika klien nyambung ka databés, éta écés yén maranéhna ngawitan dianggo kalayan data urang, jadi urang kudu ngawas kumaha klien dianggo kalayan data: kalawan nu tabel, sarta ka extent Lesser, kalawan nu indexes. Nyaéta, urang kedah meunteun beban kerja anu diciptakeun ku klien kami.

Dasar ngawas PostgreSQL. Alexey Lesovsky

Tapi workload ogé diwangun, tangtosna, requests. Aplikasi nyambung ka database, aksés data maké queries, jadi hal anu penting pikeun evaluate queries naon urang kudu di database, ngawas kacukupan maranéhanana, yén maranéhna teu crookedly ditulis, yén sababaraha pilihan kudu ditulis ulang tur dijieun ambéh maranéhanana bisa leuwih gancang. tur kalawan kinerja hadé.

Dasar ngawas PostgreSQL. Alexey Lesovsky

Sarta saprak urang ngobrol ngeunaan database a, database salawasna prosés tukang. Prosés latar mantuan ngajaga kinerja database dina tingkat alus, ngarah merlukeun jumlah nu tangtu sumberdaya pikeun diri beroperasi. Sareng dina waktos anu sami, aranjeunna tiasa tumpang tindih sareng sumber paménta klien, ku kituna prosés latar tukang rakus tiasa langsung mangaruhan kinerja pamundut klien. Ku alatan éta, maranéhanana ogé kudu diawaskeun jeung dilacak sangkan teu aya distorsi dina prosés latar tukang.

Dasar ngawas PostgreSQL. Alexey Lesovsky

Sareng sadaya ieu dina hal ngawaskeun pangkalan data tetep dina métrik sistem. Tapi tempo yén lolobana infrastruktur urang pindah ka awan, métrik sistem hiji host individu salawasna diudar kana latar tukang. Tapi dina pangkalan data aranjeunna masih relevan sareng, tangtosna, éta ogé kedah ngawas métrik sistem.

Dasar ngawas PostgreSQL. Alexey Lesovsky

Sadayana kirang langkung saé kalayan métrik sistem, sadaya sistem ngawaskeun modéren parantos ngadukung métrik ieu, tapi sacara umum, sababaraha komponén masih henteu cekap sareng sababaraha hal anu kedah ditambihan. Kuring ogé bakal nyabak aranjeunna, bakal aya sababaraha slides ngeunaan aranjeunna.

Dasar ngawas PostgreSQL. Alexey Lesovsky
Titik mimiti rencana nyaéta diakses. Naon aksésibilitas? Kasadiaan dina pamahaman kuring nyaéta kamampuan dasar pikeun ngalayanan sambungan, nyaéta dasarna diangkat, éta, salaku jasa, nampi sambungan ti klien. Sareng aksésibilitas ieu tiasa ditaksir ku sababaraha ciri. Hal ieu kacida merenah pikeun mintonkeun ciri ieu dina dasbor.

Dasar ngawas PostgreSQL. Alexey Lesovsky
Sadayana terang naon dasbor. Ieu nalika anjeun nyandak hiji tampilan dina layar dimana inpormasi anu diperyogikeun diringkeskeun. Sareng anjeun tiasa langsung nangtukeun naha aya masalah dina pangkalan data atanapi henteu.
Sasuai, kasadiaan pangkalan data sareng ciri konci anu sanés kedah ditampilkeun dina dasbor supados inpormasi ieu sayogi sareng salawasna sayogi pikeun anjeun. Sababaraha detil tambahan anu parantos ngabantosan dina panalungtikan kajadian, nalika nalungtik sababaraha kaayaan darurat, aranjeunna kedah disimpen dina dasbor sekundér, atanapi disumputkeun dina tautan drilldown anu nuju ka sistem ngawaskeun pihak katilu.

Dasar ngawas PostgreSQL. Alexey Lesovsky

Conto salah sahiji sistem monitoring anu terkenal. Ieu sistem ngawaskeun pisan cool. Anjeunna ngumpulkeun seueur data, tapi tina sudut pandang kuring, anjeunna gaduh konsép dasbor anu anéh. Aya tumbu ka "nyieun dasbor". Tapi mun anjeun nyieun dasbor, Anjeun nyieun daptar dua kolom, daptar grafik. Sareng nalika anjeun kedah ningali hiji hal, anjeun mimiti ngaklik beurit, ngagulung, milarian bagan anu dipikahoyong. Sareng ieu peryogi waktos, nyaéta henteu aya dasbor sapertos kitu. Aya ngan daptar bagan.

Dasar ngawas PostgreSQL. Alexey Lesovsky

Naon anu anjeun kedah tambahkeun kana dasbor ieu? Anjeun tiasa mimitian ku ciri sapertos waktos respon. PostgreSQL gaduh pg_stat_statements view. Éta ditumpurkeun sacara standar, tapi éta mangrupikeun salah sahiji pandangan sistem anu penting anu kedah diaktipkeun sareng dianggo. Éta nyimpen inpormasi ngeunaan sadaya patarosan anu dijalankeun anu parantos dilaksanakeun dina pangkalan data.

Sasuai, urang tiasa ngamimitian tina kanyataan yén urang tiasa nyandak total waktos palaksanaan sadaya pamundut sareng ngabagi ku jumlah pamundut nganggo widang di luhur. Tapi ieu suhu rata-rata di rumah sakit. Urang bisa mimitian ti widang séjén - waktu palaksanaan query minimum, maksimum sarta median. Sareng urang tiasa ngawangun persentil; PostgreSQL ngagaduhan fungsi anu saluyu pikeun ieu. Sareng urang tiasa nampi sababaraha nomer anu nunjukkeun waktos réspon database kami pikeun pamundut anu parantos réngsé, nyaéta kami henteu ngaéksekusi pamundut palsu 'pilih 1' sareng ningali waktos réspon, tapi urang nganalisis waktos réspon pikeun pamundut anu parantos réngsé sareng ngagambar. boh inohong misah, atawa urang ngawangun grafik dumasar kana eta.

Éta ogé penting pikeun ngawas jumlah kasalahan anu ayeuna dihasilkeun ku sistem. Sareng pikeun ieu anjeun tiasa nganggo pg_stat_database view. Urang difokuskeun widang xact_rollback. widang ieu nembongkeun teu ngan jumlah rollbacks anu lumangsung dina database, tapi ogé nyokot kana akun jumlah kasalahan. Sacara rélatif, urang tiasa ningalikeun inohong ieu dina dasbor urang sareng ningali sabaraha kasalahan anu ayeuna urang gaduh. Upami aya seueur kasalahan, maka ieu mangrupikeun alesan anu hadé pikeun ningali log sareng ningali naon kasalahanana sareng naha éta lumangsung, teras investasi sareng ngabéréskeunana.

Dasar ngawas PostgreSQL. Alexey Lesovsky

Anjeun tiasa nambihan hal sapertos Tachometer. Ieu mangrupikeun jumlah transaksi per detik sareng jumlah pamundut per detik. Sacara rélatif, anjeun tiasa nganggo angka-angka ieu salaku kinerja database anjeun ayeuna sareng perhatikeun naha aya puncak dina pamundut, puncak dina transaksi, atanapi, sabalikna, naha pangkalan data henteu diunduh kusabab sababaraha backend parantos gagal. Penting pikeun salawasna ningal inohong ieu sareng émut yén pikeun proyék kami prestasi sapertos kitu normal, tapi nilai-nilai di luhur sareng di handap parantos aya sababaraha masalah sareng teu kaharti, anu hartosna urang kedah ningal naha angka-angka ieu jadi luhur.

Pikeun ngira-ngira jumlah transaksi, urang tiasa ningali deui pg_stat_database view. Urang bisa nambahan jumlah commits jeung jumlah rollbacks tur meunangkeun jumlah transaksi per detik.

Naha sadayana ngartos yén sababaraha pamundut tiasa cocog kana hiji transaksi? Kituna TPS jeung QPS rada béda.

Jumlah requests per detik tiasa didapet ti pg_stat_statements tur saukur ngitung jumlah sadaya requests réngsé. Éta jelas yén urang ngabandingkeun nilai ayeuna sareng anu sateuacana, ngirangan éta, kéngingkeun délta, sareng kéngingkeun kuantitas.

Dasar ngawas PostgreSQL. Alexey Lesovsky

Anjeun tiasa nambihan métrik tambahan upami hoyong, anu ogé ngabantosan ngevaluasi kasadiaan databés kami sareng ngawas naha aya gangguan.

Salah sahiji métrik ieu nyaéta uptime. Tapi uptime di PostgreSQL rada sesah. Kuring gé ngabejaan Anjeun naha. Nalika PostgreSQL parantos ngamimitian, uptime ngamimitian ngalaporkeun. Tapi lamun di sawatara titik, contona, sababaraha tugas ieu ngajalankeun peuting, hiji OOM-killer sumping sarta forcibly terminated prosés anak PostgreSQL, lajeng dina hal ieu PostgreSQL terminates sambungan sadaya klien, resets wewengkon memori sharded tur mimitian recovery ti titik dipariksa panungtungan. Sareng nalika pamulihan ieu tina pos pamariksaan tetep, pangkalan data henteu nampi sambungan, nyaéta kaayaan ieu tiasa ditaksir salaku downtime. Tapi uptime counter moal reset, sabab nyokot akun waktu ngamimitian postmaster ti moment pisan munggaran. Ku alatan éta, kaayaan kitu bisa skipped.

Anjeun oge kedah ngawas jumlah pagawe vakum. Naha sadayana terang naon autovacuum dina PostgreSQL? Ieu mangrupikeun subsistem anu pikaresepeun dina PostgreSQL. Loba artikel geus ditulis ngeunaan dirina, loba laporan geus dijieun. Aya seueur diskusi ngeunaan vakum sareng kumaha éta kedah dianggo. Seueur anu nganggap éta jahat anu diperyogikeun. Tapi éta kumaha éta. Ieu mangrupikeun analog tina kolektor sampah anu ngabersihkeun vérsi jajaran anu henteu diperyogikeun ku transaksi naon waé sareng ngabebaskeun rohangan dina tabel sareng indéks pikeun barisan énggal.

Naha anjeun kedah ngawaskeunana? Kusabab vakum kadang nyeri pisan. Ieu meakeun jumlah badag sumberdaya sarta requests klien mimiti sangsara salaku hasilna.

Sarta eta kudu diawaskeun ngaliwatan pg_stat_activity view, nu kuring bakal ngobrol ngeunaan dina bagian salajengna. Panempoan ieu nunjukkeun kagiatan ayeuna dina pangkalan data. Sareng ngalangkungan kagiatan ieu urang tiasa ngalacak jumlah vakum anu tiasa dianggo ayeuna. Urang tiasa ngalacak vakum sareng ningali yén upami urang parantos ngaleuwihan wates éta, ieu mangrupikeun alesan pikeun ningali kana setélan PostgreSQL sareng kumaha waé ngaoptimalkeun operasi vakum.

Hal anu sanés ngeunaan PostgreSQL nyaéta PostgreSQL sakitu pisan tina transaksi anu panjang. Utamana tina transaksi anu nongkrong kanggo waktos anu lami sareng henteu ngalakukeun nanaon. Ieu nu disebut stat dianggurkeun-di-transaksi. Transaksi sapertos kitu nahan konci sareng nyegah vakum damel. Jeung salaku hasilna, tabel ngabareuhan jeung ngaronjat ukuranana. Sareng patarosan anu dianggo sareng tabel ieu ngawitan dianggo langkung laun, sabab anjeun kedah nyorong sadaya vérsi barisan anu lami tina mémori kana disk sareng tonggong. Ku alatan éta, waktu, lilana transaksi pangpanjangna, requests vakum pangpanjangna ogé perlu diawaskeun. Sareng upami urang ningali sababaraha prosés anu parantos lami dijalankeun, parantos langkung ti 10-20-30 menit pikeun beban OLTP, maka urang kedah nengetan aranjeunna sareng maksa ngeureunkeunana, atanapi ngaoptimalkeun aplikasi supados aranjeunna teu disebut jeung teu ngagantung jadi lila. Pikeun beban kerja analitik, 10-20-30 menit normal, aya ogé anu langkung panjang.

Dasar ngawas PostgreSQL. Alexey Lesovsky
Salajengna urang boga pilihan jeung klien disambungkeun. Nalika kami parantos nyiptakeun dasbor sareng masangkeun métrik kasadiaan konci dina éta, kami ogé tiasa nambihan inpormasi tambahan ngeunaan klien anu disambungkeun di dinya.

Émbaran ngeunaan klien disambungkeun penting sabab, ti sudut pandang PostgreSQL, klien béda. Aya klien alus sarta aya klien goréng.

Hiji conto basajan. Ku klien kuring ngartos aplikasi. Aplikasina parantos nyambung ka pangkalan data sareng langsung mimiti ngirim pamenta na di dinya, prosés database sareng ngalaksanakeunana, sareng ngabalikeun hasil ka klien. Ieu mangrupikeun klien anu saé sareng leres.

Aya kaayaan nalika klien geus disambungkeun, eta nahan sambungan, tapi teu nanaon. Éta dina kaayaan dianggurkeun.

Tapi aya klien goréng. Contona, klien sarua disambungkeun, muka transaksi, ngalakukeun hal dina database lajeng lebet kana kode, contona, pikeun ngakses hiji sumber éksternal atawa ngolah data narima aya. Tapi anjeunna henteu nutup transaksi. Jeung urus hangs dina database jeung dilaksanakeun dina konci dina jalur. Ieu kaayaan goréng. Sareng upami ujug-ujug hiji aplikasi dimana waé di jerona gagal sareng pengecualian, maka transaksi tiasa tetep kabuka pikeun waktos anu lami. Sareng ieu langsung mangaruhan kinerja PostgreSQL. PostgreSQL bakal langkung laun. Kituna, hal anu penting pikeun ngalacak klien sapertos di luhur timely tur forcefully nungtungan karya maranéhanana. Sareng anjeun kedah ngaoptimalkeun aplikasi anjeun supados kaayaan sapertos kitu henteu kajantenan.

klien goréng séjén anu ngantosan klien. Tapi maranéhna jadi goréng alatan kaayaan. Contona, hiji urus dianggurkeun basajan: eta bisa muka transaksi, nyandak konci dina sababaraha garis, lajeng wae dina kode eta bakal gagal, ninggalkeun urus nongkrong. Klién anu sanés bakal sumping sareng nyuhunkeun data anu sami, tapi anjeunna bakal mendakan konci, sabab urus gantung éta parantos ngagaduhan konci dina sababaraha barisan anu diperyogikeun. Sareng transaksi anu kadua bakal ngagantung ngantosan transaksi anu munggaran réngsé atanapi ditutup sacara paksa ku pangurus. Ku alatan éta, transaksi pending bisa ngumpulkeun jeung ngeusian wates sambungan database. Sareng nalika watesna pinuh, aplikasi henteu tiasa dianggo deui sareng pangkalan data. Ieu mangrupikeun kaayaan darurat pikeun proyék éta. Ku alatan éta, klien goréng perlu dilacak jeung ngabales di luhur timely.

Dasar ngawas PostgreSQL. Alexey Lesovsky

conto sejen ngawaskeun. Sareng parantos aya dasbor anu lumayan di dieu. Aya inpormasi ngeunaan sambungan di luhur. sambungan DB - 8 lembar. Sareng éta sadayana. Urang teu boga informasi ngeunaan nu klien aktip, nu klien ngan dianggurkeun, ngalakukeun nanaon. Henteu aya inpormasi ngeunaan transaksi anu ditangguhkeun sareng sambungan anu ditangguhkeun, nyaéta ieu mangrupikeun inohong anu nunjukkeun jumlah sambungan sareng éta. Lajeng nebak keur diri.
Dasar ngawas PostgreSQL. Alexey Lesovsky
Sasuai, pikeun nambahkeun inpo ieu pikeun ngawaskeun, Anjeun kudu ngakses pg_stat_activity Sistim view. Upami anjeun nyéépkeun seueur waktos di PostgreSQL, maka ieu mangrupikeun pandangan anu saé anu kedah janten réréncangan anjeun, sabab nunjukkeun kagiatan ayeuna di PostgreSQL, nyaéta naon anu lumangsung di dinya. Pikeun unggal prosés aya hiji garis misah nu nembongkeun informasi ngeunaan prosés ieu: ti mana host sambungan dijieun, dina naon pamaké, dina ngaran naon, nalika urus ieu dimimitian, pamundut naon ayeuna ngajalankeun, pamundut naon panungtungan dieksekusi. Jeung, sasuai, urang bisa evaluate kaayaan klien urang ngagunakeun widang stat. Sacara rélatif, urang tiasa ngagolongkeun ku widang ieu sareng kéngingkeun stats anu ayeuna aya dina pangkalan data sareng jumlah sambungan anu gaduh stat ieu dina pangkalan data. Sareng urang tiasa ngintunkeun nomer anu parantos katampi ka monitoring kami sareng ngagambar grafik dumasar kana éta.
Éta ogé penting pikeun evaluate lilana urus. Kuring geus ngomong yén hal anu penting pikeun evaluate durasi vacuums, tapi transaksi dievaluasi dina cara nu sarua. Aya widang xact_start sareng query_start. Aranjeunna, rélatif diomongkeun, nembongkeun waktu mimiti urus jeung waktu mimiti pamundut teh. Urang nyokot ayeuna () fungsi, nu nembongkeun timestamp ayeuna, sarta subtract transaksi sarta pamundut timestamp. Sarta kami meunang lilana urus, lilana pamundut.

Upami urang ningali transaksi anu panjang, urang kedah ngalengkepanana. Pikeun beban OLTP, transaksi panjang parantos langkung ti 1-2-3 menit. Pikeun beban kerja OLAP, transaksi panjang normal, tapi upami aranjeunna peryogi langkung ti dua jam pikeun réngsé, ieu ogé mangrupikeun tanda yén urang gaduh skew dimana waé.

Dasar ngawas PostgreSQL. Alexey Lesovsky
Sakali klien geus nyambung ka database, aranjeunna mimiti gawé bareng data urang. Aranjeunna ngakses tabel, aranjeunna ngakses indexes pikeun meunangkeun data tina tabél. Jeung hal anu penting pikeun evaluate kumaha klien berinteraksi sareng data ieu.

Ieu diperlukeun dina raraga evaluate workload urang jeung kasarna ngartos tabel nu "hottest" pikeun urang. Contona, ieu diperlukeun dina kaayaan dimana urang rék nempatkeun "panas" tabel dina sababaraha jenis gudang SSD gancang. Contona, sababaraha tabel arsip nu urang geus lila teu dipaké bisa dipindahkeun ka sababaraha jenis arsip "tiis", mun SATA drive na hayu aranjeunna cicing di dinya, aranjeunna bakal diaksés sakumaha diperlukeun.

Ieu ogé kapaké pikeun ngadeteksi anomali saatos sékrési sareng panyebaran. Hayu urang nyebutkeun proyék geus ngarilis sababaraha fitur anyar. Contona, urang ditambahkeun pungsi anyar pikeun gawé bareng database. Tur upami urang plot grafik pamakéan tabel, urang bisa kalayan gampang ngadeteksi anomali ieu dina grafik ieu. Contona, update bursts atawa mupus bursts. Éta bakal katingali pisan.

Anjeun ogé tiasa ngadeteksi anomali dina statistik "ngambang". Naon éta hartosna? PostgreSQL gaduh jadwal pamundut anu kuat sareng saé pisan. Jeung pamekar bakti loba waktu pikeun ngembangkeun na. Kumaha anjeunna dianggo? Dina raraga nyieun rencana alus, PostgreSQL ngumpulkeun statistik ngeunaan distribusi data dina tabel dina interval waktu nu tangtu sarta kalawan frékuénsi nu tangtu. Ieu mangrupikeun nilai anu paling umum: jumlah nilai unik, inpormasi ngeunaan NULL dina tabél, seueur inpormasi.

Dumasar statistik ieu, Nu Ngarencana ngawangun sababaraha patarosan, milih anu paling optimal, sareng nganggo rencana pamundut ieu pikeun ngalaksanakeun pamundut sorangan sareng ngabalikeun data.

Sarta eta kajadian yén statistik "ngambang". Kualitas jeung kuantitas data kumaha bae robah dina tabél, tapi statistik teu dikumpulkeun. Jeung rencana kabentuk bisa jadi teu optimal. Tur upami rencana urang tétéla jadi suboptimal dumasar kana monitoring dikumpulkeun, dumasar kana tabel, urang bakal tiasa ningali anomali ieu. Contona, wae data robah qualitatively na tinimbang indéks, a pass sequential ngaliwatan tabél mimiti dipaké, i.e. lamun query perlu balik ngan 100 jajar (aya wates 100), lajeng pilarian lengkep bakal dipigawé pikeun query ieu. Sarta ieu salawasna boga pangaruh pisan goréng dina kinerja.

Sareng urang tiasa ningali ieu dina ngawaskeun. Jeung geus kasampak di query ieu, ngajalankeun hiji ngajelaskeun eta, ngumpulkeun statistik, ngawangun hiji indéks tambahan anyar. Sareng parantos ngabales masalah ieu. Éta sababna penting.

Dasar ngawas PostgreSQL. Alexey Lesovsky

conto sejen ngawaskeun. Jigana loba jalma dipikawanoh anjeunna sabab anjeunna pohara populér. Anu ngagunakeun eta dina proyék maranéhanana Prometheus? Saha anu ngagunakeun produk ieu babarengan sareng Prometheus? Kanyataanna nyaéta dina gudang standar ngawaskeun ieu aya dasbor pikeun gawé bareng PostgreSQL - postgres_exporter Prometheus. Tapi aya hiji rinci goréng.

Dasar ngawas PostgreSQL. Alexey Lesovsky

Aya sababaraha grafik. Sareng bait dituduhkeun salaku persatuan, nyaéta aya 5 grafik. Ieu mangrupikeun Selapkeun data, Ngamutahirkeun data, Hapus data, Dipulut data sareng Balikkeun data. Unit ukur nyaéta bait. Tapi hal éta statistik dina PostgreSQL mulih data dina tuple (baris). Sareng, sasuai, grafik ieu mangrupikeun cara anu saé pikeun ngaremehkeun beban kerja anjeun sababaraha kali, puluhan kali, sabab tuple sanés bait, tuple mangrupikeun senar, seueur bait sareng panjangna variabel. Nyaéta, ngitung beban kerja dina bait nganggo tuple mangrupikeun tugas anu teu réalistis atanapi sesah pisan. Ku alatan éta, mun anjeun migunakeun dasbor atawa diwangun-di ngawaskeun, éta salawasna penting pikeun ngarti yén gawéna leres tur mulih Anjeun data ditaksir leres.

Dasar ngawas PostgreSQL. Alexey Lesovsky

Kumaha carana kéngingkeun statistik dina tabél ieu? Pikeun tujuan ieu, PostgreSQL ngagaduhan kulawarga pandangan anu tangtu. Jeung pintonan utama nyaéta pg_stat_user_tables. User_tables - ieu hartina tabel dijieun atas nama pamaké. Sabalikna, aya pandangan sistem anu dianggo ku PostgreSQL sorangan. Sareng aya tabel kasimpulan Alltables, anu kalebet sistem sareng pangguna. Anjeun tiasa mimitian ti salah sahiji aranjeunna anu paling anjeun resep.

Ngagunakeun widang di luhur anjeun bisa estimasi jumlah inserts, apdet sarta ngahapus. Conto dasbor anu ku kuring dianggo nganggo widang ieu pikeun meunteun karakteristik beban kerja. Ku alatan éta, urang ogé bisa ngawangun on aranjeunna. Tapi éta patut remembering yén ieu tuples, teu bait, jadi urang teu bisa ngan ngalakukeun hal eta dina bait.

Dumasar kana data ieu, urang tiasa ngawangun anu disebut tabel TopN. Contona, Top-5, Top-10. Sareng anjeun tiasa ngalacak tabel panas anu didaur ulang langkung seueur tibatan anu sanés. Contona, 5 "panas" tabel pikeun sisipan. Sareng nganggo tabel TopN ieu, kami ngaevaluasi beban kerja urang sareng tiasa ngevaluasi beban kerja saatos sékrési, pembaruan, sareng panyebaran.

Éta ogé penting pikeun evaluate ukuran tabel, sabab kadang pamekar gulung kaluar fitur anyar, sarta tabel urang ngawitan ngabareuhan dina ukuran badag maranéhna, sabab mutuskeun pikeun nambahkeun jumlah tambahan data, tapi teu ngaduga kumaha ieu bakal. mangaruhan ukuran database. Kasus sapertos kitu ogé janten kejutan pikeun urang.

Dasar ngawas PostgreSQL. Alexey Lesovsky

Sareng ayeuna patarosan leutik pikeun anjeun. Naon patarosan timbul nalika anjeun perhatikeun beban dina server database anjeun? Naon patarosan salajengna anjeun gaduh?

Dasar ngawas PostgreSQL. Alexey Lesovsky

Tapi dina kanyataanana timbul patarosan saperti kieu. requests naon beban ngabalukarkeun? Nyaéta, éta henteu pikaresepeun pikeun ningali prosés anu disababkeun ku beban. Éta jelas yén upami host gaduh pangkalan data, maka pangkalan data dijalankeun di dinya sareng écés yén ngan ukur database anu bakal dibuang di dinya. Upami urang muka Top, urang bakal ningali aya daptar prosés dina PostgreSQL anu ngalakukeun hiji hal. Éta moal écés ti Top naon anu aranjeunna lakukeun.

Dasar ngawas PostgreSQL. Alexey Lesovsky

Sasuai, anjeun kedah milarian patarosan anu nyababkeun beban anu paling luhur, sabab tuning queries biasana masihan kauntungan langkung seueur tibatan nyetél PostgreSQL atanapi konfigurasi sistem operasi, atanapi bahkan nyetél hardware. Numutkeun perkiraan kuring, ieu kirang langkung 80-85-90%. Sareng ieu dilakukeun langkung gancang. Langkung gancang pikeun ngabenerkeun pamundut tibatan ngabenerkeun konfigurasi, ngajadwalkeun balikan deui, khususna upami pangkalan data teu tiasa dibalikan deui, atanapi nambihan hardware. Leuwih gampang pikeun nulis balik query wae atawa tambahkeun hiji indéks pikeun meunangkeun hasil hadé tina query ieu.

Dasar ngawas PostgreSQL. Alexey Lesovsky
Sasuai, perlu pikeun ngawas requests jeung kacukupan maranéhanana. Hayu urang nyandak conto sejen tina monitoring. Sareng di dieu ogé, sigana aya monitoring anu saé. Aya informasi ngeunaan réplikasi, aya informasi ngeunaan throughput, blocking, utilization sumberdaya. Sagalana geus rupa, tapi euweuh informasi on requests. Henteu écés naon patarosan anu dijalankeun dina database urang, sabaraha lami aranjeunna ngajalankeun, sabaraha patarosan ieu. Urang salawasna kudu boga informasi ieu dina monitoring urang.

Dasar ngawas PostgreSQL. Alexey Lesovsky

Sareng pikeun kéngingkeun inpormasi ieu kami tiasa nganggo modul pg_stat_statements. Dumasar éta, anjeun tiasa ngawangun rupa-rupa grafik. Contona, Anjeun bisa ménta inpo ngeunaan query pangseringna, nyaeta, dina queries nu paling sering dieksekusi. Leres, saatos panyebaran éta ogé mangpaat pisan pikeun ningali éta sareng ngartos upami aya surge dina pamundut.

Anjeun tiasa ngawas patarosan anu pangpanjangna, nyaéta, patarosan anu pangpanjangna pikeun réngsé. Aranjeunna ngajalankeun on processor, aranjeunna meakeun I / The. Urang ogé bisa evaluate ieu ngagunakeun widang total_time, mean_time, blk_write_time na blk_read_time.

Urang bisa evaluate jeung ngawas requests heaviest dina watesan pamakéan sumberdaya, nu maca tina disk, nu gawéna kalayan memori, atawa, sabalikna, nyieun sababaraha jenis beban tulisan.

Urang tiasa evaluate requests paling berehan. Ieu mangrupikeun patarosan anu ngabalikeun sajumlah ageung baris. Salaku conto, ieu tiasa janten sababaraha pamundut dimana aranjeunna hilap netepkeun wates. Sarta eta ngan saukur mulih sakabéh eusi tabel atawa query sakuliah tabel queried.

Sareng anjeun ogé tiasa ngawas patarosan anu nganggo file samentawis atanapi tabel samentawis.

Dasar ngawas PostgreSQL. Alexey Lesovsky
Sareng urang masih gaduh prosés latar tukang. Prosés latar utamana nyaéta checkpoints atawa disebut ogé checkpoints, ieu autovacuum jeung réplikasi.

Dasar ngawas PostgreSQL. Alexey Lesovsky

conto sejen ngawaskeun. Aya tab Pangropéa di kénca, angkat ka dinya sareng miharep ningali anu mangpaat. Tapi di dieu ngan ukur waktos operasi vakum sareng koleksi statistik, teu aya deui. Ieu mangrupikeun inpormasi anu kirang pisan, janten urang kedah gaduh inpormasi ngeunaan kumaha prosés latar tukang dina database urang sareng naha aya masalah tina padamelan na.

Dasar ngawas PostgreSQL. Alexey Lesovsky

Lamun urang nempo checkpoints, urang kudu inget yen checkpoints siram kaca kotor ti wewengkon memori sharded kana disk, lajeng nyieun checkpoint a. Sareng pamariksaan ieu teras tiasa dianggo salaku tempat pamulihan upami PostgreSQL ujug-ujug ditungtungan dina kaayaan darurat.

Sasuai, pikeun siram sadaya halaman "kotor" kana disk, anjeun kedah ngalakukeun sababaraha tulisan. Na, sakumaha aturan, dina sistem kalawan jumlah badag memori, ieu téh loba. Sareng upami urang sering ngalakukeun pamariksaan dina interval anu pondok, maka kinerja disk bakal turun sacara signifikan. Sareng pamundut klien bakal kakurangan tina kakurangan sumber. Aranjeunna bakal bersaing pikeun sumber daya sareng kakurangan produktivitas.

Sasuai, ngaliwatan pg_stat_bgwriter ngagunakeun widang husus urang bisa ngawas jumlah checkpoints anu lumangsung. Sareng upami urang gaduh seueur pamariksaan dina sababaraha waktos (dina 10-15-20 menit, satengah jam), contona, 3-4-5, maka ieu tiasa janten masalah. Sareng anjeun kedah milarian dina pangkalan data, tingali dina konfigurasi, naon anu nyababkeun seueur pamariksaan. Meureun aya sababaraha jenis rekaman badag lumangsung. Kami parantos tiasa ngaevaluasi beban kerja, sabab kami parantos nambihan grafik beban kerja. Urang geus bisa tweak parameter checkpoint tur pastikeun yén maranéhna teu greatly mangaruhan kinerja query.

Dasar ngawas PostgreSQL. Alexey Lesovsky

Kuring datang deui ka autovacuum deui sabab éta hal saperti kitu, sakumaha ceuk kuring, nu bisa kalayan gampang nambahkeun up duanana disk jeung kinerja query, jadi sok penting pikeun estimasi jumlah autovacuum.

Jumlah pagawe autovacuum dina database diwatesan. Sacara standar, aya tilu di antarana, jadi lamun urang salawasna boga tilu pagawe gawe dina database, ieu ngandung harti yén autovacuum urang teu ngonpigurasi, urang kudu ngangkat wates, ningali balik setélan autovacuum tur asup kana konfigurasi.
Kadé evaluate nu pagawe vakum kami boga. Boh eta diawalan ti pamaké, datang DBA tur sacara manual dibuka sababaraha jenis vakum, sarta ieu dijieun beban. Urang boga sababaraha jenis masalah. Atawa ieu jumlah vacuums nu unscrew counter urus. Kanggo sababaraha vérsi PostgreSQL ieu mangrupikeun vakum anu beurat pisan. Jeung maranéhna bisa kalayan gampang nambahkeun up kinerja sabab maca sakabéh méja, nyeken sagala blok dina tabél.

Jeung, tangtosna, durasi vacuums. Upami urang gaduh vakum anu tahan lami anu ngajalankeun waktos anu lami, maka ieu hartosna urang kedah perhatosan deui kana konfigurasi vakum sareng panginten nimbangkeun deui setélanna. Kusabab kaayaan tiasa timbul nalika vakum dianggo dina méja kanggo waktos anu lami (3-4 jam), tapi salami waktos vakum damel, seueur barisan paéh tiasa ngumpulkeun deui dina méja. Jeung pas vakum geus réngsé, manéhna kudu vakum tabel ieu deui. Sarta kami datang ka kaayaan - hiji vakum sajajalan. Sarta dina hal ieu, vakum teu Cope jeung karyana, sarta tabel saeutik demi saeutik mimiti ngabareuhan dina ukuran, sanajan volume data mangpaat dina eta tetep sarua. Ku alatan éta, salila vacuums lila, urang salawasna kasampak di konfigurasi jeung cobaan pikeun ngaoptimalkeun eta, tapi dina waktos anu sareng ku kituna kinerja requests klien teu sangsara.

Dasar ngawas PostgreSQL. Alexey Lesovsky

Kiwari praktis henteu aya pamasangan PostgreSQL anu henteu gaduh réplikasi streaming. Réplikasi nyaéta prosés mindahkeun data tina master kana réplika.

Réplikasi dina PostgreSQL dilakukeun ngaliwatan log transaksi. Wizard ngahasilkeun log transaksi. Log urus ngarambat ngaliwatan sambungan jaringan pikeun replica nu, lajeng eta dihasilkeun dina replica nu. Ieu basajan.

Sasuai, pg_stat_replication view dipaké pikeun ngawas réplikasi lag. Tapi henteu sadayana saderhana sareng anjeunna. Dina versi 10, pintonan geus undergone sababaraha parobahan. Firstly, sababaraha widang geus diganti ngaranna. Jeung sababaraha widang geus ditambahkeun. Dina versi 10, widang muncul nu ngidinan Anjeun pikeun estimasi réplikasi lag dina sababaraha detik. Ieu pisan nyaman. Saméméh vérsi 10, ieu mungkin keur estimasi réplikasi lag dina bait. Pilihan ieu tetep dina versi 10, nyaéta anjeun tiasa milih naon anu langkung merenah pikeun anjeun - estimasi lag dina bait atanapi estimasi lag dina detik. Loba jalma ngalakukeun duanana.

Tapi sanajan kitu, dina raraga evaluate lag réplikasi, anjeun kudu nyaho posisi log dina urus. Sareng posisi log transaksi ieu persis dina tampilan pg_stat_replication. Sacara rélatif, urang tiasa nyandak dua titik dina log urus nganggo pg_xlog_location_diff () fungsi. Itung délta antara aranjeunna sareng kéngingkeun réplikasi lag dina bait. Ieu pisan merenah tur basajan.

Dina versi 10, fungsi ieu diganti jadi pg_wal_lsn_diff (). Sacara umum, dina sagala fungsi, pintonan, sarta utiliti dimana kecap "xlog" mucunghul, eta diganti ku nilai "wal". Ieu lumaku pikeun duanana pintonan sarta fungsi. Ieu inovasi sapertos kitu.

Tambih Deui, dina versi 10, garis ditambahkeun anu husus nembongkeun lag. Ieu nyerat lag, flush lag, replay lag. Hartina, penting pikeun ngawas hal-hal ieu. Upami urang ningali yén urang gaduh réplikasi lag, maka urang kedah nalungtik naha éta muncul, dimana asalna sareng ngalereskeun masalahna.

Dasar ngawas PostgreSQL. Alexey Lesovsky

Ampir sadayana saluyu sareng métrik sistem. Nalika ngawaskeun mana waé, éta dimimitian ku métrik sistem. Ieu mangrupikeun pembuangan prosesor, mémori, swap, jaringan sareng disk. Nanging, seueur parameter henteu aya sacara standar.

Upami sadayana aya dina prosés daur ulang, maka aya masalah sareng daur ulang disk. Sakumaha aturan, pamekar ngawaskeun nambihan inpormasi ngeunaan throughput. Éta tiasa dina iop atanapi bait. Tapi aranjeunna hilap ngeunaan latency sareng panggunaan alat disk. Ieu mangrupikeun parameter anu langkung penting anu ngamungkinkeun urang ngira-ngira kumaha beban disk urang sareng kumaha lambatna. Upami urang gaduh latency tinggi, ieu hartosna aya sababaraha masalah sareng disk. Lamun urang boga utilization tinggi, eta hartina disk teu coping. Ieu mangrupikeun ciri anu langkung saé tibatan throughput.

Sumawona, statistik ieu ogé tiasa didapet tina sistem file / proc, sapertos anu dilakukeun pikeun prosesor daur ulang. Kuring henteu weruh naha informasi ieu teu ditambahkeun kana monitoring. Tapi sanajan kitu, hal anu penting pikeun mibanda ieu dina ngawaskeun Anjeun.

Sami manglaku ka interfaces jaringan. Aya inpormasi ngeunaan throughput jaringan dina pakét, dina bait, tapi henteu aya inpormasi ngeunaan latency sareng henteu aya inpormasi ngeunaan panggunaan, sanaos ieu ogé inpormasi anu mangpaat.

Dasar ngawas PostgreSQL. Alexey Lesovsky

Sagala ngawaskeun boga drawbacks. Tur euweuh urusan naon jenis ngawaskeun Anjeun nyandak, éta bakal salawasna teu minuhan sababaraha kriteria. Tapi sanajan kitu, aranjeunna nuju ngembangkeun, fitur anyar jeung hal anyar keur ditambahkeun, jadi pilih hiji hal sarta rengse eta.

Sareng pikeun ngarengsekeun, anjeun kedah salawasna gaduh ide ngeunaan naon hartosna statistik anu disayogikeun sareng kumaha anjeun tiasa dianggo pikeun ngarengsekeun masalah.

Jeung sababaraha titik konci:

  • Anjeun kudu salawasna ngawas kasadiaan sarta boga dasbor sangkan anjeun bisa gancang assess yén sagalana aya dina urutan kalawan database.
  • Anjeun kedah gaduh ide ngeunaan naon anu dianggo ku klien sareng database anjeun pikeun ngaleungitkeun klien anu goréng sareng némbak aranjeunna.
  • Kadé evaluate kumaha klien ieu dianggo kalayan data. Anjeun kedah gaduh ide ngeunaan beban kerja anjeun.
  • Kadé evaluate kumaha workload ieu kabentuk, kalayan bantuan naon queries. Anjeun tiasa evaluate queries, anjeun tiasa ngaoptimalkeun aranjeunna, refactor aranjeunna, ngawangun indexes pikeun aranjeunna. Hal ieu kacida penting.
  • Prosés latar tukang tiasa mangaruhan négatif paménta klien, janten penting pikeun ngawas yén aranjeunna henteu nganggo seueur teuing sumber.
  • Metrik sistem ngamungkinkeun anjeun ngadamel rencana pikeun skala sareng ningkatkeun kapasitas server anjeun, janten penting pikeun ngalacak sareng meunteun aranjeunna ogé.

Dasar ngawas PostgreSQL. Alexey Lesovsky

Upami anjeun resep kana topik ieu, anjeun tiasa nuturkeun tautan ieu.
http://bit.do/stats_collector - ieu dokuméntasi resmi ti kolektor statistik. Aya pedaran sadaya pintonan statistik sarta pedaran sadaya widang. Anjeun tiasa maca, ngartos sareng nganalisis aranjeunna. Sareng dumasar kana éta, ngawangun grafik anjeun sareng tambahkeun kana ngawaskeun anjeun.

Conto pamundut:
http://bit.do/dataegret_sql
http://bit.do/lesovsky_sql

Ieu gudang perusahaan kami sareng milik kuring. Éta ngandung conto queries. Aya henteu queries ti pilih * ti séri dinya. Aya queries siap-dijieun kalawan ngagabung, ngagunakeun fungsi metot nu ngidinan Anjeun pikeun ngarobah angka atah kana bisa dibaca, nilai merenah, nyaéta ieu bait, waktu. Anjeun tiasa nyandak aranjeunna, tingali aranjeunna, analisa aranjeunna, tambahkeun kana ngawaskeun anjeun, ngawangun ngawaskeun anjeun dumasar kana éta.

patarosan

Patarosan: Anjeun nyarios yén anjeun moal ngiklankeun merek, tapi kuring masih panasaran - dasbor naon anu anjeun anggo dina proyék anjeun?
Ngajawab: Ieu rupa-rupa. Ieu kajadian nu urang datang ka customer sarta anjeunna geus boga monitoring sorangan. Sarta kami mamatahan konsumén dina naon anu kudu ditambahkeun kana monitoring maranéhanana. Kaayaan anu paling parah nyaéta sareng Zabbix. Kusabab teu mibanda kamampuhan pikeun ngawangun TopN grafik. Urang sorangan ngagunakeun Okméter, sabab kami konsultasi kalayan ieu guys on monitoring. Aranjeunna ngawas PostgreSQL dumasar kana spésifikasi téknis urang. Kuring nulis piaraan-proyék kuring sorangan, nu ngumpulkeun data via Prometheus sarta ngajadikeun eta di grafana. Tugas kuring nyaéta nyiptakeun eksportir kuring sorangan di Prometheus teras masihan sadayana dina Grafana.

Patarosan: Naha aya analog tina laporan AWR atanapi ... aggregation? Naha anjeun terang ngeunaan hal sapertos kieu?
Jawaban: Leres, abdi terang naon AWR, éta hal anu keren. Kiwari aya rupa-rupa sapédah anu ngalaksanakeun kira-kira modél kieu. Dina sababaraha interval waktu, sababaraha garis dasar ditulis kana PostgreSQL anu sami atanapi ka panyimpenan anu misah. Anjeun tiasa google aranjeunna dina Internét, aranjeunna aya. Salah sahiji pamekar hal sapertos anu linggih dina forum sql.ru dina thread PostgreSQL. Anjeun tiasa nyekel anjeunna aya. Leres, aya hal sapertos kitu, aranjeunna tiasa dianggo. Ditambah dina na pgCenter Abdi ogé nyerat hiji hal anu ngamungkinkeun anjeun ngalakukeun hal anu sami.

PS1 Upami anjeun nganggo postgres_exporter, dasbor naon anu anjeun anggo? Aya sababaraha di antarana. Aranjeunna tos katinggaleun jaman. Meureun masarakat bakal nyieun hiji template diropéa?

PS2 Dihapus pganalyze sabab éta mangrupikeun tawaran SaaS proprietary anu museurkeun kana monitoring kinerja sareng saran tuning otomatis.

Ngan pamaké nu kadaptar bisa ilubiung dina survey. Daptar, Punten.

Mana ngawaskeun postgresql anu di-host sorangan (kalayan dasbor) anu anjeun anggap anu pangsaéna?

  • 30,0%Zabbix + tambahan ti Alexey Lesovsky atanapi zabbix 4.4 atanapi libzbxpgsql + zabbix libzbxpgsql + zabbix3

  • 0,0%https://github.com/lesovsky/pgcenter0

  • 0,0%https://github.com/pg-monz/pg_monz0

  • 20,0%https://github.com/cybertec-postgresql/pgwatch22

  • 20,0%https://github.com/postgrespro/mamonsu2

  • 0,0%https://www.percona.com/doc/percona-monitoring-and-management/conf-postgres.html0

  • 10,0%pganalyze mangrupakeun SaaS proprietary - Abdi teu tiasa ngahapus eta1

  • 10,0%https://github.com/powa-team/powa1

  • 0,0%https://github.com/darold/pgbadger0

  • 0,0%https://github.com/darold/pgcluu0

  • 0,0%https://github.com/zalando/PGObserver0

  • 10,0%https://github.com/spotify/postgresql-metrics1

10 pamaké milih. 26 pamaké abstained.

sumber: www.habr.com

Tambahkeun komentar