> ## Documentation Index
> Fetch the complete documentation index at: https://docs.kinetica.com/llms.txt
> Use this file to discover all available pages before exploring further.

# create_table_monitor

[Source](https://github.com/kineticadb/kinetica-api-rust/blob/master/crates/gpudb-api/src/generated/create_table_monitor.rs#L33-L39)
pub async fn [create\_table\_monitor](https://docs.kinetica.com/content/api/rust/gpudb/struct.Kinetica/create-table-monitor.md#method.create_table_monitor)( \&self, table\_name: [String](https://doc.rust-lang.org/1.98.1/alloc/string/struct.String.html), ) -> [Result](https://doc.rust-lang.org/1.98.1/core/result/enum.Result.html)\<[CreateTableMonitorResponse](https://docs.kinetica.com/content/api/rust/generated/api/struct.CreateTableMonitorResponse.md), [KineticaError](https://docs.kinetica.com/content/api/rust/errors/enum.KineticaError.md)>

Create a table monitor that will watch for and queue any records addedCreates a monitor that watches for a single table modification event type (insert, update, or delete) on a particular table (identified by `table_name`) and forwards event notifications to subscribers via ZMQ. After this call completes, subscribe to the returned `topic_id` on the ZMQ table monitor port (default 9002). Each time an operation of the given type on the table completes, a multipart message is published for that topic; the first part contains only the topic ID, and each subsequent part contains one binary-encoded Avro object that corresponds to the event and can be decoded using `type_schema`. The monitor will continue to run (regardless of whether or not there are any subscribers) until deactivated with `/clear/tablemonitor`.For more information on table monitors, see Table Monitors.

##### Arguments

<ul>
  <li>`table_name` - Name of the table to monitor, in \[schema\_name.]table\_name format, using standard name resolution rules.</li>
</ul>

[Source](https://github.com/kineticadb/kinetica-api-rust/blob/master/crates/gpudb-api/src/generated/create_table_monitor.rs#L64-L80)
pub async fn [create\_table\_monitor\_with\_opts](https://docs.kinetica.com/content/api/rust/gpudb/struct.Kinetica/create-table-monitor.md#method.create_table_monitor_with_opts)( \&self, table\_name: [String](https://doc.rust-lang.org/1.98.1/alloc/string/struct.String.html), options: [CreateTableMonitorRequestOptions](https://docs.kinetica.com/content/api/rust/generated/api/struct.CreateTableMonitorRequestOptions.md), ) -> [Result](https://doc.rust-lang.org/1.98.1/core/result/enum.Result.html)\<[CreateTableMonitorResponse](https://docs.kinetica.com/content/api/rust/generated/api/struct.CreateTableMonitorResponse.md), [KineticaError](https://docs.kinetica.com/content/api/rust/errors/enum.KineticaError.md)>

Create a table monitor that will watch for and queue any records addedCreates a monitor that watches for a single table modification event type (insert, update, or delete) on a particular table (identified by `table_name`) and forwards event notifications to subscribers via ZMQ. After this call completes, subscribe to the returned `topic_id` on the ZMQ table monitor port (default 9002). Each time an operation of the given type on the table completes, a multipart message is published for that topic; the first part contains only the topic ID, and each subsequent part contains one binary-encoded Avro object that corresponds to the event and can be decoded using `type_schema`. The monitor will continue to run (regardless of whether or not there are any subscribers) until deactivated with `/clear/tablemonitor`.For more information on table monitors, see Table Monitors.

##### Arguments

<ul>
  <li>`table_name` - Name of the table to monitor, in \[schema\_name.]table\_name format, using standard name resolution rules.</li>
  <li>`options` - The optional parameters; any left unset take the server’s defaults.</li>
</ul>

[Source](https://github.com/kineticadb/kinetica-api-rust/blob/master/crates/gpudb-api/src/generated/create_table_monitor.rs#L83-L94)
pub async fn [create\_table\_monitor\_raw](https://docs.kinetica.com/content/api/rust/gpudb/struct.Kinetica/create-table-monitor.md#method.create_table_monitor_raw)( \&self, request: &[CreateTableMonitorRequest](https://docs.kinetica.com/content/api/rust/generated/api/struct.CreateTableMonitorRequest.md), ) -> [Result](https://doc.rust-lang.org/1.98.1/core/result/enum.Result.html)\<[CreateTableMonitorResponse](https://docs.kinetica.com/content/api/rust/generated/api/struct.CreateTableMonitorResponse.md), [KineticaError](https://docs.kinetica.com/content/api/rust/errors/enum.KineticaError.md)>

Sends a pre-built [`CreateTableMonitorRequest`](https://docs.kinetica.com/content/api/rust/generated/api/struct.CreateTableMonitorRequest) to the `/create/tablemonitor` endpoint.

[Source](https://github.com/kineticadb/kinetica-api-rust/blob/master/crates/gpudb-api/src/generated/create_table_monitor.rs#L98-L110)
pub async fn [create\_table\_monitor\_from\_url](https://docs.kinetica.com/content/api/rust/gpudb/struct.Kinetica/create-table-monitor.md#method.create_table_monitor_from_url)( \&self, url: &[str](https://doc.rust-lang.org/1.98.1/std/primitive.str.html), request: &[CreateTableMonitorRequest](https://docs.kinetica.com/content/api/rust/generated/api/struct.CreateTableMonitorRequest.md), ) -> [Result](https://doc.rust-lang.org/1.98.1/core/result/enum.Result.html)\<[CreateTableMonitorResponse](https://docs.kinetica.com/content/api/rust/generated/api/struct.CreateTableMonitorResponse.md), [KineticaError](https://docs.kinetica.com/content/api/rust/errors/enum.KineticaError.md)>

Sends a pre-built [`CreateTableMonitorRequest`](https://docs.kinetica.com/content/api/rust/generated/api/struct.CreateTableMonitorRequest) to a specific worker URL, bypassing HA head-node selection. Used for multi-head access.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.