0. はじめに
検証内容の一つに各サービスのスケールアップにかかる時間を図るというものがあります。それにあたり、ロギングサービスのCloud Logging(AWSのCloudWatch Logs相当)を利用してAlloyDBのスケールアップにかかる時間の測定を実施しました。測定の中でCloud Loggingの見方を調べましたので、本ブログにて共有させて頂きます。
1. 操作のログ
まず、サービスの操作はコンソールで実行するにしろコマンドで実行するにしろ最終的にAPI オペレーションが行われます。AlloyDBのスケールアップの場合は「UpdateInstance」API オペレーションになります。そしてAPI オペレーションはAudit Logの管理アクティビティ監査ログ(※1)として出力されます。
※1 AlloyDBのAudit Logの管理アクティビティ監査ログについては公式サイト「監査ログを使用してアクセスを監視する」を参照ください。(https://cloud.google.com/alloydb/docs/audit-logging#audited_operations)
Audit LogはCloud Loggingに出されます。
ログエクスプローラーにてリソースの種類(RESOURCE TYPE)を「監査対象リソース」(Audit Log)で選択する。もしくはクエリに直接「resource.type="audited_resource"」と入れるとAudit Logが表示されます。

2. 操作のログが複数のエントリに分かれる場合
DBのスケールアップのような時間のかかる操作は1つのオペレーションが複数のログエントリに分割されます。
一連のオペレーションのログをどのように見分けるかという話ですが、以下のようにoperationフィールドを見ると判別できるようです。(※2)
※2 公式サイトを参照(https://cloud.google.com/logging/docs/audit/understanding-audit-logs?hl=ja#large_or_long-running_audit_log_entries)
以下にAlloyDBの更新(スペックアップ)時のログの抜粋を記載します。
[開始ログ抜粋]
-
first: true:一連のオペレーションの最初のログであることを示します。 -
id:一連のオペレーションであることを示すIDです。
{
"operation": {
"first": true,
"id": "projects/jp-testproject-00/locations/asia-northeast1/operations/operation-1694651522470-60546ce03d12a-29fdb8ed-d36b78d9",
"producer": "alloydb.googleapis.com"
}
}
[終了ログ抜粋]
-
id:一連のオペレーションであることを示すIDです。 -
last: true:一連のオペレーションの最後のログであることを示します。
{
"operation": {
"id": "projects/jp-testproject-00/locations/asia-northeast1/operations/operation-1694651522470-60546ce03d12a-29fdb8ed-d36b78d9",
"last": true,
"producer": "alloydb.googleapis.com"
}
}
なお、意図した操作のログであるかは、開始ログのrequestフィールド等を見て判断する必要があります。今回はCPU数を2から4に変更したので、「cpu_count: 4」と書かれていることを確認しました。
[開始ログ抜粋]
{
"request": {
"@type": "type.googleapis.com/google.cloud.alloydb.v1beta.UpdateInstanceRequest",
"instance": {
"client_connection_config": {
"ssl_config": {}
},
"database_flags": [
{},
{},
{}
],
"instance_type": "PRIMARY",
"machine_config": {
"cpu_count": 4
}
}
}
}
3. まとめ
ログによってログフィールド(ログ内容)が全然違うので、お目当てのログを見つけるのは苦労しました。(Cloud Runだと別の見え方でした。)
今回も最初RESOURCE TYPEを「AlloyDB」に絞っていたのですがまったく見つけられず、「UpdateInstance」で検索するとRESOURCE TYPEが「監査対象リソース」であることが分かりました。
今後Google Cloudを触る方にとって少しでもお役に立てたらと思います。
以上