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

> Tabela de sistema que contém os pontos de instrumentação

# system.instrumentation

<Info>
  **Consultas no ClickHouse Cloud**

  Os dados nesta tabela de sistema são mantidos localmente em cada nó do ClickHouse Cloud. Portanto, para obter uma visão completa de todos os dados, é necessário usar a função `clusterAllReplicas`. Consulte [aqui](/pt-BR/reference/system-tables/overview#system-tables-in-clickhouse-cloud) para mais detalhes.
</Info>

## Descrição

Contém os pontos de instrumentação que usam o recurso XRay do LLVM.

**Disponibilidade**

`system.instrumentation` está presente apenas em compilações do ClickHouse compiladas com suporte a LLVM XRay (`USE_XRAY`). Em compilações sem esse suporte, a tabela não existe e as consultas a ela falharão com `UNKNOWN_TABLE`. Você pode verificar se sua compilação tem esse recurso habilitado com:

```sql theme={null}
SELECT value FROM system.build_options WHERE name = 'USE_XRAY';
```

## Colunas

* `id` ([UInt32](/pt-BR/reference/data-types/int-uint)) — ID do ponto de instrumentação
* `function_id` ([Int32](/pt-BR/reference/data-types/int-uint)) — ID atribuído à função na seção xray\_instr\_map do binário ELF.
* `function_name` ([LowCardinality(String)](/pt-BR/reference/data-types/lowcardinality)) — Nome usado para instrumentar a função.
* `handler` ([LowCardinality(String)](/pt-BR/reference/data-types/lowcardinality)) — Handler aplicado por patch aos pontos de instrumentação da função.
* `entry_type` ([Enum8('Entry' = 0, 'Exit' = 1, 'EntryAndExit' = 2)](/pt-BR/reference/data-types/enum)) — Tipo de entrada do patch.
* `symbol` ([LowCardinality(String)](/pt-BR/reference/data-types/lowcardinality)) — Nome completo e demanglado do símbolo.
* `arguments` ([Array(Dynamic)](/pt-BR/reference/data-types/array)) — Argumentos da chamada do handler.

## Exemplo

```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.
```

## Veja também

* [SYSTEM INSTRUMENT](/pt-BR/reference/statements/system#instrument) — Adiciona ou remove pontos de instrumentação.
* [system.trace\_log](/pt-BR/reference/system-tables/trace_log) — Inspeciona o log de profiling.
* [system.symbols](/pt-BR/reference/system-tables/symbols) — Inspeciona símbolos para adicionar pontos de instrumentação.
