Using Postgres Workload Report
==============================

前提条件
--------

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

詳細については、 :ref:`edb_wait_states </pg_extensions/wait_states/>` を参照してください。

レポートのソース情報
--------------------

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

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

-  ``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形式でレポートを取得するには、次のコマンドを使用します。

.. code:: shell

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

..  Note::
   `--sampling-start` および`--sampling-end` は、タイムゾーンの有無にかかわらずタイムスタンプを受け入れます。タイムスタンプでタイムゾーンが明示的に設定されていない場合、PWRはシステムのタイムゾーンを使用します。

``pwr execute -h``
を実行して、使用可能なオプションの完全なリストを取得します。

``report`` オプションの例
-------------------------

..  Note::
   以前のレポートを上書きするのを避けるため、 `pwr execute` コマンドは、 `%Y%m%d%H%M%S` 形式で提供されたレポート名にデータベース名とタイムスタンプを追加します `March_report-mydatabase-20240321-133727.html` など 。この動作を回避するには、 `pwr execute` を実行するときに`--use-plain-report-name` オプションを使用します。

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

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

次のコマンドは、 ``~/pwr_output/Jan10_incident.html``
に保存されるHTMLレポートを生成します。

.. code:: shell

   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``
を実行して、使用可能なオプションの完全なリストを取得します。
