Power Automate テレメトリーデータの監視

Power Platform において、アプリの実行・状態に関して監視が必要とされるようなニーズがあるかと思います。

Power Automate に関しては、元々 Power Platform 管理センターの ["分析"](https://learn.microsoft.com/ja-jp/power-platform/admin/analytics-flow) メニューから、過去7・14・28日分の
・環境内のフローに関する実行状況（成功・失敗・キャンセル・実行中）
・よく使用されるフローの特定
・フロー毎のエラーの内容
・フロー毎の共有数
・フロー毎の使用されているコネクタ
は確認できるので、定期的あるいはユーザーからの依頼を元に、ダッシュボードを見て簡単に調査・棚卸することはできます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2375815/cc983435-2f62-dab2-6fde-f6f1edcef267.png)

一方で、
・**フローの中のどのトリガーあるいはアクションで失敗したのか調査したい**、
・**どのアクションで実行時間が多くかかっているのか調査したい**、
・**カスタムでアラート作りたい**、
といったことをしたい場合は、Azure Application Insights との統合機能を利用すると良いでしょう。

[マネージド環境](https://learn.microsoft.com/ja-jp/power-platform/admin/managed-environment-enable) を有効化することで、環境内の Power Automate のテレメトリーデータを自動的に Azure Application Insights に送信し続けることができます。

Power Automate から出力される具体的なテレメトリーデータは以下の通りです。
・クラウドフロー自体の実行に関するデータ
・クラウドフローのトリガーの実行に関するデータ
・クラウドフローのアクションの実行に関するデータ

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2375815/831fcf37-6c0c-ed88-53ce-62db9c2e666a.png)

## Power Automate から Application Insights へ出力するための準備
#### ① Azure側: Log Analytics ワークスペースと App Insights をデプロイ
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2375815/84b520ed-dc90-b5d2-5c31-6e8c8e9e4df9.png)

#### ② Power Platform側: [マネージド環境](https://learn.microsoft.com/ja-jp/power-platform/admin/managed-environment-enable) を有効化
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2375815/075a616f-9512-700c-cafd-f82f76d33bba.png)

#### ③ Power Platform側: [データエクスポート](https://admin.powerplatform.microsoft.com/analytics/dataexport) の設定

:::note warn
テナント管理者でログインして作業する必要があります
:::

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2375815/8e6419ff-626c-8aba-e611-49b909aa956b.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2375815/a3589236-7658-960f-295c-df7c43e8f1e6.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2375815/34f39779-1b16-56c6-e517-381386ea7d11.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2375815/e59e3f69-0897-b396-0e2c-d1b777fd8c2a.png)

## Application Insights を使って確認・分析・アラートなどを設定してみよう
#### ① "メトリック" メニューから、フローの実行数を時系列に確認することができます。

**スコープ**: メトリック名前空間 = ログベースのメトリック > Server requests
**フィルタ例**: Power Platform 環境 (environmentid)、フロー (Operation name)、テレメトリー種類 (signalCategory)、エラーあり (error) 

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2375815/91f76282-ad38-ddf0-5682-b863b4a7fd06.png)

#### ② "ログ" メニューから、テレメトリーデータの詳細を分析 (Kustoクエリで加工)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2375815/eb27f6d2-33f8-b46a-0be3-5cfa083c4cab.png)

```Kusto:例. 失敗したフロー
requests
| where success == false
```
```Kusto:例. 失敗したフロー (Cloud flow runs) とその内容 (Cloud flow triggers/actions) を紐づけて出力
requests
| where success == false
| join kind=inner (
    dependencies
    | where success == false
)
on operation_ParentId
```

#### ③ ②で分析した結果をアラートルールにして、アラートを作成（カスタムアラート）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2375815/a212db24-8bf4-d765-66b2-0e0b21b277ed.png)

閾値を超えた場合はアラートを受信
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2375815/82a2f3b8-406b-b1aa-bb09-b2d374a6ced2.png)

ご参考になれば幸いです。