Project: CockroachDB (App Definition and Development / Database)
File: eventlog.md

Certain notable events are reported using a structured format. Commonly, these notable events are also copied to the table `system.eventlog`, unless the cluster setting `server.eventlog.enabled` is unset. Additionally, notable events are copied to specific external logging channels in log messages, where they can be collected for further processing. The sections below document the possible notable event types in this version of CockroachDB. For each event type, a table documents the possible fields. A field may be omitted from an event if its value is empty or zero. A field is also considered "Sensitive" if it may contain application-specific information or personally identifiable information (PII). In that case, the copy of the event sent to the external logging channel will contain redaction markers in a format that is compatible with the redaction facilities in and , provided the `redactable` functionality is enabled on the logging sink. Events not documented on this page will have an unstructured format in log messages. Events in this category pertain to an entire cluster and are not relative to any particular tenant. In a multi-tenant setup, the `system.eventlog` table for individual tenants cannot contain a copy of cluster-level events; conversely, the `system.eventlog` table in the system tenant cannot contain the SQL-level events for individual tenants. Events in this category are logged to the `OPS` channel. An event of type `certs_reload` is recorded when the TLS certificates are reloaded/rotated from disk. | Field | Description | Sensitive | |--|--|--| | `Success` | Whether the operation completed without errors. | no | | `ErrorMessage` | If an error was encountered, the text of the error. | yes | | Field | Description | Sensitive | |--|--|--| | `Timestamp` | The timestamp of the event. Expressed as nanoseconds since the Unix epoch. | no | | `EventType` | The type of the event. | no | An event of type `node_decommissioned` is recorded when a node is marked as decommissioned. | Field | Description | Sensitive | |--|--|--| | `Timestamp` | The timestamp of the event. Expressed as nanoseconds since the Unix epoch. | no | | `EventType` | The type of the event. | no | | `RequestingNodeID` | The node ID where the event was originated. | no | | `TargetNodeID` | The node ID affected by the operation. | no | An event of type `node_decommissioning` is recorded when a node is marked as decommissioning. | Field | Description | Sensitive | |--|--|--| | `Timestamp` | The timestamp of the event. Expressed as nanoseconds since the Unix epoch. | no | | `EventType` | The type of the event. | no | | `RequestingNodeID` | The node ID where the event was originated. | no | | `TargetNodeID` | The node ID affected by the operation. | no | An event of type `node_join` is recorded when a node joins the cluster. | Field | Description | Sensitive | |--|--|--| | `Timestamp` | The timestamp of the event. Expressed as nanoseconds since the Unix epoch. | no | | `EventType` | The type of the event. | no | | `NodeID` | The node ID where the event was originated. | no | | `StartedAt` | The time when this node was last started. | no | | `LastUp` | The approximate last time the node was up before the last restart. | no | An event of type `node_recommissioned` is recorded when a decommissioning node is recommissioned. | Field | Description | Sensitive | |--|--|--| | `Timestamp` | The timestamp of the

Expressed as nanoseconds since the Unix epoch. | no | | `EventType` | The type of the event. | no | | `RequestingNodeID` | The node ID where the event was originated. | no | | `TargetNodeID` | The node ID affected by the operation. | no | An event of type `node_restart` is recorded when an existing node rejoins the cluster after being offline. | Field | Description | Sensitive | |--|--|--| | `Timestamp` | The timestamp of the event. Expressed as nanoseconds since the Unix epoch. | no | | `EventType` | The type of the event. | no | | `NodeID` | The node ID where the event was originated. | no | | `StartedAt` | The time when this node was last started. | no | | `LastUp` | The approximate last time the node was up before the last restart. | no | An event of type `tenantsharedservice_start` is recorded when a tenant server is started inside the same process as the KV layer. | Field | Description | Sensitive | |--|--|--| | `OK` | Whether the startup was successful. | no | | `ErrorText` | If the startup failed, the text of the error. | partially | | Field | Description | Sensitive | |--|--|--| | `Timestamp` | The timestamp of the event. Expressed as nanoseconds since the Unix epoch. | no | | `EventType` | The type of the event. | no | | `NodeID` | The node ID where the event was originated. | no | | `TenantID` | The ID of the tenant owning the service. | no | | `InstanceID` | The ID of the server instance. | no | | `TenantName` | The name of the tenant at the time the event was emitted. | yes | An event of type `tenantsharedservice_stop` is recorded when a tenant server is shut down inside the same process as the KV layer. | Field | Description | Sensitive | |--|--|--| | `Timestamp` | The timestamp of the event. Expressed as nanoseconds since the Unix epoch. | no | | `EventType` | The type of the event. | no | | `NodeID` | The node ID where the event was originated. | no | | `TenantID` | The ID of the tenant owning the service. | no | | `InstanceID` | The ID of the server instance. | no | | `TenantName` | The name of the tenant at the time the event was emitted. | yes | Events in this category pertain to debugging operations performed by operators or (more commonly) Cockroach Labs employees. These operations can e.g. directly access and mutate internal state, breaking system invariants. Events in this category are logged to the `OPS` channel. An event of type `debugrecoverreplica` is recorded when unsafe loss of quorum recovery is performed. | Field | Description | Sensitive | |--|--|--| | `RangeID` | | no | | `StoreID` | | no | | `SurvivorReplicaID` | | no | | `UpdatedReplicaID` | | no | | `StartKey` | | yes | | `EndKey` | | yes | | Field | Description | Sensitive | |--|--|--| | `Timestamp` | The timestamp of the event. Expressed as nanoseconds since the Unix epoch. | no | | `EventType` | The type of the event. | no | | `NodeID` | The node ID where the event originated. | no | | `User` | The user which performed the operation. | yes | An event of type `debugsendkv_batch` is recorded when an arbitrary KV BatchRequest is submitted to the cluster via the `debug send-kv-batch` CLI

| Field | Description | Sensitive | |--|--|--| | `BatchRequest` | | yes | | Field | Description | Sensitive | |--|--|--| | `Timestamp` | The timestamp of the event. Expressed as nanoseconds since the Unix epoch. | no | | `EventType` | The type of the event. | no | | `NodeID` | The node ID where the event originated. | no | | `User` | The user which performed the operation. | yes | Events in this category pertain to the health of one or more servers. Events in this category are logged to the `HEALTH` channel. An event of type `runtime_stats` is recorded every 10 seconds as server health metrics. | Field | Description | Sensitive | |--|--|--| | `MemRSSBytes` | The process resident set size. Expressed as bytes. | no | | `GoroutineCount` | The number of goroutines. | no | | `MemStackSysBytes` | The stack system memory used. Expressed as bytes. | no | | `GoAllocBytes` | The memory allocated by Go. Expressed as bytes. | no | | `GoTotalBytes` | The total memory allocated by Go but not released. Expressed as bytes. | no | | `GoStatsStaleness` | The staleness of the Go memory statistics. Expressed in seconds. | no | | `HeapFragmentBytes` | The amount of heap fragmentation. Expressed as bytes. | no | | `HeapReservedBytes` | The amount of heap reserved. Expressed as bytes. | no | | `HeapReleasedBytes` | The amount of heap released. Expressed as bytes. | no | | `CGoAllocBytes` | The memory allocated outside of Go. Expressed as bytes. | no | | `CGoTotalBytes` | The total memory allocated outside of Go but not released. Expressed as bytes. | no | | `CGoCallRate` | The total number of calls outside of Go over time. Expressed as operations per second. | no | | `CPUUserPercent` | The user CPU percentage. | no | | `CPUSysPercent` | The system CPU percentage. | no | | `GCPausePercent` | The GC pause percentage. | no | | `GCRunCount` | The total number of GC runs. | no | | `NetHostRecvBytes` | The bytes received on all network interfaces since this process started. | no | | `NetHostSendBytes` | The bytes sent on all network interfaces since this process started. | no | | Field | Description | Sensitive | |--|--|--| | `Timestamp` | The timestamp of the event. Expressed as nanoseconds since the Unix epoch. | no | | `EventType` | The type of the event. | no | Events in this category pertain to long-running jobs that are orchestrated by a node's job registry. These system processes can create and/or modify stored objects during the course of their execution. A job might choose to emit multiple events during its execution when transitioning from one "state" to another. Egs: IMPORT/RESTORE will emit events on job creation and successful completion. If the job fails, events will be emitted on job creation, failure, and successful revert. Events in this category are logged to the `OPS` channel. An event of type `import` is recorded when an import job is created and successful completion. If the job fails, events will be emitted on job creation, failure, and successful revert. | Field | Description | Sensitive | |--|--|--| | `Timestamp` | The timestamp of the event. Expressed as nanoseconds since the Unix epoch. | no | | `EventType` | The type of the event. | no | | `JobID` | The ID of the job that triggered the

| no | | `JobType` | The type of the job that triggered the event. | no | | `Description` | A description of the job that triggered the event. Some jobs populate the description with an approximate representation of the SQL statement run to create the job. | yes | | `User` | The user account that triggered the event. | yes | | `DescriptorIDs` | The object descriptors affected by the job. Set to zero for operations that don't affect descriptors. | yes | | `Status` | The status of the job that triggered the event. This allows the job to indicate which phase execution it is in when the event is triggered. | no | An event of type `restore` is recorded when a restore job is created and successful completion. If the job fails, events will be emitted on job creation, failure, and successful revert. | Field | Description | Sensitive | |--|--|--| | `Timestamp` | The timestamp of the event. Expressed as nanoseconds since the Unix epoch. | no | | `EventType` | The type of the event. | no | | `JobID` | The ID of the job that triggered the event. | no | | `JobType` | The type of the job that triggered the event. | no | | `Description` | A description of the job that triggered the event. Some jobs populate the description with an approximate representation of the SQL statement run to create the job. | yes | | `User` | The user account that triggered the event. | yes | | `DescriptorIDs` | The object descriptors affected by the job. Set to zero for operations that don't affect descriptors. | yes | | `Status` | The status of the job that triggered the event. This allows the job to indicate which phase execution it is in when the event is triggered. | no | Events in this category report miscellaneous SQL events. They are relative to a particular SQL tenant. In a multi-tenant setup, copies of these miscellaneous events are preserved in each tenant's own system.eventlog table. Events in this category are logged to the `OPS` channel. An event of type `setclustersetting` is recorded when a cluster setting is changed. | Field | Description | Sensitive | |--|--|--| | `SettingName` | The name of the affected cluster setting. | no | | `Value` | The new value of the cluster setting. | yes | | Field | Description | Sensitive | |--|--|--| | `Timestamp` | The timestamp of the event. Expressed as nanoseconds since the Unix epoch. | no | | `EventType` | The type of the event. | no | | `Statement` | A normalized copy of the SQL statement that triggered the event. The statement string contains a mix of sensitive and non-sensitive details (it is redactable). | partially | | `Tag` | The statement tag. This is separate from the statement string, since the statement string can contain sensitive information. The tag is guaranteed not to. | no | | `User` | The user account that triggered the event. The special usernames `root` and `node` are not considered sensitive. | depends | | `DescriptorID` | The primary object descriptor affected by the operation. Set to zero for operations that don't affect descriptors. | no | | `ApplicationName` | The application name for the session where the event was emitted. This is included in the event to ease filtering of logging output by application. | no | | `PlaceholderValues` | The mapping of SQL placeholders to their values, for prepared

| yes | An event of type `settenantcluster_setting` is recorded when a cluster setting override is changed, either for another tenant or for all tenants. | Field | Description | Sensitive | |--|--|--| | `SettingName` | The name of the affected cluster setting. | no | | `Value` | The new value of the cluster setting. | yes | | `TenantId` | The target Tenant ID. Empty if targeting all tenants. | no | | `AllTenants` | Whether the override applies to all tenants. | no | | Field | Description | Sensitive | |--|--|--| | `Timestamp` | The timestamp of the event. Expressed as nanoseconds since the Unix epoch. | no | | `EventType` | The type of the event. | no | | `Statement` | A normalized copy of the SQL statement that triggered the event. The statement string contains a mix of sensitive and non-sensitive details (it is redactable). | partially | | `Tag` | The statement tag. This is separate from the statement string, since the statement string can contain sensitive information. The tag is guaranteed not to. | no | | `User` | The user account that triggered the event. The special usernames `root` and `node` are not considered sensitive. | depends | | `DescriptorID` | The primary object descriptor affected by the operation. Set to zero for operations that don't affect descriptors. | no | | `ApplicationName` | The application name for the session where the event was emitted. This is included in the event to ease filtering of logging output by application. | no | | `PlaceholderValues` | The mapping of SQL placeholders to their values, for prepared statements. | yes | Events in this category are generated when a table has been marked as audited via `ALTER TABLE ... EXPERIMENTAL_AUDIT SET`. Note: These events are not written to `system.eventlog`, even when the cluster setting `system.eventlog.enabled` is set. They are only emitted via external logging. Events in this category are logged to the `SENSITIVE_ACCESS` channel. An event of type `admin_query` is recorded when a user with admin privileges (the user is directly or indirectly a member of the admin role) executes a query. | Field | Description | Sensitive | |--|--|--| | `Timestamp` | The timestamp of the event. Expressed as nanoseconds since the Unix epoch. | no | | `EventType` | The type of the event. | no | | `Statement` | A normalized copy of the SQL statement that triggered the event. The statement string contains a mix of sensitive and non-sensitive details (it is redactable). | partially | | `Tag` | The statement tag. This is separate from the statement string, since the statement string can contain sensitive information. The tag is guaranteed not to. | no | | `User` | The user account that triggered the event. The special usernames `root` and `node` are not considered sensitive. | depends | | `DescriptorID` | The primary object descriptor affected by the operation. Set to zero for operations that don't affect descriptors. | no | | `ApplicationName` | The application name for the session where the event was emitted. This is included in the event to ease filtering of logging output by application. | no | | `PlaceholderValues` | The mapping of SQL placeholders to their values, for prepared statements. | yes | | `ExecMode` | How the statement was being executed (exec/prepare, etc.) | no | | `NumRows` | Number of rows returned. For mutation statements (INSERT, etc) that do not produce result rows, this field reports the number of rows

| no | | `SQLSTATE` | The SQLSTATE code for the error, if an error was encountered. Empty/omitted if no error. | no | | `ErrorText` | The text of the error if any. | partially | | `Age` | Age of the query in milliseconds. | no | | `NumRetries` | Number of retries, when the txn was reretried automatically by the server. | no | | `FullTableScan` | Whether the query contains a full table scan. | no | | `FullIndexScan` | Whether the query contains a full secondary index scan of a non-partial index. | no | | `TxnCounter` | The sequence number of the SQL transaction inside its session. | no | | `BulkJobId` | The job id for bulk job (IMPORT/BACKUP/RESTORE). | no | | `StmtPosInTxn` | The statement's index in the transaction, starting at 1. | no | An event of type `rolebasedaudit_event` is an audit event recorded when an executed query belongs to a user whose role membership(s) correspond to any role that is enabled to emit an audit log via the sql.log.user_audit cluster setting. | Field | Description | Sensitive | |--|--|--| | `Role` | The configured audit role that emitted this log. | yes | | Field | Description | Sensitive | |--|--|--| | `Timestamp` | The timestamp of the event. Expressed as nanoseconds since the Unix epoch. | no | | `EventType` | The type of the event. | no | | `Statement` | A normalized copy of the SQL statement that triggered the event. The statement string contains a mix of sensitive and non-sensitive details (it is redactable). | partially | | `Tag` | The statement tag. This is separate from the statement string, since the statement string can contain sensitive information. The tag is guaranteed not to. | no | | `User` | The user account that triggered the event. The special usernames `root` and `node` are not considered sensitive. | depends | | `DescriptorID` | The primary object descriptor affected by the operation. Set to zero for operations that don't affect descriptors. | no | | `ApplicationName` | The application name for the session where the event was emitted. This is included in the event to ease filtering of logging output by application. | no | | `PlaceholderValues` | The mapping of SQL placeholders to their values, for prepared statements. | yes | | `ExecMode` | How the statement was being executed (exec/prepare, etc.) | no | | `NumRows` | Number of rows returned. For mutation statements (INSERT, etc) that do not produce result rows, this field reports the number of rows affected. | no | | `SQLSTATE` | The SQLSTATE code for the error, if an error was encountered. Empty/omitted if no error. | no | | `ErrorText` | The text of the error if any. | partially | | `Age` | Age of the query in milliseconds. | no | | `NumRetries` | Number of retries, when the txn was reretried automatically by the server. | no | | `FullTableScan` | Whether the query contains a full table scan. | no | | `FullIndexScan` | Whether the query contains a full secondary index scan of a non-partial index. | no | | `TxnCounter` | The sequence number of the SQL transaction inside its session. | no | | `BulkJobId` | The job id for bulk job (IMPORT/BACKUP/RESTORE). | no | | `StmtPosInTxn` | The statement's index in the transaction, starting at 1. | no | An event of type `sensitivetableaccess` is recorded when an access is performed to a table marked as

| Field | Description | Sensitive | |--|--|--| | `TableName` | The name of the table being audited. | yes | | `AccessMode` | How the table was accessed (r=read / rw=read/write). | no | | Field | Description | Sensitive | |--|--|--| | `Timestamp` | The timestamp of the event. Expressed as nanoseconds since the Unix epoch. | no | | `EventType` | The type of the event. | no | | `Statement` | A normalized copy of the SQL statement that triggered the event. The statement string contains a mix of sensitive and non-sensitive details (it is redactable). | partially | | `Tag` | The statement tag. This is separate from the statement string, since the statement string can contain sensitive information. The tag is guaranteed not to. | no | | `User` | The user account that triggered the event. The special usernames `root` and `node` are not considered sensitive. | depends | | `DescriptorID` | The primary object descriptor affected by the operation. Set to zero for operations that don't affect descriptors. | no | | `ApplicationName` | The application name for the session where the event was emitted. This is included in the event to ease filtering of logging output by application. | no | | `PlaceholderValues` | The mapping of SQL placeholders to their values, for prepared statements. | yes | | `ExecMode` | How the statement was being executed (exec/prepare, etc.) | no | | `NumRows` | Number of rows returned. For mutation statements (INSERT, etc) that do not produce result rows, this field reports the number of rows affected. | no | | `SQLSTATE` | The SQLSTATE code for the error, if an error was encountered. Empty/omitted if no error. | no | | `ErrorText` | The text of the error if any. | partially | | `Age` | Age of the query in milliseconds. | no | | `NumRetries` | Number of retries, when the txn was reretried automatically by the server. | no | | `FullTableScan` | Whether the query contains a full table scan. | no | | `FullIndexScan` | Whether the query contains a full secondary index scan of a non-partial index. | no | | `TxnCounter` | The sequence number of the SQL transaction inside its session. | no | | `BulkJobId` | The job id for bulk job (IMPORT/BACKUP/RESTORE). | no | | `StmtPosInTxn` | The statement's index in the transaction, starting at 1. | no | Events in this category report executed queries. Note: These events are not written to `system.eventlog`, even when the cluster setting `system.eventlog.enabled` is set. They are only emitted via external logging. Events in this category are logged to the `SQL_EXEC` channel. An event of type `query_execute` is recorded when a query is executed, and the cluster setting `sql.log.all_statements.enabled` is set. | Field | Description | Sensitive | |--|--|--| | `Timestamp` | The timestamp of the event. Expressed as nanoseconds since the Unix epoch. | no | | `EventType` | The type of the event. | no | | `Statement` | A normalized copy of the SQL statement that triggered the event. The statement string contains a mix of sensitive and non-sensitive details (it is redactable). | partially | | `Tag` | The statement tag. This is separate from the statement string, since the statement string can contain sensitive information. The tag is guaranteed not to. | no | | `User` | The user account that triggered the event. The special usernames `root` and `node` are not considered

| depends | | `DescriptorID` | The primary object descriptor affected by the operation. Set to zero for operations that don't affect descriptors. | no | | `ApplicationName` | The application name for the session where the event was emitted. This is included in the event to ease filtering of logging output by application. | no | | `PlaceholderValues` | The mapping of SQL placeholders to their values, for prepared statements. | yes | | `ExecMode` | How the statement was being executed (exec/prepare, etc.) | no | | `NumRows` | Number of rows returned. For mutation statements (INSERT, etc) that do not produce result rows, this field reports the number of rows affected. | no | | `SQLSTATE` | The SQLSTATE code for the error, if an error was encountered. Empty/omitted if no error. | no | | `ErrorText` | The text of the error if any. | partially | | `Age` | Age of the query in milliseconds. | no | | `NumRetries` | Number of retries, when the txn was reretried automatically by the server. | no | | `FullTableScan` | Whether the query contains a full table scan. | no | | `FullIndexScan` | Whether the query contains a full secondary index scan of a non-partial index. | no | | `TxnCounter` | The sequence number of the SQL transaction inside its session. | no | | `BulkJobId` | The job id for bulk job (IMPORT/BACKUP/RESTORE). | no | | `StmtPosInTxn` | The statement's index in the transaction, starting at 1. | no | Events in this category pertain to DDL (Data Definition Language) operations performed by SQL statements that modify the SQL logical schema. They are relative to a particular SQL tenant. In a multi-tenant setup, copies of DDL-related events are preserved in each tenant's own `system.eventlog` table. Events in this category are logged to the `SQL_SCHEMA` channel. An event of type `alterdatabaseadd_region` is recorded when a region is added to a database. | Field | Description | Sensitive | |--|--|--| | `DatabaseName` | The name of the database. | yes | | `RegionName` | The region being added. | yes | | Field | Description | Sensitive | |--|--|--| | `Timestamp` | The timestamp of the event. Expressed as nanoseconds since the Unix epoch. | no | | `EventType` | The type of the event. | no | | `Statement` | A normalized copy of the SQL statement that triggered the event. The statement string contains a mix of sensitive and non-sensitive details (it is redactable). | partially | | `Tag` | The statement tag. This is separate from the statement string, since the statement string can contain sensitive information. The tag is guaranteed not to. | no | | `User` | The user account that triggered the event. The special usernames `root` and `node` are not considered sensitive. | depends | | `DescriptorID` | The primary object descriptor affected by the operation. Set to zero for operations that don't affect descriptors. | no | | `ApplicationName` | The application name for the session where the event was emitted. This is included in the event to ease filtering of logging output by application. | no | | `PlaceholderValues` | The mapping of SQL placeholders to their values, for prepared statements. | yes | AlterDatabaseAddRegion is recorded when a region is added to a database. | Field | Description | Sensitive | |--|--|--| | `DatabaseName` | The name of the database. | yes | | `RegionName` | The region being

| yes | | Field | Description | Sensitive | |--|--|--| | `Timestamp` | The timestamp of the event. Expressed as nanoseconds since the Unix epoch. | no | | `EventType` | The type of the event. | no | | `Statement` | A normalized copy of the SQL statement that triggered the event. The statement string contains a mix of sensitive and non-sensitive details (it is redactable). | partially | | `Tag` | The statement tag. This is separate from the statement string, since the statement string can contain sensitive information. The tag is guaranteed not to. | no | | `User` | The user account that triggered the event. The special usernames `root` and `node` are not considered sensitive. | depends | | `DescriptorID` | The primary object descriptor affected by the operation. Set to zero for operations that don't affect descriptors. | no | | `ApplicationName` | The application name for the session where the event was emitted. This is included in the event to ease filtering of logging output by application. | no | | `PlaceholderValues` | The mapping of SQL placeholders to their values, for prepared statements. | yes | An event of type `alterdatabaseplacement` is recorded when the database placement is modified. | Field | Description | Sensitive | |--|--|--| | `DatabaseName` | The name of the database. | yes | | `Placement` | The new placement policy. | yes | | Field | Description | Sensitive | |--|--|--| | `Timestamp` | The timestamp of the event. Expressed as nanoseconds since the Unix epoch. | no | | `EventType` | The type of the event. | no | | `Statement` | A normalized copy of the SQL statement that triggered the event. The statement string contains a mix of sensitive and non-sensitive details (it is redactable). | partially | | `Tag` | The statement tag. This is separate from the statement string, since the statement string can contain sensitive information. The tag is guaranteed not to. | no | | `User` | The user account that triggered the event. The special usernames `root` and `node` are not considered sensitive. | depends | | `DescriptorID` | The primary object descriptor affected by the operation. Set to zero for operations that don't affect descriptors. | no | | `ApplicationName` | The application name for the session where the event was emitted. This is included in the event to ease filtering of logging output by application. | no | | `PlaceholderValues` | The mapping of SQL placeholders to their values, for prepared statements. | yes | An event of type `alterdatabaseprimary_region` is recorded when a primary region is added/modified. | Field | Description | Sensitive | |--|--|--| | `DatabaseName` | The name of the database. | yes | | `PrimaryRegionName` | The new primary region. | yes | | Field | Description | Sensitive | |--|--|--| | `Timestamp` | The timestamp of the event. Expressed as nanoseconds since the Unix epoch. | no | | `EventType` | The type of the event. | no | | `Statement` | A normalized copy of the SQL statement that triggered the event. The statement string contains a mix of sensitive and non-sensitive details (it is redactable). | partially | | `Tag` | The statement tag. This is separate from the statement string, since the statement string can contain sensitive information. The tag is guaranteed not to. | no | | `User` | The user account that triggered the event. The special usernames `root` and `node` are not considered sensitive. | depends | | `DescriptorID` | The primary object descriptor affected by the

Set to zero for operations that don't affect descriptors. | no | | `ApplicationName` | The application name for the session where the event was emitted. This is included in the event to ease filtering of logging output by application. | no | | `PlaceholderValues` | The mapping of SQL placeholders to their values, for prepared statements. | yes | An event of type `alterdatabasesetzoneconfig_extension` is recorded when a zone config extension is changed. | Field | Description | Sensitive | |--|--|--| | `Timestamp` | The timestamp of the event. Expressed as nanoseconds since the Unix epoch. | no | | `EventType` | The type of the event. | no | | `Statement` | A normalized copy of the SQL statement that triggered the event. The statement string contains a mix of sensitive and non-sensitive details (it is redactable). | partially | | `Tag` | The statement tag. This is separate from the statement string, since the statement string can contain sensitive information. The tag is guaranteed not to. | no | | `User` | The user account that triggered the event. The special usernames `root` and `node` are not considered sensitive. | depends | | `DescriptorID` | The primary object descriptor affected by the operation. Set to zero for operations that don't affect descriptors. | no | | `ApplicationName` | The application name for the session where the event was emitted. This is included in the event to ease filtering of logging output by application. | no | | `PlaceholderValues` | The mapping of SQL placeholders to their values, for prepared statements. | yes | | `Target` | The target object of the zone config change. | yes | | `Config` | The applied zone config in YAML format. | yes | | `Options` | The SQL representation of the applied zone config options. | yes | An event of type `alterdatabasesurvival_goal` is recorded when the survival goal is modified. | Field | Description | Sensitive | |--|--|--| | `DatabaseName` | The name of the database. | yes | | `SurvivalGoal` | The new survival goal | yes | | Field | Description | Sensitive | |--|--|--| | `Timestamp` | The timestamp of the event. Expressed as nanoseconds since the Unix epoch. | no | | `EventType` | The type of the event. | no | | `Statement` | A normalized copy of the SQL statement that triggered the event. The statement string contains a mix of sensitive and non-sensitive details (it is redactable). | partially | | `Tag` | The statement tag. This is separate from the statement string, since the statement string can contain sensitive information. The tag is guaranteed not to. | no | | `User` | The user account that triggered the event. The special usernames `root` and `node` are not considered sensitive. | depends | | `DescriptorID` | The primary object descriptor affected by the operation. Set to zero for operations that don't affect descriptors. | no | | `ApplicationName` | The application name for the session where the event was emitted. This is included in the event to ease filtering of logging output by application. | no | | `PlaceholderValues` | The mapping of SQL placeholders to their values, for prepared statements. | yes | An event of type `alterfunctionoptions` is recorded when a user-defined function's options are altered. | Field | Description | Sensitive | |--|--|--| | `FunctionName` | Name of the affected function. | yes | | Field | Description | Sensitive | |--|--|--| | `Timestamp` | The timestamp of the event. Expressed as nanoseconds since the Unix

| no | | `EventType` | The type of the event. | no | | `Statement` | A normalized copy of the SQL statement that triggered the event. The statement string contains a mix of sensitive and non-sensitive details (it is redactable). | partially | | `Tag` | The statement tag. This is separate from the statement string, since the statement string can contain sensitive information. The tag is guaranteed not to. | no | | `User` | The user account that triggered the event. The special usernames `root` and `node` are not considered sensitive. | depends | | `DescriptorID` | The primary object descriptor affected by the operation. Set to zero for operations that don't affect descriptors. | no | | `ApplicationName` | The application name for the session where the event was emitted. This is included in the event to ease filtering of logging output by application. | no | | `PlaceholderValues` | The mapping of SQL placeholders to their values, for prepared statements. | yes | An event of type `alter_index` is recorded when an index is altered. | Field | Description | Sensitive | |--|--|--| | `TableName` | The name of the table containing the affected index. | yes | | `IndexName` | The name of the affected index. | yes | | `MutationID` | The mutation ID for the asynchronous job that is processing the index update. | no | | Field | Description | Sensitive | |--|--|--| | `Timestamp` | The timestamp of the event. Expressed as nanoseconds since the Unix epoch. | no | | `EventType` | The type of the event. | no | | `Statement` | A normalized copy of the SQL statement that triggered the event. The statement string contains a mix of sensitive and non-sensitive details (it is redactable). | partially | | `Tag` | The statement tag. This is separate from the statement string, since the statement string can contain sensitive information. The tag is guaranteed not to. | no | | `User` | The user account that triggered the event. The special usernames `root` and `node` are not considered sensitive. | depends | | `DescriptorID` | The primary object descriptor affected by the operation. Set to zero for operations that don't affect descriptors. | no | | `ApplicationName` | The application name for the session where the event was emitted. This is included in the event to ease filtering of logging output by application. | no | | `PlaceholderValues` | The mapping of SQL placeholders to their values, for prepared statements. | yes | AlterIndex is recorded when an index visibility is altered. | Field | Description | Sensitive | |--|--|--| | `TableName` | The name of the table containing the affected index. | yes | | `IndexName` | The name of the affected index. | yes | | `NotVisible` | Set true if index is not visible. NOTE: THIS FIELD IS DEPRECATED in favor of invisibility. | no | | `Invisibility` | The new invisibility of the affected index. | no | | Field | Description | Sensitive | |--|--|--| | `Timestamp` | The timestamp of the event. Expressed as nanoseconds since the Unix epoch. | no | | `EventType` | The type of the event. | no | | `Statement` | A normalized copy of the SQL statement that triggered the event. The statement string contains a mix of sensitive and non-sensitive details (it is redactable). | partially | | `Tag` | The statement tag. This is separate from the statement string, since the statement string can contain sensitive

The tag is guaranteed not to. | no | | `User` | The user account that triggered the event. The special usernames `root` and `node` are not considered sensitive. | depends | | `DescriptorID` | The primary object descriptor affected by the operation. Set to zero for operations that don't affect descriptors. | no | | `ApplicationName` | The application name for the session where the event was emitted. This is included in the event to ease filtering of logging output by application. | no | | `PlaceholderValues` | The mapping of SQL placeholders to their values, for prepared statements. | yes | An event of type `alter_sequence` is recorded when a sequence is altered. | Field | Description | Sensitive | |--|--|--| | `SequenceName` | The name of the affected sequence. | yes | | Field | Description | Sensitive | |--|--|--| | `Timestamp` | The timestamp of the event. Expressed as nanoseconds since the Unix epoch. | no | | `EventType` | The type of the event. | no | | `Statement` | A normalized copy of the SQL statement that triggered the event. The statement string contains a mix of sensitive and non-sensitive details (it is redactable). | partially | | `Tag` | The statement tag. This is separate from the statement string, since the statement string can contain sensitive information. The tag is guaranteed not to. | no | | `User` | The user account that triggered the event. The special usernames `root` and `node` are not considered sensitive. | depends | | `DescriptorID` | The primary object descriptor affected by the operation. Set to zero for operations that don't affect descriptors. | no | | `ApplicationName` | The application name for the session where the event was emitted. This is included in the event to ease filtering of logging output by application. | no | | `PlaceholderValues` | The mapping of SQL placeholders to their values, for prepared statements. | yes | An event of type `alter_table` is recorded when a table is altered. | Field | Description | Sensitive | |--|--|--| | `TableName` | The name of the affected table. | yes | | `MutationID` | The mutation ID for the asynchronous job that is processing the index update, if any. | no | | `CascadeDroppedViews` | The names of the views dropped as a result of a cascade operation. | yes | | Field | Description | Sensitive | |--|--|--| | `Timestamp` | The timestamp of the event. Expressed as nanoseconds since the Unix epoch. | no | | `EventType` | The type of the event. | no | | `Statement` | A normalized copy of the SQL statement that triggered the event. The statement string contains a mix of sensitive and non-sensitive details (it is redactable). | partially | | `Tag` | The statement tag. This is separate from the statement string, since the statement string can contain sensitive information. The tag is guaranteed not to. | no | | `User` | The user account that triggered the event. The special usernames `root` and `node` are not considered sensitive. | depends | | `DescriptorID` | The primary object descriptor affected by the operation. Set to zero for operations that don't affect descriptors. | no | | `ApplicationName` | The application name for the session where the event was emitted. This is included in the event to ease filtering of logging output by application. | no | | `PlaceholderValues` | The mapping of SQL placeholders to their values, for prepared

| yes | EventAlterType is recorded when a user-defined type is altered. | Field | Description | Sensitive | |--|--|--| | `TypeName` | The name of the affected type. | yes | | Field | Description | Sensitive | |--|--|--| | `Timestamp` | The timestamp of the event. Expressed as nanoseconds since the Unix epoch. | no | | `EventType` | The type of the event. | no | | `Statement` | A normalized copy of the SQL statement that triggered the event. The statement string contains a mix of sensitive and non-sensitive details (it is redactable). | partially | | `Tag` | The statement tag. This is separate from the statement string, since the statement string can contain sensitive information. The tag is guaranteed not to. | no | | `User` | The user account that triggered the event. The special usernames `root` and `node` are not considered sensitive. | depends | | `DescriptorID` | The primary object descriptor affected by the operation. Set to zero for operations that don't affect descriptors. | no | | `ApplicationName` | The application name for the session where the event was emitted. This is included in the event to ease filtering of logging output by application. | no | | `PlaceholderValues` | The mapping of SQL placeholders to their values, for prepared statements. | yes | An event of type `commentoncolumn` is recorded when a column is commented. | Field | Description | Sensitive | |--|--|--| | `TableName` | The name of the table containing the affected column. | yes | | `ColumnName` | The affected column. | yes | | `Comment` | The new comment. | yes | | `NullComment` | Set to true if the comment was removed entirely. | no | | Field | Description | Sensitive | |--|--|--| | `Timestamp` | The timestamp of the event. Expressed as nanoseconds since the Unix epoch. | no | | `EventType` | The type of the event. | no | | `Statement` | A normalized copy of the SQL statement that triggered the event. The statement string contains a mix of sensitive and non-sensitive details (it is redactable). | partially | | `Tag` | The statement tag. This is separate from the statement string, since the statement string can contain sensitive information. The tag is guaranteed not to. | no | | `User` | The user account that triggered the event. The special usernames `root` and `node` are not considered sensitive. | depends | | `DescriptorID` | The primary object descriptor affected by the operation. Set to zero for operations that don't affect descriptors. | no | | `ApplicationName` | The application name for the session where the event was emitted. This is included in the event to ease filtering of logging output by application. | no | | `PlaceholderValues` | The mapping of SQL placeholders to their values, for prepared statements. | yes | An event of type `commentonconstraint` is recorded when an constraint is commented. | Field | Description | Sensitive | |--|--|--| | `TableName` | The name of the table containing the affected constraint. | yes | | `ConstraintName` | The name of the affected constraint. | yes | | `Comment` | The new comment. | yes | | `NullComment` | Set to true if the comment was removed entirely. | no | | Field | Description | Sensitive | |--|--|--| | `Timestamp` | The timestamp of the event. Expressed as nanoseconds since the Unix epoch. | no | | `EventType` | The type of the

| no | | `Statement` | A normalized copy of the SQL statement that triggered the event. The statement string contains a mix of sensitive and non-sensitive details (it is redactable). | partially | | `Tag` | The statement tag. This is separate from the statement string, since the statement string can contain sensitive information. The tag is guaranteed not to. | no | | `User` | The user account that triggered the event. The special usernames `root` and `node` are not considered sensitive. | depends | | `DescriptorID` | The primary object descriptor affected by the operation. Set to zero for operations that don't affect descriptors. | no | | `ApplicationName` | The application name for the session where the event was emitted. This is included in the event to ease filtering of logging output by application. | no | | `PlaceholderValues` | The mapping of SQL placeholders to their values, for prepared statements. | yes | CommentOnTable is recorded when a database is commented. | Field | Description | Sensitive | |--|--|--| | `DatabaseName` | The name of the affected database. | yes | | `Comment` | The new comment. | yes | | `NullComment` | Set to true if the comment was removed entirely. | no | | Field | Description | Sensitive | |--|--|--| | `Timestamp` | The timestamp of the event. Expressed as nanoseconds since the Unix epoch. | no | | `EventType` | The type of the event. | no | | `Statement` | A normalized copy of the SQL statement that triggered the event. The statement string contains a mix of sensitive and non-sensitive details (it is redactable). | partially | | `Tag` | The statement tag. This is separate from the statement string, since the statement string can contain sensitive information. The tag is guaranteed not to. | no | | `User` | The user account that triggered the event. The special usernames `root` and `node` are not considered sensitive. | depends | | `DescriptorID` | The primary object descriptor affected by the operation. Set to zero for operations that don't affect descriptors. | no | | `ApplicationName` | The application name for the session where the event was emitted. This is included in the event to ease filtering of logging output by application. | no | | `PlaceholderValues` | The mapping of SQL placeholders to their values, for prepared statements. | yes | An event of type `commentonindex` is recorded when an index is commented. | Field | Description | Sensitive | |--|--|--| | `TableName` | The name of the table containing the affected index. | yes | | `IndexName` | The name of the affected index. | yes | | `Comment` | The new comment. | yes | | `NullComment` | Set to true if the comment was removed entirely. | no | | Field | Description | Sensitive | |--|--|--| | `Timestamp` | The timestamp of the event. Expressed as nanoseconds since the Unix epoch. | no | | `EventType` | The type of the event. | no | | `Statement` | A normalized copy of the SQL statement that triggered the event. The statement string contains a mix of sensitive and non-sensitive details (it is redactable). | partially | | `Tag` | The statement tag. This is separate from the statement string, since the statement string can contain sensitive information. The tag is guaranteed not to. | no | | `User` | The user account that triggered the event. The special usernames `root` and `node` are not considered

| depends | | `DescriptorID` | The primary object descriptor affected by the operation. Set to zero for operations that don't affect descriptors. | no | | `ApplicationName` | The application name for the session where the event was emitted. This is included in the event to ease filtering of logging output by application. | no | | `PlaceholderValues` | The mapping of SQL placeholders to their values, for prepared statements. | yes | | Field | Description | Sensitive | |--|--|--| | `SchemaName` | Name of the affected schema. | yes | | `Comment` | The new comment. | yes | | `NullComment` | Set to true if the comment was removed entirely. | no | | Field | Description | Sensitive | |--|--|--| | `Timestamp` | The timestamp of the event. Expressed as nanoseconds since the Unix epoch. | no | | `EventType` | The type of the event. | no | | `Statement` | A normalized copy of the SQL statement that triggered the event. The statement string contains a mix of sensitive and non-sensitive details (it is redactable). | partially | | `Tag` | The statement tag. This is separate from the statement string, since the statement string can contain sensitive information. The tag is guaranteed not to. | no | | `User` | The user account that triggered the event. The special usernames `root` and `node` are not considered sensitive. | depends | | `DescriptorID` | The primary object descriptor affected by the operation. Set to zero for operations that don't affect descriptors. | no | | `ApplicationName` | The application name for the session where the event was emitted. This is included in the event to ease filtering of logging output by application. | no | | `PlaceholderValues` | The mapping of SQL placeholders to their values, for prepared statements. | yes | An event of type `commentontable` is recorded when a table is commented. | Field | Description | Sensitive | |--|--|--| | `TableName` | The name of the affected table. | yes | | `Comment` | The new comment. | yes | | `NullComment` | Set to true if the comment was removed entirely. | no | | Field | Description | Sensitive | |--|--|--| | `Timestamp` | The timestamp of the event. Expressed as nanoseconds since the Unix epoch. | no | | `EventType` | The type of the event. | no | | `Statement` | A normalized copy of the SQL statement that triggered the event. The statement string contains a mix of sensitive and non-sensitive details (it is redactable). | partially | | `Tag` | The statement tag. This is separate from the statement string, since the statement string can contain sensitive information. The tag is guaranteed not to. | no | | `User` | The user account that triggered the event. The special usernames `root` and `node` are not considered sensitive. | depends | | `DescriptorID` | The primary object descriptor affected by the operation. Set to zero for operations that don't affect descriptors. | no | | `ApplicationName` | The application name for the session where the event was emitted. This is included in the event to ease filtering of logging output by application. | no | | `PlaceholderValues` | The mapping of SQL placeholders to their values, for prepared statements. | yes | An event of type `create_database` is recorded when a database is created. | Field | Description | Sensitive | |--|--|--| | `DatabaseName` | The name of the new

| yes | | Field | Description | Sensitive | |--|--|--| | `Timestamp` | The timestamp of the event. Expressed as nanoseconds since the Unix epoch. | no | | `EventType` | The type of the event. | no | | `Statement` | A normalized copy of the SQL statement that triggered the event. The statement string contains a mix of sensitive and non-sensitive details (it is redactable). | partially | | `Tag` | The statement tag. This is separate from the statement string, since the statement string can contain sensitive information. The tag is guaranteed not to. | no | | `User` | The user account that triggered the event. The special usernames `root` and `node` are not considered sensitive. | depends | | `DescriptorID` | The primary object descriptor affected by the operation. Set to zero for operations that don't affect descriptors. | no | | `ApplicationName` | The application name for the session where the event was emitted. This is included in the event to ease filtering of logging output by application. | no | | `PlaceholderValues` | The mapping of SQL placeholders to their values, for prepared statements. | yes | An event of type `create_function` is recorded when a user-defined function is created. | Field | Description | Sensitive | |--|--|--| | `FunctionName` | Name of the created function. | yes | | `IsReplace` | If the new function is a replace of an existing function. | no | | Field | Description | Sensitive | |--|--|--| | `Timestamp` | The timestamp of the event. Expressed as nanoseconds since the Unix epoch. | no | | `EventType` | The type of the event. | no | | `Statement` | A normalized copy of the SQL statement that triggered the event. The statement string contains a mix of sensitive and non-sensitive details (it is redactable). | partially | | `Tag` | The statement tag. This is separate from the statement string, since the statement string can contain sensitive information. The tag is guaranteed not to. | no | | `User` | The user account that triggered the event. The special usernames `root` and `node` are not considered sensitive. | depends | | `DescriptorID` | The primary object descriptor affected by the operation. Set to zero for operations that don't affect descriptors. | no | | `ApplicationName` | The application name for the session where the event was emitted. This is included in the event to ease filtering of logging output by application. | no | | `PlaceholderValues` | The mapping of SQL placeholders to their values, for prepared statements. | yes | An event of type `create_index` is recorded when an index is created. | Field | Description | Sensitive | |--|--|--| | `TableName` | The name of the table containing the new index. | yes | | `IndexName` | The name of the new index. | yes | | `MutationID` | The mutation ID for the asynchronous job that is processing the index update. | no | | Field | Description | Sensitive | |--|--|--| | `Timestamp` | The timestamp of the event. Expressed as nanoseconds since the Unix epoch. | no | | `EventType` | The type of the event. | no | | `Statement` | A normalized copy of the SQL statement that triggered the event. The statement string contains a mix of sensitive and non-sensitive details (it is redactable). | partially | | `Tag` | The statement tag. This is separate from the statement string, since the statement string can contain sensitive information. The tag is guaranteed not to. | no | | `User` | The user account that triggered the

The special usernames `root` and `node` are not considered sensitive. | depends | | `DescriptorID` | The primary object descriptor affected by the operation. Set to zero for operations that don't affect descriptors. | no | | `ApplicationName` | The application name for the session where the event was emitted. This is included in the event to ease filtering of logging output by application. | no | | `PlaceholderValues` | The mapping of SQL placeholders to their values, for prepared statements. | yes | An event of type `create_schema` is recorded when a schema is created. | Field | Description | Sensitive | |--|--|--| | `SchemaName` | The name of the new schema. | yes | | `Owner` | The name of the owner for the new schema. | yes | | Field | Description | Sensitive | |--|--|--| | `Timestamp` | The timestamp of the event. Expressed as nanoseconds since the Unix epoch. | no | | `EventType` | The type of the event. | no | | `Statement` | A normalized copy of the SQL statement that triggered the event. The statement string contains a mix of sensitive and non-sensitive details (it is redactable). | partially | | `Tag` | The statement tag. This is separate from the statement string, since the statement string can contain sensitive information. The tag is guaranteed not to. | no | | `User` | The user account that triggered the event. The special usernames `root` and `node` are not considered sensitive. | depends | | `DescriptorID` | The primary object descriptor affected by the operation. Set to zero for operations that don't affect descriptors. | no | | `ApplicationName` | The application name for the session where the event was emitted. This is included in the event to ease filtering of logging output by application. | no | | `PlaceholderValues` | The mapping of SQL placeholders to their values, for prepared statements. | yes | An event of type `create_sequence` is recorded when a sequence is created. | Field | Description | Sensitive | |--|--|--| | `SequenceName` | The name of the new sequence. | yes | | `Owner` | The name of the owner for the new sequence. | yes | | Field | Description | Sensitive | |--|--|--| | `Timestamp` | The timestamp of the event. Expressed as nanoseconds since the Unix epoch. | no | | `EventType` | The type of the event. | no | | `Statement` | A normalized copy of the SQL statement that triggered the event. The statement string contains a mix of sensitive and non-sensitive details (it is redactable). | partially | | `Tag` | The statement tag. This is separate from the statement string, since the statement string can contain sensitive information. The tag is guaranteed not to. | no | | `User` | The user account that triggered the event. The special usernames `root` and `node` are not considered sensitive. | depends | | `DescriptorID` | The primary object descriptor affected by the operation. Set to zero for operations that don't affect descriptors. | no | | `ApplicationName` | The application name for the session where the event was emitted. This is included in the event to ease filtering of logging output by application. | no | | `PlaceholderValues` | The mapping of SQL placeholders to their values, for prepared statements. | yes | An event of type `create_statistics` is recorded when statistics are collected for a table. Events of this type are only collected when the cluster setting `sql.stats.post_events.enabled` is

| Field | Description | Sensitive | |--|--|--| | `TableName` | The name of the table for which the statistics were created. | yes | | Field | Description | Sensitive | |--|--|--| | `Timestamp` | The timestamp of the event. Expressed as nanoseconds since the Unix epoch. | no | | `EventType` | The type of the event. | no | | `Statement` | A normalized copy of the SQL statement that triggered the event. The statement string contains a mix of sensitive and non-sensitive details (it is redactable). | partially | | `Tag` | The statement tag. This is separate from the statement string, since the statement string can contain sensitive information. The tag is guaranteed not to. | no | | `User` | The user account that triggered the event. The special usernames `root` and `node` are not considered sensitive. | depends | | `DescriptorID` | The primary object descriptor affected by the operation. Set to zero for operations that don't affect descriptors. | no | | `ApplicationName` | The application name for the session where the event was emitted. This is included in the event to ease filtering of logging output by application. | no | | `PlaceholderValues` | The mapping of SQL placeholders to their values, for prepared statements. | yes | An event of type `create_table` is recorded when a table is created. | Field | Description | Sensitive | |--|--|--| | `TableName` | The name of the new table. | yes | | `Owner` | The name of the owner for the new table. | yes | | Field | Description | Sensitive | |--|--|--| | `Timestamp` | The timestamp of the event. Expressed as nanoseconds since the Unix epoch. | no | | `EventType` | The type of the event. | no | | `Statement` | A normalized copy of the SQL statement that triggered the event. The statement string contains a mix of sensitive and non-sensitive details (it is redactable). | partially | | `Tag` | The statement tag. This is separate from the statement string, since the statement string can contain sensitive information. The tag is guaranteed not to. | no | | `User` | The user account that triggered the event. The special usernames `root` and `node` are not considered sensitive. | depends | | `DescriptorID` | The primary object descriptor affected by the operation. Set to zero for operations that don't affect descriptors. | no | | `ApplicationName` | The application name for the session where the event was emitted. This is included in the event to ease filtering of logging output by application. | no | | `PlaceholderValues` | The mapping of SQL placeholders to their values, for prepared statements. | yes | An event of type `create_type` is recorded when a user-defined type is created. | Field | Description | Sensitive | |--|--|--| | `TypeName` | The name of the new type. | yes | | `Owner` | The name of the owner for the new type. | yes | | Field | Description | Sensitive | |--|--|--| | `Timestamp` | The timestamp of the event. Expressed as nanoseconds since the Unix epoch. | no | | `EventType` | The type of the event. | no | | `Statement` | A normalized copy of the SQL statement that triggered the event. The statement string contains a mix of sensitive and non-sensitive details (it is redactable). | partially | | `Tag` | The statement tag. This is separate from the statement string, since the statement string can contain sensitive

The tag is guaranteed not to. | no | | `User` | The user account that triggered the event. The special usernames `root` and `node` are not considered sensitive. | depends | | `DescriptorID` | The primary object descriptor affected by the operation. Set to zero for operations that don't affect descriptors. | no | | `ApplicationName` | The application name for the session where the event was emitted. This is included in the event to ease filtering of logging output by application. | no | | `PlaceholderValues` | The mapping of SQL placeholders to their values, for prepared statements. | yes | An event of type `create_view` is recorded when a view is created. | Field | Description | Sensitive | |--|--|--| | `ViewName` | The name of the new view. | yes | | `Owner` | The name of the owner of the new view. | yes | | `ViewQuery` | The SQL selection clause used to define the view. | yes | | Field | Description | Sensitive | |--|--|--| | `Timestamp` | The timestamp of the event. Expressed as nanoseconds since the Unix epoch. | no | | `EventType` | The type of the event. | no | | `Statement` | A normalized copy of the SQL statement that triggered the event. The statement string contains a mix of sensitive and non-sensitive details (it is redactable). | partially | | `Tag` | The statement tag. This is separate from the statement string, since the statement string can contain sensitive information. The tag is guaranteed not to. | no | | `User` | The user account that triggered the event. The special usernames `root` and `node` are not considered sensitive. | depends | | `DescriptorID` | The primary object descriptor affected by the operation. Set to zero for operations that don't affect descriptors. | no | | `ApplicationName` | The application name for the session where the event was emitted. This is included in the event to ease filtering of logging output by application. | no | | `PlaceholderValues` | The mapping of SQL placeholders to their values, for prepared statements. | yes | An event of type `drop_database` is recorded when a database is dropped. | Field | Description | Sensitive | |--|--|--| | `DatabaseName` | The name of the affected database. | yes | | `DroppedSchemaObjects` | The names of the schemas dropped by a cascade operation. | yes | | Field | Description | Sensitive | |--|--|--| | `Timestamp` | The timestamp of the event. Expressed as nanoseconds since the Unix epoch. | no | | `EventType` | The type of the event. | no | | `Statement` | A normalized copy of the SQL statement that triggered the event. The statement string contains a mix of sensitive and non-sensitive details (it is redactable). | partially | | `Tag` | The statement tag. This is separate from the statement string, since the statement string can contain sensitive information. The tag is guaranteed not to. | no | | `User` | The user account that triggered the event. The special usernames `root` and `node` are not considered sensitive. | depends | | `DescriptorID` | The primary object descriptor affected by the operation. Set to zero for operations that don't affect descriptors. | no | | `ApplicationName` | The application name for the session where the event was emitted. This is included in the event to ease filtering of logging output by application. | no | | `PlaceholderValues` | The mapping of SQL placeholders to their values, for prepared

| yes | An event of type `drop_function` is recorded when a user-defined function is dropped. | Field | Description | Sensitive | |--|--|--| | `FunctionName` | Name of the created function. | yes | | Field | Description | Sensitive | |--|--|--| | `Timestamp` | The timestamp of the event. Expressed as nanoseconds since the Unix epoch. | no | | `EventType` | The type of the event. | no | | `Statement` | A normalized copy of the SQL statement that triggered the event. The statement string contains a mix of sensitive and non-sensitive details (it is redactable). | partially | | `Tag` | The statement tag. This is separate from the statement string, since the statement string can contain sensitive information. The tag is guaranteed not to. | no | | `User` | The user account that triggered the event. The special usernames `root` and `node` are not considered sensitive. | depends | | `DescriptorID` | The primary object descriptor affected by the operation. Set to zero for operations that don't affect descriptors. | no | | `ApplicationName` | The application name for the session where the event was emitted. This is included in the event to ease filtering of logging output by application. | no | | `PlaceholderValues` | The mapping of SQL placeholders to their values, for prepared statements. | yes | An event of type `drop_index` is recorded when an index is dropped. | Field | Description | Sensitive | |--|--|--| | `TableName` | The name of the table containing the affected index. | yes | | `IndexName` | The name of the affected index. | yes | | `MutationID` | The mutation ID for the asynchronous job that is processing the index update. | no | | `CascadeDroppedViews` | The names of the views dropped as a result of a cascade operation. | yes | | Field | Description | Sensitive | |--|--|--| | `Timestamp` | The timestamp of the event. Expressed as nanoseconds since the Unix epoch. | no | | `EventType` | The type of the event. | no | | `Statement` | A normalized copy of the SQL statement that triggered the event. The statement string contains a mix of sensitive and non-sensitive details (it is redactable). | partially | | `Tag` | The statement tag. This is separate from the statement string, since the statement string can contain sensitive information. The tag is guaranteed not to. | no | | `User` | The user account that triggered the event. The special usernames `root` and `node` are not considered sensitive. | depends | | `DescriptorID` | The primary object descriptor affected by the operation. Set to zero for operations that don't affect descriptors. | no | | `ApplicationName` | The application name for the session where the event was emitted. This is included in the event to ease filtering of logging output by application. | no | | `PlaceholderValues` | The mapping of SQL placeholders to their values, for prepared statements. | yes | An event of type `drop_schema` is recorded when a schema is dropped. | Field | Description | Sensitive | |--|--|--| | `SchemaName` | The name of the affected schema. | yes | | Field | Description | Sensitive | |--|--|--| | `Timestamp` | The timestamp of the event. Expressed as nanoseconds since the Unix epoch. | no | | `EventType` | The type of the event. | no | | `Statement` | A normalized copy of the SQL statement that triggered the

The statement string contains a mix of sensitive and non-sensitive details (it is redactable). | partially | | `Tag` | The statement tag. This is separate from the statement string, since the statement string can contain sensitive information. The tag is guaranteed not to. | no | | `User` | The user account that triggered the event. The special usernames `root` and `node` are not considered sensitive. | depends | | `DescriptorID` | The primary object descriptor affected by the operation. Set to zero for operations that don't affect descriptors. | no | | `ApplicationName` | The application name for the session where the event was emitted. This is included in the event to ease filtering of logging output by application. | no | | `PlaceholderValues` | The mapping of SQL placeholders to their values, for prepared statements. | yes | An event of type `drop_sequence` is recorded when a sequence is dropped. | Field | Description | Sensitive | |--|--|--| | `SequenceName` | The name of the affected sequence. | yes | | Field | Description | Sensitive | |--|--|--| | `Timestamp` | The timestamp of the event. Expressed as nanoseconds since the Unix epoch. | no | | `EventType` | The type of the event. | no | | `Statement` | A normalized copy of the SQL statement that triggered the event. The statement string contains a mix of sensitive and non-sensitive details (it is redactable). | partially | | `Tag` | The statement tag. This is separate from the statement string, since the statement string can contain sensitive information. The tag is guaranteed not to. | no | | `User` | The user account that triggered the event. The special usernames `root` and `node` are not considered sensitive. | depends | | `DescriptorID` | The primary object descriptor affected by the operation. Set to zero for operations that don't affect descriptors. | no | | `ApplicationName` | The application name for the session where the event was emitted. This is included in the event to ease filtering of logging output by application. | no | | `PlaceholderValues` | The mapping of SQL placeholders to their values, for prepared statements. | yes | An event of type `drop_table` is recorded when a table is dropped. | Field | Description | Sensitive | |--|--|--| | `TableName` | The name of the affected table. | yes | | `CascadeDroppedViews` | The names of the views dropped as a result of a cascade operation. | yes | | Field | Description | Sensitive | |--|--|--| | `Timestamp` | The timestamp of the event. Expressed as nanoseconds since the Unix epoch. | no | | `EventType` | The type of the event. | no | | `Statement` | A normalized copy of the SQL statement that triggered the event. The statement string contains a mix of sensitive and non-sensitive details (it is redactable). | partially | | `Tag` | The statement tag. This is separate from the statement string, since the statement string can contain sensitive information. The tag is guaranteed not to. | no | | `User` | The user account that triggered the event. The special usernames `root` and `node` are not considered sensitive. | depends | | `DescriptorID` | The primary object descriptor affected by the operation. Set to zero for operations that don't affect descriptors. | no | | `ApplicationName` | The application name for the session where the event was emitted. This is included in the event to ease filtering of logging output by

| no | | `PlaceholderValues` | The mapping of SQL placeholders to their values, for prepared statements. | yes | An event of type `drop_type` is recorded when a user-defined type is dropped. | Field | Description | Sensitive | |--|--|--| | `TypeName` | The name of the affected type. | yes | | Field | Description | Sensitive | |--|--|--| | `Timestamp` | The timestamp of the event. Expressed as nanoseconds since the Unix epoch. | no | | `EventType` | The type of the event. | no | | `Statement` | A normalized copy of the SQL statement that triggered the event. The statement string contains a mix of sensitive and non-sensitive details (it is redactable). | partially | | `Tag` | The statement tag. This is separate from the statement string, since the statement string can contain sensitive information. The tag is guaranteed not to. | no | | `User` | The user account that triggered the event. The special usernames `root` and `node` are not considered sensitive. | depends | | `DescriptorID` | The primary object descriptor affected by the operation. Set to zero for operations that don't affect descriptors. | no | | `ApplicationName` | The application name for the session where the event was emitted. This is included in the event to ease filtering of logging output by application. | no | | `PlaceholderValues` | The mapping of SQL placeholders to their values, for prepared statements. | yes | An event of type `drop_view` is recorded when a view is dropped. | Field | Description | Sensitive | |--|--|--| | `ViewName` | The name of the affected view. | yes | | `CascadeDroppedViews` | The names of the views dropped as a result of a cascade operation. | yes | | Field | Description | Sensitive | |--|--|--| | `Timestamp` | The timestamp of the event. Expressed as nanoseconds since the Unix epoch. | no | | `EventType` | The type of the event. | no | | `Statement` | A normalized copy of the SQL statement that triggered the event. The statement string contains a mix of sensitive and non-sensitive details (it is redactable). | partially | | `Tag` | The statement tag. This is separate from the statement string, since the statement string can contain sensitive information. The tag is guaranteed not to. | no | | `User` | The user account that triggered the event. The special usernames `root` and `node` are not considered sensitive. | depends | | `DescriptorID` | The primary object descriptor affected by the operation. Set to zero for operations that don't affect descriptors. | no | | `ApplicationName` | The application name for the session where the event was emitted. This is included in the event to ease filtering of logging output by application. | no | | `PlaceholderValues` | The mapping of SQL placeholders to their values, for prepared statements. | yes | An event of type `finishschemachange` is recorded when a previously initiated schema change has completed. | Field | Description | Sensitive | |--|--|--| | `Timestamp` | The timestamp of the event. Expressed as nanoseconds since the Unix epoch. | no | | `EventType` | The type of the event. | no | | `InstanceID` | The instance ID (not tenant ID) of the SQL server where the event was originated. | no | | `DescriptorID` | The primary object descriptor affected by the operation. Set to zero for operations that don't affect descriptors. | no | | `MutationID` | The descriptor mutation that this schema change was

| no | An event of type `finishschemachange_rollback` is recorded when a previously initiated schema change rollback has completed. | Field | Description | Sensitive | |--|--|--| | `Timestamp` | The timestamp of the event. Expressed as nanoseconds since the Unix epoch. | no | | `EventType` | The type of the event. | no | | `InstanceID` | The instance ID (not tenant ID) of the SQL server where the event was originated. | no | | `DescriptorID` | The primary object descriptor affected by the operation. Set to zero for operations that don't affect descriptors. | no | | `MutationID` | The descriptor mutation that this schema change was processing. | no | | Field | Description | Sensitive | |--|--|--| | `DescriptorID` | | no | | Field | Description | Sensitive | |--|--|--| | `Timestamp` | The timestamp of the event. Expressed as nanoseconds since the Unix epoch. | no | | `EventType` | The type of the event. | no | | `Statement` | A normalized copy of the SQL statement that triggered the event. The statement string contains a mix of sensitive and non-sensitive details (it is redactable). | partially | | `Tag` | The statement tag. This is separate from the statement string, since the statement string can contain sensitive information. The tag is guaranteed not to. | no | | `User` | The user account that triggered the event. The special usernames `root` and `node` are not considered sensitive. | depends | | `DescriptorID` | The primary object descriptor affected by the operation. Set to zero for operations that don't affect descriptors. | no | | `ApplicationName` | The application name for the session where the event was emitted. This is included in the event to ease filtering of logging output by application. | no | | `PlaceholderValues` | The mapping of SQL placeholders to their values, for prepared statements. | yes | An event of type `rename_database` is recorded when a database is renamed. | Field | Description | Sensitive | |--|--|--| | `DatabaseName` | The old name of the affected database. | yes | | `NewDatabaseName` | The new name of the affected database. | yes | | Field | Description | Sensitive | |--|--|--| | `Timestamp` | The timestamp of the event. Expressed as nanoseconds since the Unix epoch. | no | | `EventType` | The type of the event. | no | | `Statement` | A normalized copy of the SQL statement that triggered the event. The statement string contains a mix of sensitive and non-sensitive details (it is redactable). | partially | | `Tag` | The statement tag. This is separate from the statement string, since the statement string can contain sensitive information. The tag is guaranteed not to. | no | | `User` | The user account that triggered the event. The special usernames `root` and `node` are not considered sensitive. | depends | | `DescriptorID` | The primary object descriptor affected by the operation. Set to zero for operations that don't affect descriptors. | no | | `ApplicationName` | The application name for the session where the event was emitted. This is included in the event to ease filtering of logging output by application. | no | | `PlaceholderValues` | The mapping of SQL placeholders to their values, for prepared statements. | yes | An event of type `rename_function` is recorded when a user-defined function is renamed. | Field | Description | Sensitive | |--|--|--| | `FunctionName` | The old name of the affected function. | yes | | `NewFunctionName` | The new name of the affected

| yes | | Field | Description | Sensitive | |--|--|--| | `Timestamp` | The timestamp of the event. Expressed as nanoseconds since the Unix epoch. | no | | `EventType` | The type of the event. | no | | `Statement` | A normalized copy of the SQL statement that triggered the event. The statement string contains a mix of sensitive and non-sensitive details (it is redactable). | partially | | `Tag` | The statement tag. This is separate from the statement string, since the statement string can contain sensitive information. The tag is guaranteed not to. | no | | `User` | The user account that triggered the event. The special usernames `root` and `node` are not considered sensitive. | depends | | `DescriptorID` | The primary object descriptor affected by the operation. Set to zero for operations that don't affect descriptors. | no | | `ApplicationName` | The application name for the session where the event was emitted. This is included in the event to ease filtering of logging output by application. | no | | `PlaceholderValues` | The mapping of SQL placeholders to their values, for prepared statements. | yes | An event of type `rename_schema` is recorded when a schema is renamed. | Field | Description | Sensitive | |--|--|--| | `SchemaName` | The old name of the affected schema. | yes | | `NewSchemaName` | The new name of the affected schema. | yes | | Field | Description | Sensitive | |--|--|--| | `Timestamp` | The timestamp of the event. Expressed as nanoseconds since the Unix epoch. | no | | `EventType` | The type of the event. | no | | `Statement` | A normalized copy of the SQL statement that triggered the event. The statement string contains a mix of sensitive and non-sensitive details (it is redactable). | partially | | `Tag` | The statement tag. This is separate from the statement string, since the statement string can contain sensitive information. The tag is guaranteed not to. | no | | `User` | The user account that triggered the event. The special usernames `root` and `node` are not considered sensitive. | depends | | `DescriptorID` | The primary object descriptor affected by the operation. Set to zero for operations that don't affect descriptors. | no | | `ApplicationName` | The application name for the session where the event was emitted. This is included in the event to ease filtering of logging output by application. | no | | `PlaceholderValues` | The mapping of SQL placeholders to their values, for prepared statements. | yes | An event of type `rename_table` is recorded when a table, sequence or view is renamed. | Field | Description | Sensitive | |--|--|--| | `TableName` | The old name of the affected table. | yes | | `NewTableName` | The new name of the affected table. | yes | | Field | Description | Sensitive | |--|--|--| | `Timestamp` | The timestamp of the event. Expressed as nanoseconds since the Unix epoch. | no | | `EventType` | The type of the event. | no | | `Statement` | A normalized copy of the SQL statement that triggered the event. The statement string contains a mix of sensitive and non-sensitive details (it is redactable). | partially | | `Tag` | The statement tag. This is separate from the statement string, since the statement string can contain sensitive information. The tag is guaranteed not to. | no | | `User` | The user account that triggered the

The special usernames `root` and `node` are not considered sensitive. | depends | | `DescriptorID` | The primary object descriptor affected by the operation. Set to zero for operations that don't affect descriptors. | no | | `ApplicationName` | The application name for the session where the event was emitted. This is included in the event to ease filtering of logging output by application. | no | | `PlaceholderValues` | The mapping of SQL placeholders to their values, for prepared statements. | yes | An event of type `rename_type` is recorded when a user-defined type is renamed. | Field | Description | Sensitive | |--|--|--| | `TypeName` | The old name of the affected type. | yes | | `NewTypeName` | The new name of the affected type. | yes | | Field | Description | Sensitive | |--|--|--| | `Timestamp` | The timestamp of the event. Expressed as nanoseconds since the Unix epoch. | no | | `EventType` | The type of the event. | no | | `Statement` | A normalized copy of the SQL statement that triggered the event. The statement string contains a mix of sensitive and non-sensitive details (it is redactable). | partially | | `Tag` | The statement tag. This is separate from the statement string, since the statement string can contain sensitive information. The tag is guaranteed not to. | no | | `User` | The user account that triggered the event. The special usernames `root` and `node` are not considered sensitive. | depends | | `DescriptorID` | The primary object descriptor affected by the operation. Set to zero for operations that don't affect descriptors. | no | | `ApplicationName` | The application name for the session where the event was emitted. This is included in the event to ease filtering of logging output by application. | no | | `PlaceholderValues` | The mapping of SQL placeholders to their values, for prepared statements. | yes | An event of type `reverseschemachange` is recorded when an in-progress schema change encounters a problem and is reversed. | Field | Description | Sensitive | |--|--|--| | `Error` | The error encountered that caused the schema change to be reversed. The specific format of the error is variable and can change across releases without warning. | yes | | `SQLSTATE` | The SQLSTATE code for the error. | no | | Field | Description | Sensitive | |--|--|--| | `Timestamp` | The timestamp of the event. Expressed as nanoseconds since the Unix epoch. | no | | `EventType` | The type of the event. | no | | `InstanceID` | The instance ID (not tenant ID) of the SQL server where the event was originated. | no | | `DescriptorID` | The primary object descriptor affected by the operation. Set to zero for operations that don't affect descriptors. | no | | `MutationID` | The descriptor mutation that this schema change was processing. | no | An event of type `set_schema` is recorded when a table, view, sequence or type's schema is changed. | Field | Description | Sensitive | |--|--|--| | `DescriptorName` | The old name of the affected descriptor. | yes | | `NewDescriptorName` | The new name of the affected descriptor. | yes | | `DescriptorType` | The descriptor type being changed (table, view, sequence, type). | yes | | Field | Description | Sensitive | |--|--|--| | `Timestamp` | The timestamp of the event. Expressed as nanoseconds since the Unix epoch. | no | | `EventType` | The type of the

| no | | `Statement` | A normalized copy of the SQL statement that triggered the event. The statement string contains a mix of sensitive and non-sensitive details (it is redactable). | partially | | `Tag` | The statement tag. This is separate from the statement string, since the statement string can contain sensitive information. The tag is guaranteed not to. | no | | `User` | The user account that triggered the event. The special usernames `root` and `node` are not considered sensitive. | depends | | `DescriptorID` | The primary object descriptor affected by the operation. Set to zero for operations that don't affect descriptors. | no | | `ApplicationName` | The application name for the session where the event was emitted. This is included in the event to ease filtering of logging output by application. | no | | `PlaceholderValues` | The mapping of SQL placeholders to their values, for prepared statements. | yes | An event of type `truncate_table` is recorded when a table is truncated. | Field | Description | Sensitive | |--|--|--| | `TableName` | The name of the affected table. | yes | | Field | Description | Sensitive | |--|--|--| | `Timestamp` | The timestamp of the event. Expressed as nanoseconds since the Unix epoch. | no | | `EventType` | The type of the event. | no | | `Statement` | A normalized copy of the SQL statement that triggered the event. The statement string contains a mix of sensitive and non-sensitive details (it is redactable). | partially | | `Tag` | The statement tag. This is separate from the statement string, since the statement string can contain sensitive information. The tag is guaranteed not to. | no | | `User` | The user account that triggered the event. The special usernames `root` and `node` are not considered sensitive. | depends | | `DescriptorID` | The primary object descriptor affected by the operation. Set to zero for operations that don't affect descriptors. | no | | `ApplicationName` | The application name for the session where the event was emitted. This is included in the event to ease filtering of logging output by application. | no | | `PlaceholderValues` | The mapping of SQL placeholders to their values, for prepared statements. | yes | An event of type `unsafedeletedescriptor` is recorded when a descriptor is written using crdbinternal.unsafedelete_descriptor(). The fields of this event type are reserved and can change across patch releases without advance notice. | Field | Description | Sensitive | |--|--|--| | `ParentID` | | no | | `ParentSchemaID` | | no | | `Name` | | yes | | `Force` | | no | | `ForceNotice` | | yes | | Field | Description | Sensitive | |--|--|--| | `Timestamp` | The timestamp of the event. Expressed as nanoseconds since the Unix epoch. | no | | `EventType` | The type of the event. | no | | `Statement` | A normalized copy of the SQL statement that triggered the event. The statement string contains a mix of sensitive and non-sensitive details (it is redactable). | partially | | `Tag` | The statement tag. This is separate from the statement string, since the statement string can contain sensitive information. The tag is guaranteed not to. | no | | `User` | The user account that triggered the event. The special usernames `root` and `node` are not considered sensitive. | depends | | `DescriptorID` | The primary object descriptor affected by the operation. Set to zero for operations that don't affect

| no | | `ApplicationName` | The application name for the session where the event was emitted. This is included in the event to ease filtering of logging output by application. | no | | `PlaceholderValues` | The mapping of SQL placeholders to their values, for prepared statements. | yes | An event of type `unsafedeletenamespace_entry` is recorded when a namespace entry is written using crdbinternal.unsafedeletenamespaceentry(). The fields of this event type are reserved and can change across patch releases without advance notice. | Field | Description | Sensitive | |--|--|--| | `ParentID` | | no | | `ParentSchemaID` | | no | | `Name` | | yes | | `Force` | | no | | `ForceNotice` | | yes | | Field | Description | Sensitive | |--|--|--| | `Timestamp` | The timestamp of the event. Expressed as nanoseconds since the Unix epoch. | no | | `EventType` | The type of the event. | no | | `Statement` | A normalized copy of the SQL statement that triggered the event. The statement string contains a mix of sensitive and non-sensitive details (it is redactable). | partially | | `Tag` | The statement tag. This is separate from the statement string, since the statement string can contain sensitive information. The tag is guaranteed not to. | no | | `User` | The user account that triggered the event. The special usernames `root` and `node` are not considered sensitive. | depends | | `DescriptorID` | The primary object descriptor affected by the operation. Set to zero for operations that don't affect descriptors. | no | | `ApplicationName` | The application name for the session where the event was emitted. This is included in the event to ease filtering of logging output by application. | no | | `PlaceholderValues` | The mapping of SQL placeholders to their values, for prepared statements. | yes | An event of type `unsafeupsertdescriptor` is recorded when a descriptor is written using crdbinternal.unsafeupsert_descriptor(). | Field | Description | Sensitive | |--|--|--| | `PreviousDescriptor` | | yes | | `NewDescriptor` | | yes | | `Force` | | no | | `ForceNotice` | | yes | | Field | Description | Sensitive | |--|--|--| | `Timestamp` | The timestamp of the event. Expressed as nanoseconds since the Unix epoch. | no | | `EventType` | The type of the event. | no | | `Statement` | A normalized copy of the SQL statement that triggered the event. The statement string contains a mix of sensitive and non-sensitive details (it is redactable). | partially | | `Tag` | The statement tag. This is separate from the statement string, since the statement string can contain sensitive information. The tag is guaranteed not to. | no | | `User` | The user account that triggered the event. The special usernames `root` and `node` are not considered sensitive. | depends | | `DescriptorID` | The primary object descriptor affected by the operation. Set to zero for operations that don't affect descriptors. | no | | `ApplicationName` | The application name for the session where the event was emitted. This is included in the event to ease filtering of logging output by application. | no | | `PlaceholderValues` | The mapping of SQL placeholders to their values, for prepared statements. | yes | An event of type `unsafeupsertnamespace_entry` is recorded when a namespace entry is written using crdbinternal.unsafeupsertnamespaceentry(). The fields of this event type are reserved and can change across patch releases without advance

| Field | Description | Sensitive | |--|--|--| | `ParentID` | | no | | `ParentSchemaID` | | no | | `Name` | | yes | | `PreviousID` | | no | | `Force` | | no | | `FailedValidation` | | no | | `ValidationErrors` | | yes | | Field | Description | Sensitive | |--|--|--| | `Timestamp` | The timestamp of the event. Expressed as nanoseconds since the Unix epoch. | no | | `EventType` | The type of the event. | no | | `Statement` | A normalized copy of the SQL statement that triggered the event. The statement string contains a mix of sensitive and non-sensitive details (it is redactable). | partially | | `Tag` | The statement tag. This is separate from the statement string, since the statement string can contain sensitive information. The tag is guaranteed not to. | no | | `User` | The user account that triggered the event. The special usernames `root` and `node` are not considered sensitive. | depends | | `DescriptorID` | The primary object descriptor affected by the operation. Set to zero for operations that don't affect descriptors. | no | | `ApplicationName` | The application name for the session where the event was emitted. This is included in the event to ease filtering of logging output by application. | no | | `PlaceholderValues` | The mapping of SQL placeholders to their values, for prepared statements. | yes | Events in this category pertain to DDL (Data Definition Language) operations performed by SQL statements that modify the privilege grants for stored objects. They are relative to a particular SQL tenant. In a multi-tenant setup, copies of DDL-related events are preserved in each tenant's own `system.eventlog` table. Events in this category are logged to the `PRIVILEGES` channel. An event of type `alterdatabaseowner` is recorded when a database's owner is changed. | Field | Description | Sensitive | |--|--|--| | `DatabaseName` | The name of the database being affected. | yes | | `Owner` | The name of the new owner. | yes | | Field | Description | Sensitive | |--|--|--| | `Timestamp` | The timestamp of the event. Expressed as nanoseconds since the Unix epoch. | no | | `EventType` | The type of the event. | no | | `Statement` | A normalized copy of the SQL statement that triggered the event. The statement string contains a mix of sensitive and non-sensitive details (it is redactable). | partially | | `Tag` | The statement tag. This is separate from the statement string, since the statement string can contain sensitive information. The tag is guaranteed not to. | no | | `User` | The user account that triggered the event. The special usernames `root` and `node` are not considered sensitive. | depends | | `DescriptorID` | The primary object descriptor affected by the operation. Set to zero for operations that don't affect descriptors. | no | | `ApplicationName` | The application name for the session where the event was emitted. This is included in the event to ease filtering of logging output by application. | no | | `PlaceholderValues` | The mapping of SQL placeholders to their values, for prepared statements. | yes | An event of type `alterdefaultprivileges` is recorded when default privileges are changed. | Field | Description | Sensitive | |--|--|--| | `DatabaseName` | The name of the affected database. | yes | | `RoleName` | Either rolename should be populated or forall_roles should be true. The role having its default privileges altered. | yes | | `ForAllRoles` | Identifies if FOR ALL ROLES is

| no | | `SchemaName` | The name of the affected schema. | yes | | Field | Description | Sensitive | |--|--|--| | `Timestamp` | The timestamp of the event. Expressed as nanoseconds since the Unix epoch. | no | | `EventType` | The type of the event. | no | | `Statement` | A normalized copy of the SQL statement that triggered the event. The statement string contains a mix of sensitive and non-sensitive details (it is redactable). | partially | | `Tag` | The statement tag. This is separate from the statement string, since the statement string can contain sensitive information. The tag is guaranteed not to. | no | | `User` | The user account that triggered the event. The special usernames `root` and `node` are not considered sensitive. | depends | | `DescriptorID` | The primary object descriptor affected by the operation. Set to zero for operations that don't affect descriptors. | no | | `ApplicationName` | The application name for the session where the event was emitted. This is included in the event to ease filtering of logging output by application. | no | | `PlaceholderValues` | The mapping of SQL placeholders to their values, for prepared statements. | yes | | `Grantee` | The user/role affected by the grant or revoke operation. | yes | | `GrantedPrivileges` | The privileges being granted to the grantee. | no | | `RevokedPrivileges` | The privileges being revoked from the grantee. | no | AlterTableOwner is recorded when the owner of a user-defined function is changed. | Field | Description | Sensitive | |--|--|--| | `FunctionName` | The name of the affected user-defined function. | yes | | `Owner` | The name of the new owner. | yes | | Field | Description | Sensitive | |--|--|--| | `Timestamp` | The timestamp of the event. Expressed as nanoseconds since the Unix epoch. | no | | `EventType` | The type of the event. | no | | `Statement` | A normalized copy of the SQL statement that triggered the event. The statement string contains a mix of sensitive and non-sensitive details (it is redactable). | partially | | `Tag` | The statement tag. This is separate from the statement string, since the statement string can contain sensitive information. The tag is guaranteed not to. | no | | `User` | The user account that triggered the event. The special usernames `root` and `node` are not considered sensitive. | depends | | `DescriptorID` | The primary object descriptor affected by the operation. Set to zero for operations that don't affect descriptors. | no | | `ApplicationName` | The application name for the session where the event was emitted. This is included in the event to ease filtering of logging output by application. | no | | `PlaceholderValues` | The mapping of SQL placeholders to their values, for prepared statements. | yes | An event of type `alterschemaowner` is recorded when a schema's owner is changed. | Field | Description | Sensitive | |--|--|--| | `SchemaName` | The name of the affected schema. | yes | | `Owner` | The name of the new owner. | yes | | Field | Description | Sensitive | |--|--|--| | `Timestamp` | The timestamp of the event. Expressed as nanoseconds since the Unix epoch. | no | | `EventType` | The type of the event. | no | | `Statement` | A normalized copy of the SQL statement that triggered the event. The statement string contains a mix of sensitive and non-sensitive details (it is

| partially | | `Tag` | The statement tag. This is separate from the statement string, since the statement string can contain sensitive information. The tag is guaranteed not to. | no | | `User` | The user account that triggered the event. The special usernames `root` and `node` are not considered sensitive. | depends | | `DescriptorID` | The primary object descriptor affected by the operation. Set to zero for operations that don't affect descriptors. | no | | `ApplicationName` | The application name for the session where the event was emitted. This is included in the event to ease filtering of logging output by application. | no | | `PlaceholderValues` | The mapping of SQL placeholders to their values, for prepared statements. | yes | An event of type `altertableowner` is recorded when the owner of a table, view or sequence is changed. | Field | Description | Sensitive | |--|--|--| | `TableName` | The name of the affected object. | yes | | `Owner` | The name of the new owner. | yes | | Field | Description | Sensitive | |--|--|--| | `Timestamp` | The timestamp of the event. Expressed as nanoseconds since the Unix epoch. | no | | `EventType` | The type of the event. | no | | `Statement` | A normalized copy of the SQL statement that triggered the event. The statement string contains a mix of sensitive and non-sensitive details (it is redactable). | partially | | `Tag` | The statement tag. This is separate from the statement string, since the statement string can contain sensitive information. The tag is guaranteed not to. | no | | `User` | The user account that triggered the event. The special usernames `root` and `node` are not considered sensitive. | depends | | `DescriptorID` | The primary object descriptor affected by the operation. Set to zero for operations that don't affect descriptors. | no | | `ApplicationName` | The application name for the session where the event was emitted. This is included in the event to ease filtering of logging output by application. | no | | `PlaceholderValues` | The mapping of SQL placeholders to their values, for prepared statements. | yes | An event of type `altertypeowner` is recorded when the owner of a user-defiend type is changed. | Field | Description | Sensitive | |--|--|--| | `TypeName` | The name of the affected type. | yes | | `Owner` | The name of the new owner. | yes | | Field | Description | Sensitive | |--|--|--| | `Timestamp` | The timestamp of the event. Expressed as nanoseconds since the Unix epoch. | no | | `EventType` | The type of the event. | no | | `Statement` | A normalized copy of the SQL statement that triggered the event. The statement string contains a mix of sensitive and non-sensitive details (it is redactable). | partially | | `Tag` | The statement tag. This is separate from the statement string, since the statement string can contain sensitive information. The tag is guaranteed not to. | no | | `User` | The user account that triggered the event. The special usernames `root` and `node` are not considered sensitive. | depends | | `DescriptorID` | The primary object descriptor affected by the operation. Set to zero for operations that don't affect descriptors. | no | | `ApplicationName` | The application name for the session where the event was emitted. This is included in the event to ease filtering of logging output by

| no | | `PlaceholderValues` | The mapping of SQL placeholders to their values, for prepared statements. | yes | An event of type `changedatabaseprivilege` is recorded when privileges are added to / removed from a user for a database object. | Field | Description | Sensitive | |--|--|--| | `DatabaseName` | The name of the affected database. | yes | | Field | Description | Sensitive | |--|--|--| | `Timestamp` | The timestamp of the event. Expressed as nanoseconds since the Unix epoch. | no | | `EventType` | The type of the event. | no | | `Statement` | A normalized copy of the SQL statement that triggered the event. The statement string contains a mix of sensitive and non-sensitive details (it is redactable). | partially | | `Tag` | The statement tag. This is separate from the statement string, since the statement string can contain sensitive information. The tag is guaranteed not to. | no | | `User` | The user account that triggered the event. The special usernames `root` and `node` are not considered sensitive. | depends | | `DescriptorID` | The primary object descriptor affected by the operation. Set to zero for operations that don't affect descriptors. | no | | `ApplicationName` | The application name for the session where the event was emitted. This is included in the event to ease filtering of logging output by application. | no | | `PlaceholderValues` | The mapping of SQL placeholders to their values, for prepared statements. | yes | | `Grantee` | The user/role affected by the grant or revoke operation. | yes | | `GrantedPrivileges` | The privileges being granted to the grantee. | no | | `RevokedPrivileges` | The privileges being revoked from the grantee. | no | | Field | Description | Sensitive | |--|--|--| | `FuncName` | The name of the affected function. | yes | | Field | Description | Sensitive | |--|--|--| | `Timestamp` | The timestamp of the event. Expressed as nanoseconds since the Unix epoch. | no | | `EventType` | The type of the event. | no | | `Statement` | A normalized copy of the SQL statement that triggered the event. The statement string contains a mix of sensitive and non-sensitive details (it is redactable). | partially | | `Tag` | The statement tag. This is separate from the statement string, since the statement string can contain sensitive information. The tag is guaranteed not to. | no | | `User` | The user account that triggered the event. The special usernames `root` and `node` are not considered sensitive. | depends | | `DescriptorID` | The primary object descriptor affected by the operation. Set to zero for operations that don't affect descriptors. | no | | `ApplicationName` | The application name for the session where the event was emitted. This is included in the event to ease filtering of logging output by application. | no | | `PlaceholderValues` | The mapping of SQL placeholders to their values, for prepared statements. | yes | | `Grantee` | The user/role affected by the grant or revoke operation. | yes | | `GrantedPrivileges` | The privileges being granted to the grantee. | no | | `RevokedPrivileges` | The privileges being revoked from the grantee. | no | An event of type `changeschemaprivilege` is recorded when privileges are added to / removed from a user for a schema object. | Field | Description | Sensitive | |--|--|--| | `SchemaName` | The name of the affected schema. | yes | | Field | Description | Sensitive | |--|--|--| | `Timestamp` | The timestamp of the

Expressed as nanoseconds since the Unix epoch. | no | | `EventType` | The type of the event. | no | | `Statement` | A normalized copy of the SQL statement that triggered the event. The statement string contains a mix of sensitive and non-sensitive details (it is redactable). | partially | | `Tag` | The statement tag. This is separate from the statement string, since the statement string can contain sensitive information. The tag is guaranteed not to. | no | | `User` | The user account that triggered the event. The special usernames `root` and `node` are not considered sensitive. | depends | | `DescriptorID` | The primary object descriptor affected by the operation. Set to zero for operations that don't affect descriptors. | no | | `ApplicationName` | The application name for the session where the event was emitted. This is included in the event to ease filtering of logging output by application. | no | | `PlaceholderValues` | The mapping of SQL placeholders to their values, for prepared statements. | yes | | `Grantee` | The user/role affected by the grant or revoke operation. | yes | | `GrantedPrivileges` | The privileges being granted to the grantee. | no | | `RevokedPrivileges` | The privileges being revoked from the grantee. | no | An event of type `changetableprivilege` is recorded when privileges are added to / removed from a user for a table, sequence or view object. | Field | Description | Sensitive | |--|--|--| | `TableName` | The name of the affected table. | yes | | Field | Description | Sensitive | |--|--|--| | `Timestamp` | The timestamp of the event. Expressed as nanoseconds since the Unix epoch. | no | | `EventType` | The type of the event. | no | | `Statement` | A normalized copy of the SQL statement that triggered the event. The statement string contains a mix of sensitive and non-sensitive details (it is redactable). | partially | | `Tag` | The statement tag. This is separate from the statement string, since the statement string can contain sensitive information. The tag is guaranteed not to. | no | | `User` | The user account that triggered the event. The special usernames `root` and `node` are not considered sensitive. | depends | | `DescriptorID` | The primary object descriptor affected by the operation. Set to zero for operations that don't affect descriptors. | no | | `ApplicationName` | The application name for the session where the event was emitted. This is included in the event to ease filtering of logging output by application. | no | | `PlaceholderValues` | The mapping of SQL placeholders to their values, for prepared statements. | yes | | `Grantee` | The user/role affected by the grant or revoke operation. | yes | | `GrantedPrivileges` | The privileges being granted to the grantee. | no | | `RevokedPrivileges` | The privileges being revoked from the grantee. | no | An event of type `changetypeprivilege` is recorded when privileges are added to / removed from a user for a type object. | Field | Description | Sensitive | |--|--|--| | `TypeName` | The name of the affected type. | yes | | Field | Description | Sensitive | |--|--|--| | `Timestamp` | The timestamp of the event. Expressed as nanoseconds since the Unix epoch. | no | | `EventType` | The type of the event. | no | | `Statement` | A normalized copy of the SQL statement that triggered the

The statement string contains a mix of sensitive and non-sensitive details (it is redactable). | partially | | `Tag` | The statement tag. This is separate from the statement string, since the statement string can contain sensitive information. The tag is guaranteed not to. | no | | `User` | The user account that triggered the event. The special usernames `root` and `node` are not considered sensitive. | depends | | `DescriptorID` | The primary object descriptor affected by the operation. Set to zero for operations that don't affect descriptors. | no | | `ApplicationName` | The application name for the session where the event was emitted. This is included in the event to ease filtering of logging output by application. | no | | `PlaceholderValues` | The mapping of SQL placeholders to their values, for prepared statements. | yes | | `Grantee` | The user/role affected by the grant or revoke operation. | yes | | `GrantedPrivileges` | The privileges being granted to the grantee. | no | | `RevokedPrivileges` | The privileges being revoked from the grantee. | no | Events in this category report SQL client connections and sessions. They are relative to a particular SQL tenant. In a multi-tenant setup, copies of these miscellaneous events are preserved in each tenant's own `system.eventlog` table. Events in this category are logged to the `SESSIONS` channel. An event of type `clientauthenticationfailed` is reported when a client session did not authenticate successfully. Events of this type are only emitted when the cluster setting `server.authlog.sqlsessions.enabled` is set. | Field | Description | Sensitive | |--|--|--| | `Reason` | The reason for the authentication failure. See below for possible values for type `AuthFailReason`. | no | | `Detail` | The detailed error for the authentication failure. | partially | | `Method` | The authentication method used. | no | | Field | Description | Sensitive | |--|--|--| | `Timestamp` | The timestamp of the event. Expressed as nanoseconds since the Unix epoch. | no | | `EventType` | The type of the event. | no | | `InstanceID` | The instance ID (not tenant ID) of the SQL server where the event was originated. | no | | `Network` | The network protocol for this connection: tcp4, tcp6, unix, etc. | no | | `RemoteAddress` | The remote address of the SQL client. Note that when using a proxy or other intermediate server, this field will contain the address of the intermediate server. | yes | | `SessionID` | The connection's hex encoded session id. | no | | `Transport` | The connection type after transport negotiation. | no | | `User` | The database username the session is for. This username will have undergone case-folding and Unicode normalization. | yes | | `SystemIdentity` | The original system identity provided by the client, if an identity mapping was used per Host-Based Authentication rules. This may be a GSSAPI or X.509 principal or any other external value, so no specific assumptions should be made about the contents of this field. | yes | An event of type `clientauthenticationinfo` is reported for intermediate steps during the authentication process. Events of this type are only emitted when the cluster setting `server.authlog.sqlsessions.enabled` is set. | Field | Description | Sensitive | |--|--|--| | `Method` | The authentication method used, once known. | no | | `Info` | The authentication progress message. | partially | | Field | Description | Sensitive | |--|--|--| | `Timestamp` | The timestamp of the event. Expressed as nanoseconds since the Unix

| no | | `EventType` | The type of the event. | no | | `InstanceID` | The instance ID (not tenant ID) of the SQL server where the event was originated. | no | | `Network` | The network protocol for this connection: tcp4, tcp6, unix, etc. | no | | `RemoteAddress` | The remote address of the SQL client. Note that when using a proxy or other intermediate server, this field will contain the address of the intermediate server. | yes | | `SessionID` | The connection's hex encoded session id. | no | | `Transport` | The connection type after transport negotiation. | no | | `User` | The database username the session is for. This username will have undergone case-folding and Unicode normalization. | yes | | `SystemIdentity` | The original system identity provided by the client, if an identity mapping was used per Host-Based Authentication rules. This may be a GSSAPI or X.509 principal or any other external value, so no specific assumptions should be made about the contents of this field. | yes | An event of type `clientauthenticationok` is reported when a client session was authenticated successfully. Events of this type are only emitted when the cluster setting `server.authlog.sqlsessions.enabled` is set. | Field | Description | Sensitive | |--|--|--| | `Method` | The authentication method used. | no | | Field | Description | Sensitive | |--|--|--| | `Timestamp` | The timestamp of the event. Expressed as nanoseconds since the Unix epoch. | no | | `EventType` | The type of the event. | no | | `InstanceID` | The instance ID (not tenant ID) of the SQL server where the event was originated. | no | | `Network` | The network protocol for this connection: tcp4, tcp6, unix, etc. | no | | `RemoteAddress` | The remote address of the SQL client. Note that when using a proxy or other intermediate server, this field will contain the address of the intermediate server. | yes | | `SessionID` | The connection's hex encoded session id. | no | | `Transport` | The connection type after transport negotiation. | no | | `User` | The database username the session is for. This username will have undergone case-folding and Unicode normalization. | yes | | `SystemIdentity` | The original system identity provided by the client, if an identity mapping was used per Host-Based Authentication rules. This may be a GSSAPI or X.509 principal or any other external value, so no specific assumptions should be made about the contents of this field. | yes | An event of type `clientconnectionend` is reported when a client connection is closed. This is reported even when authentication fails, and even for simple cancellation messages. Events of this type are only emitted when the cluster setting `server.authlog.sqlconnections.enabled` is set. | Field | Description | Sensitive | |--|--|--| | `Duration` | The duration of the connection in nanoseconds. | no | | Field | Description | Sensitive | |--|--|--| | `Timestamp` | The timestamp of the event. Expressed as nanoseconds since the Unix epoch. | no | | `EventType` | The type of the event. | no | | `InstanceID` | The instance ID (not tenant ID) of the SQL server where the event was originated. | no | | `Network` | The network protocol for this connection: tcp4, tcp6, unix, etc. | no | | `RemoteAddress` | The remote address of the SQL client. Note that when using a proxy or other intermediate server, this field will contain the address of the intermediate

| yes | | `SessionID` | The connection's hex encoded session id. | no | An event of type `clientconnectionstart` is reported when a client connection is established. This is reported even when authentication fails, and even for simple cancellation messages. Events of this type are only emitted when the cluster setting `server.authlog.sqlconnections.enabled` is set. | Field | Description | Sensitive | |--|--|--| | `Timestamp` | The timestamp of the event. Expressed as nanoseconds since the Unix epoch. | no | | `EventType` | The type of the event. | no | | `InstanceID` | The instance ID (not tenant ID) of the SQL server where the event was originated. | no | | `Network` | The network protocol for this connection: tcp4, tcp6, unix, etc. | no | | `RemoteAddress` | The remote address of the SQL client. Note that when using a proxy or other intermediate server, this field will contain the address of the intermediate server. | yes | | `SessionID` | The connection's hex encoded session id. | no | An event of type `clientsessionend` is reported when a client session is completed. Events of this type are only emitted when the cluster setting `server.authlog.sqlsessions.enabled` is set. | Field | Description | Sensitive | |--|--|--| | `Duration` | The duration of the connection in nanoseconds. | no | | Field | Description | Sensitive | |--|--|--| | `Timestamp` | The timestamp of the event. Expressed as nanoseconds since the Unix epoch. | no | | `EventType` | The type of the event. | no | | `InstanceID` | The instance ID (not tenant ID) of the SQL server where the event was originated. | no | | `Network` | The network protocol for this connection: tcp4, tcp6, unix, etc. | no | | `RemoteAddress` | The remote address of the SQL client. Note that when using a proxy or other intermediate server, this field will contain the address of the intermediate server. | yes | | `SessionID` | The connection's hex encoded session id. | no | | `Transport` | The connection type after transport negotiation. | no | | `User` | The database username the session is for. This username will have undergone case-folding and Unicode normalization. | yes | | `SystemIdentity` | The original system identity provided by the client, if an identity mapping was used per Host-Based Authentication rules. This may be a GSSAPI or X.509 principal or any other external value, so no specific assumptions should be made about the contents of this field. | yes | Events in this category report slow query execution. Note: these events are not written to `system.eventlog`, even when the cluster setting `system.eventlog.enabled` is set. They are only emitted via external logging. Events in this category are logged to the `SQL_PERF` channel. An event of type `large_row` is recorded when a statement tries to write a row larger than cluster setting `sql.guardrails.maxrowsize_log` to the database. Multiple LargeRow events will be recorded for statements writing multiple large rows. LargeRow events are recorded before the transaction commits, so in the case of transaction abort there will not be a corresponding row in the database. | Field | Description | Sensitive | |--|--|--| | `Timestamp` | The timestamp of the event. Expressed as nanoseconds since the Unix epoch. | no | | `EventType` | The type of the event. | no | | `RowSize` | | no | | `TableID` | | no | | `FamilyID` | | no | | `PrimaryKey` | | yes | An event of type `slow_query` is recorded when a query triggers the "slow query"

As of this writing, the condition requires: the cluster setting `sql.log.slowquery.latencythreshold` set to a non-zero value, AND EITHER of the following conditions: the actual age of the query exceeds the configured threshold; AND/OR the query performs a full table/index scan AND the cluster setting `sql.log.slowquery.experimentalfulltablescans.enabled` is set. | Field | Description | Sensitive | |--|--|--| | `Timestamp` | The timestamp of the event. Expressed as nanoseconds since the Unix epoch. | no | | `EventType` | The type of the event. | no | | `Statement` | A normalized copy of the SQL statement that triggered the event. The statement string contains a mix of sensitive and non-sensitive details (it is redactable). | partially | | `Tag` | The statement tag. This is separate from the statement string, since the statement string can contain sensitive information. The tag is guaranteed not to. | no | | `User` | The user account that triggered the event. The special usernames `root` and `node` are not considered sensitive. | depends | | `DescriptorID` | The primary object descriptor affected by the operation. Set to zero for operations that don't affect descriptors. | no | | `ApplicationName` | The application name for the session where the event was emitted. This is included in the event to ease filtering of logging output by application. | no | | `PlaceholderValues` | The mapping of SQL placeholders to their values, for prepared statements. | yes | | `ExecMode` | How the statement was being executed (exec/prepare, etc.) | no | | `NumRows` | Number of rows returned. For mutation statements (INSERT, etc) that do not produce result rows, this field reports the number of rows affected. | no | | `SQLSTATE` | The SQLSTATE code for the error, if an error was encountered. Empty/omitted if no error. | no | | `ErrorText` | The text of the error if any. | partially | | `Age` | Age of the query in milliseconds. | no | | `NumRetries` | Number of retries, when the txn was reretried automatically by the server. | no | | `FullTableScan` | Whether the query contains a full table scan. | no | | `FullIndexScan` | Whether the query contains a full secondary index scan of a non-partial index. | no | | `TxnCounter` | The sequence number of the SQL transaction inside its session. | no | | `BulkJobId` | The job id for bulk job (IMPORT/BACKUP/RESTORE). | no | | `StmtPosInTxn` | The statement's index in the transaction, starting at 1. | no | An event of type `txnrowsread_limit` is recorded when a transaction tries to read more rows than cluster setting `sql.defaults.transactionrowsread_log`. There will only be a single record for a single transaction (unless it is retried) even if there are more statement within the transaction that haven't been executed yet. | Field | Description | Sensitive | |--|--|--| | `Timestamp` | The timestamp of the event. Expressed as nanoseconds since the Unix epoch. | no | | `EventType` | The type of the event. | no | | `Statement` | A normalized copy of the SQL statement that triggered the event. The statement string contains a mix of sensitive and non-sensitive details (it is redactable). | partially | | `Tag` | The statement tag. This is separate from the statement string, since the statement string can contain sensitive information. The tag is guaranteed not to. | no | | `User` | The user account that triggered the event. The special usernames `root` and `node` are not considered

| depends | | `DescriptorID` | The primary object descriptor affected by the operation. Set to zero for operations that don't affect descriptors. | no | | `ApplicationName` | The application name for the session where the event was emitted. This is included in the event to ease filtering of logging output by application. | no | | `PlaceholderValues` | The mapping of SQL placeholders to their values, for prepared statements. | yes | | `TxnID` | TxnID is the ID of the transaction that hit the row count limit. | no | | `SessionID` | SessionID is the ID of the session that initiated the transaction. | no | | `NumRows` | NumRows is the number of rows written/read (depending on the event type) by the transaction that reached the corresponding guardrail. | no | An event of type `txnrowswritten_limit` is recorded when a transaction tries to write more rows than cluster setting `sql.defaults.transactionrowswritten_log`. There will only be a single record for a single transaction (unless it is retried) even if there are more mutation statements within the transaction that haven't been executed yet. | Field | Description | Sensitive | |--|--|--| | `Timestamp` | The timestamp of the event. Expressed as nanoseconds since the Unix epoch. | no | | `EventType` | The type of the event. | no | | `Statement` | A normalized copy of the SQL statement that triggered the event. The statement string contains a mix of sensitive and non-sensitive details (it is redactable). | partially | | `Tag` | The statement tag. This is separate from the statement string, since the statement string can contain sensitive information. The tag is guaranteed not to. | no | | `User` | The user account that triggered the event. The special usernames `root` and `node` are not considered sensitive. | depends | | `DescriptorID` | The primary object descriptor affected by the operation. Set to zero for operations that don't affect descriptors. | no | | `ApplicationName` | The application name for the session where the event was emitted. This is included in the event to ease filtering of logging output by application. | no | | `PlaceholderValues` | The mapping of SQL placeholders to their values, for prepared statements. | yes | | `TxnID` | TxnID is the ID of the transaction that hit the row count limit. | no | | `SessionID` | SessionID is the ID of the session that initiated the transaction. | no | | `NumRows` | NumRows is the number of rows written/read (depending on the event type) by the transaction that reached the corresponding guardrail. | no | Events in this category report slow query execution by internal executors, i.e., when CockroachDB internally issues SQL statements. Note: these events are not written to `system.eventlog`, even when the cluster setting `system.eventlog.enabled` is set. They are only emitted via external logging. Events in this category are logged to the `SQLINTERNALPERF` channel. An event of type `largerowinternal` is recorded when an internal query tries to write a row larger than cluster settings `sql.guardrails.maxrowsize_log` or `sql.guardrails.maxrowsize_err` to the database. | Field | Description | Sensitive | |--|--|--| | `Timestamp` | The timestamp of the event. Expressed as nanoseconds since the Unix epoch. | no | | `EventType` | The type of the event. | no | | `RowSize` | | no | | `TableID` | | no | | `FamilyID` | | no | | `PrimaryKey` | | yes | An event of type `slowqueryinternal` is recorded when a query triggers the "slow query" condition, and the cluster setting

is set. See the documentation for the event type `slow_query` for details about the "slow query" condition. | Field | Description | Sensitive | |--|--|--| | `Timestamp` | The timestamp of the event. Expressed as nanoseconds since the Unix epoch. | no | | `EventType` | The type of the event. | no | | `Statement` | A normalized copy of the SQL statement that triggered the event. The statement string contains a mix of sensitive and non-sensitive details (it is redactable). | partially | | `Tag` | The statement tag. This is separate from the statement string, since the statement string can contain sensitive information. The tag is guaranteed not to. | no | | `User` | The user account that triggered the event. The special usernames `root` and `node` are not considered sensitive. | depends | | `DescriptorID` | The primary object descriptor affected by the operation. Set to zero for operations that don't affect descriptors. | no | | `ApplicationName` | The application name for the session where the event was emitted. This is included in the event to ease filtering of logging output by application. | no | | `PlaceholderValues` | The mapping of SQL placeholders to their values, for prepared statements. | yes | | `ExecMode` | How the statement was being executed (exec/prepare, etc.) | no | | `NumRows` | Number of rows returned. For mutation statements (INSERT, etc) that do not produce result rows, this field reports the number of rows affected. | no | | `SQLSTATE` | The SQLSTATE code for the error, if an error was encountered. Empty/omitted if no error. | no | | `ErrorText` | The text of the error if any. | partially | | `Age` | Age of the query in milliseconds. | no | | `NumRetries` | Number of retries, when the txn was reretried automatically by the server. | no | | `FullTableScan` | Whether the query contains a full table scan. | no | | `FullIndexScan` | Whether the query contains a full secondary index scan of a non-partial index. | no | | `TxnCounter` | The sequence number of the SQL transaction inside its session. | no | | `BulkJobId` | The job id for bulk job (IMPORT/BACKUP/RESTORE). | no | | `StmtPosInTxn` | The statement's index in the transaction, starting at 1. | no | An event of type `txnrowsreadlimitinternal` is recorded when an internal transaction tries to read more rows than cluster setting `sql.defaults.transactionrowsread_log` or `sql.defaults.transactionrowsread_err`. There will only be a single record for a single transaction (unless it is retried) even if there are more mutation statements within the transaction that haven't been executed yet. | Field | Description | Sensitive | |--|--|--| | `Timestamp` | The timestamp of the event. Expressed as nanoseconds since the Unix epoch. | no | | `EventType` | The type of the event. | no | | `Statement` | A normalized copy of the SQL statement that triggered the event. The statement string contains a mix of sensitive and non-sensitive details (it is redactable). | partially | | `Tag` | The statement tag. This is separate from the statement string, since the statement string can contain sensitive information. The tag is guaranteed not to. | no | | `User` | The user account that triggered the event. The special usernames `root` and `node` are not considered sensitive. | depends | | `DescriptorID` | The primary object descriptor affected by the operation. Set to zero for operations that don't affect

| no | | `ApplicationName` | The application name for the session where the event was emitted. This is included in the event to ease filtering of logging output by application. | no | | `PlaceholderValues` | The mapping of SQL placeholders to their values, for prepared statements. | yes | | `TxnID` | TxnID is the ID of the transaction that hit the row count limit. | no | | `SessionID` | SessionID is the ID of the session that initiated the transaction. | no | | `NumRows` | NumRows is the number of rows written/read (depending on the event type) by the transaction that reached the corresponding guardrail. | no | An event of type `txnrowswrittenlimitinternal` is recorded when an internal transaction tries to write more rows than cluster setting `sql.defaults.transactionrowswritten_log` or `sql.defaults.transactionrowswritten_err`. There will only be a single record for a single transaction (unless it is retried) even if there are more mutation statements within the transaction that haven't been executed yet. | Field | Description | Sensitive | |--|--|--| | `Timestamp` | The timestamp of the event. Expressed as nanoseconds since the Unix epoch. | no | | `EventType` | The type of the event. | no | | `Statement` | A normalized copy of the SQL statement that triggered the event. The statement string contains a mix of sensitive and non-sensitive details (it is redactable). | partially | | `Tag` | The statement tag. This is separate from the statement string, since the statement string can contain sensitive information. The tag is guaranteed not to. | no | | `User` | The user account that triggered the event. The special usernames `root` and `node` are not considered sensitive. | depends | | `DescriptorID` | The primary object descriptor affected by the operation. Set to zero for operations that don't affect descriptors. | no | | `ApplicationName` | The application name for the session where the event was emitted. This is included in the event to ease filtering of logging output by application. | no | | `PlaceholderValues` | The mapping of SQL placeholders to their values, for prepared statements. | yes | | `TxnID` | TxnID is the ID of the transaction that hit the row count limit. | no | | `SessionID` | SessionID is the ID of the session that initiated the transaction. | no | | `NumRows` | NumRows is the number of rows written/read (depending on the event type) by the transaction that reached the corresponding guardrail. | no | Events in this category pertain to SQL statements that modify the properties of users and roles. They are relative to a particular SQL tenant. In a multi-tenant setup, copies of DDL-related events are preserved in each tenant's own `system.eventlog` table. Events in this category are logged to the `USER_ADMIN` channel. An event of type `alter_role` is recorded when a role is altered. | Field | Description | Sensitive | |--|--|--| | `RoleName` | The name of the affected user/role. | yes | | `Options` | The options set on the user/role. | no | | `SetInfo` | Information corresponding to an ALTER ROLE SET statement. | no | | Field | Description | Sensitive | |--|--|--| | `Timestamp` | The timestamp of the event. Expressed as nanoseconds since the Unix epoch. | no | | `EventType` | The type of the event. | no | | `Statement` | A normalized copy of the SQL statement that triggered the event. The statement string contains a mix of sensitive and non-sensitive details (it is

| partially | | `Tag` | The statement tag. This is separate from the statement string, since the statement string can contain sensitive information. The tag is guaranteed not to. | no | | `User` | The user account that triggered the event. The special usernames `root` and `node` are not considered sensitive. | depends | | `DescriptorID` | The primary object descriptor affected by the operation. Set to zero for operations that don't affect descriptors. | no | | `ApplicationName` | The application name for the session where the event was emitted. This is included in the event to ease filtering of logging output by application. | no | | `PlaceholderValues` | The mapping of SQL placeholders to their values, for prepared statements. | yes | An event of type `create_role` is recorded when a role is created. | Field | Description | Sensitive | |--|--|--| | `RoleName` | The name of the new user/role. | yes | | Field | Description | Sensitive | |--|--|--| | `Timestamp` | The timestamp of the event. Expressed as nanoseconds since the Unix epoch. | no | | `EventType` | The type of the event. | no | | `Statement` | A normalized copy of the SQL statement that triggered the event. The statement string contains a mix of sensitive and non-sensitive details (it is redactable). | partially | | `Tag` | The statement tag. This is separate from the statement string, since the statement string can contain sensitive information. The tag is guaranteed not to. | no | | `User` | The user account that triggered the event. The special usernames `root` and `node` are not considered sensitive. | depends | | `DescriptorID` | The primary object descriptor affected by the operation. Set to zero for operations that don't affect descriptors. | no | | `ApplicationName` | The application name for the session where the event was emitted. This is included in the event to ease filtering of logging output by application. | no | | `PlaceholderValues` | The mapping of SQL placeholders to their values, for prepared statements. | yes | An event of type `drop_role` is recorded when a role is dropped. | Field | Description | Sensitive | |--|--|--| | `RoleName` | The name of the affected user/role. | yes | | Field | Description | Sensitive | |--|--|--| | `Timestamp` | The timestamp of the event. Expressed as nanoseconds since the Unix epoch. | no | | `EventType` | The type of the event. | no | | `Statement` | A normalized copy of the SQL statement that triggered the event. The statement string contains a mix of sensitive and non-sensitive details (it is redactable). | partially | | `Tag` | The statement tag. This is separate from the statement string, since the statement string can contain sensitive information. The tag is guaranteed not to. | no | | `User` | The user account that triggered the event. The special usernames `root` and `node` are not considered sensitive. | depends | | `DescriptorID` | The primary object descriptor affected by the operation. Set to zero for operations that don't affect descriptors. | no | | `ApplicationName` | The application name for the session where the event was emitted. This is included in the event to ease filtering of logging output by application. | no | | `PlaceholderValues` | The mapping of SQL placeholders to their values, for prepared statements. | yes | An event of type `grant_role` is recorded when a role is

| Field | Description | Sensitive | |--|--|--| | `GranteeRoles` | The roles being granted to. | yes | | `Members` | The roles being granted. | yes | | Field | Description | Sensitive | |--|--|--| | `Timestamp` | The timestamp of the event. Expressed as nanoseconds since the Unix epoch. | no | | `EventType` | The type of the event. | no | | `Statement` | A normalized copy of the SQL statement that triggered the event. The statement string contains a mix of sensitive and non-sensitive details (it is redactable). | partially | | `Tag` | The statement tag. This is separate from the statement string, since the statement string can contain sensitive information. The tag is guaranteed not to. | no | | `User` | The user account that triggered the event. The special usernames `root` and `node` are not considered sensitive. | depends | | `DescriptorID` | The primary object descriptor affected by the operation. Set to zero for operations that don't affect descriptors. | no | | `ApplicationName` | The application name for the session where the event was emitted. This is included in the event to ease filtering of logging output by application. | no | | `PlaceholderValues` | The mapping of SQL placeholders to their values, for prepared statements. | yes | An event of type `passwordhashconverted` is recorded when the password credentials are automatically converted server-side. | Field | Description | Sensitive | |--|--|--| | `RoleName` | The name of the user/role whose credentials have been converted. | yes | | `OldMethod` | The previous hash method. | no | | `NewMethod` | The new hash method. | no | | Field | Description | Sensitive | |--|--|--| | `Timestamp` | The timestamp of the event. Expressed as nanoseconds since the Unix epoch. | no | | `EventType` | The type of the event. | no | Events in this category are logged to the `TELEMETRY` channel. An event of type `level_stats` contains per-level statistics for an LSM. | Field | Description | Sensitive | |--|--|--| | `Level` | level is the level ID in a LSM (e.g. level(L0) == 0, etc.) | no | | `NumFiles` | num_files is the number of files in the level (gauge). | no | | `SizeBytes` | size_bytes is the size of the level, in bytes (gauge). | no | | `Score` | score is the compaction score of the level (gauge). | no | | `BytesIn` | bytes_in is the number of bytes written to this level (counter). | no | | `BytesIngested` | bytes_ingested is the number of bytes ingested into this level (counter). | no | | `BytesMoved` | bytes_moved is the number of bytes moved into this level via a move-compaction (counter). | no | | `BytesRead` | bytes_read is the number of bytes read from this level, during compactions (counter). | no | | `BytesCompacted` | bytes_compacted is the number of bytes written to this level during compactions (counter). | no | | `BytesFlushed` | bytes flushed is the number of bytes flushed to this level. This value is always zero for levels other than L0 (counter). | no | | `TablesCompacted` | tables_compacted is the count of tables compacted into this level (counter). | no | | `TablesFlushed` | tables_flushed is the count of tables flushed into this level (counter). | no | | `TablesIngested` | tables_ingested is the count of tables ingested into this level (counter). | no | | `TablesMoved` | tables_moved is the count of tables moved into this level via move-compactions

| no | | `NumSublevels` | num_sublevel is the count of sublevels for the level. This value is always zero for levels other than L0 (gauge). | no | An event of type `store_stats` contains per store stats. Note that because stats are scoped to the lifetime of the process, counters (and certain gauges) will be reset across node restarts. | Field | Description | Sensitive | |--|--|--| | `NodeId` | node_id is the ID of the node. | no | | `StoreId` | store_id is the ID of the store. | no | | `Levels` | levels is a nested message containing per-level statistics. | yes | | `CacheSize` | cache_size is the size of the cache for the store, in bytes (gauge). | no | | `CacheCount` | cache_count is the number of items in the cache (gauge). | no | | `CacheHits` | cache_hits is the number of cache hits (counter). | no | | `CacheMisses` | cache_misses is the number of cache misses (counter). | no | | `CompactionCountDefault` | compactioncountdefault is the count of default compactions (counter). | no | | `CompactionCountDeleteOnly` | compactioncountdelete_only is the count of delete-only compactions (counter). | no | | `CompactionCountElisionOnly` | compactioncountelision_only is the count of elision-only compactions (counter). | no | | `CompactionCountMove` | compactioncountmove is the count of move-compactions (counter). | no | | `CompactionCountRead` | compactioncountread is the count of read-compactions (counter). | no | | `CompactionCountRewrite` | compactioncountrewrite is the count of rewrite-compactions (counter). | no | | `CompactionNumInProgress` | compactionsnumin_progress is the number of compactions in progress (gauge). | no | | `CompactionMarkedFiles` | compactionmarkedfiles is the count of files marked for compaction (gauge). | no | | `FlushCount` | flush_count is the number of flushes (counter). | no | | `FlushIngestCount` | | no | | `FlushIngestTableCount` | | no | | `FlushIngestTableBytes` | | no | | `IngestCount` | ingest_count is the number of successful ingest operations (counter). | no | | `MemtableSize` | memtable_size is the total size allocated to all memtables and (large) batches, in bytes (gauge). | no | | `MemtableCount` | memtable_count is the count of memtables (gauge). | no | | `MemtableZombieCount` | memtablezombiecount is the count of memtables no longer referenced by the current DB state, but still in use by an iterator (gauge). | no | | `MemtableZombieSize` | memtablezombiesize is the size, in bytes, of all zombie memtables (gauge). | no | | `WalLiveCount` | wallivecount is the count of live WAL files (gauge). | no | | `WalLiveSize` | wallivesize is the size, in bytes, of live data in WAL files. With WAL recycling, this value is less than the actual on-disk size of the WAL files (gauge). | no | | `WalObsoleteCount` | walobsoletecount is the count of obsolete WAL files (gauge). | no | | `WalObsoleteSize` | walobsoletesize is the size of obsolete WAL files, in bytes (gauge). | no | | `WalPhysicalSize` | walphysicalsize is the size, in bytes, of the WAL files on disk (gauge). | no | | `WalBytesIn` | walbytesin is the number of logical bytes written to the WAL (counter). | no | | `WalBytesWritten` | walbyteswritten is the number of bytes written to the WAL (counter). | no | | `TableObsoleteCount` | tableobsoletecount is the number of tables which are no longer referenced by the current DB state or any open iterators (gauge). | no | | `TableObsoleteSize` | tableobsoletesize is the size, in bytes, of obsolete tables

| no | | `TableZombieCount` | tablezombiecount is the number of tables no longer referenced by the current DB state, but are still in use by an open iterator (gauge). | no | | `TableZombieSize` | tablezombiesize is the size, in bytes, of zombie tables (gauge). | no | | `RangeKeySetsCount` | rangekeysets_count is the approximate count of internal range key sets in the store. | no | | Field | Description | Sensitive | |--|--|--| | `Timestamp` | The timestamp of the event. Expressed as nanoseconds since the Unix epoch. | no | | `EventType` | The type of the event. | no | Events in this category are logged to the `TELEMETRY` channel. An event of type `capturedindexusage_stats` | Field | Description | Sensitive | |--|--|--| | `TotalReadCount` | TotalReadCount is the number of times the index has been read. | no | | `LastRead` | LastRead is the timestamp at which the index was last read. | no | | `TableID` | TableID is the ID of the table on which the index was created. This is same as descpb.TableID and is unique within the cluster. | no | | `IndexID` | IndexID is the ID of the index within the scope of the given table. | no | | `DatabaseName` | DatabaseName is the name of the database in which the index was created. | no | | `TableName` | TableName is the name of the table on which the index was created. | no | | `IndexName` | IndexName is the name of the index within the scope of the given table. | no | | `IndexType` | IndexType is the type of the index. Index types include "primary" and "secondary". | no | | `IsUnique` | IsUnique indicates if the index has a UNIQUE constraint. | no | | `IsInverted` | IsInverted indicates if the index is an inverted index. | no | | `CreatedAt` | CreatedAt is the timestamp at which the index was created. | no | | `SchemaName` | SchemaName is the name of the schema in which the index was created. | no | | Field | Description | Sensitive | |--|--|--| | `Timestamp` | The timestamp of the event. Expressed as nanoseconds since the Unix epoch. | no | | `EventType` | The type of the event. | no | An event of type `changefeedemittedbytes` is an event representing the bytes emitted by a changefeed over an interval. | Field | Description | Sensitive | |--|--|--| | `JobId` | The job id for enterprise changefeeds. | no | | `EmittedBytes` | The number of bytes emitted. | no | | `EmittedMessages` | The number of messages emitted. | no | | `LoggingInterval` | The time period in nanoseconds between emitting telemetry events of this type (per-aggregator). | no | | `Closing` | Flag to indicate that the changefeed is closing. | no | | Field | Description | Sensitive | |--|--|--| | `Description` | The description of that would show up in the job's description field, redacted | yes | | `SinkType` | The type of sink being emitted to (ex: kafka, nodelocal, webhook-https). | no | | `NumTables` | The number of tables listed in the query that the changefeed is to run on. | no | | `Resolved` | The behavior of emitted resolved spans (ex: yes, no, 10s) | no | | `InitialScan` | The desired behavior of initial scans (ex: yes, no, only) | no | | `Format` | The data format being emitted (ex: JSON,

| no | An event of type `changefeed_failed` is an event for any Changefeed failure since the plan hook was triggered. | Field | Description | Sensitive | |--|--|--| | `FailureType` | The reason / environment with which the changefeed failed (ex: connectionclosed, changefeedbehind) | no | | Field | Description | Sensitive | |--|--|--| | `Description` | The description of that would show up in the job's description field, redacted | yes | | `SinkType` | The type of sink being emitted to (ex: kafka, nodelocal, webhook-https). | no | | `NumTables` | The number of tables listed in the query that the changefeed is to run on. | no | | `Resolved` | The behavior of emitted resolved spans (ex: yes, no, 10s) | no | | `InitialScan` | The desired behavior of initial scans (ex: yes, no, only) | no | | `Format` | The data format being emitted (ex: JSON, Avro). | no | An event of type `create_changefeed` is an event for any CREATE CHANGEFEED query that successfully starts running. Failed CREATE statements will show up as ChangefeedFailed events. | Field | Description | Sensitive | |--|--|--| | `Transformation` | | no | | Field | Description | Sensitive | |--|--|--| | `Description` | The description of that would show up in the job's description field, redacted | yes | | `SinkType` | The type of sink being emitted to (ex: kafka, nodelocal, webhook-https). | no | | `NumTables` | The number of tables listed in the query that the changefeed is to run on. | no | | `Resolved` | The behavior of emitted resolved spans (ex: yes, no, 10s) | no | | `InitialScan` | The desired behavior of initial scans (ex: yes, no, only) | no | | `Format` | The data format being emitted (ex: JSON, Avro). | no | An event of type `hotrangesstats` | Field | Description | Sensitive | |--|--|--| | `RangeID` | | no | | `Qps` | | no | | `DatabaseName` | DatabaseName is the name of the database in which the index was created. | yes | | `TableName` | TableName is the name of the table on which the index was created. | yes | | `IndexName` | IndexName is the name of the index within the scope of the given table. | yes | | `SchemaName` | SchemaName is the name of the schema in which the index was created. | yes | | `LeaseholderNodeID` | LeaseholderNodeID indicates the Node ID that is the current leaseholder for the given range. | no | | `WritesPerSecond` | Writes per second is the recent number of keys written per second on this range. | no | | `ReadsPerSecond` | Reads per second is the recent number of keys read per second on this range. | no | | `WriteBytesPerSecond` | Write bytes per second is the recent number of bytes written per second on this range. | no | | `ReadBytesPerSecond` | Read bytes per second is the recent number of bytes read per second on this range. | no | | `CPUTimePerSecond` | CPU time per second is the recent cpu usage in nanoseconds of this range. | no | | Field | Description | Sensitive | |--|--|--| | `Timestamp` | The timestamp of the event. Expressed as nanoseconds since the Unix epoch. | no | | `EventType` | The type of the event. | no | Internal storage iteration statistics for a single execution. | Field | Description | Sensitive | |--|--|--| | `StepCount` | StepCount collects the number of times the iterator moved forward or backward over the DB's underlying storage

For details, see pkg/storage/engine.go and pkg/sql/opt/exec/factory.go. | no | | `StepCountInternal` | StepCountInternal collects the number of times the iterator moved forward or backward over LSM internal keys. For details, see pkg/storage/engine.go and pkg/sql/opt/exec/factory.go. | no | | `SeekCount` | SeekCount collects the number of times the iterator moved to a specific key/value pair in the DB's underlying storage keyspace. For details, see pkg/storage/engine.go and pkg/sql/opt/exec/factory.go. | no | | `SeekCountInternal` | SeekCountInternal collects the number of times the iterator moved to a specific LSM internal key. For details, see pkg/storage/engine.go and pkg/sql/opt/exec/factory.go. | no | | `BlockBytes` | BlockBytes collects the bytes in the loaded SSTable data blocks. For details, see pebble.InternalIteratorStats. | no | | `BlockBytesInCache` | BlockBytesInCache collects the subset of BlockBytes in the block cache. For details, see pebble.InternalIteratorStats. | no | | `KeyBytes` | KeyBytes collects the bytes in keys that were iterated over. For details, see pebble.InternalIteratorStats. | no | | `ValueBytes` | ValueBytes collects the bytes in values that were iterated over. For details, see pebble.InternalIteratorStats. | no | | `PointCount` | PointCount collects the count of point keys iterated over. For details, see pebble.InternalIteratorStats. | no | | `PointsCoveredByRangeTombstones` | PointsCoveredByRangeTombstones collects the count of point keys that were iterated over that were covered by range tombstones. For details, see pebble.InternalIteratorStats and https://github.com/cockroachdb/cockroach/blob/master/docs/tech-notes/mvcc-range-tombstones.md. | no | | `RangeKeyCount` | RangeKeyCount collects the count of range keys encountered during iteration. For details, see pebble.RangeKeyIteratorStats and https://github.com/cockroachdb/cockroach/blob/master/docs/tech-notes/mvcc-range-tombstones.md. | no | | `RangeKeyContainedPoints` | RangeKeyContainedPoints collects the count of point keys encountered within the bounds of a range key. For details, see pebble.RangeKeyIteratorStats and https://github.com/cockroachdb/cockroach/blob/master/docs/tech-notes/mvcc-range-tombstones.md. | no | | `RangeKeySkippedPoints` | RangeKeySkippedPoints collects the count of the subset of ContainedPoints point keys that were skipped during iteration due to range-key masking. For details, see pkg/storage/engine.go, pebble.RangeKeyIteratorStats, and https://github.com/cockroachdb/cockroach/blob/master/docs/tech-notes/mvcc-range-tombstones.md. | no | An event of type `recovery_event` is an event that is logged on every invocation of BACKUP, RESTORE, and on every BACKUP schedule creation, with the appropriate subset of fields populated depending on the type of event. This event is is also logged whenever a BACKUP and RESTORE job completes or fails. | Field | Description | Sensitive | |--|--|--| | `RecoveryType` | RecoveryType is the type of recovery described by this event, which is one of - backup - scheduledbackup - createschedule - restore<br><br>It can also be a job event corresponding to the recovery, which is one of - backupjob - scheduledbackupjob - restorejob | no | | `TargetScope` | TargetScope is the largest scope of the targets that the user is backing up or restoring based on the following order: table < schema < database < full cluster. | no | | `IsMultiregionTarget` | IsMultiregionTarget is true if any of the targets contain objects with multi-region primitives. | no | | `TargetCount` | TargetCount is the number of targets the in the BACKUP/RESTORE. | no | | `DestinationSubdirType` | DestinationSubdirType is - latest: if using the latest subdir - standard: if using a date-based subdir - custom: if using a custom subdir that's not date-based | no | | `DestinationStorageTypes` | DestinationStorageTypes are the types of storage that the user is backing up to or restoring from. | no | | `DestinationAuthTypes` | DestinationAuthTypes are the types of authentication methods that the user is using to access the destination storage. | no | | `IsLocalityAware` | IsLocalityAware indicates if the BACKUP or RESTORE is locality

| no | | `AsOfInterval` | AsOfInterval is the time interval in nanoseconds between the statement timestamp and the timestamp resolved by the AS OF SYSTEM TIME expression. The interval is expressed in nanoseconds. | no | | `WithRevisionHistory` | WithRevisionHistory is true if the BACKUP includes revision history. | no | | `HasEncryptionPassphrase` | HasEncryptionPassphrase is true if the user provided an encryption passphrase to encrypt/decrypt their backup. | no | | `KMSType` | KMSType is the type of KMS the user is using to encrypt/decrypt their backup. | no | | `KMSCount` | KMSCount is the number of KMS the user is using. | no | | `Options` | Options contain all the names of the options specified by the user in the BACKUP or RESTORE statement. For options that are accompanied by a value, only those with non-empty values will be present.<br><br>It's important to note that there are no option values anywhere in the event payload. Future changes to telemetry should refrain from adding values to the payload unless they are properly redacted. | no | | `DebugPauseOn` | DebugPauseOn is the type of event that the restore should pause on for debugging purposes. Currently only "error" is supported. | no | | `JobID` | JobID is the ID of the BACKUP/RESTORE job. | no | | `ResultStatus` | ResultStatus indicates whether the job succeeded or failed. | no | | `ErrorText` | ErrorText is the text of the error that caused the job to fail. | partially | | `RecurringCron` | RecurringCron is the crontab for the incremental backup. | no | | `FullBackupCron` | FullBackupCron is the crontab for the full backup. | no | | `CustomFirstRunTime` | CustomFirstRunTime is the timestamp for the user configured first run time. Expressed as nanoseconds since the Unix epoch. | no | | `OnExecutionFailure` | OnExecutionFailure describes the desired behavior if the schedule fails to execute. | no | | `OnPreviousRunning` | OnPreviousRunning describes the desired behavior if the previously scheduled BACKUP is still running. | no | | `IgnoreExistingBackup` | IgnoreExistingBackup is true iff the BACKUP schedule should still be created even if a backup is already present in its destination. | no | | `ApplicationName` | The application name for the session where recovery event was created. | no | | `NumRows` | NumRows is the number of rows successfully imported, backed up or restored. | no | | Field | Description | Sensitive | |--|--|--| | `Timestamp` | The timestamp of the event. Expressed as nanoseconds since the Unix epoch. | no | | `EventType` | The type of the event. | no | An event of type `sampledexecstats` contains execution statistics that apply to both statements and transactions. These stats as a whole are collected using a sampling approach. These exec stats are meant to contain the same fields as ExecStats in apps_stats.proto but are for a single execution rather than aggregated executions. Fields in this struct should be updated in sync with apps_stats.proto. | Field | Description | Sensitive | |--|--|--| | `NetworkBytes` | NetworkBytes collects the number of bytes sent over the network. | no | | `MaxMemUsage` | MaxMemUsage collects the maximum memory usage that occurred on a node. | no | | `ContentionTime` | ContentionTime collects the time in seconds statements in the transaction spent contending. | no | | `NetworkMessages` | NetworkMessages collects the number of messages that were sent over the network. | no | | `MaxDiskUsage` | MaxDiskUsage collects the maximum temporary disk usage that occurred. This is set in cases where a query had to spill to disk,

when performing a large sort where not all of the tuples fit in memory. | no | | `CPUSQLNanos` | CPUSQLNanos collects the CPU time spent executing SQL operations in nanoseconds. Currently, it is only collected for statements without mutations that have a vectorized plan. | no | | `MVCCIteratorStats` | Internal storage iteration statistics. | yes | An event of type `sampled_query` is the SQL query event logged to the telemetry channel. It contains common SQL event/execution details. | Field | Description | Sensitive | |--|--|--| | `SkippedQueries` | skipped_queries indicate how many SQL statements were not considered for sampling prior to this one. If the field is omitted, or its value is zero, this indicates that no statement was omitted since the last event. | no | | `CostEstimate` | Cost of the query as estimated by the optimizer. | no | | `Distribution` | The distribution of the DistSQL query plan (local, full, or partial). | no | | `PlanGist` | The query's plan gist bytes as a base64 encoded string. | no | | `SessionID` | SessionID is the ID of the session that initiated the query. | no | | `Database` | Name of the database that initiated the query. | no | | `StatementID` | Statement ID of the query. | no | | `TransactionID` | Transaction ID of the query. | no | | `StatementFingerprintID` | Statement fingerprint ID of the query. | no | | `MaxFullScanRowsEstimate` | Maximum number of rows scanned by a full scan, as estimated by the optimizer. | no | | `TotalScanRowsEstimate` | Total number of rows read by all scans in the query, as estimated by the optimizer. | no | | `OutputRowsEstimate` | The number of rows output by the query, as estimated by the optimizer. | no | | `StatsAvailable` | Whether table statistics were available to the optimizer when planning the query. | no | | `NanosSinceStatsCollected` | The maximum number of nanoseconds that have passed since stats were collected on any table scanned by this query. | no | | `BytesRead` | The number of bytes read from disk. | no | | `RowsRead` | The number of rows read from disk. | no | | `RowsWritten` | The number of rows written. | no | | `InnerJoinCount` | The number of inner joins in the query plan. | no | | `LeftOuterJoinCount` | The number of left (or right) outer joins in the query plan. | no | | `FullOuterJoinCount` | The number of full outer joins in the query plan. | no | | `SemiJoinCount` | The number of semi joins in the query plan. | no | | `AntiJoinCount` | The number of anti joins in the query plan. | no | | `IntersectAllJoinCount` | The number of intersect all joins in the query plan. | no | | `ExceptAllJoinCount` | The number of except all joins in the query plan. | no | | `HashJoinCount` | The number of hash joins in the query plan. | no | | `CrossJoinCount` | The number of cross joins in the query plan. | no | | `IndexJoinCount` | The number of index joins in the query plan. | no | | `LookupJoinCount` | The number of lookup joins in the query plan. | no | | `MergeJoinCount` | The number of merge joins in the query plan. | no | | `InvertedJoinCount` | The number of inverted joins in the query plan. | no | | `ApplyJoinCount` | The number of apply joins in the query

| no | | `ZigZagJoinCount` | The number of zig zag joins in the query plan. | no | | `ContentionNanos` | The duration of time in nanoseconds that the query experienced contention. | no | | `Regions` | The regions of the nodes where SQL processors ran. | no | | `NetworkBytesSent` | The number of network bytes sent by nodes for this query. | no | | `MaxMemUsage` | The maximum amount of memory usage by nodes for this query. | no | | `MaxDiskUsage` | The maximum amount of disk usage by nodes for this query. | no | | `KVBytesRead` | The number of bytes read at the KV layer for this query. | no | | `KVPairsRead` | The number of key-value pairs read at the KV layer for this query. | no | | `KVRowsRead` | The number of rows read at the KV layer for this query. | no | | `NetworkMessages` | The number of network messages sent by nodes for this query. | no | | `IndexRecommendations` | Generated index recommendations for this query. | no | | `ScanCount` | The number of scans in the query plan. | no | | `ScanWithStatsCount` | The number of scans using statistics (including forecasted statistics) in the query plan. | no | | `ScanWithStatsForecastCount` | The number of scans using forecasted statistics in the query plan. | no | | `TotalScanRowsWithoutForecastsEstimate` | Total number of rows read by all scans in the query, as estimated by the optimizer without using forecasts. | no | | `NanosSinceStatsForecasted` | The greatest quantity of nanoseconds that have passed since the forecast time (or until the forecast time, if it is in the future, in which case it will be negative) for any table with forecasted stats scanned by this query. | no | | `Indexes` | The list of indexes used by this query. | no | | `CpuTimeNanos` | Collects the cumulative CPU time spent executing SQL operations in nanoseconds. Currently, it is only collected for statements without mutations that have a vectorized plan. | no | | `KvGrpcCalls` | The number of grpc calls done to get data form KV nodes | no | | `KvTimeNanos` | Cumulated time spent waiting for a KV request. This includes disk IO time and potentially network time (if any of the keys are not local). | no | | `ServiceLatencyNanos` | The time to service the query, from start of parse to end of execute. | no | | `OverheadLatencyNanos` | The difference between service latency and the sum of parse latency + plan latency + run latency . | no | | `RunLatencyNanos` | The time to run the query and fetch or compute the result rows. | no | | `PlanLatencyNanos` | The time to transform the AST into a logical query plan. | no | | `IdleLatencyNanos` | The time between statement executions in a transaction | no | | `ParseLatencyNanos` | The time to transform the SQL string into an abstract syntax tree (AST). | no | | `MvccStepCount` | StepCount collects the number of times the iterator moved forward or backward over the DB's underlying storage keyspace. For details, see pkg/storage/engine.go and pkg/sql/opt/exec/factory.go. | no | | `MvccStepCountInternal` | StepCountInternal collects the number of times the iterator moved forward or backward over LSM internal keys. For details, see pkg/storage/engine.go and pkg/sql/opt/exec/factory.go. | no | | `MvccSeekCount` | SeekCount collects the number of times the iterator moved to a specific key/value pair in the DB's underlying storage keyspace. For details, see

and pkg/sql/opt/exec/factory.go. | no | | `MvccSeekCountInternal` | SeekCountInternal collects the number of times the iterator moved to a specific LSM internal key. For details, see pkg/storage/engine.go and pkg/sql/opt/exec/factory.go. | no | | `MvccBlockBytes` | BlockBytes collects the bytes in the loaded SSTable data blocks. For details, see pebble.InternalIteratorStats. | no | | `MvccBlockBytesInCache` | BlockBytesInCache collects the subset of BlockBytes in the block cache. For details, see pebble.InternalIteratorStats. | no | | `MvccKeyBytes` | KeyBytes collects the bytes in keys that were iterated over. For details, see pebble.InternalIteratorStats. | no | | `MvccValueBytes` | ValueBytes collects the bytes in values that were iterated over. For details, see pebble.InternalIteratorStats. | no | | `MvccPointCount` | PointCount collects the count of point keys iterated over. For details, see pebble.InternalIteratorStats. | no | | `MvccPointsCoveredByRangeTombstones` | PointsCoveredByRangeTombstones collects the count of point keys that were iterated over that were covered by range tombstones. For details, see pebble.InternalIteratorStats and https://github.com/cockroachdb/cockroach/blob/master/docs/tech-notes/mvcc-range-tombstones.md. | no | | `MvccRangeKeyCount` | RangeKeyCount collects the count of range keys encountered during iteration. For details, see pebble.RangeKeyIteratorStats and https://github.com/cockroachdb/cockroach/blob/master/docs/tech-notes/mvcc-range-tombstones.md. | no | | `MvccRangeKeyContainedPoints` | RangeKeyContainedPoints collects the count of point keys encountered within the bounds of a range key. For details, see pebble.RangeKeyIteratorStats and https://github.com/cockroachdb/cockroach/blob/master/docs/tech-notes/mvcc-range-tombstones.md. | no | | `MvccRangeKeySkippedPoints` | RangeKeySkippedPoints collects the count of the subset of ContainedPoints point keys that were skipped during iteration due to range-key masking. For details, see pkg/storage/engine.go, pebble.RangeKeyIteratorStats, and https://github.com/cockroachdb/cockroach/blob/master/docs/tech-notes/mvcc-range-tombstones.md. | no | | `SchemaChangerMode` | SchemaChangerMode is the mode that was used to execute the schema change, if any. | no | | `SQLInstanceIDs` | SQLInstanceIDs is a list of all the SQL instance id used in this statements execution. | no | | Field | Description | Sensitive | |--|--|--| | `Timestamp` | The timestamp of the event. Expressed as nanoseconds since the Unix epoch. | no | | `EventType` | The type of the event. | no | | `Statement` | A normalized copy of the SQL statement that triggered the event. The statement string contains a mix of sensitive and non-sensitive details (it is redactable). | partially | | `Tag` | The statement tag. This is separate from the statement string, since the statement string can contain sensitive information. The tag is guaranteed not to. | no | | `User` | The user account that triggered the event. The special usernames `root` and `node` are not considered sensitive. | depends | | `DescriptorID` | The primary object descriptor affected by the operation. Set to zero for operations that don't affect descriptors. | no | | `ApplicationName` | The application name for the session where the event was emitted. This is included in the event to ease filtering of logging output by application. | no | | `PlaceholderValues` | The mapping of SQL placeholders to their values, for prepared statements. | yes | | `ExecMode` | How the statement was being executed (exec/prepare, etc.) | no | | `NumRows` | Number of rows returned. For mutation statements (INSERT, etc) that do not produce result rows, this field reports the number of rows affected. | no | | `SQLSTATE` | The SQLSTATE code for the error, if an error was encountered. Empty/omitted if no error. | no | | `ErrorText` | The text of the error if any. | partially | | `Age` | Age of the query in milliseconds. | no | | `NumRetries` | Number of retries, when the txn was reretried automatically by the server. | no | | `FullTableScan` | Whether the query contains a full table

| no | | `FullIndexScan` | Whether the query contains a full secondary index scan of a non-partial index. | no | | `TxnCounter` | The sequence number of the SQL transaction inside its session. | no | | `BulkJobId` | The job id for bulk job (IMPORT/BACKUP/RESTORE). | no | | `StmtPosInTxn` | The statement's index in the transaction, starting at 1. | no | An event of type `sampled_transaction` is the event logged to telemetry at the end of transaction execution. | Field | Description | Sensitive | |--|--|--| | `User` | User is the user account that triggered the transaction. The special usernames `root` and `node` are not considered sensitive. | depends | | `ApplicationName` | ApplicationName is the application name for the session where the transaction was executed. This is included in the event to ease filtering of logging output by application. | no | | `TxnCounter` | TxnCounter is the sequence number of the SQL transaction inside its session. | no | | `SessionID` | SessionID is the ID of the session that initiated the transaction. | no | | `TransactionID` | TransactionID is the id of the transaction. | no | | `TransactionFingerprintID` | TransactionFingerprintID is the fingerprint ID of the transaction. This can be used to find the transaction in the console. | no | | `Committed` | Committed indicates if the transaction committed successfully. We want to include this value even if it is false. | no | | `ImplicitTxn` | ImplicitTxn indicates if the transaction was an implicit one. We want to include this value even if it is false. | no | | `StartTimeUnixNanos` | StartTimeUnixNanos is the time the transaction was started. Expressed as unix time in nanoseconds. | no | | `EndTimeUnixNanos` | EndTimeUnixNanos the time the transaction finished (either committed or aborted). Expressed as unix time in nanoseconds. | no | | `ServiceLatNanos` | ServiceLatNanos is the time to service the whole transaction, from start to end of execution. | no | | `SQLSTATE` | SQLSTATE is the SQLSTATE code for the error, if an error was encountered. Empty/omitted if no error. | no | | `ErrorText` | ErrorText is the text of the error if any. | partially | | `NumRetries` | NumRetries is the number of time when the txn was retried automatically by the server. | no | | `LastAutoRetryReason` | LastAutoRetryReason is a string containing the reason for the last automatic retry. | partially | | `StatementFingerprintIDs` | StatementFingerprintIDs is an array of statement fingerprint IDs belonging to this transaction. | yes | | `NumRows` | NumRows is the total number of rows returned across all statements. | no | | `RetryLatNanos` | RetryLatNanos is the amount of time spent retrying the transaction. | no | | `CommitLatNanos` | CommitLatNanos is the amount of time spent committing the transaction after all statement operations. | no | | `IdleLatNanos` | IdleLatNanos is the amount of time spent waiting for the client to send statements while the transaction is open. | no | | `BytesRead` | BytesRead is the number of bytes read from disk. | no | | `RowsRead` | RowsRead is the number of rows read from disk. | no | | `RowsWritten` | RowsWritten is the number of rows written to disk. | no | | `SampledExecStats` | SampledExecStats is a nested field containing execution statistics. This field will be omitted if the stats were not

| yes | | `SkippedTransactions` | SkippedTransactions is the number of transactions that were skipped as part of sampling prior to this one. We only count skipped transactions when telemetry logging is enabled and the sampling mode is set to "transaction". | no | | Field | Description | Sensitive | |--|--|--| | `Timestamp` | The timestamp of the event. Expressed as nanoseconds since the Unix epoch. | no | | `EventType` | The type of the event. | no | An event of type `schema_descriptor` is an event for schema telemetry, whose purpose is to take periodic snapshots of the cluster's SQL schema and publish them in the telemetry log channel. For all intents and purposes, the data in such a snapshot can be thought of the outer join of certain system tables: namespace, descriptor, and at some point perhaps zones, etc. Snapshots are too large to conveniently be published as a single log event, so instead they're broken down into SchemaDescriptor events which contain the data in one record of this outer join projection. These events are prefixed by a header (a SchemaSnapshotMetadata event). | Field | Description | Sensitive | |--|--|--| | `SnapshotID` | SnapshotID is the unique identifier of the snapshot that this event is part of. | no | | `ParentDatabaseID` | ParentDatabaseID matches the same key column in system.namespace. | no | | `ParentSchemaID` | ParentSchemaID matches the same key column in system.namespace. | no | | `Name` | Name matches the same key column in system.namespace. | no | | `DescID` | DescID matches the 'id' column in system.namespace and system.descriptor. | no | | `Desc` | Desc matches the 'descriptor' column in system.descriptor. Some contents of the descriptor may be redacted to prevent leaking PII. | no | | Field | Description | Sensitive | |--|--|--| | `Timestamp` | The timestamp of the event. Expressed as nanoseconds since the Unix epoch. | no | | `EventType` | The type of the event. | no | An event of type `schemasnapshotmetadata` is an event describing a schema snapshot, which is a set of SchemaDescriptor messages sharing the same SnapshotID. | Field | Description | Sensitive | |--|--|--| | `SnapshotID` | SnapshotID is the unique identifier of this snapshot. | no | | `NumRecords` | NumRecords is how many SchemaDescriptor events are in the snapshot. | no | | `AsOfTimestamp` | AsOfTimestamp is when the snapshot was taken. This is equivalent to the timestamp given in the AS OF SYSTEM TIME clause when querying the namespace and descriptor tables in the system database. Expressed as nanoseconds since the Unix epoch. | no | | `Errors` | Errors records any errors encountered when post-processing this snapshot, which includes the redaction of any potential PII. | yes | | Field | Description | Sensitive | |--|--|--| | `Timestamp` | The timestamp of the event. Expressed as nanoseconds since the Unix epoch. | no | | `EventType` | The type of the event. | no | Events in this category pertain to zone configuration changes on the SQL schema or system ranges. When zone configs apply to individual tables or other objects in a SQL logical schema, they are relative to a particular SQL tenant. In a multi-tenant setup, copies of these zone config events are preserved in each tenant's own `system.eventlog` table. When they apply to cluster-level ranges (e.g., the system zone config), they are stored in the system tenant's own `system.eventlog` table. Events in this category are logged to the `OPS` channel. An event of type `removezoneconfig` is recorded when a zone config is

| Field | Description | Sensitive | |--|--|--| | `Timestamp` | The timestamp of the event. Expressed as nanoseconds since the Unix epoch. | no | | `EventType` | The type of the event. | no | | `Statement` | A normalized copy of the SQL statement that triggered the event. The statement string contains a mix of sensitive and non-sensitive details (it is redactable). | partially | | `Tag` | The statement tag. This is separate from the statement string, since the statement string can contain sensitive information. The tag is guaranteed not to. | no | | `User` | The user account that triggered the event. The special usernames `root` and `node` are not considered sensitive. | depends | | `DescriptorID` | The primary object descriptor affected by the operation. Set to zero for operations that don't affect descriptors. | no | | `ApplicationName` | The application name for the session where the event was emitted. This is included in the event to ease filtering of logging output by application. | no | | `PlaceholderValues` | The mapping of SQL placeholders to their values, for prepared statements. | yes | | `Target` | The target object of the zone config change. | yes | | `Config` | The applied zone config in YAML format. | yes | | `Options` | The SQL representation of the applied zone config options. | yes | An event of type `setzoneconfig` is recorded when a zone config is changed. | Field | Description | Sensitive | |--|--|--| | `Timestamp` | The timestamp of the event. Expressed as nanoseconds since the Unix epoch. | no | | `EventType` | The type of the event. | no | | `Statement` | A normalized copy of the SQL statement that triggered the event. The statement string contains a mix of sensitive and non-sensitive details (it is redactable). | partially | | `Tag` | The statement tag. This is separate from the statement string, since the statement string can contain sensitive information. The tag is guaranteed not to. | no | | `User` | The user account that triggered the event. The special usernames `root` and `node` are not considered sensitive. | depends | | `DescriptorID` | The primary object descriptor affected by the operation. Set to zero for operations that don't affect descriptors. | no | | `ApplicationName` | The application name for the session where the event was emitted. This is included in the event to ease filtering of logging output by application. | no | | `PlaceholderValues` | The mapping of SQL placeholders to their values, for prepared statements. | yes | | `Target` | The target object of the zone config change. | yes | | `Config` | The applied zone config in YAML format. | yes | | `Options` | The SQL representation of the applied zone config options. | yes | AuthFailReason is the inventory of possible reasons for an authentication failure. | Value | Textual alias in code or documentation | Description | |--|--|--| | 0 | UNKNOWN | is reported when the reason is unknown. | | 1 | USERRETRIEVALERROR | occurs when there was an internal error accessing the principals. | | 2 | USERNOTFOUND | occurs when the principal is unknown. | | 3 | LOGIN_DISABLED | occurs when the user does not have LOGIN privileges. | | 4 | METHODNOTFOUND | occurs when no HBA rule matches or the method does not exist. | | 5 | PREHOOKERROR | occurs when the authentication handshake encountered a protocol error. | | 6 | CREDENTIALS_INVALID | occurs