You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* In monitor-and-analyze-transaction-contention.md, added Monitor using logs section.
* In crdb-internal.md, added link to Monitor using logs.
* Incorporated Alyshan’s feedback.
* Incorporated Rich’s feedback.
Copy file name to clipboardExpand all lines: src/current/v25.4/crdb-internal.md
+2Lines changed: 2 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1188,6 +1188,8 @@ Contention events are stored in memory. You can control the amount of contention
1188
1188
1189
1189
The `sql.contention.event_store.duration_threshold` [cluster setting]({% link {{ page.version.version }}/cluster-settings.md %}) specifies the minimum contention duration to cause the contention events to be collected into the `crdb_internal.transaction_contention_events` table. The default value is `0`. If contention event collection is overwhelming the CPU or memory you can raise this value to reduce the load.
1190
1190
1191
+
You can also [monitor transaction contention using logs]({% link {{ page.version.version }}/monitor-and-analyze-transaction-contention.md %}#monitor-using-logs) for a durable history of contention.
1192
+
1191
1193
{% include {{ page.version.version }}/transaction-contention-events-columns.md %}
The [Continuous monitoring](#continuous-monitoring) section provides further considerations on identifying when contention occurs in your workload.
@@ -113,6 +114,26 @@ CockroachDB Metric Name | Description | Type | Unit
113
114
114
115
Correlate these metrics with information from the [Insights]({% link {{ page.version.version }}/ui-insights-page.md %}) and [SQL Activity]({% link {{ page.version.version }}/ui-overview.md %}#sql-activity) pages to identify the affected database.
115
116
117
+
## Monitor using logs
118
+
119
+
CockroachDB periodically summarizes resolved contention activity as structured log events on the [`SQL_EXEC` logging channel]({% link {{ page.version.version }}/logging-overview.md %}#logging-channels). Each `aggregated_contention_info`[event]({% link {{ page.version.version }}/eventlog.md %}) reports:
120
+
121
+
- the waiting statement and transaction fingerprints
122
+
- the blocking transaction fingerprint
123
+
- the contended key (if not redacted)
124
+
- the total wait time for that combination since the previous event
125
+
126
+
[Configure log sinks]({% link {{ page.version.version }}/configure-logs.md %}#configure-log-sinks) to route the `SQL_EXEC` channel to a destination, such as a log file or external collector, for long-term analysis.
127
+
128
+
These periodic reports complement the in-memory [`crdb_internal.transaction_contention_events`](#transaction_contention_events-table) table by providing a durable view of contention history that persists across [node restarts]({% link {{ page.version.version }}/node-shutdown.md %}) or after contention data expires from the event store. Reports are generated at an interval defined by the cluster setting [`sql.contention.event_store.resolution_interval`](#sql-contention-event_store-resolution_interval).
129
+
130
+
The structured payload makes it easy to ingest the events into log analytics tools and correlate them with statement fingerprints or [key hotspots]({% link {{ page.version.version }}/understand-hotspots.md %}#row-hotspot). A typical structured log entry looks like the following:
The [`crdb_internal`]({% link {{ page.version.version }}/crdb-internal.md %}) system catalog is a schema that contains information about internal objects, processes, and metrics related to a specific database. `crdb_internal` tables are read-only.
`sql.contention.event_store.capacity` | byte size | `64 MiB` | the in-memory storage capacity per-node of contention event store
133
154
`sql.contention.event_store.duration_threshold` | duration | `0s` | minimum contention duration to cause the contention events to be collected into crdb_internal.transaction_contention_events. If `0`, always store.
134
-
`sql.contention.event_store.resolution_interval ` | duration | `30s ` | the interval at which transaction fingerprint ID resolution is performed (set to 0 to disable)
155
+
<aid="sql-contention-event_store-resolution_interval"></a>`sql.contention.event_store.resolution_interval ` | duration | `30s ` | the interval at which transaction fingerprint ID resolution is performed (set to 0 to disable)
135
156
`sql.contention.record_serialization_conflicts.enabled` | boolean | `true` | enables recording 40001 errors with conflicting txn meta as SERIALIZATION_CONFLICT contention events into crdb_internal.transaction_contention_events
136
157
137
158
{{site.data.alerts.callout_info}}
138
-
`crdb_internal.transaction_content_events` displays in-memory data, not on-disk data. The data changes over time as new events arrive and old ones are evicted from the cache.
159
+
`crdb_internal.transaction_contention_events` displays in-memory data, not on-disk data. The data changes over time as new events arrive and old ones are evicted from the cache.
139
160
{{site.data.alerts.end}}
140
161
141
162
The table columns are as follows:
@@ -587,4 +608,4 @@ While the previous analysis process uses the `crdb_internal` tables, the perform
587
608
- Statements page ([CockroachDB Cloud Console]({% link cockroachcloud/statements-page.md %}) or [DB Console]({% link {{ page.version.version }}/ui-statements-page.md %}))
588
609
- Transactions page ([CockroachDB Cloud Console]({% link cockroachcloud/transactions-page.md %}) or [DB Console]({% link {{ page.version.version }}/ui-transactions-page.md %}))
589
610
- Insights page ([CockroachDB Cloud Console]({% link cockroachcloud/insights-page.md %}) or [DB Console]({% link {{ page.version.version }}/ui-insights-page.md %}))
590
-
- [`crdb_internal`]({% link {{ page.version.version }}/crdb-internal.md %})
611
+
- [`crdb_internal`]({% link {{ page.version.version }}/crdb-internal.md %})
0 commit comments