Compute Engine (GCE) LQL queries
Table of contents
- Base schema and structural patterns (L44-L101)
- Core resource types (L50-L60)
- Guest OS and application logs (Ops Agent) (L62-L72)
- Boot and kernel logs (serial console) (L74-L81)
- Google infrastructure system events (L83-L91)
- User activity audit logs (L93-L101)
- Example queries (L103-L467)
- Activity audit logs for Compute Engine instances (L105-L112)
- System logs (syslog) emitted by Compute Engine instances (L114-L121)
- Compute Engine firewall rule deletion (L123-L131)
- Compute Engine VM authlogs (L133-L140)
- Compute Engine host error (L142-L155)
- Compute Engine host memory alert (L157-L170)
- Compute Engine host migrated (L172-L186)
- Compute Engine VM terminated/preempted (L188-L197)
- Compute Engine VM terminated due to scratch disk creation failure (L199-L213)
- Compute Engine zone resource pool exhaustion (stockout) (L215-L226)
- Compute Engine VM instance created (L228-L237)
- Compute Engine VM instance deleted with name (L239-L248)
- Compute Engine VM instance deleted with ID (L250-L259)
- Compute Engine VM instance restarted (L261-L271)
- Compute Engine Shielded VM boot integrity failure (L273-L282)
- Compute Engine VM instance stopped by Guest OS (L284-L296)
- Compute Engine Shielded VM boot file was blocked (L298-L307)
- Persistent disk created (L309-L318)
- Nodes added in sole-tenant node (L320-L331)
- Autoscale events in sole-tenant node (L333-L343)
- Manual snapshot taken (L345-L354)
- Scheduled snapshot taken (L356-L366)
- Snapshot schedule created (L368-L377)
- Snapshot schedule attached (L379-L389)
- Quota exceeded (L391-L400)
- Query unhealthy instances in instance group (L402-L410)
- Query instance group members within a time frame in UTC time format (L412-L423)
- Instances added to instance group (L425-L434)
- Instances removed from instance group (L436-L445)
- Instance template set or updated (L447-L457)
- Firewall logs (L459-L467)
Base schema and structural patterns
Compute Engine logs are highly segmented depending on whether you are analyzing the VM's internal operating system, Google's infrastructure events, or user-driven API audit logs.
Core resource types
- VM Instances (
gce_instance): The most common resource type. Use this when analyzing a running VM (Guest OS), its boot console, or its lifecycle events. - Storage (
gce_disk,gce_snapshot): Use for operations on persistent disks and snapshots. - Networking (
gce_firewall_rule,gce_route,gce_network): Use for infrastructure-level network changes, NOT for traffic flow logs. - Groups (
gce_instance_group,gce_instance_template): Use for Managed Instance Group (MIG) scaling, creation, and health checks.
Guest OS and application logs (Ops Agent)
When a user asks to search for "errors inside my VM", "syslog", "auth requests", or "app logs":
- Target
resource.type="gce_instance". - These are usually ingested via the Ops Agent.
- Filter by
log_id("syslog"),log_id("winevt.raw"), or the custom filelog_id. - The raw log string is found in
textPayload(unstructured) orjsonPayload(structured).
Boot and kernel logs (serial console)
When a VM is unbootable, crashing on startup, or experiencing kernel panics:
- Target
resource.type="gce_instance". - Filter by
log_id("serialconsole.googleapis.com/serial_port_1_output"). - Search within
textPayload(for example,"kernel panic","Out of memory").
Google infrastructure system events
When a VM is preempted, terminated by Google, or migrated during a host error:
- Target
resource.type="gce_instance". - Filter by
log_id("cloudaudit.googleapis.com/system_event"). - System events are NOT driven by users, so they are logged as system events.
Use
protoPayload.methodName(for example,"compute.instances.hostError","compute.instances.preempted").
User activity audit logs
When a user asks "who deleted my VM", "who stopped the instance", or "when was this disk attached":
- Target the relevant resource type (
gce_instance,gce_disk, etc.). - Filter by
log_id("cloudaudit.googleapis.com/activity"). - Use
protoPayload.methodName(for example,"v1.compute.instances.delete","v1.compute.disks.attach").
Example queries
Activity audit logs for Compute Engine instances
Variables to replace: None
resource.type="gce_instance" AND
log_id("cloudaudit.googleapis.com/activity")System logs (syslog) emitted by Compute Engine instances
Variables to replace: None
resource.type="gce_instance" AND
log_id("syslog")Compute Engine firewall rule deletion
Variables to replace: None
resource.type="gce_firewall_rule" AND
log_id("cloudaudit.googleapis.com/activity") AND
SEARCH(protoPayload.methodName, "firewalls.delete")Compute Engine VM authlogs
Variables to replace: None
resource.type="gce_instance" AND
log_id("authlog")Compute Engine host error
Variables to replace: <INSTANCE_ID>
resource.type="gce_instance" AND
protoPayload.serviceName="compute.googleapis.com" AND
(SEARCH(protoPayload.methodName, "compute.instances.hostError")
OR
operation.producer:"compute.instances.hostError") AND
log_id("cloudaudit.googleapis.com/system_event") AND
resource.labels.instance_id="<INSTANCE_ID>" AND
severity=INFOCompute Engine host memory alert
Variables to replace: <INSTANCE_ID>
resource.type="gce_instance" AND
protoPayload.serviceName="compute.googleapis.com" AND
(jsonPayload.methodName:"compute.instances.host_event_notify"
OR
operation.producer:"compute.instances.host_event_notify") AND
log_id("cloudaudit.googleapis.com/host_event_notify") AND
resource.labels.instance_id="<INSTANCE_ID>" AND
severity=CRITICALCompute Engine host migrated
Variables to replace: <INSTANCE_ID>
resource.type="gce_instance" AND
protoPayload.serviceName="compute.googleapis.com" AND
(SEARCH(protoPayload.methodName, "compute.instances.migrateOnHostMaintenance")
OR
operation.producer:
"compute.instances.migrateOnHostMaintenance") AND
log_id("cloudaudit.googleapis.com/system_event") AND
resource.labels.instance_id="<INSTANCE_ID>" AND
severity=INFOCompute Engine VM terminated/preempted
Variables to replace: <INSTANCE_ID>
resource.type="gce_instance" AND
protoPayload.methodName=~"compute\.instances\.(guestTerminate|preempted)" AND
log_id("cloudaudit.googleapis.com/system_event") AND
resource.labels.instance_id="<INSTANCE_ID>"Compute Engine VM terminated due to scratch disk creation failure
Variables to replace: <INSTANCE_ID>
resource.type="gce_instance" AND
protoPayload.serviceName="compute.googleapis.com" AND
(protoPayload.methodName="compute.instances.scratchDiskCreationFailed"
OR
operation.producer:
"compute.instances.scratchDiskCreationFailed") AND
log_id("cloudaudit.googleapis.com/system_event") AND
resource.labels.instance_id="<INSTANCE_ID>" AND
severity=INFOCompute Engine zone resource pool exhaustion (stockout)
Variables to replace: None
resource.type="gce_instance" AND
log_id("cloudaudit.googleapis.com/activity") AND
(protoPayload.methodName="v1.compute.instances.start" OR
protoPayload.methodName="v1.compute.instances.insert") AND
protoPayload.status.message=~"(ZONE_RESOURCE_POOL_EXHAUSTED|does not have enough resources|resource pool exhausted)" AND
severity>=WARNINGCompute Engine VM instance created
Variables to replace: <INSTANCE_NAME>
resource.type="gce_instance" AND
SEARCH(protoPayload.methodName, "compute.instances.insert") AND
log_id("cloudaudit.googleapis.com/activity") AND
protoPayload.request.name="<INSTANCE_NAME>"Compute Engine VM instance deleted with name
Variables to replace: <INSTANCE_NAME>
resource.type="gce_instance" AND
SEARCH(protoPayload.methodName, "compute.instances.delete") AND
log_id("cloudaudit.googleapis.com/activity") AND
protoPayload.resourceName:"<INSTANCE_NAME>"Compute Engine VM instance deleted with ID
Variables to replace: <INSTANCE_ID>
resource.type="gce_instance" AND
SEARCH(protoPayload.methodName, "compute.instances.delete") AND
log_id("cloudaudit.googleapis.com/activity") AND
resource.labels.instance_id="<INSTANCE_ID>"Compute Engine VM instance restarted
Variables to replace: <INSTANCE_ID>
resource.type="gce_instance" AND
protoPayload.methodName=~"compute\.instances\.(start|stop|reset|automaticRestart|guestTerminate|instanceManagerHaltForRestart)" AND
(log_id("cloudaudit.googleapis.com/activity")
OR log_id("cloudaudit.googleapis.com/system_event")) AND
resource.labels.instance_id="<INSTANCE_ID>"Compute Engine Shielded VM boot integrity failure
Variables to replace: <INSTANCE_ID>
resource.type="gce_instance" AND
log_id("compute.googleapis.com/shielded_vm_integrity") AND
jsonPayload.earlyBootReportEvent.policyEvaluationPassed="false" AND
resource.labels.instance_id="<INSTANCE_ID>"Compute Engine VM instance stopped by Guest OS
Variables to replace: <INSTANCE_ID>
resource.type="gce_instance" AND
protoPayload.serviceName="compute.googleapis.com" AND
(SEARCH(protoPayload.methodName, "compute.instances.guestTerminate") OR
operation.producer:"compute.instances.guestTerminate") AND
log_id("cloudaudit.googleapis.com/system_event") AND
resource.labels.instance_id="<INSTANCE_ID>" AND
severity=INFOCompute Engine Shielded VM boot file was blocked
Variables to replace: <INSTANCE_ID>
resource.type="gce_instance" AND
log_id("serialconsole.googleapis.com/serial_port_1_output") AND
textPayload:"Security Violation" AND
resource.labels.instance_id="<INSTANCE_ID>"Persistent disk created
Variables to replace: <PERSISTENT_DISK_NAME>
resource.type="gce_disk" AND
SEARCH(protoPayload.methodName, "compute.disks.insert") AND
log_id("cloudaudit.googleapis.com/activity") AND
protoPayload.resourceName: "<PERSISTENT_DISK_NAME>"Nodes added in sole-tenant node
Variables to replace: <NODE_GROUP_ID>
resource.type="gce_node_group" AND
log_id("cloudaudit.googleapis.com/activity") AND
protoPayload.methodName=~("compute.nodeGroups.addNodes"
OR "compute.nodeGroups.insert") AND
resource.labels.node_group_id="<NODE_GROUP_ID>" AND
severity=INFOAutoscale events in sole-tenant node
Variables to replace: <NODE_GROUP_ID>
resource.type="gce_node_group" AND
log_id("cloudaudit.googleapis.com/system_event") AND
protoPayload.methodName=~("compute.nodeGroups.deleteNodes"
OR "compute.nodeGroups.addNodes") AND
resource.labels.node_group_id="<NODE_GROUP_ID>"Manual snapshot taken
Variables to replace: <SNAPSHOT_NAME>
resource.type="gce_snapshot" AND
log_id("cloudaudit.googleapis.com/activity") AND
SEARCH(protoPayload.methodName, "compute.snapshots.insert") AND
protoPayload.resourceName:"<SNAPSHOT_NAME>"Scheduled snapshot taken
Variables to replace: <PERSISTENT_DISK_NAME>
resource.type="gce_disk" AND
log_id("cloudaudit.googleapis.com/system_event") AND
protoPayload.methodName="ScheduledSnapshots" AND
protoPayload.response.operationType="createSnapshot" AND
protoPayload.response.targetLink="<PERSISTENT_DISK_NAME>"Snapshot schedule created
Variables to replace: <SCHEDULE_NAME>
resource.type="gce_resource_policy" AND
log_id("cloudaudit.googleapis.com/activity") AND
SEARCH(protoPayload.methodName, "compute.resourcePolicies.insert") AND
protoPayload.request.name="<SCHEDULE_NAME>"Snapshot schedule attached
Variables to replace: <PERSISTENT_DISK_NAME>, <SCHEDULE_NAME>
resource.type="gce_disk" AND
log_id("cloudaudit.googleapis.com/activity") AND
SEARCH(protoPayload.methodName, "compute.disks.addResourcePolicies") AND
protoPayload.request.resourcePolicys:"<SCHEDULE_NAME>" AND
protoPayload.resourceName:"<PERSISTENT_DISK_NAME>"Quota exceeded
Variables to replace: None
resource.type="gce_instance" AND
SEARCH(protoPayload.methodName, "compute.instances.insert") AND
protoPayload.status.message:"QUOTA_EXCEEDED" AND
severity=ERRORQuery unhealthy instances in instance group
Variables to replace: <INSTANCE_GROUP_NAME>
resource.type="gce_instance_group" AND
resource.labels.instance_group_name="<INSTANCE_GROUP_NAME>" AND
jsonPayload.healthCheckProbeResult.healthState="UNHEALTHY"Query instance group members within a time frame in UTC time format
Variables to replace: <END_TIME>, <INSTANCE_GROUP_NAME>, <START_TIME>
resource.type="gce_instance_group_manager" AND
resource.labels.instance_group_manager_name="<INSTANCE_GROUP_NAME>" AND
jsonPayload.@type=
"type.googleapis.com/compute.InstanceGroupManagerEvent" AND
jsonPayload.instanceHealthStateChange.detailedHealthState="HEALTHY" AND
timestamp >= "<START_TIME>" AND timestamp <= "<END_TIME>"Instances added to instance group
Variables to replace: <INSTANCE_GROUP_NAME>
resource.type="gce_instance_group" AND
SEARCH(protoPayload.methodName, "compute.instanceGroups.addInstances") AND
log_id("cloudaudit.googleapis.com/activity") AND
resource.labels.instance_group_name="<INSTANCE_GROUP_NAME>"Instances removed from instance group
Variables to replace: <INSTANCE_GROUP_NAME>
resource.type="gce_instance_group" AND
SEARCH(protoPayload.methodName, "compute.instanceGroups.removeInstances") AND
log_id("cloudaudit.googleapis.com/activity") AND
resource.labels.instance_group_name="<INSTANCE_GROUP_NAME>"Instance template set or updated
Variables to replace: <INSTANCE_GROUP_MANAGER>
resource.type="gce_instance_group_manager" AND
log_id("cloudaudit.googleapis.com/activity") AND
protoPayload.methodName=
"v1.compute.instanceGroupManagers.setInstanceTemplate" AND
resource.labels.instance_group_manager_name="<INSTANCE_GROUP_MANAGER>"Firewall logs
Variables to replace: <INSTANCE_NAME>
resource.type="gce_subnetwork" AND
log_id("compute.googleapis.com/firewall") AND
jsonPayload.instance.vm_name="<INSTANCE_NAME>"