パフォーマンスログの世代管理をしたい

ご覧いただきありがとうございます！
本記事ではパフォーマンスログの世代管理をするための設定方法を記載します。

## はじめに
パフォーマンスログの世代管理をするには、作成したデータコレクターセットを
日次で起動、停止しないといけません。
でないと新しいログが吐かれないです。
そのための方法として、タスクスケジューラーを用いて
自動で起動、停止する設定方法を記載します。

事前にデータコレクターセットを設定いただく必要があります。
今回は日付が入ったログファイル名が出力されているものを例としてますので、
良ければ以下の記事を参考に作成してください。
https://qiita.com/ponkotu3/items/7c6c6274e0d955f2abf4

## 環境
Windows Server2019

## 項番
1. 自動起動設定
2. 自動停止設定

## 自動起動設定
まずは日次で自動起動させるための設定手順となります。

#### ■スケジュール設定

1. パフォーマンスモニターを開き、対象のデータコレクターセットを右クリックして
「プロパティ」を開きます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3332380/fe1fc7bd-65af-c146-a0a7-ffee0f376197.png)

2. 「スケジュール」タブを開き、「追加」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3332380/fd0ff5f0-41a8-6844-c68d-420da2019e68.png)

3. 「開始時間」を設定し、「OK」をクリックします。
1:00～0:59に設定しても、ファイル名は起動した日付で作成されるため、どの時間でも構いません。
ただ、後述で説明する自動停止設定では、起動時間の前になるように設定する必要があります！
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3332380/89c75d4e-5ac6-f984-5946-7d236343e335.png)

4. スケジュールが追加されていれば、「OK」をクリックし、設定完了となります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3332380/8c311061-7ff1-8009-1af6-b2f820a51c1a.png)

ただ、これだけではWindowsServerのバグにより、自動で起動しません。
Microsoft社の公式にも載ってますので、参考までにご覧ください。
https://learn.microsoft.com/ja-jp/troubleshoot/windows-server/performance/user-defined-dcs-doesnt-run-as-scheduled

#### ■タスクスケジューラ設定

1. タスクスケジューラを開き、以下の順に開いていきます。
「タスクスケジューラライブラリ」→「Microsoft」→「Windows」→「PLA」
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3332380/b6b73ad2-1c83-add1-a14a-e06e676fcdb9.png)

2. ここには、データコレクターセットで設定したものが並びます。
対象のデータコレクターセット名を右クリックし、「プロパティ」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3332380/e403b75c-4477-2025-c358-56bd01e38f3f.png)

3. 「操作」タブを開きます。
デフォルトで「カスタムハンドラー」という設定があり、これが悪さをしているので削除します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3332380/8dfb3809-069c-c36d-3835-1a49117300b1.png)

4. 削除後、新しい設定を加えるため、「追加」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3332380/3d334e4b-7385-d128-0eaa-fd7673cb28bd.png)

5. 以下の通り設定を入力し、OKをクリックします。
```:プログラム/スクリプト(P)
C:\windows\system32\rundll32.exe
```
```:引数の追加(オプション)(A)
C:\windows\system32\pla.dll,PlaHost "{Name}" "$(Arg0)"
```
:::note info
インフォメーション
{name}はデータコレクターセット名です
:::
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3332380/27db7fa3-c7d6-8272-83e3-0930ab6b1be9.png)

6.　設定が追加されていることを確認し、「OK」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3332380/0c5f39bc-7cc2-c06f-85ea-fc05199d5167.png)

7.　試しに実行してみます。
設定したタスクを右クリックし、「実行」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3332380/a173dc73-74bf-13e1-ffd9-25125c7aaa93.png)

8.　データコレクターセットが起動していれば、設定完了となります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3332380/7522540c-d0ca-0e43-2916-b6a9f1279ddc.png)

## 自動停止設定
次に自動停止について、手順を記載します。
タスクスケジューラを用いて、logmanによる自動停止をします。

1.　タスクスケジューラを開きます。
「タスクスケジューラライブラリ」を右クリックし、「タスクの作成」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3332380/7e4da32e-c2da-b464-60e6-961ab7a9966c.png)

2.　全般タブを開き、名前を入力し、
「ユーザがログオンしているかどうかにかかわらず実行する」にチェックを入れます。

:::note warn
警告
「タスクの実行時に使うユーザアカウント」は管理者権限が付いたユーザを指定してください。
:::
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3332380/8589efa5-0920-d4bc-4a8e-0ab5b91c144c.png)


3.　トリガータブを開き、「新規」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3332380/4cb18de6-0244-7dda-0dfa-0d3a43797cc1.png)

4.　設定を「毎日」に選択し、開始時間を自動起動される2分前に設定し、「OK」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3332380/c0434812-10cf-72b9-43c7-4a8e5f51867e.png)

:::note info
インフォメーション
Microsoftサポートによると、余裕をもたせて2分前にすると回答がありましたが、
1秒前の23:59:59でも問題なく停止→起動することができました。
:::


5.　設定が追加されていれば、トリガーの設定は完了です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3332380/6b4bb1e9-33a6-0c0a-7cbe-6b0c29ef31ef.png)

6.　操作タブを開き、「新規」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3332380/51b642d7-1e1e-e1b4-2156-d4e069ec7773.png)

7.　以下の通り設定を入力し、OKをクリックします。
```:プログラム/スクリプト(P)
C:\Windows\System32\logman.exe
```
```:引数の追加(オプション)(A)
stop "{name}"
```
:::note info
インフォメーション
{name}はデータコレクターセット名です
:::
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3332380/ac80c91b-4384-362e-0cb6-7b23f77e80fa.png)

8.　設定が追加されていれば、「OK」をクリックし、設定完了となります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3332380/31f74786-cb39-c6e8-06cc-e07ebc130203.png)

9.　試しに実行してみます。
作成したタスクを右クリックし、「実行」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3332380/3038d366-9670-f2b7-8976-793b549ca3f0.png)

10.　対象のデータコレクターセットが、停止していれば成功となります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3332380/1451f2c3-92bb-9ff7-1b10-965006a112fb.png)

上記設定を行うことで、日次で0:00に起動し、23:58に停止するようになったため、
ログが日次で出力されるようになりました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3332380/e185134f-71f6-a1ec-7d66-1901f6b0bf95.png)

## 補足
自動起動設定にて、タスクスケジューラのトリガーに「スタートアップ時」を設定しておくと
OS再起動後も起動するようになるため、おすすめです！
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3332380/50715a3d-9751-61ab-e28f-7973f2c89d0e.png)


## さいごに
ここまでご覧いただき、ありがとうございました。
本設定をするにあたり、参考となる記事が少なかったので作ってみました。
ちなみに、自動起動のバグについては、最新のWindowsServer2022では解決されているようです。
停止方法はいろいろありますが、運用はこれが一番やりやすいのではないかと思います。

ありがとうございました！