[8.16.1] Google Cloud Vertex AI Integrationを使用してGemini for Google Cloudの使用状況を可視化する

# はじめに
先日、AWS Bedrockの利用状況の可視化ということで以下の記事を書きました。
https://qiita.com/takeo-furukubo/items/a19152a669732d8d4784
8.16では同様にVertex AIにもIntegrationsが出ていますのでそちらの解説となります。
正式なドキュメントはこちらです。
https://www.elastic.co/guide/en/integrations/current/gcp_vertexai.html
現状ではprompt/response情報が出ていないので、メトリクスだけとなります。

:::note
本記事は8.16.1をベースにしています。本機能は2024/12/10現在テクニカルプレビューです。
:::

# 手順
1. メトリクスにアクセスできるサービスアカウントを作成
2. JSON Credentialsを作成してダウンロード
2. Vertex AI Integrationsを設定
2. Elastic Agentを展開

## サービスアカウント
サービスアカウントに与えるロールですが、正式なドキュメントには
`There isn’t a single, specific role required to view metrics for Vertex AI. Access depends on how the models are deployed and the permissions granted to your Google Cloud project and user account.`
という記載があります。
今回の記事ではあまりよろしくはないですが`Vertex AI 管理者`のロールを複製して、それに以下の2つを追加しています。
`monitoring.metricDescriptors.list`
`monitoring.timeSeries.list`

## JSON Credentials
サービスアカウントを作成したら、鍵を新規作成します。
![スクリーンショット 2024-12-10 15.06.59.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2603229/07e68875-a0d1-fd4d-13f4-6b4563d760ee.png)
`キーを追加`をクリックして、JSON形式で保存します。
![スクリーンショット 2024-12-10 15.03.52.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2603229/1da716d0-e048-1c5e-4d20-e0addfe54bf8.png)

## Vertex AI Integrationsの設定
Integrationはログを自動的に整形して可視化のダッシュボードを作成するものです。
Ingest PipelineとKibana Lensが主な構成要素です。

まず3本線メニューからManagementの下にある`Integrations`をクリックします。
![スクリーンショット 2024-11-27 17.23.02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2603229/305ca722-64b8-7de4-ab54-f9bd32e37d6d.png)

検索バーがあるので`vertex`と入力すると以下のようにフィルタされるので、表示されているVertex AIをクリックします。表示されない場合は、左下にある`Display beta integrations`をチェックしてください。
![スクリーンショット 2024-12-10 15.14.32.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2603229/0b8cecfd-893b-6cf4-e701-0848ef4352b0.png)

右上の`Add GCP Vertex AI`をクリックします。
![スクリーンショット 2024-12-10 15.17.31.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2603229/15855c4c-2a7a-374b-7cd1-0ee218e9d9dc.png)

:::note
次の画面はクラスタ作成後に初めてIntegrationsを追加する人だけ表示されます
:::
この画面が表示されたら、一番下の`Add integration only (skip agent installation)`をクリックします。
![スクリーンショット 2024-11-27 17.28.34.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2603229/1dd0a763-e2f0-1c98-9248-d8fdad88c7d5.png)

次の部分に入力して、最後に一番下にある`Save and continue`をクリックして保存します。
- Project id
- Credentials JSON
    - 先ほどダウンロードしたJSONをそのままコピー＆ペーストします

![スクリーンショット 2024-12-10 15.24.23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2603229/d60fb261-560f-320e-5916-6ae908562566.png)

次に`Add Elastic Agent to your hosts`をクリックしてElastic Agentをインストールします。
![スクリーンショット 2024-12-10 15.26.20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2603229/0817b290-1a38-a650-dfd7-8004dc01b5d2.png)

少しスクロールダウンすると各環境におけるインストールコマンドが表示されていますので、これをコピー＆ペーストしてインストールします。
![スクリーンショット 2024-11-27 17.47.17.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2603229/50078d9e-0e3a-3f81-f1b9-062cc62c62b6.png)

問題なくインストールができて設定に問題がなければ以下のようになります。
![スクリーンショット 2024-11-27 18.00.47.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2603229/39f504ea-b6de-cfe7-4faf-0128bfff1d74.png)

## Vertex AIを使っておく
Playgroundなどで使っておきましょう

# ダッシュボード
データが来たところで、ダッシュボードで確認してみましょう。データが来るまでに少し時間がかかるようです。
3本線メニューから`Dashboard`をクリックします。
![スクリーンショット 2024-12-10 15.38.44.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2603229/c6375d17-aa56-936f-e8b2-6fd120a2f58d.png)

`[Google Cloud Vertex AI] Overview`をクリックします。他にもダッシュボードがいっぱいあって見つからない場合は検索窓にvertexと入れてください。
![スクリーンショット 2024-12-10 15.53.04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2603229/56c84ef0-2c2c-97d8-1b97-0f461c081c23.png)

デフォルトでは直近15分のデータしか表示しません。Vertex AIを触ったのはだいぶ前だと思いますので、右上の`Last 15 minutes`の横のカレンダーアイコンをクリックして、Playgroundを操作した時間が範囲に入るように時間範囲を選びます。
![スクリーンショット 2024-12-10 15.56.15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2603229/1aa66839-f019-97a8-3b02-6e0ee35277e6.png)

## 全体画面
![-Google-Cloud-Vertex-AI-Overview-Elastic.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2603229/6eadd8a5-c674-2e88-646d-3341844b5961.png)

## Discoverで確認
Discoverに移って`metrics-*`を表示し、フィールドを`gcp`でフィルタします。Vertex AI関係のフィールドが表示されるので、興味のあるフィールドをクリックしてみましょう。
`gcp.labels.metrics.deployed_model_id`はすべてのメトリクスに入っているので、これが存在することを条件とするフィルタを掛けると、Vertex AI関係のメトリクスのみ表示できます。
![スクリーンショット 2024-12-10 16.31.58.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2603229/57e55534-e90b-8b66-38a6-35ba530db072.png)

# まとめ
Elasticでは生成AIと連携するツールを数多く出してきました。
本記事の機能を利用することにより、生成AIにかかるコストの把握や、プロンプトエンジニアリングがやりやすくなります。
また誰が使用しているかも一目瞭然ですので、セキュリティチェックにも有用です。

検索/O11y/Security全てできるElasticは生成AIを利用するのに最適なプラットフォームです。
是非お試し下さい。