PostgreSQL 監芖の基本。 アレクセむ・レ゜フスキヌ

Data Egret の Alexey Lesovsky 氏によるレポヌト「PostgreSQL モニタリングの基瀎」のトランスクリプトを読むこずをお勧めしたす。

このレポヌトでは、Alexey Lesovsky が、post-gress 統蚈の重芁なポむント、その意味、および監芖に統蚈が存圚する必芁がある理由に぀いお説明したす。 モニタリングにどのようなグラフを含めるべきか、それらを远加する方法、およびそれらを解釈する方法に぀いお。 このレポヌトは、Postgres のトラブルシュヌティングに関心のあるデヌタベヌス管理者、システム管理者、開発者にずっお圹立ちたす。

PostgreSQL 監芖の基本。 アレクセむ・レ゜フスキヌ

私の名前は Alexey Lesovsky、Data Egret 瀟の代衚です。

私自身に぀いお少し。 私はずっず前にシステム管理者ずしお働き始めたした。

私はあらゆる皮類のさたざたな Linux システムを管理し、仮想化、監芖、プロキシの操䜜など、Linux に関連するさたざたな䜜業に取り組みたした。しかし、ある時点からデヌタベヌス、PostgreSQL をより倚く䜿甚し始めたした。 私は圌のこずが本圓に奜きでした。 そしおある時点から、勀務時間のほずんどを PostgreSQL で䜜業するようになりたした。 そうしお私は埐々に PostgreSQL DBA になりたした。

そしお、私のキャリアを通じお、私は垞に統蚈、監芖、遠隔枬定のトピックに興味を持っおきたした。 私がシステム管理者だったずき、Zabbix ず非垞に緊密に連携しおいたした。 そしお、次のような小さなスクリプトセットを曞きたした zabbix 拡匵機胜。 圌は圓時かなり人気がありたした。 そこでは、Linux だけでなく、さたざたなコンポヌネントなど、非垞に異なる重芁なものを監芖するこずができたした。

今はPostgreSQLに取り組んでいたす。 私はすでに、PostgreSQL 統蚈を操䜜できるようにする別の蚘事を曞いおいたす。 いわゆる pgCenter (ハブレに関する蚘事 - 緊匵や緊匵のない、詊合埌の統蚈).

PostgreSQL 監芖の基本。 アレクセむ・レ゜フスキヌ

ちょっずした玹介文。 私たちの顧客、クラむアントはどのような状況にありたすか デヌタベヌスに関連しお䜕らかの事故が発生したした。 そしお、デヌタベヌスがすでに埩元されおいるず、郚門の責任者たたは開発責任者がやっお来お、「皆さん、私たちはデヌタベヌスを監芖する必芁がありたす。䜕か悪いこずが起こったので、今埌このようなこずが起こらないようにする必芁がありたす。」ず蚀いたした。 そしおここから、デヌタベヌス (PostgreSQL、MySQL、たたはその他) を監芖できるように監芖システムを遞択するか、既存の監芖システムを適応させるずいう興味深いプロセスが始たりたす。 そしお同僚たちは次のように提案し始めたす。「これこれのデヌタベヌスがあるず聞きたした。 䜿っおみたしょう。」 同僚同士が口論を始めたす。 そしお最終的には、ある皮のデヌタベヌスを遞択するこずになりたすが、その䞭での PostgreSQL 監芖はかなり貧匱に衚瀺され、垞に䜕かを远加する必芁がありたす。 GitHub からリポゞトリをいく぀か取埗し、クロヌンを䜜成し、スクリプトを調敎しお、䜕らかの方法でカスタマむズしたす。 そしお最終的にはある皮の手䜜業になるのです。

PostgreSQL 監芖の基本。 アレクセむ・レ゜フスキヌ

したがっお、この講挔では、PostgreSQL だけでなくデヌタベヌスの監芖を遞択する方法に぀いおの知識を提䟛したいず思いたす。 たた、監芖を完了しお䜕らかの利益を埗るこずができるようにするための知識を提䟛したす。これにより、今埌発生する可胜性のある緊急事態を迅速に防ぐために、デヌタベヌスを有益に監芖できるようになりたす。

そしお、このレポヌトに含たれるアむデアは、DBMS であっおも noSQL であっおも、あらゆるデヌタベヌスに盎接適甚できたす。 したがっお、PostgreSQL だけでなく、PostgreSQL でこれを行う方法に぀いおは倚くのレシピが存圚したす。 ク゚リの䟋、PostgreSQL が監芖のために持぀゚ンティティの䟋がありたす。 たた、DBMS にモニタリングを可胜にする同じ機胜がある堎合は、それらを調敎しお远加するこずもできたす。

PostgreSQL 監芖の基本。 アレクセむ・レ゜フスキヌレポヌトには茉っおないよ
メトリクスを配信および保存する方法に぀いお説明したす。 デヌタの埌凊理ずナヌザヌぞの提瀺に぀いおは䜕も蚀いたせん。 譊告に぀いおは䜕も蚀いたせん。
しかし、ストヌリヌが進むに぀れお、既存の監芖のさたざたなスクリヌンショットを芋せお、䜕らかの圢で批刀したす。 ただし、これらの補品に察する広告やアンチ広告を䜜成しないように、私はブランドの名前を出さないようにしたす。 したがっお、すべおの偶然はランダムであり、あなたの想像力に任されおいたす。
PostgreSQL 監芖の基本。 アレクセむ・レ゜フスキヌ
たず、モニタリングずは䜕かを理解したしょう。 モニタリングは非垞に重芁なこずです。 誰もがこれを理解しおいたす。 しかし同時に、モニタリングはビゞネス補品に関連しおおらず、䌚瀟の利益に盎接圱響を䞎えるものではないため、垞に残䜙ベヌスのモニタリングに時間が割り圓おられたす。 時間があればモニタリングを行いたすが、時間がなければバックログに入れお、い぀かこれらのタスクに戻りたす。

したがっお、私たちの実務から蚀えば、クラむアントを蚪問するずきのモニタリングは䞍完党であるこずが倚く、デヌタベヌスをより適切に凊理するのに圹立぀ような興味深い内容が含たれおいないこずがよくありたす。 したがっお、監芖は垞に完了する必芁がありたす。

デヌタベヌスは情報のリポゞトリであるため、デヌタベヌスは非垞に耇雑であり、監芖する必芁もありたす。 たた、情報は䌁業にずっお非垞に重芁であり、決しお倱うこずはできたせん。 しかし同時に、デヌタベヌスは非垞に耇雑な゜フトりェアです。 これらは倚数のコンポヌネントで構成されおいたす。 そしお、これらのコンポヌネントの倚くは監芖する必芁がありたす。

PostgreSQL 監芖の基本。 アレクセむ・レ゜フスキヌ特に PostgreSQL に぀いお話しおいる堎合、倚数のコンポヌネントで構成されるスキヌムの圢匏で衚すこずができたす。 これらのコンポヌネントは盞互に䜜甚したす。 同時に、PostgreSQL には、いわゆる Stats Collector サブシステムがあり、これを䜿甚するず、これらのサブシステムの動䜜に関する統蚈を収集し、管理者たたはナヌザヌがこれらの統蚈を衚瀺できるように、ある皮のむンタヌフェむスを提䟛できたす。

これらの統蚈は、特定の関数ずビュヌのセットの圢匏で衚瀺されたす。 テヌブルず呌ぶこずもできたす。 ぀たり、通垞の psql クラむアントを䜿甚しおデヌタベヌスに接続し、これらの関数ずビュヌを遞択しお、PostgreSQL サブシステムの動䜜に関する特定の数倀を取埗できたす。

これらの数倀をお気に入りの監芖システムに远加し、グラフを描画し、機胜を远加しお、長期的な分析を取埗できたす。

ただし、䞞䞀日かかる可胜性があるため、このレポヌトではこれらすべおの機胜を完党に説明するこずはしたせん。 文字通り、XNUMX ぀、XNUMX ぀、たたは XNUMX ぀のこずに぀いお取り䞊げ、それらが監芖をより良くするのにどのように圹立぀かを説明したす。
PostgreSQL 監芖の基本。 アレクセむ・レ゜フスキヌ
デヌタベヌスの監芖に぀いお話す堎合、䜕を監芖する必芁があるのでしょうか? たず第䞀に、可甚性を監芖する必芁がありたす。デヌタベヌスはクラむアントにデヌタぞのアクセスを提䟛するサヌビスであり、可甚性を監芖し、その定性的および定量的特性の䞀郚も提䟛する必芁があるためです。

PostgreSQL 監芖の基本。 アレクセむ・レ゜フスキヌ

たた、デヌタベヌスに接続するクラむアントは通垞のクラむアントである堎合もあれば、デヌタベヌスに損害を䞎える可胜性がある有害なクラむアントである堎合もあるため、監芖する必芁もありたす。 たた、圌らを監芖し、その掻動を远跡する必芁もありたす。

PostgreSQL 監芖の基本。 アレクセむ・レ゜フスキヌ

クラむアントがデヌタベヌスに接続するず、クラむアントがデヌタの操䜜を開始するこずは明らかなので、クラむアントがどのようにデヌタを操䜜するか、぀たりどのテヌブルを操䜜するか、たた皋床は䜎いですがどのむンデックスを操䜜するかを監芖する必芁がありたす。 ぀たり、クラむアントによっお䜜成されるワヌクロヌドを評䟡する必芁がありたす。

PostgreSQL 監芖の基本。 アレクセむ・レ゜フスキヌ

ただし、ワヌクロヌドには、圓然のこずながらリク゚ストも含たれたす。 アプリケヌションはデヌタベヌスに接続し、ク゚リを䜿甚しおデヌタにアクセスしたす。そのため、デヌタベヌス内にどのようなク゚リがあるかを評䟡し、その適切性を監芖し、ク゚リが䞍正に蚘述されおいないこず、より高速に動䜜するようにいく぀かのオプションを曞き換えお䜜成する必芁があるこずを監芖するこずが重芁です。そしおより良いパフォヌマンスで。

PostgreSQL 監芖の基本。 アレクセむ・レ゜フスキヌ

ここで話しおいるのはデヌタベヌスであるため、デヌタベヌスは垞にバックグラりンド プロセスです。 バックグラりンド プロセスはデヌタベヌスのパフォヌマンスを良奜なレベルに維持するのに圹立぀ため、バックグラりンド プロセス自䜓が動䜜するには䞀定量のリ゜ヌスが必芁です。 同時に、それらはクラむアント芁求のリ゜ヌスず重耇する可胜性があるため、貪欲なバックグラりンド プロセスがクラむアント芁求のパフォヌマンスに盎接圱響を䞎える可胜性がありたす。 したがっお、バックグラりンドプロセスに関しお歪みが生じないように、それらを監芖および远跡する必芁もありたす。

PostgreSQL 監芖の基本。 アレクセむ・レ゜フスキヌ

デヌタベヌス監芖に関するこれらすべおは、システム メトリックに残りたす。 しかし、むンフラストラクチャのほずんどがクラりドに移行しおいるこずを考えるず、個々のホストのシステム メトリクスは垞に背景に消えおしたいたす。 しかし、デヌタベヌスではそれらは䟝然ずしお関連しおおり、圓然、システム メトリクスを監芖するこずも必芁です。

PostgreSQL 監芖の基本。 アレクセむ・レ゜フスキヌ

システム メトリクスに関しおは、倚かれ少なかれすべおが問題ありたせん。最新の監芖システムはすべおこれらのメトリクスをすでにサポヌトしおいたすが、䞀般に、いく぀かのコンポヌネントはただ十分ではなく、远加する必芁があるものもありたす。 それらに぀いおもいく぀かのスラむドで説明したすので、觊れおおきたす。

PostgreSQL 監芖の基本。 アレクセむ・レ゜フスキヌ
蚈画の第䞀のポむントはアクセシビリティです。 アクセシビリティずは䜕ですか? 私の理解では、可甚性ずは、ベヌスからサヌビス接続ぞの胜力です。぀たり、ベヌスが向䞊し、サヌビスずしおクラむアントからの接続を受け入れたす。 そしお、このアクセシビリティは特定の特性によっお評䟡できたす。 これらの特性をダッシュ​​ボヌドに衚瀺するず非垞に䟿利です。

PostgreSQL 監芖の基本。 アレクセむ・レ゜フスキヌ
ダッシュボヌドが䜕であるかは誰もが知っおいたす。 必芁な情報がたずめられた画面を䞀目芋たずきのこずです。 たた、デヌタベヌスに問題があるかどうかをすぐに刀断できたす。
したがっお、デヌタベヌスの可甚性やその他の重芁な特性は垞にダッシュボヌドに衚瀺され、この情報が手元にあり、い぀でも利甚できるようにする必芁がありたす。 むンシデントの調査に既に圹立぀远加の詳现情報は、䞀郚の緊急事態を調査する堎合、すでにセカンダリ ダッシュボヌドに配眮するか、サヌドパヌティの監芖システムに぀ながるドリルダりン リンクに非衚瀺にする必芁がありたす。

PostgreSQL 監芖の基本。 アレクセむ・レ゜フスキヌ

よく知られた監芖システムの䞀䟋。 これは非垞に優れた監芖システムです。 圌女は倚くのデヌタを収集しおいたすが、私から芋るず、圌女はダッシュボヌドずいう奇劙な抂念を持っおいたす。 「ダッシュボヌドを䜜成する」ずいうリンクがありたす。 ただし、ダッシュボヌドを䜜成するずきは、XNUMX ぀の列のリスト、぀たりグラフのリストを䜜成したす。 そしお、䜕かを芋る必芁があるずきは、マりスをクリックしおスクロヌルし、目的のチャヌトを探し始めたす。 そしお、これには時間がかかりたす。぀たり、ダッシュボヌド自䜓がありたせん。 チャヌトのリストのみがありたす。

PostgreSQL 監芖の基本。 アレクセむ・レ゜フスキヌ

これらのダッシュボヌドに䜕を远加する必芁がありたすか? 応答時間などの特性から始めるこずができたす。 PostgreSQL には pg_stat_statements ビュヌがありたす。 デフォルトでは無効になっおいたすが、垞に有効にしお䜿甚する必芁がある重芁なシステム ビュヌの XNUMX ぀です。 デヌタベヌス内で実行されたすべおの実行ク゚リに関する情報が保存されたす。

したがっお、すべおのリク゚ストの合蚈実行時間を取埗し、䞊蚘のフィヌルドを䜿甚しおリク゚ストの数で割るこずができるずいう事実から始めるこずができたす。 しかし、これは病院内の平均䜓枩です。 他のフィヌルド (最小ク゚リ実行時間、最倧倀、䞭倮倀) から開始するこずもできたす。 たた、パヌセンタむルを構築するこずもできたす。PostgreSQL にはこれに察応する関数がありたす。 そしお、すでに完了したリク゚ストに察するデヌタベヌスの応答時間を特城付けるいく぀かの数倀を取埗できたす。぀たり、停のリク゚スト「select 1」を実行しお応答時間を調べるのではなく、すでに完了したリク゚ストの応答時間を分析しお描画したす。別の図を䜜成するか、それに基づいおグラフを䜜成したす。

珟圚システムによっお生成されおいる゚ラヌの数を監芖するこずも重芁です。 このために、pg_stat_database ビュヌを䜿甚できたす。 xact_rollback フィヌルドに泚目したす。 このフィヌルドには、デヌタベヌス内で発生したロヌルバックの数だけでなく、゚ラヌの数も考慮されたす。 盞察的に蚀えば、この数倀をダッシュ​​ボヌドに衚瀺しお、珟圚発生しおいる゚ラヌの数を確認できたす。 ゚ラヌが倚数ある堎合は、ログを調べお゚ラヌの皮類ず発生理由を確認し、それらを解決するために投資するのが良い理由になりたす。

PostgreSQL 監芖の基本。 アレクセむ・レ゜フスキヌ

タコメヌタヌなどを远加するこずも可胜です。 これらは、XNUMX 秒あたりのトランザクション数ず XNUMX 秒あたりのリク゚スト数です。 盞察的に蚀えば、これらの数倀をデヌタベヌスの珟圚のパフォヌマンスずしお䜿甚し、リク゚ストにピヌクがあるかどうか、トランザクションにピヌクがあるかどうか、あるいは逆に、バック゚ンドの障害によりデヌタベヌスが過負荷になっおいるかどうかを芳察できたす。 垞にこの図を芋お、私たちのプロゞェクトではこの皮のパフォヌマンスは正垞ですが、䞊ず䞋の倀はすでにある皮の問題があり、理解できないものであるこずを芚えおおくこずが重芁です。぀たり、これらの数倀がなぜそうなるのかを怜蚎する必芁があるこずを意味したす。非垞に高い。

トランザクション数を芋積もるために、再床 pg_stat_database ビュヌを参照したす。 コミット数ずロヌルバック数を加算しお、XNUMX 秒あたりのトランザクション数を取埗できたす。

耇数のリク゚ストが XNUMX ぀のトランザクションに収たるこずを皆さんは理解しおいたすか? したがっお、TPS ず QPS は若干異なりたす。

XNUMX 秒あたりのリク゚スト数は pg_stat_statements から取埗でき、完了したすべおのリク゚ストの合蚈を単玔に蚈算できたす。 珟圚の倀を前の倀ず比范し、それを枛算し、デルタを取埗し、数量を取埗するこずは明らかです。

PostgreSQL 監芖の基本。 アレクセむ・レ゜フスキヌ

必芁に応じお远加のメトリクスを远加できたす。これは、デヌタベヌスの可甚性を評䟡し、ダりンタむムが発生したかどうかを監芖するのにも圹立ちたす。

これらの指暙の XNUMX ぀は皌働時間です。 ただし、PostgreSQL の皌働時間は少し泚意が必芁です。 その理由をお話したす。 PostgreSQL が起動するず、皌働時間のレポヌトが開始されたす。 しかし、ある時点で、たずえば、あるタスクが倜間に実行されおいた堎合、OOM キラヌが来お、PostgreSQL の子プロセスを匷制的に終了したす。この堎合、PostgreSQL はすべおのクラむアントの接続を終了し、シャヌド化されたメモリ領域をリセットしお、リカバリを開始したす。最埌のチェックポむント。 そしお、このチェックポむントからの回埩が続く間、デヌタベヌスは接続を受け入れたせん。぀たり、この状況はダりンタむムずしお評䟡される可胜性がありたす。 ただし、皌働時間カりンタはリセットされたせん。これは、最初の瞬間からポストマスタヌの起動時間が考慮されるためです。 したがっお、そのような状況はスキップできたす。

たた、バキュヌム䜜業員の数も監芖する必芁がありたす。 みなさんはPostgreSQLの自動バキュヌムずは䜕か知っおいたすか? これは PostgreSQL の興味深いサブシステムです。 圌女に぀いおは倚くの蚘事が曞かれ、倚くの報告がなされおいたす。 真空ずそれがどのように機胜するかに぀いおは、倚くの議論がありたす。 倚くの人はそれを必芁悪だず考えおいたす。 しかし、それがそのようです。 これは、トランザクションで必芁のない叀いバヌゞョンの行をクリヌンアップし、新しい行甚にテヌブルずむンデックスのスペヌスを解攟するガベヌゞ コレクタヌの䞀皮です。

なぜ監芖する必芁があるのでしょうか? 掃陀機は時々ずおも痛いからです。 倧量のリ゜ヌスが消費され、その結果、クラむアントのリク゚ストに圱響が生じ始めたす。

そしお、それは pg_stat_activity ビュヌを通じお監芖する必芁がありたす。これに぀いおは次のセクションで説明したす。 このビュヌには、デヌタベヌス内の珟圚のアクティビティが衚瀺されたす。 そしお、このアクティビティを通じお、珟圚皌働しおいる掃陀機の数を远跡するこずができたす。 バキュヌムを远跡し、制限を超えおいる堎合は、PostgreSQL の蚭定を調べおバキュヌムの操䜜を最適化する必芁があるこずがわかりたす。

PostgreSQL に関するもう XNUMX ぀の点は、PostgreSQL は長いトランザクションに非垞にうんざりしおいるずいうこずです。 特に、䜕もせずに長時間滞留するトランザクションの堎合はそうです。 これはいわゆるトランザクション䞭のアむドル状態の統蚈です。 このようなトランザクションはロックを保持し、バキュヌムが機胜しなくなりたす。 その結果、テヌブルが膚匵しおサむズが倧きくなりたす。 たた、叀いバヌゞョンの行をすべおメモリからディスクに移動し、たたメモリからディスクに戻す必芁があるため、これらのテヌブルを操䜜するク゚リの動䜜が遅くなりたす。 したがっお、最長トランザクションの時間、期間、最長バキュヌム芁求も監芖する必芁がありたす。 たた、非垞に長時間実行されおいるプロセス (OLTP の負荷にすでに 10  20  30 分を超えおいる) が芋぀かった堎合は、それらに泚意を払っお匷制的に終了するか、アプリケヌションを最適化しお、は呌び出されず、それほど長くハングしたせん。 分析ワヌクロヌドの堎合、10、20、30 分は通垞ですが、それより長い堎合もありたす。

PostgreSQL 監芖の基本。 アレクセむ・レ゜フスキヌ
次に、接続されたクラむアントを䜿甚するオプションがありたす。 すでにダッシュボヌドを䜜成し、そこに䞻芁な可甚性メトリックを投皿しおいる堎合は、接続されおいるクラむアントに関する远加情報をそこに远加するこずもできたす。

PostgreSQL の芳点から芋るず、クラむアントは異なるため、接続されたクラむアントに関する情報は重芁です。 良いクラむアントもいれば悪いクラむアントもいたす。

簡単な䟋です。 クラむアントによるアプリケヌションの理解。 アプリケヌションはデヌタベヌスに接続し、すぐにリク゚ストの送信を開始したす。デヌタベヌスはリク゚ストを凊理しお実行し、結果をクラむアントに返したす。 これらは善良で正しいクラむアントです。

クラむアントが接続し、接続は保持しおいるが䜕もしない状況がありたす。 アむドル状態です。

しかし、悪いクラむアントもいたす。 たずえば、同じクラむアントが接続し、トランザクションを開き、デヌタベヌス内で䜕かを実行した埌、コヌドに入り、たずえば倖郚゜ヌスにアクセスしたり、そこで受信したデヌタを凊理したりしたす。 しかし、圌は取匕を成立させなかった。 そしお、トランザクションはデヌタベヌス内でハングし、回線䞊のロックに保持されたす。 これは悪い状態です。 たた、アプリケヌション内郚のどこかで突然䟋倖が発生しお障害が発生した堎合、トランザクションは非垞に長い間開いたたたになる可胜性がありたす。 そしお、これは PostgreSQL のパフォヌマンスに盎接圱響したす。 PostgreSQL は遅くなりたす。 したがっお、そのようなクラむアントをタむムリヌに远跡し、䜜業を匷制的に終了するこずが重芁です。 そしお、そのような状況が起こらないようにアプリケヌションを最適化する必芁がありたす。

他の悪いクラむアントは埅機䞭のクラむアントです。 しかし、それらは状況によっお悪くなりたす。 たずえば、単玔なアむドル トランザクションです。トランザクションを開いおいく぀かの行をロックするず、コヌドのどこかで倱敗し、トランザクションがハングしたたたになりたす。 別のクラむアントが来お同じデヌタを芁求したすが、そのハングしたトランザクションがすでに必芁な行のロックを保持しおいるため、ロックが発生したす。 そしお XNUMX 番目のトランザクションは、最初のトランザクションが完了するたで埅機するか、管理者によっお匷制的に閉じられたす。 したがっお、保留䞭のトランザクションが蓄積され、デヌタベヌス接続制限を超える可胜性がありたす。 そしお、制限がいっぱいになるず、アプリケヌションはデヌタベヌスを操䜜できなくなりたす。 これはプロゞェクトにずっおすでに緊急事態です。 したがっお、悪質なクラむアントを远跡し、タむムリヌに察応する必芁がありたす。

PostgreSQL 監芖の基本。 アレクセむ・レ゜フスキヌ

モニタリングの別の䟋。 そしお、ここにはすでにたずもなダッシュボヌドがありたす。 䞊蚘に接続に関する情報がありたす。 DB接続 – 8個。 そしおそれだけです。 どのクラむアントがアクティブで、どのクラむアントがアむドル状態で䜕もしおいないのかに぀いおの情報はありたせん。 保留䞭のトランザクションや保留䞭の接続に関する情報はありたせん。぀たり、これは接続数を瀺す図であり、それだけです。 そしお、自分で掚枬しおください。
PostgreSQL 監芖の基本。 アレクセむ・レ゜フスキヌ
したがっお、この情報を監芖に远加するには、pg_stat_activity システム ビュヌにアクセスする必芁がありたす。 PostgreSQL に倚くの時間を費やしおいる堎合、これは非垞に優れたビュヌであり、PostgreSQL での珟圚のアクティビティ、぀たり PostgreSQL で䜕が起こっおいるかが衚瀺されるため、非垞に䟿利です。 プロセスごずに、このプロセスに関する情報を瀺す個別の行がありたす。぀たり、接続が行われたホスト、ナヌザヌ、名前、トランザクションの開始日、珟圚実行䞭のリク゚スト、最埌に実行されたリク゚ストです。 したがっお、stat フィヌルドを䜿甚しおクラむアントの状態を評䟡できたす。 盞察的に蚀えば、このフィヌルドでグルヌプ化し、珟圚デヌタベヌスにある統蚈ず、デヌタベヌスにこの統蚈がある接続の数を取埗できたす。 そしお、すでに受信した数倀をモニタリングに送信し、それらに基づいおグラフを描画するこずができたす。
トランザクションの期間を評䟡するこずも重芁です。 バキュヌムの期間を評䟡するこずが重芁であるずすでに述べたしたが、トランザクションも同様に評䟡されたす。 xact_start フィヌルドず query_start フィヌルドがありたす。 これらは、盞察的に、トランザクションの開始時間ずリク゚ストの開始時間を瀺したす。 珟圚のタむムスタンプを衚瀺する now() 関数を䜿甚し、トランザクションずリク゚ストのタむムスタンプを枛算したす。 そしお、トランザクションの期間、぀たりリク゚ストの期間を取埗したす。

長いトランザクションが芋぀かった堎合は、すでに完了しおいる必芁がありたす。 OLTP ロヌドの堎合、長いトランザクションはすでに 1、2、3 分を超えおいたす. OLAP ワヌクロヌドの堎合、トランザクションが長いのは正垞ですが、完了たでに XNUMX 時間以䞊かかる堎合は、どこかにスキュヌがあるこずを瀺しおいたす。

PostgreSQL 監芖の基本。 アレクセむ・レ゜フスキヌ
クラむアントがデヌタベヌスに接続するず、デヌタの操䜜が開始されたす。 圌らはテヌブルにアクセスし、むンデックスにアクセスしおテヌブルからデヌタを取埗したす。 そしお、クラむアントがこのデヌタをどのように扱うかを評䟡するこずが重芁です。

これは、ワヌクロヌドを評䟡し、どのテヌブルが最も「ホット」であるかを倧たかに理解するために必芁です。 たずえば、これは、ある皮の高速 SSD ストレヌゞに「ホット」テヌブルを配眮したい状況で必芁になりたす。 たずえば、長期間䜿甚しおいないアヌカむブ テヌブルを、ある皮の「コヌルド」アヌカむブ、぀たり SATA ドラむブに移動し、そこに垞駐させおおくず、必芁に応じおアクセスできるようになりたす。

これは、リリヌスや展開埌の異垞の怜出にも圹立ちたす。 プロゞェクトが䜕らかの新機胜をリリヌスしたずしたす。 たずえば、デヌタベヌスを操䜜するための新しい機胜を远加したした。 たた、テヌブルの䜿甚状況グラフをプロットするず、これらのグラフ䞊の異垞を簡単に怜出できたす。 たずえば、バヌストを曎新したり、バヌストを削陀したりしたす。 ずおも目立぀でしょう。

「倉動」統蚈の異垞を怜出するこずもできたす。 それはどういう意味ですか PostgreSQL には、非垞に匷力で優れたク゚リ プランナヌが備わっおいたす。 そしお開発者はその開発に倚くの時間を費やしおいたす。 圌はどうやっお働いおいるのですか 適切な蚈画を立おるために、PostgreSQL はテヌブル内のデヌタの分垃に関する統蚈を特定の時間間隔ず頻床で収集したす。 これらは最も䞀般的な倀です。䞀意の倀の数、テヌブル内の NULL に関する情報、倚くの情報です。

これらの統蚈に基づいお、プランナヌはいく぀かのク゚リを構築し、最も最適なものを遞択し、このク゚リ プランを䜿甚しおク゚リ自䜓を実行し、デヌタを返したす。

そしお、統蚈が「浮く」こずが起こりたす。 テヌブル内の質ず量のデヌタが䜕らかの理由で倉曎されたしたが、統蚈は収集されたせんでした。 そしお、策定された蚈画が最適ではない可胜性もありたす。 そしお、テヌブルに基づいお収集されたモニタリングに基づいお蚈画が最適ではないこずが刀明した堎合、これらの異垞を確認できるようになりたす。 たずえば、どこかでデヌタが質的に倉化し、むンデックスの代わりにテヌブルを介したシヌケンシャル パスが䜿甚され始めたした。 ク゚リが 100 行のみを返す必芁がある堎合 (100 行ずいう制限がありたす)、このク゚リに察しお完党な怜玢が実行されたす。 そしお、これは垞にパフォヌマンスに非垞に悪い圱響を䞎えたす。

これはモニタリングでも確認できたす。 そしお、すでにこのク゚リを確認し、Explain を実行し、統蚈を収集し、新しい远加のむンデックスを構築したす。 そしおすでにこの問題に察応しおいたす。 だからこそ重芁なのです。

PostgreSQL 監芖の基本。 アレクセむ・レ゜フスキヌ

モニタリングの別の䟋。 ずおも人気があるので知っおいる人も倚いず思いたす。 プロゞェクトでそれを䜿甚する人 プロメテりス? この補品を Prometheus ず組み合わせお䜿甚​​するのは誰ですか? 実際、この監芖の暙準リポゞトリには、PostgreSQL を操䜜するためのダッシュボヌドがありたす。 postgres_exporter プロメテりス。 しかし、悪い点が XNUMX ぀ありたす。

PostgreSQL 監芖の基本。 アレクセむ・レ゜フスキヌ

いく぀かのグラフがありたす。 そしおバむトは 5 ずしお瀺されたす。぀たり、XNUMX ぀のグラフがありたす。 これらは、デヌタの挿入、デヌタの曎新、デヌタの削陀、デヌタのフェッチ、デヌタの返华です。 単䜍はバむトです。 しかし、問題は、PostgreSQL の統蚈はデヌタをタプル (行) で返すずいうこずです。 したがっお、タプルはバむトではなく文字列であり、倚くのバむトがあり、垞に可倉長であるため、これらのグラフはワヌクロヌドを数倍、数十倍過小評䟡する非垞に良い方法ずなりたす。 ぀たり、タプルを䜿甚しおワヌクロヌドをバむト単䜍で蚈算するこずは非珟実的なタスクであるか、非垞に困難です。 したがっお、ダッシュボヌドたたは組み蟌みの監芖を䜿甚する堎合は、それが正しく動䜜し、正しく評䟡されたデヌタが返されるこずを理解するこずが垞に重芁です。

PostgreSQL 監芖の基本。 アレクセむ・レ゜フスキヌ

これらのテヌブルの統蚈を取埗するにはどうすればよいでしょうか? この目的のために、PostgreSQL には特定のビュヌのファミリヌがありたす。 そしお䞻な芖点は、 pg_stat_user_tables。 User_tables - ナヌザヌに代わっお䜜成されたテヌブルを意味したす。 察照的に、PostgreSQL 自䜓によっお䜿甚されるシステム ビュヌがありたす。 たた、システムずナヌザヌの䞡方を含むサマリヌ テヌブル Alltables がありたす。 その䞭で最も気に入ったものから始めるこずができたす。

䞊蚘のフィヌルドを䜿甚するず、挿入、曎新、削陀の数を掚定できたす。 私が䜿甚したダッシュボヌドの䟋では、これらのフィヌルドを䜿甚しおワヌクロヌドの特性を評䟡しおいたす。 したがっお、それらを基にしお構築するこずもできたす。 ただし、これらはバむトではなくタプルであるため、バむト単䜍で実行するこずはできないこずを芚えおおく䟡倀がありたす。

このデヌタに基づいお、いわゆる TopN テヌブルを構築できたす。 たずえば、トップ 5、トップ 10 などです。 たた、他のテヌブルよりも倚くリサむクルされおいるホット テヌブルを远跡できたす。 たずえば、5 ぀の「ホット」テヌブルを挿入したす。 これらの TopN テヌブルを䜿甚しおワヌクロヌドを評䟡し、リリヌス、曎新、展開埌のワヌクロヌドのバヌストを評䟡できたす。

テヌブルのサむズを評䟡するこずも重芁です。開発者が新しい機胜を展開するず、远加のデヌタ量を远加するこずを決定したが、それがどのようになるかを予枬しおいなかったために、テヌブルのサむズが倧きくなり始めるこずがあるためです。デヌタベヌスのサむズに圱響したす。 このようなケヌスは私たちにずっおも驚きです。

PostgreSQL 監芖の基本。 アレクセむ・レ゜フスキヌ

それでは、ちょっずした質問です。 デヌタベヌス サヌバヌの負荷に気づいたずき、どのような疑問が生じたすか? 次の質問は䜕ですか?

PostgreSQL 監芖の基本。 アレクセむ・レ゜フスキヌ

しかし実際には次のような疑問が生じたす。 負荷によっおどのようなリク゚ストが発生したすか? ぀たり、負荷によっお匕き起こされるプロセスを芳察するこずは面癜くありたせん。 ホストにデヌタベヌスがある堎合、そのデヌタベヌスはそこで実行されおおり、デヌタベヌスのみがそこで砎棄されるこずは明らかです。 「トップ」を開くず、PostgreSQL で䜕かを実行しおいるプロセスのリストが衚瀺されたす。 圌らが䜕をしおいるのかはトップからは明らかではありたせん。

PostgreSQL 監芖の基本。 アレクセむ・レ゜フスキヌ

したがっお、最も高い負荷を匕き起こすク゚リを芋぀ける必芁がありたす。これは、ク゚リのチュヌニングは、䞀般に、PostgreSQL やオペレヌティング システムの構成をチュヌニングしたり、ハヌドりェアをチュヌニングしたりするよりも倧きな利益が埗られるためです。 私の掚定によるず、これは玄 80-85-90% です。 そしお、これははるかに高速に実行されたす。 特にデヌタベヌスを再起動できない堎合は、構成を修正したり、再起動をスケゞュヌルしたり、ハヌドりェアを远加したりするよりも、芁求を修正する方が高速です。 このク゚リからより良い結果を埗るには、ク゚リをどこかに曞き盎すか、むンデックスを远加する方が簡単です。

PostgreSQL 監芖の基本。 アレクセむ・レ゜フスキヌ
したがっお、芁求ずその適切性を監芖する必芁がありたす。 モニタリングの別の䟋を芋おみたしょう。 そしおここでも優れた監芖が行われおいるようです。 レプリケヌションに関する情報、スルヌプット、ブロッキング、リ゜ヌス䜿甚率に関する情報がありたす。 すべお問題ありたせんが、リク゚ストに関する情報はありたせん。 デヌタベヌス内でどのようなク゚リが実行されおいるのか、実行時間、ク゚リの数は䞍明です。 モニタリングでは垞にこの情報が必芁です。

PostgreSQL 監芖の基本。 アレクセむ・レ゜フスキヌ

この情報を取埗するには、pg_stat_statements モゞュヌルを䜿甚したす。 これに基づいお、さたざたなグラフを䜜成できたす。 たずえば、最も頻繁に実行されるク゚リ、぀たり最も頻繁に実行されるク゚リに関する情報を取埗できたす。 はい、デプロむ埌にそれを芋お、リク゚ストが急増しおいるかどうかを理解するこずも非垞に圹立ちたす。

最長のク゚リ、぀たり完了たでに最も時間がかかるク゚リを監芖できたす。 これらはプロセッサ䞊で実行され、I/O を消費したす。 total_time、mean_time、blk_write_time、blk_read_time フィヌルドを䜿甚しおこれを評䟡するこずもできたす。

リ゜ヌス䜿甚量の芳点から最も重いリク゚スト、ディスクから読み取るリク゚スト、メモリを操䜜するリク゚スト、たたは逆に䜕らかの曞き蟌み負荷を匕き起こすリク゚ストを評䟡および監芖できたす。

最も寛倧なリク゚ストを評䟡するこずができたす。 これらは、倧量の行を返すク゚リです。 たずえば、制限の蚭定を忘れたリク゚ストが考えられたす。 そしお、ク゚リされたテヌブル党䜓でテヌブルたたはク゚リの内容党䜓を返すだけです。

たた、䞀時ファむルたたは䞀時テヌブルを䜿甚するク゚リを監芖するこずもできたす。

PostgreSQL 監芖の基本。 アレクセむ・レ゜フスキヌ
そしおバックグラりンドプロセスもただありたす。 バックグラりンド プロセスは䞻にチェックポむント、たたはチェックポむントずも呌ばれ、自動バキュヌムずレプリケヌションです。

PostgreSQL 監芖の基本。 アレクセむ・レ゜フスキヌ

モニタリングの別の䟋。 巊偎に [メンテナンス] タブがあるので、そこに移動するず、圹立぀ものが衚瀺されるこずを期埅したす。 しかし、ここではバキュヌム操䜜ず統蚈収集の時間だけがあり、それ以䞊のこずはありたせん。 これは非垞に貧匱な情報なので、バックグラりンド プロセスがデヌタベヌス内でどのように動䜜するか、たたその動䜜によっお問題が発生するかどうかに぀いおの情報を垞に入手する必芁がありたす。

PostgreSQL 監芖の基本。 アレクセむ・レ゜フスキヌ

チェックポむントを芋るずきは、チェックポむントがダヌティ ペヌゞをシャヌド メモリ領域からディスクにフラッシュしおから、チェックポむントを䜜成するこずを芚えおおく必芁がありたす。 そしお、このチェックポむントは、緊急時に PostgreSQL が突然終了した堎合の回埩の堎所ずしお䜿甚できたす。

したがっお、すべおの「ダヌティ」ペヌゞをディスクにフラッシュするには、ある皋床の量の曞き蟌みを行う必芁がありたす。 そしお、䞀般に、倧量のメモリを搭茉したシステムでは、これは倧量になりたす。 たた、チェックポむントを短い間隔で頻繁に実行するず、ディスクのパフォヌマンスが倧幅に䜎䞋したす。 そしお、クラむアントのリク゚ストはリ゜ヌス䞍足によっお困難になりたす。 圌らはリ゜ヌスをめぐっお競争し、生産性が欠劂したす。

したがっお、指定されたフィヌルドを䜿甚する pg_stat_bgwriter を通じお、発生するチェックポむントの数を監芖できたす。 たた、特定の期間 (10、15、20 分、たたは 3 分) に倚数のチェックポむントがある堎合 (たずえば、4-5-XNUMX)、これはすでに問題になる可胜性がありたす。 そしお、デヌタベヌスず構成を調べお、䜕がこのような倧量のチェックポむントの原因ずなっおいるのかを調べる必芁がありたす。 もしかしたら倧芏暡なレコヌディングが行われおいるのかもしれない。 すでにワヌクロヌド グラフを远加しおいるため、ワヌクロヌドを評䟡するこずができたす。 すでにチェックポむント パラメヌタヌを埮調敎しお、ク゚リのパフォヌマンスに倧きな圱響を䞎えないこずを確認できたす。

PostgreSQL 監芖の基本。 アレクセむ・レ゜フスキヌ

自動バキュヌムに再び戻りたす。なぜなら、前述したように、自動バキュヌムはディスクずク゚リの䞡方のパフォヌマンスを簡単に加算できるためです。そのため、自動バキュヌムの量を芋積もるこずは垞に重芁です。

デヌタベヌス内の自動バキュヌム ワヌカヌの数は制限されおいたす。 デフォルトでは XNUMX ぀のワヌカヌが存圚するため、デヌタベヌス内で垞に XNUMX 人のワヌカヌが䜜業しおいる堎合、これは自動バキュヌムが構成されおいないこずを意味するため、制限を匕き䞊げ、自動バキュヌム蚭定を修正しお構成を開始する必芁がありたす。
どの掃陀機䜜業員がいるかを評䟡するこずが重芁です。 ナヌザヌが起動したか、DBA が来お手動で䜕らかのバキュヌムを起動したため、負荷が発生したした。 䜕らかの問題が発生しおいたす。 たたは、これはトランザクションカりンタヌのネゞを倖す掃陀機の数です。 PostgreSQL の䞀郚のバヌゞョンでは、これらは非垞に重いバキュヌムになりたす。 たた、テヌブル党䜓を読み取り、そのテヌブル内のすべおのブロックをスキャンするため、パフォヌマンスを簡単に加算できたす。

そしおもちろん、掃陀機の持続時間もです。 非垞に長時間皌働する長持ちする掃陀機がある堎合、これは再び掃陀機の構成に泚意を払い、おそらくその蚭定を再怜蚎する必芁があるこずを意味したす。 テヌブル䞊でバキュヌムが長時間 (3  4 時間) 実行されるず、状況が発生する可胜性がありたすが、バキュヌムが動䜜しおいる間に、倧量のデッド行が再びテヌブルに蓄積されおしたうためです。 そしお、掃陀機が完了したらすぐに、もう䞀床このテヌブルに掃陀機をかける必芁がありたす。 そしお私たちは、無限の真空状態ずいう状況に到達したす。 そしおこの堎合、バキュヌムはその仕事に察応できず、テヌブル内の有甚なデヌタの量は同じたたですが、テヌブルのサむズが埐々に倧きくなり始めたす。 したがっお、長いバキュヌム䞭は、垞に構成を確認しお最適化を詊みたすが、同時に、クラむアント芁求のパフォヌマンスが䜎䞋しないようにしたす。

PostgreSQL 監芖の基本。 アレクセむ・レ゜フスキヌ

珟圚、ストリヌミング レプリケヌションを備えおいない PostgreSQL むンストヌルは事実䞊ありたせん。 レプリケヌションは、マスタヌからレプリカにデヌタを移動するプロセスです。

PostgreSQL のレプリケヌションはトランザクション ログを通じお行われたす。 りィザヌドはトランザクション ログを生成したす。 トランザクション ログはネットワヌク接続を介しおレプリカに送信され、レプリカ䞊で耇補されたす。 それは簡単です。

したがっお、レプリケヌションラグを監芖するには、pg_stat_replication ビュヌが䜿甚されたす。 しかし、圌女にずっおすべおが単玔なわけではありたせん。 バヌゞョン 10 では、ビュヌにいく぀かの倉曎が加えられたした。 たず、いく぀かのフィヌルドの名前が倉曎されたした。 いく぀かのフィヌルドが远加されたした。 バヌゞョン 10 では、レプリケヌションの遅延を秒単䜍で掚定できるフィヌルドが衚瀺されたした。 ずおも快適です。 バヌゞョン 10 より前では、レプリケヌション ラグをバむト単䜍で芋積もるこずができたした。 このオプションはバヌゞョン 10 にも残りたす。぀たり、ラグをバむト単䜍で掚定するか、ラグを秒単䜍で掚定するか、郜合のよい方を遞択できたす。 倚くの人は䞡方を行っおいたす。

ただし、レプリケヌションの遅延を評䟡するには、トランザクション内のログの䜍眮を知る必芁がありたす。 これらのトランザクション ログの䜍眮は、正確に pg_stat_replication ビュヌ内にありたす。 盞察的に蚀えば、pg_xlog_location_diff() 関数を䜿甚しお、トランザクション ログ内の XNUMX ぀のポむントを取埗できたす。 それらの間の差分を蚈算し、レプリケヌション ラグをバむト単䜍で取埗したす。 ずおも䟿利でシンプルです。

バヌゞョン 10 では、この関数の名前が pg_wal_lsn_diff() に倉曎されたした。 䞀般に、「xlog」ずいう単語が出珟するすべおの関数、ビュヌ、ナヌティリティでは、倀「wal」に眮き換えられたした。 これはビュヌず関数の䞡方に圓おはたりたす。 これはたさにむノベヌションです。

さらに、バヌゞョン 10 では、ラグを具䜓的に瀺す行が远加されたした。 これらは、曞き蟌みラグ、フラッシュ ラグ、リプレむ ラグです。 ぀たり、これらを監芖するこずが重芁です。 レプリケヌションに遅延があるこずがわかった堎合は、その遅延が発生した理由ず発生堎所を調査し、問題を解決する必芁がありたす。

PostgreSQL 監芖の基本。 アレクセむ・レ゜フスキヌ

システムメトリクスに関しおは、ほがすべおが正垞に行われおいたす。 監芖が開始されるずきは、システム メトリックから始たりたす。 これは、プロセッサ、メモリ、スワップ、ネットワヌク、ディスクの廃棄です。 ただし、倚くのパラメヌタはデフォルトでは存圚したせん。

リサむクル プロセスがすべお順調であれば、ディスクのリサむクルに問題がありたす。 通垞、監芖開発者はスルヌプットに関する情報を远加したす。 iops たたはバむト単䜍で指定できたす。 しかし、圌らはレむテンシヌずディスクデバむスの䜿甚率を忘れおいたす。 これらは、ディスクの負荷ず速床を評䟡できる、より重芁なパラメヌタです。 遅延が長い堎合は、ディスクに䜕らかの問題があるこずを意味したす。 䜿甚率が高い堎合は、ディスクが察応しおいないこずを意味したす。 これらはスルヌプットよりも優れた特性です。

さらに、これらの統蚈は、プロセッサのリサむクルず同様に、/proc ファむル システムからも取埗できたす。 なぜこの情報が監芖に远加されないのかわかりたせん。 しかし、それにもかかわらず、これをモニタリングに含めるこずは重芁です。

ネットワヌクむンタヌフェヌスにも同じこずが圓おはたりたす。 パケット単䜍やバむト単䜍のネットワヌク スルヌプットに関する情報はありたすが、埅ち時間や䜿甚率に関する情報はありたせん。これも有益な情報ではありたすが、

PostgreSQL 監芖の基本。 アレクセむ・レ゜フスキヌ

どのような監芖にも欠点はありたす。 そしお、どのような皮類のモニタリングを行っおも、垞に䜕らかの基準を満たさないこずがありたす。 それでも、開発は進んでおり、新しい機胜や新しいものが远加されおいるので、䜕かを遞択しお完了しおください。

そしお、完了するには、提䟛される統蚈が䜕を意味するのか、そしおそれらを問​​題解決にどのように䜿甚できるのかを垞に理解しおおく必芁がありたす。

そしおいく぀かの重芁なポむント:

  • 可甚性を垞に監芖し、デヌタベヌスですべおが正垞であるこずをすぐに評䟡できるようにダッシュボヌドを甚意する必芁がありたす。
  • 悪いクラむアントを排陀しお撃墜するには、どのクラむアントがデヌタベヌスを操䜜しおいるかを垞に把握する必芁がありたす。
  • これらのクラむアントがデヌタをどのように扱うかを評䟡するこずが重芁です。 自分のワヌクロヌドに぀いおのアむデアを持っおおく必芁がありたす。
  • どのようなク゚リを䜿甚しお、このワヌクロヌドがどのように圢成されるかを評䟡するこずが重芁です。 ク゚リを評䟡し、最適化し、リファクタリングし、むンデックスを構築するこずができたす。 それは非垞に重芁です。
  • バックグラりンド プロセスはクラむアントのリク゚ストに悪圱響を䞎える可胜性があるため、リ゜ヌスの䜿甚量が倚すぎないこずを監芖するこずが重芁です。
  • システム メトリクスを䜿甚するず、サヌバヌのスケヌリングず容量の増加に関する蚈画を立おるこずができるため、システム メトリクスを远跡しお評䟡するこずも重芁です。

PostgreSQL 監芖の基本。 アレクセむ・レ゜フスキヌ

このトピックに興味がある堎合は、次のリンクを参照しおください。
http://bit.do/stats_collector - これは統蚈コレクタヌによる公匏ドキュメントです。 すべおの統蚈ビュヌずすべおのフィヌルドの説明がありたす。 それらを読んで理解しお分析するこずができたす。 そしおそれらに基づいおグラフを䜜成し、モニタリングに远加したす。

リク゚ストの䟋
http://bit.do/dataegret_sql
http://bit.do/lesovsky_sql

これは私たちの䌁業リポゞトリであり、私自身のリポゞトリです。 ク゚リの䟋が含たれおいたす。 そこには select* from シリヌズからのク゚リはありたせん。 結合を備えた既補のク゚リがすでに存圚しおおり、生の数倀を読み取り可胜な䟿利な倀 (バむトや時間など) に倉換できる興味深い関数を䜿甚しおいたす。 それらを拟い䞊げ、芳察し、分析し、モニタリングに远加し、それらに基づいおモニタリングを構築するこずができたす。

質問

質問: ブランドの宣䌝はしないずおっしゃいたしたが、それでも気になりたす。プロゞェクトではどのようなダッシュボヌドを䜿甚しおいたすか?
回答: それは異なりたす。 私たちが顧客のずころに行くず、その顧客はすでに独自のモニタリングを行っおいるこずがありたす。 そしお、監芖に䜕を远加する必芁があるかに぀いおお客様にアドバむスしたす。 最悪の状況はZabbixの堎合です。 TopN グラフを構築する機胜がないためです。 私たち自身も䜿っおいたす オクメヌタヌ、監芖に぀いおこの人たちず盞談しおいたからです。 圌らは、圓瀟の技術仕様に基づいお PostgreSQL を監芖したした。 私は、Prometheus 経由でデヌタを収集し、それをレンダリングする独自のペット プロゞェクトを䜜成しおいたす。 グラファナ。 私のタスクは、Prometheus で独自の゚クスポヌタヌを䜜成し、すべおを Grafana でレンダリングするこずです。

質問: AWR レポヌトや集蚈に類䌌したものはありたすか? このようなこずに぀いおご存知ですか
回答: はい、AWR が䜕であるかは知っおいたす。玠晎らしいものです。 珟時点では、ほが次のモデルを実装したさたざたな自転車がありたす。 䞀定の間隔で、いく぀かのベヌスラむンが同じ PostgreSQL たたは別のストレヌゞに曞き蟌たれたす。 むンタヌネットでグヌグルで怜玢するず、そこにありたす。 このようなものの開発者の XNUMX 人は、PostgreSQL スレッドの sql.ru フォヌラムに参加しおいたす。 そこで圌を捕たえるこずができたす。 はい、そういうものもありたす、䜿えたす。 さらにその䞭に pgCenter 同じようなこずができるようにする蚘事も曞いおいたす。

PS1 postgres_exporter を䜿甚しおいる堎合、どのダッシュボヌドを䜿甚しおいたすか? それらはいく぀かありたす。 それらはすでに時代遅れです。 おそらくコミュニティが曎新されたテンプレヌトを䜜成するでしょうか?

PS2 pganalyze は、パフォヌマンスの監芖ず自動チュヌニングの提案に重点を眮いた独自の SaaS 補品であるため、削陀されたした。

登録ナヌザヌのみがアンケヌトに参加できたす。 ログむンお願いしたす。

どの自己ホスト型 postgresql モニタリング (ダッシュボヌド付き) が最適だず思いたすか?

  • 芖聎者の%がZabbix + Alexey Lesovsky からの远加、zabbix 4.4、たたは libzbxpgsql + zabbix libzbxpgsql + zabbix3

  • 芖聎者の%がhttps://github.com/lesovsky/pgcenter0

  • 芖聎者の%がhttps://github.com/pg-monz/pg_monz0

  • 芖聎者の%がhttps://github.com/cybertec-postgresql/pgwatch22

  • 芖聎者の%がhttps://github.com/postgrespro/mamonsu2

  • 芖聎者の%がhttps://www.percona.com/doc/percona-monitoring-and-management/conf-postgres.html0

  • 芖聎者の%がpganalyze は独自の SaaS - 削陀できたせん1

  • 芖聎者の%がhttps://github.com/powa-team/powa1

  • 芖聎者の%がhttps://github.com/darold/pgbadger0

  • 芖聎者の%がhttps://github.com/darold/pgcluu0

  • 芖聎者の%がhttps://github.com/zalando/PGObserver0

  • 芖聎者の%がhttps://github.com/spotify/postgresql-metrics1

10 人のナヌザヌが投祚したした。 26名のナヌザヌが棄暩した。

出所 habr.com

コメントを远加したす