モデル/バージョンが増えた場合でも CloudWatch の検索式、動的ラベルでダッシュボードを自動更新してみた
こんにちは!クラウド事業本部コンサルティング部のたかくに(@takakuni_)です。
はじめに
Amazon Bedrock を利用していると、アカウント内でどのモデルが多く利用されているのか気になるのではないでしょうか。
CloudWatch では Amazon Bedrock の自動ダッシュボードが用意されており、非常に便利です。
ただし、自動ダッシュボードはあくまで AWS 側で用意されているダッシュボードのため、自身でカスタマイズするには以下のように、自動ダッシュボードのデータを、カスタムダッシューボードに取り込む必要があります。
ここで課題となるのが、取り込んだメトリクスはモデル ID が静的に組み込まれてしまうことです。
新しいモデル/モデルバージョンが増えた場合に、都度ダッシュボードを更新する運用は骨が折れてしまいます。
そこで今回は、モデル ID を動的に識別し、ダッシュボードに取り込んでみようと思います。
検索式の利用
CloudWatch の検索式(Search Expressions)は、事前に検索クエリを定義しクエリに引っかかったメトリクスを、動的にグラフへ反映する機能です。
今回は AWS/Bedrock
の Invocations
メトリクスを ModelId
別に検索し動的にダッシュボードを更新します。以下の検索式を定義します。
SEARCH('{AWS/Bedrock,ModelId} MetricName="Invocations"', 'SampleCount', 60)
動的ラベル
動的ラベルは、選択したメトリクスにラベルを動的に付与する機能です。
今回の場合だと、検索式で取得した各モデルのメトリクスに対して、モデル ID を名前として動的に付与する意図で設定します。
${PROP('Dim.ModelId')}
作成されたダッシュボードは以下になります。現時点だと us.anthropic.claude-3-5-sonnet-20241022-v2:0
のみ、動的にラベリングされダッシュボードに表示されています。
メトリクスが発行されていなかった amazon.nova-pro-v1:0
をプレイグランドで実行してみました。かなり細かいのですが、新たにラベル付けされたデータが、ダッシュボードに反映されていますね。
まとめ
以上、「モデル/バージョンが増えた場合でも CloudWatch の検索式、動的ラベルでダッシュボードを自動更新してみた」でした。
自動的にダッシュボードを更新できないかなと調べてみたら、意外とあっさりできたため改めて CloudWatch すごいなぁと思いました。
今回のダッシュボードは Terraform のコードで作成できます。非常にシンプルな状態なので、カスタマイズしちゃってください。
このブログがどなたかの参考になれば幸いです。
クラウド事業本部コンサルティング部のたかくに(@takakuni_)でした!