Using Postgres Workload Report#

前提条件#

Postgresワークロードレポートは、edb_wait_states 拡張機能バージョン1.2以降がロードされているPostgresサーバーのレポートのみを提供できます。さらに、PWRは、edb_wait_states 拡張機能がサーバーにロードされた時間間隔のクエリ待機レポートのみを提供できます。

詳細については、 edb_wait_states を参照してください。

レポートのソース情報#

edb-pwr およびedb-lasso パッケージがマシンにインストールされ、edb_wait_states 拡張機能が十分な期間ロードされた状態でサーバーが実行された後、Postgres Workload Reportを使用して、実行中に実行されていたクエリの待機状態のレポートを抽出できます。指定された時間間隔。

あるいは、Postgresワークロードレポートは、edb_wait_states がロードされたサーバーでレポートが実行されたと仮定して、既存のLassoレポートからレポートを生成できます。このため、Postgresワークロードレポートには必須の第1引数があり、次の2つのいずれかです。

  • execute

  • report

execute 引数はエンドツーエンドの実行を実行し、適切なオプションでlasso を呼び出し、生成されたtarballレポートを入力として使用して、HTML、Markdown、DOCX、またはPDFレポートを生成します。

report 引数は、待機状態レポートを処理および生成するための入力として、lasso レポートコンテンツを保存するディレクトリを使用します。 report 引数を使用するには、解凍および解凍されたlasso レポートが既に存在する必要があります。

execute オプションの例#

この例では、1月10日9:00から1月10日13:00までの間隔でのPostgresサーバーmyserver のクエリ待機に関するレポートを生成します。その頃、インシデントが発生しました。根本的な原因を提供するために調査する必要があります。 edb_wait_states がインストールされるサーバーのメインデータベースはmy-oltp です。

このようなレポートをHTML形式で取得するには、次のコマンドを使用します。

pwr execute --host-name myserver --sampling-start 2024-01-10 09:00+00 \
    --sampling-end 2024-01-10 13:00+00 --html \
    --report-name Jan10_incident my-oltp postgres

pwr execute -h を実行して、使用可能なオプションの完全な出力を取得できます。

report オプションの例#

場合によっては、既にLassoレポートがあり、PWRにLassoレポートをソースとして使用し、それに基づいてレポートを構築したい場合があります。これらの場合、 pwr report オプションは役立ちます。

この例では、既に説明したのと同じシナリオを使用できますが、上記で共有した時間境界を使用して既に実行されたなげなLassoレポートを使用します。 Lassoレポートの名前がedb-lasso-Jan10-incident.tar.bz2 で、pwr report が実行されるマシンのホームディレクトリにあると仮定します。

次のコマンドを実行すると、~/pwr_output/Jan10_incident.html に保存されたHTMLレポートが生成されます。

cd ~/
mkdir -p pwr_tmp/
tar jxf ../edb-lasso-Jan10-incident.tar.bz2 -C ~/pwr_tmp/ --strip-components=1
pwr report \
    --input-dir ~/pwr_tmp/postgresql/dbs/my-oltp/edb_wait_states/ \
    --html --output-dir ~/pwr_output/ --report-name Jan10_incident

pwr report -h を実行して、使用可能なオプションの完全な出力を取得できます。