> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-mintlify-8c05c8a2.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> System table containing the instrumentation points

# system.instrumentation

<Info>
  **Querying in ClickHouse Cloud**

  The data in this system table is held locally on each node in ClickHouse Cloud. Obtaining a complete view of all data, therefore, requires the `clusterAllReplicas` function. See [here](/reference/system-tables/overview#system-tables-in-clickhouse-cloud) for further details.
</Info>

<h2 id="description">
  Description
</h2>

Contains the instrumentation points using LLVM's XRay feature.

<h2 id="columns">
  Columns
</h2>

* `id` ([UInt32](/reference/data-types/int-uint)) — ID of the instrumentation point
* `function_id` ([Int32](/reference/data-types/int-uint)) — ID assigned to the function in xray\_instr\_map section of elf-binary.
* `function_name` ([LowCardinality(String)](/reference/data-types/lowcardinality)) — Name used to instrument the function.
* `handler` ([LowCardinality(String)](/reference/data-types/lowcardinality)) — Handler that was patched into instrumentation points of the function.
* `entry_type` ([Enum8('Entry' = 0, 'Exit' = 1, 'EntryAndExit' = 2)](/reference/data-types/enum)) — Entry type for the patch.
* `symbol` ([LowCardinality(String)](/reference/data-types/lowcardinality)) — Complete and demangled symbol name.
* `arguments` ([Array(Dynamic)](/reference/data-types/array)) — Arguments for the handler call.

<h2 id="example">
  Example
</h2>

```sql theme={null}
SELECT * FROM system.instrumentation FORMAT Vertical;
```

```text theme={null}
Row 1:
──────
id:            0
function_id:   231280
function_name: QueryMetricLog::startQuery
handler:       log
entry_type:    Entry
symbol:        DB::QueryMetricLog::startQuery(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, std::__1::chrono::time_point<std::__1::chrono::system_clock, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000l>>>, unsigned long)
arguments:     ['test']

Row 2:
──────
id:            1
function_id:   231280
function_name: QueryMetricLog::startQuery
handler:       profile
entry_type:    EntryAndExit
symbol:        DB::QueryMetricLog::startQuery(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, std::__1::chrono::time_point<std::__1::chrono::system_clock, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000l>>>, unsigned long)
arguments:     []

Row 3:
──────
id:            2
function_id:   231280
function_name: QueryMetricLog::startQuery
handler:       sleep
entry_type:    Exit
symbol:        DB::QueryMetricLog::startQuery(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, std::__1::chrono::time_point<std::__1::chrono::system_clock, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000l>>>, unsigned long)
arguments:     [0.3]

3 rows in set. Elapsed: 0.302 sec.
```

<h2 id="see-also">
  See Also
</h2>

* [SYSTEM INSTRUMENT](/reference/statements/system#instrument) — Add or remove instrumentation points.
* [system.trace\_log](/reference/system-tables/trace_log) — Inspect profiling log.
* [system.symbols](/reference/system-tables/symbols) — Inspect symbols to add instrumentation points.
