<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements.  See the NOTICE file
distributed with this work for additional information
regarding copyright ownership.  The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License.  You may obtain a copy of the License at

  http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied.  See the License for the
specific language governing permissions and limitations
under the License.
-->
<!DOCTYPE concept PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
<concept rev="3.2.0" id="resource_trace_ratio">

  <title>RESOURCE_TRACE_RATIO Query Option (<keyword keyref="impala32_full"/> or higher only)</title>

  <titlealts audience="PDF">

    <navtitle>RESOURCE_TRACE_RATIO</navtitle>

  </titlealts>

  <prolog>
    <metadata>
      <data name="Category" value="Impala"/>
      <data name="Category" value="Impala Query Options"/>
      <data name="Category" value="Querying"/>
      <data name="Category" value="Developers"/>
      <data name="Category" value="Data Analysts"/>
    </metadata>
  </prolog>

  <conbody>

    <p>
      The <codeph>RESOURCE_TRACE_RATIO</codeph> query option specifies the ratio of queries
      where the CPU usage info will be included in the profiles. Collecting CPU usage and
      sending it around adds a slight overhead during query execution. This query option lets
      you control whether to collect additional information to diagnose the resource usage.
    </p>

    <p>
      For example, setting <codeph>RESOURCE_TRACE_RATIO=1</codeph> adds a trace of the CPU usage
      to the profile of each query.
    </p>

    <p>
      Setting <codeph>RESOURCE_TRACE_RATIO=0.5</codeph> means that randomly selected half of all
      queries will have that information collected by the coordinator and included in the
      profiles.
    </p>

    <p>
      Setting <codeph>RESOURCE_TRACE_RATIO=0</codeph> means that CPU usage will not be tracked
      and included in the profiles.
    </p>

    <p>
      Values from 0 to 1 are allowed.
    </p>

    <p>
      <b>Type:</b> Number
    </p>

    <p>
      <b>Default:</b> 0
    </p>

    <p>
      <b>Added in:</b> <keyword keyref="impala32"/>
    </p>

  </conbody>

</concept>
