<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!--
 | Generated by Apache Maven Doxia at 2024-05-31
 | Rendered using Apache Maven Stylus Skin 1.5
-->
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <title>Apache Hadoop 3.5.0-SNAPSHOT &#x2013; The YARN Timeline Service v.2</title>
    <style type="text/css" media="all">
      @import url("./css/maven-base.css");
      @import url("./css/maven-theme.css");
      @import url("./css/site.css");
    </style>
    <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
        <meta name="Date-Revision-yyyymmdd" content="20240531" />
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
                </head>
  <body class="composite">
    <div id="banner">
                        <a href="http://hadoop.apache.org/" id="bannerLeft">
                                        <img src="http://hadoop.apache.org/images/hadoop-logo.jpg" alt="" />
                </a>
                              <a href="http://www.apache.org/" id="bannerRight">
                                        <img src="http://www.apache.org/images/asf_logo_wide.png" alt="" />
                </a>
            <div class="clear">
        <hr/>
      </div>
    </div>
    <div id="breadcrumbs">
            
                                     <div class="xright">            <a href="http://wiki.apache.org/hadoop" class="externalLink">Wiki</a>
            |
                <a href="https://gitbox.apache.org/repos/asf/hadoop.git" class="externalLink">git</a>
            |
                <a href="http://hadoop.apache.org/" class="externalLink">Apache Hadoop</a>
              
                                   &nbsp;| Last Published: 2024-05-31
              &nbsp;| Version: 3.5.0-SNAPSHOT
            </div>
      <div class="clear">
        <hr/>
      </div>
    </div>
    <div id="leftColumn">
      <div id="navcolumn">
             
                                                   <h5>General</h5>
                  <ul>
                  <li class="none">
                  <a href="../../index.html">Overview</a>
            </li>
                  <li class="none">
                  <a href="../../hadoop-project-dist/hadoop-common/SingleCluster.html">Single Node Setup</a>
            </li>
                  <li class="none">
                  <a href="../../hadoop-project-dist/hadoop-common/ClusterSetup.html">Cluster Setup</a>
            </li>
                  <li class="none">
                  <a href="../../hadoop-project-dist/hadoop-common/CommandsManual.html">Commands Reference</a>
            </li>
                  <li class="none">
                  <a href="../../hadoop-project-dist/hadoop-common/FileSystemShell.html">FileSystem Shell</a>
            </li>
                  <li class="none">
                  <a href="../../hadoop-project-dist/hadoop-common/Compatibility.html">Compatibility Specification</a>
            </li>
                  <li class="none">
                  <a href="../../hadoop-project-dist/hadoop-common/DownstreamDev.html">Downstream Developer's Guide</a>
            </li>
                  <li class="none">
                  <a href="../../hadoop-project-dist/hadoop-common/AdminCompatibilityGuide.html">Admin Compatibility Guide</a>
            </li>
                  <li class="none">
                  <a href="../../hadoop-project-dist/hadoop-common/InterfaceClassification.html">Interface Classification</a>
            </li>
                  <li class="none">
                  <a href="../../hadoop-project-dist/hadoop-common/filesystem/index.html">FileSystem Specification</a>
            </li>
          </ul>
                       <h5>Common</h5>
                  <ul>
                  <li class="none">
                  <a href="../../hadoop-project-dist/hadoop-common/CLIMiniCluster.html">CLI Mini Cluster</a>
            </li>
                  <li class="none">
                  <a href="../../hadoop-project-dist/hadoop-common/FairCallQueue.html">Fair Call Queue</a>
            </li>
                  <li class="none">
                  <a href="../../hadoop-project-dist/hadoop-common/NativeLibraries.html">Native Libraries</a>
            </li>
                  <li class="none">
                  <a href="../../hadoop-project-dist/hadoop-common/Superusers.html">Proxy User</a>
            </li>
                  <li class="none">
                  <a href="../../hadoop-project-dist/hadoop-common/RackAwareness.html">Rack Awareness</a>
            </li>
                  <li class="none">
                  <a href="../../hadoop-project-dist/hadoop-common/SecureMode.html">Secure Mode</a>
            </li>
                  <li class="none">
                  <a href="../../hadoop-project-dist/hadoop-common/ServiceLevelAuth.html">Service Level Authorization</a>
            </li>
                  <li class="none">
                  <a href="../../hadoop-project-dist/hadoop-common/HttpAuthentication.html">HTTP Authentication</a>
            </li>
                  <li class="none">
                  <a href="../../hadoop-project-dist/hadoop-common/CredentialProviderAPI.html">Credential Provider API</a>
            </li>
                  <li class="none">
                  <a href="../../hadoop-kms/index.html">Hadoop KMS</a>
            </li>
                  <li class="none">
                  <a href="../../hadoop-project-dist/hadoop-common/Tracing.html">Tracing</a>
            </li>
                  <li class="none">
                  <a href="../../hadoop-project-dist/hadoop-common/UnixShellGuide.html">Unix Shell Guide</a>
            </li>
                  <li class="none">
                  <a href="../../hadoop-project-dist/hadoop-common/registry/index.html">Registry</a>
            </li>
                  <li class="none">
                  <a href="../../hadoop-project-dist/hadoop-common/AsyncProfilerServlet.html">Async Profiler</a>
            </li>
          </ul>
                       <h5>HDFS</h5>
                  <ul>
                  <li class="none">
                  <a href="../../hadoop-project-dist/hadoop-hdfs/HdfsDesign.html">Architecture</a>
            </li>
                  <li class="none">
                  <a href="../../hadoop-project-dist/hadoop-hdfs/HdfsUserGuide.html">User Guide</a>
            </li>
                  <li class="none">
                  <a href="../../hadoop-project-dist/hadoop-hdfs/HDFSCommands.html">Commands Reference</a>
            </li>
                  <li class="none">
                  <a href="../../hadoop-project-dist/hadoop-hdfs/HDFSHighAvailabilityWithQJM.html">NameNode HA With QJM</a>
            </li>
                  <li class="none">
                  <a href="../../hadoop-project-dist/hadoop-hdfs/HDFSHighAvailabilityWithNFS.html">NameNode HA With NFS</a>
            </li>
                  <li class="none">
                  <a href="../../hadoop-project-dist/hadoop-hdfs/ObserverNameNode.html">Observer NameNode</a>
            </li>
                  <li class="none">
                  <a href="../../hadoop-project-dist/hadoop-hdfs/Federation.html">Federation</a>
            </li>
                  <li class="none">
                  <a href="../../hadoop-project-dist/hadoop-hdfs/ViewFs.html">ViewFs</a>
            </li>
                  <li class="none">
                  <a href="../../hadoop-project-dist/hadoop-hdfs/ViewFsOverloadScheme.html">ViewFsOverloadScheme</a>
            </li>
                  <li class="none">
                  <a href="../../hadoop-project-dist/hadoop-hdfs/HdfsSnapshots.html">Snapshots</a>
            </li>
                  <li class="none">
                  <a href="../../hadoop-project-dist/hadoop-hdfs/HdfsEditsViewer.html">Edits Viewer</a>
            </li>
                  <li class="none">
                  <a href="../../hadoop-project-dist/hadoop-hdfs/HdfsImageViewer.html">Image Viewer</a>
            </li>
                  <li class="none">
                  <a href="../../hadoop-project-dist/hadoop-hdfs/HdfsPermissionsGuide.html">Permissions and HDFS</a>
            </li>
                  <li class="none">
                  <a href="../../hadoop-project-dist/hadoop-hdfs/HdfsQuotaAdminGuide.html">Quotas and HDFS</a>
            </li>
                  <li class="none">
                  <a href="../../hadoop-project-dist/hadoop-hdfs/LibHdfs.html">libhdfs (C API)</a>
            </li>
                  <li class="none">
                  <a href="../../hadoop-project-dist/hadoop-hdfs/WebHDFS.html">WebHDFS (REST API)</a>
            </li>
                  <li class="none">
                  <a href="../../hadoop-hdfs-httpfs/index.html">HttpFS</a>
            </li>
                  <li class="none">
                  <a href="../../hadoop-project-dist/hadoop-hdfs/ShortCircuitLocalReads.html">Short Circuit Local Reads</a>
            </li>
                  <li class="none">
                  <a href="../../hadoop-project-dist/hadoop-hdfs/CentralizedCacheManagement.html">Centralized Cache Management</a>
            </li>
                  <li class="none">
                  <a href="../../hadoop-project-dist/hadoop-hdfs/HdfsNfsGateway.html">NFS Gateway</a>
            </li>
                  <li class="none">
                  <a href="../../hadoop-project-dist/hadoop-hdfs/HdfsRollingUpgrade.html">Rolling Upgrade</a>
            </li>
                  <li class="none">
                  <a href="../../hadoop-project-dist/hadoop-hdfs/ExtendedAttributes.html">Extended Attributes</a>
            </li>
                  <li class="none">
                  <a href="../../hadoop-project-dist/hadoop-hdfs/TransparentEncryption.html">Transparent Encryption</a>
            </li>
                  <li class="none">
                  <a href="../../hadoop-project-dist/hadoop-hdfs/HdfsMultihoming.html">Multihoming</a>
            </li>
                  <li class="none">
                  <a href="../../hadoop-project-dist/hadoop-hdfs/ArchivalStorage.html">Storage Policies</a>
            </li>
                  <li class="none">
                  <a href="../../hadoop-project-dist/hadoop-hdfs/MemoryStorage.html">Memory Storage Support</a>
            </li>
                  <li class="none">
                  <a href="../../hadoop-project-dist/hadoop-hdfs/SLGUserGuide.html">Synthetic Load Generator</a>
            </li>
                  <li class="none">
                  <a href="../../hadoop-project-dist/hadoop-hdfs/HDFSErasureCoding.html">Erasure Coding</a>
            </li>
                  <li class="none">
                  <a href="../../hadoop-project-dist/hadoop-hdfs/HDFSDiskbalancer.html">Disk Balancer</a>
            </li>
                  <li class="none">
                  <a href="../../hadoop-project-dist/hadoop-hdfs/HdfsUpgradeDomain.html">Upgrade Domain</a>
            </li>
                  <li class="none">
                  <a href="../../hadoop-project-dist/hadoop-hdfs/HdfsDataNodeAdminGuide.html">DataNode Admin</a>
            </li>
                  <li class="none">
                  <a href="../../hadoop-project-dist/hadoop-hdfs-rbf/HDFSRouterFederation.html">Router Federation</a>
            </li>
                  <li class="none">
                  <a href="../../hadoop-project-dist/hadoop-hdfs/HdfsProvidedStorage.html">Provided Storage</a>
            </li>
          </ul>
                       <h5>MapReduce</h5>
                  <ul>
                  <li class="none">
                  <a href="../../hadoop-mapreduce-client/hadoop-mapreduce-client-core/MapReduceTutorial.html">Tutorial</a>
            </li>
                  <li class="none">
                  <a href="../../hadoop-mapreduce-client/hadoop-mapreduce-client-core/MapredCommands.html">Commands Reference</a>
            </li>
                  <li class="none">
                  <a href="../../hadoop-mapreduce-client/hadoop-mapreduce-client-core/MapReduce_Compatibility_Hadoop1_Hadoop2.html">Compatibility with 1.x</a>
            </li>
                  <li class="none">
                  <a href="../../hadoop-mapreduce-client/hadoop-mapreduce-client-core/EncryptedShuffle.html">Encrypted Shuffle</a>
            </li>
                  <li class="none">
                  <a href="../../hadoop-mapreduce-client/hadoop-mapreduce-client-core/PluggableShuffleAndPluggableSort.html">Pluggable Shuffle/Sort</a>
            </li>
                  <li class="none">
                  <a href="../../hadoop-mapreduce-client/hadoop-mapreduce-client-core/DistributedCacheDeploy.html">Distributed Cache Deploy</a>
            </li>
                  <li class="none">
                  <a href="../../hadoop-mapreduce-client/hadoop-mapreduce-client-core/SharedCacheSupport.html">Support for YARN Shared Cache</a>
            </li>
          </ul>
                       <h5>MapReduce REST APIs</h5>
                  <ul>
                  <li class="none">
                  <a href="../../hadoop-mapreduce-client/hadoop-mapreduce-client-core/MapredAppMasterRest.html">MR Application Master</a>
            </li>
                  <li class="none">
                  <a href="../../hadoop-mapreduce-client/hadoop-mapreduce-client-hs/HistoryServerRest.html">MR History Server</a>
            </li>
          </ul>
                       <h5>YARN</h5>
                  <ul>
                  <li class="none">
                  <a href="../../hadoop-yarn/hadoop-yarn-site/YARN.html">Architecture</a>
            </li>
                  <li class="none">
                  <a href="../../hadoop-yarn/hadoop-yarn-site/YarnCommands.html">Commands Reference</a>
            </li>
                  <li class="none">
                  <a href="../../hadoop-yarn/hadoop-yarn-site/CapacityScheduler.html">Capacity Scheduler</a>
            </li>
                  <li class="none">
                  <a href="../../hadoop-yarn/hadoop-yarn-site/FairScheduler.html">Fair Scheduler</a>
            </li>
                  <li class="none">
                  <a href="../../hadoop-yarn/hadoop-yarn-site/ResourceManagerRestart.html">ResourceManager Restart</a>
            </li>
                  <li class="none">
                  <a href="../../hadoop-yarn/hadoop-yarn-site/ResourceManagerHA.html">ResourceManager HA</a>
            </li>
                  <li class="none">
                  <a href="../../hadoop-yarn/hadoop-yarn-site/ResourceModel.html">Resource Model</a>
            </li>
                  <li class="none">
                  <a href="../../hadoop-yarn/hadoop-yarn-site/NodeLabel.html">Node Labels</a>
            </li>
                  <li class="none">
                  <a href="../../hadoop-yarn/hadoop-yarn-site/NodeAttributes.html">Node Attributes</a>
            </li>
                  <li class="none">
                  <a href="../../hadoop-yarn/hadoop-yarn-site/WebApplicationProxy.html">Web Application Proxy</a>
            </li>
                  <li class="none">
                  <a href="../../hadoop-yarn/hadoop-yarn-site/TimelineServer.html">Timeline Server</a>
            </li>
                  <li class="none">
                  <a href="../../hadoop-yarn/hadoop-yarn-site/TimelineServiceV2.html">Timeline Service V.2</a>
            </li>
                  <li class="none">
                  <a href="../../hadoop-yarn/hadoop-yarn-site/WritingYarnApplications.html">Writing YARN Applications</a>
            </li>
                  <li class="none">
                  <a href="../../hadoop-yarn/hadoop-yarn-site/YarnApplicationSecurity.html">YARN Application Security</a>
            </li>
                  <li class="none">
                  <a href="../../hadoop-yarn/hadoop-yarn-site/NodeManager.html">NodeManager</a>
            </li>
                  <li class="none">
                  <a href="../../hadoop-yarn/hadoop-yarn-site/DockerContainers.html">Running Applications in Docker Containers</a>
            </li>
                  <li class="none">
                  <a href="../../hadoop-yarn/hadoop-yarn-site/RuncContainers.html">Running Applications in runC Containers</a>
            </li>
                  <li class="none">
                  <a href="../../hadoop-yarn/hadoop-yarn-site/NodeManagerCgroups.html">Using CGroups</a>
            </li>
                  <li class="none">
                  <a href="../../hadoop-yarn/hadoop-yarn-site/SecureContainer.html">Secure Containers</a>
            </li>
                  <li class="none">
                  <a href="../../hadoop-yarn/hadoop-yarn-site/ReservationSystem.html">Reservation System</a>
            </li>
                  <li class="none">
                  <a href="../../hadoop-yarn/hadoop-yarn-site/GracefulDecommission.html">Graceful Decommission</a>
            </li>
                  <li class="none">
                  <a href="../../hadoop-yarn/hadoop-yarn-site/OpportunisticContainers.html">Opportunistic Containers</a>
            </li>
                  <li class="none">
                  <a href="../../hadoop-yarn/hadoop-yarn-site/Federation.html">YARN Federation</a>
            </li>
                  <li class="none">
                  <a href="../../hadoop-yarn/hadoop-yarn-site/SharedCache.html">Shared Cache</a>
            </li>
                  <li class="none">
                  <a href="../../hadoop-yarn/hadoop-yarn-site/UsingGpus.html">Using GPU</a>
            </li>
                  <li class="none">
                  <a href="../../hadoop-yarn/hadoop-yarn-site/UsingFPGA.html">Using FPGA</a>
            </li>
                  <li class="none">
                  <a href="../../hadoop-yarn/hadoop-yarn-site/PlacementConstraints.html">Placement Constraints</a>
            </li>
                  <li class="none">
                  <a href="../../hadoop-yarn/hadoop-yarn-site/YarnUI2.html">YARN UI2</a>
            </li>
          </ul>
                       <h5>YARN REST APIs</h5>
                  <ul>
                  <li class="none">
                  <a href="../../hadoop-yarn/hadoop-yarn-site/WebServicesIntro.html">Introduction</a>
            </li>
                  <li class="none">
                  <a href="../../hadoop-yarn/hadoop-yarn-site/ResourceManagerRest.html">Resource Manager</a>
            </li>
                  <li class="none">
                  <a href="../../hadoop-yarn/hadoop-yarn-site/NodeManagerRest.html">Node Manager</a>
            </li>
                  <li class="none">
                  <a href="../../hadoop-yarn/hadoop-yarn-site/TimelineServer.html#Timeline_Server_REST_API_v1">Timeline Server</a>
            </li>
                  <li class="none">
                  <a href="../../hadoop-yarn/hadoop-yarn-site/TimelineServiceV2.html#Timeline_Service_v.2_REST_API">Timeline Service V.2</a>
            </li>
          </ul>
                       <h5>YARN Service</h5>
                  <ul>
                  <li class="none">
                  <a href="../../hadoop-yarn/hadoop-yarn-site/yarn-service/Overview.html">Overview</a>
            </li>
                  <li class="none">
                  <a href="../../hadoop-yarn/hadoop-yarn-site/yarn-service/QuickStart.html">QuickStart</a>
            </li>
                  <li class="none">
                  <a href="../../hadoop-yarn/hadoop-yarn-site/yarn-service/Concepts.html">Concepts</a>
            </li>
                  <li class="none">
                  <a href="../../hadoop-yarn/hadoop-yarn-site/yarn-service/YarnServiceAPI.html">Yarn Service API</a>
            </li>
                  <li class="none">
                  <a href="../../hadoop-yarn/hadoop-yarn-site/yarn-service/ServiceDiscovery.html">Service Discovery</a>
            </li>
                  <li class="none">
                  <a href="../../hadoop-yarn/hadoop-yarn-site/yarn-service/SystemServices.html">System Services</a>
            </li>
          </ul>
                       <h5>Hadoop Compatible File Systems</h5>
                  <ul>
                  <li class="none">
                  <a href="../../hadoop-aliyun/tools/hadoop-aliyun/index.html">Aliyun OSS</a>
            </li>
                  <li class="none">
                  <a href="../../hadoop-aws/tools/hadoop-aws/index.html">Amazon S3</a>
            </li>
                  <li class="none">
                  <a href="../../hadoop-azure/index.html">Azure Blob Storage</a>
            </li>
                  <li class="none">
                  <a href="../../hadoop-azure-datalake/index.html">Azure Data Lake Storage</a>
            </li>
                  <li class="none">
                  <a href="../../hadoop-cos/cloud-storage/index.html">Tencent COS</a>
            </li>
                  <li class="none">
                  <a href="../../hadoop-huaweicloud/cloud-storage/index.html">Huaweicloud OBS</a>
            </li>
          </ul>
                       <h5>Auth</h5>
                  <ul>
                  <li class="none">
                  <a href="../../hadoop-auth/index.html">Overview</a>
            </li>
                  <li class="none">
                  <a href="../../hadoop-auth/Examples.html">Examples</a>
            </li>
                  <li class="none">
                  <a href="../../hadoop-auth/Configuration.html">Configuration</a>
            </li>
                  <li class="none">
                  <a href="../../hadoop-auth/BuildingIt.html">Building</a>
            </li>
          </ul>
                       <h5>Tools</h5>
                  <ul>
                  <li class="none">
                  <a href="../../hadoop-streaming/HadoopStreaming.html">Hadoop Streaming</a>
            </li>
                  <li class="none">
                  <a href="../../hadoop-archives/HadoopArchives.html">Hadoop Archives</a>
            </li>
                  <li class="none">
                  <a href="../../hadoop-archive-logs/HadoopArchiveLogs.html">Hadoop Archive Logs</a>
            </li>
                  <li class="none">
                  <a href="../../hadoop-distcp/DistCp.html">DistCp</a>
            </li>
                  <li class="none">
                  <a href="../../hadoop-federation-balance/HDFSFederationBalance.html">HDFS Federation Balance</a>
            </li>
                  <li class="none">
                  <a href="../../hadoop-gridmix/GridMix.html">GridMix</a>
            </li>
                  <li class="none">
                  <a href="../../hadoop-rumen/Rumen.html">Rumen</a>
            </li>
                  <li class="none">
                  <a href="../../hadoop-resourceestimator/ResourceEstimator.html">Resource Estimator Service</a>
            </li>
                  <li class="none">
                  <a href="../../hadoop-sls/SchedulerLoadSimulator.html">Scheduler Load Simulator</a>
            </li>
                  <li class="none">
                  <a href="../../hadoop-project-dist/hadoop-common/Benchmarking.html">Hadoop Benchmarking</a>
            </li>
                  <li class="none">
                  <a href="../../hadoop-dynamometer/Dynamometer.html">Dynamometer</a>
            </li>
          </ul>
                       <h5>Reference</h5>
                  <ul>
                  <li class="none">
                  <a href="../../hadoop-project-dist/hadoop-common/release/">Changelog and Release Notes</a>
            </li>
                  <li class="none">
                  <a href="../../api/index.html">Java API docs</a>
            </li>
                  <li class="none">
                  <a href="../../hadoop-project-dist/hadoop-common/UnixShellAPI.html">Unix Shell API</a>
            </li>
                  <li class="none">
                  <a href="../../hadoop-project-dist/hadoop-common/Metrics.html">Metrics</a>
            </li>
          </ul>
                       <h5>Configuration</h5>
                  <ul>
                  <li class="none">
                  <a href="../../hadoop-project-dist/hadoop-common/core-default.xml">core-default.xml</a>
            </li>
                  <li class="none">
                  <a href="../../hadoop-project-dist/hadoop-hdfs/hdfs-default.xml">hdfs-default.xml</a>
            </li>
                  <li class="none">
                  <a href="../../hadoop-project-dist/hadoop-hdfs-rbf/hdfs-rbf-default.xml">hdfs-rbf-default.xml</a>
            </li>
                  <li class="none">
                  <a href="../../hadoop-mapreduce-client/hadoop-mapreduce-client-core/mapred-default.xml">mapred-default.xml</a>
            </li>
                  <li class="none">
                  <a href="../../hadoop-yarn/hadoop-yarn-common/yarn-default.xml">yarn-default.xml</a>
            </li>
                  <li class="none">
                  <a href="../../hadoop-kms/kms-default.html">kms-default.xml</a>
            </li>
                  <li class="none">
                  <a href="../../hadoop-hdfs-httpfs/httpfs-default.html">httpfs-default.xml</a>
            </li>
                  <li class="none">
                  <a href="../../hadoop-project-dist/hadoop-common/DeprecatedProperties.html">Deprecated Properties</a>
            </li>
          </ul>
                                 <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy">
          <img alt="Built by Maven" src="./images/logos/maven-feather.png"/>
        </a>
                       
                               </div>
    </div>
    <div id="bodyColumn">
      <div id="contentBox">
        <!---
  Licensed 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. See accompanying LICENSE file.
-->
<h1>The YARN Timeline Service v.2</h1>
<ul>
<li><a href="#Overview">Overview</a>
<ul>
<li><a href="#Introduction">Introduction</a></li>
<li><a href="#Architecture">Architecture</a></li>
<li><a href="#Current_Status_and_Future_Plans">Current Status and Future Plans</a></li></ul></li>
<li><a href="#Deployment">Deployment</a>
<ul>
<li><a href="#Configurations">Configurations</a></li>
<li><a href="#Enabling_Timeline_Service_v.2">Enabling Timeline Service v.2</a></li>
<li><a href="#Upgrade_from_alpha1_to_GA">Upgrade from alpha1 to GA</a></li>
<li><a href="#Publishing_application_specific_data"> Publishing application specific data</a></li></ul></li>
<li><a href="#Timeline_Service_v.2_REST_API">Timeline Service v.2 REST API</a>
<ul>
<li><a href="#Root_path">Root path</a></li>
<li><a href="#Query_Flows">Query Flows</a></li>
<li><a href="#Query_Flow_Runs">Query Flow Runs</a></li>
<li><a href="#Query_Flow_Run">Query Flow Run</a></li>
<li><a href="#Query_Apps_for_a_flow">Query Apps for a flow</a></li>
<li><a href="#Query_Apps_for_a_flow_run">Query Apps for a flow run</a></li>
<li><a href="#Query_app">Query app</a></li>
<li><a href="#Query_generic_entities_with_in_the_scope_of_Application">Query generic entities with in the scope of Application</a></li>
<li><a href="#Query_generic_entities.">Query generic entities.</a></li>
<li><a href="#Query_generic_entity_with_in_the_scope_of_Application">Query generic entity with in the scope of Application</a></li>
<li><a href="#Query_generic_entity.">Query generic entity.</a></li>
<li><a href="#Query_generic_entity_types">Query generic entity types</a></li></ul></li>
<li><a href="#Aggregated_Log_Serving_for_Historical_Apps">Aggregated Log Serving for Historical Apps</a></li></ul>
<section>
<h2><a name="Overview"></a>Overview</h2><section>
<h3><a name="Introduction"></a>Introduction</h3>
<p>YARN Timeline Service v.2 is the next major iteration of Timeline Server, following v.1 and v.1.5. V.2 is created to address two major challenges of v.1.</p><section>
<h4><a name="Scalability"></a>Scalability</h4>
<p>V.1 is limited to a single instance of writer/reader and storage, and does not scale well beyond small clusters. V.2 uses a more scalable distributed writer architecture and a scalable backend storage.</p>
<p>YARN Timeline Service v.2 separates the collection (writes) of data from serving (reads) of data. It uses distributed collectors, essentially one collector for each YARN application. The readers are separate instances that are dedicated to serving queries via REST API.</p>
<p>YARN Timeline Service v.2 chooses Apache HBase as the primary backing storage, as Apache HBase scales well to a large size while maintaining good response times for reads and writes.</p></section><section>
<h4><a name="Usability_improvements"></a>Usability improvements</h4>
<p>In many cases, users are interested in information at the level of &#x201c;flows&#x201d; or logical groups of YARN applications. It is much more common to launch a set or series of YARN applications to complete a logical application. Timeline Service v.2 supports the notion of flows explicitly. In addition, it supports aggregating metrics at the flow level.</p>
<p>Also, information such as configuration and metrics is treated and supported as first-class citizens.</p>
<p>The following diagrams illustrates the relationship between different YARN entities modelling flows.</p>
<p><img src="./images/flow_hierarchy.png" alt="Flow Hierarchy" /></p></section></section><section>
<h3><a name="Architecture"></a>Architecture</h3>
<p>YARN Timeline Service v.2 uses a set of collectors (writers) to write data to the backend storage. The collectors are distributed and co-located with the application masters to which they are dedicated. All data that belong to that application are sent to the application level timeline collectors with the exception of the resource manager timeline collector.</p>
<p>For a given application, the application master can write data for the application to the co-located timeline collectors (which is an NM auxiliary service in this release). In addition, node managers of other nodes that are running the containers for the application also write data to the timeline collector on the node that is running the application master.</p>
<p>The resource manager also maintains its own timeline collector. It emits only YARN-generic lifecycle events to keep its volume of writes reasonable.</p>
<p>The timeline readers are separate daemons separate from the timeline collectors, and they are dedicated to serving queries via REST API.</p>
<p>The following diagram illustrates the design at a high level.</p>
<p><img src="./images/timeline_v2.jpg" alt="Timeline Service v.2  architecture" /></p></section><section>
<h3><a name="Current_Status_and_Future_Plans"></a><a name="Current_Status"></a>Current Status and Future Plans</h3>
<p>A complete end-to-end flow of writes and reads is functional, with Apache HBase as the backend. You should be able to start generating data. When enabled, all YARN-generic events are published as well as YARN system metrics such as CPU and memory. Furthermore, some applications including Distributed Shell and MapReduce can write per-framework data to YARN Timeline Service v.2.</p>
<p>The basic mode of accessing data is via REST. The REST API comes with a good number of useful and flexible query patterns (see below for more information). YARN Client has been integrated with ATSv2. This enables fetching application/attempt/container report from TimelineReader if details are not present in ResouceManager.</p>
<p>The collectors (writers) are currently embedded in the node managers as auxiliary services. The resource manager also has its dedicated in-process collector. The reader is currently a single instance. Currently, it is not possible to write to Timeline Service outside the context of a YARN application (i.e. no off-cluster client).</p>
<p>Kerberos Authentication is supported end to end. All communication to HBase can be kerberized. Refer <a href="#Security_Configuration">Security Configuration</a> for configs. Support for simple authorization has been added in terms of a configurable whitelist of users and groups who can read timeline data. Cluster admins are allowed by default to read timeline data.</p>
<p>When YARN Timeline Service v.2 is disabled, one can expect no functional or performance impact on any other existing functionality.</p>
<p>Road map includes</p>
<ul>

<li>More robust storage fault tolerance.</li>
<li>Support for off-cluster clients</li>
<li>Support for entity ACLs</li>
<li>Offline (time-based periodic) aggregation for flows, users, and queues for reporting and analysis</li>
<li>Migration and compatibility with v.1</li>
</ul></section></section><section>
<h2><a name="Deployment"></a>Deployment</h2><section>
<h3><a name="Configurations"></a>Configurations</h3>
<p>New configuration parameters that are introduced with v.2 are marked bold.</p><section>
<h4><a name="Basic_configuration"></a>Basic configuration</h4>
<table border="0" class="bodyTable">
<thead>

<tr class="a">
<th align="left"> Configuration Property </th>
<th align="left"> Description </th></tr>
</thead><tbody>

<tr class="b">
<td align="left"> <code>yarn.timeline-service.enabled</code> </td>
<td align="left"> Indicate to clients whether Timeline service is enabled or not. If enabled, the <code>TimelineClient</code> library used by applications will post entities and events to the Timeline server. Defaults to <code>false</code>. </td></tr>
<tr class="a">
<td align="left"> <code>yarn.timeline-service.version</code> </td>
<td align="left"> Indicate what is the current version of the running timeline service. For example, if &#x201c;yarn.timeline-service.version&#x201d; is 1.5, and &#x201c;yarn.timeline-service.enabled&#x201d; is true, it means the cluster will and must bring up the timeline service v.1.5 (and nothing else). On the client side, if the client uses the same version of timeline service, it must succeed. If the client chooses to use a smaller version in spite of this, then depending on how robust the compatibility story is between versions, the results may vary. Defaults to <code>1.0f</code>. </td></tr>
<tr class="b">
<td align="left"> <b><code>yarn.timeline-service.writer.class</code></b> </td>
<td align="left"> The class for the backend storage writer. Defaults to HBase storage writer. </td></tr>
<tr class="a">
<td align="left"> <b><code>yarn.timeline-service.reader.class</code></b> </td>
<td align="left"> The class for the backend storage reader. Defaults to HBase storage reader. </td></tr>
<tr class="b">
<td align="left"> <b><code>yarn.system-metrics-publisher.enabled</code></b> </td>
<td align="left"> The setting that controls whether yarn system metrics is published on the Timeline service or not by RM And NM. Defaults to <code>false</code>. </td></tr>
<tr class="a">
<td align="left"> <b><code>yarn.timeline-service.schema.prefix</code></b> </td>
<td align="left"> The schema prefix for hbase tables. Defaults to &#x201c;prod.&#x201d;. </td></tr>
</tbody>
</table></section><section>
<h4><a name="Advanced_configuration"></a>Advanced configuration</h4>
<table border="0" class="bodyTable">
<thead>

<tr class="a">
<th align="left"> Configuration Property </th>
<th align="left"> Description </th></tr>
</thead><tbody>

<tr class="b">
<td align="left"> <code>yarn.timeline-service.hostname</code> </td>
<td align="left"> The hostname of the Timeline service web application. Defaults to <code>0.0.0.0</code> </td></tr>
<tr class="a">
<td align="left"> <code>yarn.timeline-service.reader.webapp.address</code> </td>
<td align="left"> The http address of the Timeline Reader web application. Defaults to <code>${yarn.timeline-service.hostname}:8188</code>. </td></tr>
<tr class="b">
<td align="left"> <code>yarn.timeline-service.reader.webapp.https.address</code> </td>
<td align="left"> The https address of the Timeline Reader web application. Defaults to <code>${yarn.timeline-service.hostname}:8190</code>. </td></tr>
<tr class="a">
<td align="left"> <code>yarn.timeline-service.reader.bind-host</code> </td>
<td align="left"> The actual address the timeline reader will bind to. If this optional address is set, reader server will bind to this address and the port specified in yarn.timeline-service.reader.webapp.address. This is most useful for making the service listen on all interfaces by setting to 0.0.0.0. </td></tr>
<tr class="b">
<td align="left"> <b><code>yarn.timeline-service.hbase.configuration.file</code></b> </td>
<td align="left"> Optional URL to an hbase-site.xml configuration file to be used to connect to the timeline-service hbase cluster. If empty or not specified, then the HBase configuration will be loaded from the classpath. When specified the values in the specified configuration file will override those from the ones that are present on the classpath. Defaults to <code>null</code>. </td></tr>
<tr class="a">
<td align="left"> <b><code>yarn.timeline-service.writer.flush-interval-seconds</code></b> </td>
<td align="left"> The setting that controls how often the timeline collector flushes the timeline writer. Defaults to <code>60</code>. </td></tr>
<tr class="b">
<td align="left"> <b><code>yarn.timeline-service.app-collector.linger-period.ms</code></b> </td>
<td align="left"> Time period till which the application collector will be alive in NM, after the application master container finishes. Defaults to <code>60000</code> (60 seconds). </td></tr>
<tr class="a">
<td align="left"> <b><code>yarn.timeline-service.timeline-client.number-of-async-entities-to-merge</code></b> </td>
<td align="left"> Time line V2 client tries to merge these many number of async entities (if available) and then call the REST ATS V2 API to submit. Defaults to <code>10</code>. </td></tr>
<tr class="b">
<td align="left"> <b><code>yarn.timeline-service.hbase.coprocessor.app-final-value-retention-milliseconds</code></b> </td>
<td align="left"> The setting that controls how long the final value of a metric of a completed app is retained before merging into the flow sum. Defaults to <code>259200000</code> (3 days). This should be set in the HBase cluster. </td></tr>
<tr class="a">
<td align="left"> <b><code>yarn.rm.system-metrics-publisher.emit-container-events</code></b> </td>
<td align="left"> The setting that controls whether yarn container metrics is published to the timeline server or not by RM. This configuration setting is for ATS V2. Defaults to <code>false</code>. </td></tr>
<tr class="b">
<td align="left"> <b><code>yarn.nodemanager.emit-container-events</code></b> </td>
<td align="left"> The setting that controls whether yarn container metrics is published to the timeline server or not by NM. This configuration setting is for ATS V2. Defaults to <code>true</code>. </td></tr>
</tbody>
</table></section><section>
<h4><a name="Security_Configuration"></a>Security Configuration</h4>
<p>Security can be enabled by setting <code>yarn.timeline-service.http-authentication.type</code> to <code>kerberos</code>, after which the following configuration options are available:</p>
<table border="0" class="bodyTable">
<thead>

<tr class="a">
<th align="left"> Configuration Property </th>
<th align="left"> Description </th></tr>
</thead><tbody>

<tr class="b">
<td align="left"> <code>yarn.timeline-service.http-authentication.type</code> </td>
<td align="left"> Defines authentication used for the timeline server(collector/reader) HTTP endpoint. Supported values are: <code>simple</code> / <code>kerberos</code> / #AUTHENTICATION_HANDLER_CLASSNAME#. Defaults to <code>simple</code>. </td></tr>
<tr class="a">
<td align="left"> <code>yarn.timeline-service.http-authentication.simple.anonymous.allowed</code> </td>
<td align="left"> Indicates if anonymous requests are allowed by the timeline server when using &#x2018;simple&#x2019; authentication. Defaults to <code>true</code>. </td></tr>
<tr class="b">
<td align="left"> <code>yarn.timeline-service.http-authentication.kerberos.principal</code> </td>
<td align="left"> The Kerberos principal to be used for the Timeline Server(Collector/Reader) HTTP endpoint. </td></tr>
<tr class="a">
<td align="left"> <code>yarn.timeline-service.http-authentication.kerberos.keytab</code> </td>
<td align="left"> The Kerberos keytab to be used for the Timeline Server(Collector/Reader) HTTP endpoint.. </td></tr>
<tr class="b">
<td align="left"> <code>yarn.timeline-service.principal</code> </td>
<td align="left"> The Kerberos principal for the timeline reader. NM principal would be used for timeline collector as it runs as an auxiliary service inside NM. </td></tr>
<tr class="a">
<td align="left"> <code>yarn.timeline-service.keytab</code> </td>
<td align="left"> The Kerberos keytab for the timeline reader. NM keytab would be used for timeline collector as it runs as an auxiliary service inside NM. </td></tr>
<tr class="b">
<td align="left"> <code>yarn.timeline-service.delegation.key.update-interval</code> </td>
<td align="left"> Defaults to <code>86400000</code> (1 day). </td></tr>
<tr class="a">
<td align="left"> <code>yarn.timeline-service.delegation.token.renew-interval</code> </td>
<td align="left"> Defaults to <code>86400000</code> (1 day). </td></tr>
<tr class="b">
<td align="left"> <code>yarn.timeline-service.delegation.token.max-lifetime</code> </td>
<td align="left"> Defaults to <code>604800000</code> (7 days). </td></tr>
<tr class="a">
<td align="left"> <code>yarn.timeline-service.read.authentication.enabled</code> </td>
<td align="left"> Enables or disables authorization checks for reading timeline service v2 data. Default is <code>false</code> which is disabled. </td></tr>
<tr class="b">
<td align="left"> <code>yarn.timeline-service.read.allowed.users</code> </td>
<td align="left"> Comma separated list of user, followed by space, then comma separated list of groups. It will allow this list of users and groups to read the data and reject everyone else. Default value is set to none. If authorization is enabled, then this configuration is mandatory.  </td></tr>
<tr class="a">
<td align="left"> <code>yarn.webapp.filter-entity-list-by-user</code> </td>
<td align="left"> Default is false. If set true and yarn.timeline-service.read.authentication.enabled is disabled, then listing of entities restricted to remote user entities only. It is YARN common configuration for listing APIs. Using this configuration TimelineReader authorize caller UGI with entity owner. If does not match, those entities will be removed from response.</td></tr>
</tbody>
</table></section><section>
<h4><a name="Enabling_CORS_support"></a>Enabling CORS support</h4>
<p>To enable cross-origin support (CORS) for the Timeline Service v.2, please set the following configuration parameters:</p>
<p>In yarn-site.xml, set yarn.timeline-service.http-cross-origin.enabled to true.</p>
<p>In core-site.xml, add org.apache.hadoop.security.HttpCrossOriginFilterInitializer to hadoop.http.filter.initializers.</p>
<p>For more configurations used for cross-origin support, refer to <a href="../../hadoop-project-dist/hadoop-common/HttpAuthentication.html#CORS">HttpAuthentication</a>. Please note that yarn.timeline-service.http-cross-origin.enabled, if set to true, overrides hadoop.http.cross-origin.enabled.</p></section></section><section>
<h3><a name="Enabling_Timeline_Service_v.2"></a><a name="Enabling_Timeline_Service_v2"></a>Enabling Timeline Service v.2</h3><section>
<h4><a name="Preparing_Apache_HBase_cluster_for_storage"></a>Preparing Apache HBase cluster for storage</h4>
<p>There are a few steps to be done for preparing the storage for Timeline Service v.2:</p>
<p>Step 1) <a href="#Set_up_the_HBase_cluster">Set up the HBase cluster</a></p>
<p>Step 2) <a href="#Enable_the_coprocessor">Enable the coprocessor</a></p>
<p>Step 3) <a href="#Create_schema">Create the schema for Timeline Service v.2</a></p>
<p>Each step is explained in more detail below.</p><section>
<h5><a name="Step_1.29_Set_up_the_HBase_cluster"></a><a name="Set_up_the_HBase_cluster"> </a>Step 1) Set up the HBase cluster</h5>
<p>The first part is to set up or pick an Apache HBase cluster to use as the storage cluster. The supported versions of Apache HBase are 1.2.6 (default) and 2.0.0-beta1. The 1.0.x versions do not work with Timeline Service v.2. By default, Hadoop releases are built with HBase 1.2.6. To use HBase 2.0.0-beta1, build from source with option -Dhbase.profile=2.0</p>
<p>HBase has different deployment modes. Refer to the HBase book for understanding them and pick a mode that is suitable for your setup. (<a class="externalLink" href="http://hbase.apache.org/book.html#standalone_dist">http://hbase.apache.org/book.html#standalone_dist</a>)</p></section><section>
<h5><a name="Simple_deployment_for_HBase"></a>Simple deployment for HBase</h5>
<p>If you are intent on a simple deploy profile for the Apache HBase cluster where the data loading is light but the data needs to persist across node comings and goings, you could consider the &#x201c;Standalone HBase over HDFS&#x201d; deploy mode.</p>
<p>This is a useful variation on the standalone HBase setup and has all HBase daemons running inside one JVM but rather than persisting to the local filesystem, it persists to an HDFS instance. Writing to HDFS where data is replicated ensures that data is persisted across node comings and goings. To configure this standalone variant, edit your <code>hbase-site.xml</code> setting the <code>hbase.rootdir</code> to point at a directory in your HDFS instance but then set <code>hbase.cluster.distributed</code> to false. For example:</p>

<div class="source">
<div class="source">
<pre>&lt;configuration&gt;
  &lt;property&gt;
    &lt;name&gt;hbase.rootdir&lt;/name&gt;
    &lt;value&gt;hdfs://namenode.example.org:8020/hbase&lt;/value&gt;
  &lt;/property&gt;
  &lt;property&gt;
    &lt;name&gt;hbase.cluster.distributed&lt;/name&gt;
    &lt;value&gt;false&lt;/value&gt;
  &lt;/property&gt;
&lt;/configuration&gt;
</pre></div></div>

<p>For more details on this mode, refer to <a class="externalLink" href="http://hbase.apache.org/book.html#standalone.over.hdfs">http://hbase.apache.org/book.html#standalone.over.hdfs</a> .</p>
<p>Once you have an Apache HBase cluster ready to use, perform the following steps.</p></section><section>
<h5><a name="Step_2.29_Enable_the_coprocessor"></a><a name="Enable_the_coprocessor"> </a>Step 2) Enable the coprocessor</h5>
<p>In this version, the coprocessor is loaded dynamically (table coprocessor for the <code>flowrun</code> table).</p>
<p>Copy the timeline service jar to HDFS from where HBase can load it. It is needed for the <code>flowrun</code> table creation in the schema creator. The default HDFS location is <code>/hbase/coprocessor</code>. For example,</p>

<div class="source">
<div class="source">
<pre>hadoop fs -mkdir /hbase/coprocessor
hadoop fs -put hadoop-yarn-server-timelineservice-hbase-coprocessor-3.2.0-SNAPSHOT.jar
       /hbase/coprocessor/hadoop-yarn-server-timelineservice.jar
</pre></div></div>

<p>If you want to place the jar at a different location on hdfs, there also exists a yarn configuration setting called <code>yarn.timeline-service.hbase.coprocessor.jar.hdfs.location</code>. For example,</p>

<div class="source">
<div class="source">
<pre>&lt;property&gt;
  &lt;name&gt;yarn.timeline-service.hbase.coprocessor.jar.hdfs.location&lt;/name&gt;
  &lt;value&gt;/custom/hdfs/path/jarName&lt;/value&gt;
&lt;/property&gt;
</pre></div></div>
</section><section>
<h5><a name="Step_3.29_Create_the_timeline_service_schema"></a><a name="Create_schema"> </a>Step 3) Create the timeline service schema</h5>
<p>The schema creation can be run on the hbase cluster which is going to store the timeline service tables. The schema creator tool requires both the timelineservice-hbase as well as the hbase-server jars. Hence, during schema creation, you need to ensure that the hbase classpath contains the yarn-timelineservice-hbase jar.</p>
<p>On the hbase cluster, you can get it from hdfs since we placed it there for the coprocessor in the step above.</p>

<div class="source">
<div class="source">
<pre>   hadoop fs -get /hbase/coprocessor/hadoop-yarn-server-timelineservice-hbase-client-${project.version}.jar &lt;local-dir&gt;/.
   hadoop fs -get /hbase/coprocessor/hadoop-yarn-server-timelineservice-${project.version}.jar &lt;local-dir&gt;/.
   hadoop fs -get /hbase/coprocessor/hadoop-yarn-server-timelineservice-hbase-common-${project.version}.jar &lt;local-dir&gt;/.
</pre></div></div>

<p>Next, add it to the hbase classpath as follows:</p>

<div class="source">
<div class="source">
<pre>   export HBASE_CLASSPATH=$HBASE_CLASSPATH:/home/yarn/hadoop-current/share/hadoop/yarn/timelineservice/hadoop-yarn-server-timelineservice-hbase-client-${project.version}.jar
   export HBASE_CLASSPATH=$HBASE_CLASSPATH:/home/yarn/hadoop-current/share/hadoop/yarn/timelineservice/hadoop-yarn-server-timelineservice-${project.version}.jar
   export HBASE_CLASSPATH=$HBASE_CLASSPATH:/home/yarn/hadoop-current/share/hadoop/yarn/timelineservice/hadoop-yarn-server-timelineservice-hbase-common-${project.version}.jar
</pre></div></div>

<p>Finally, run the schema creator tool to create the necessary tables:</p>

<div class="source">
<div class="source">
<pre>    bin/hbase org.apache.hadoop.yarn.server.timelineservice.storage.TimelineSchemaCreator -create
</pre></div></div>

<p>The <code>TimelineSchemaCreator</code> tool supports a few options that may come handy especially when you are testing. For example, you can use <code>-skipExistingTable</code> (<code>-s</code> for short) to skip existing tables and continue to create other tables rather than failing the schema creation. By default, the tables will have a schema prefix of &#x201c;prod.&#x201d;. When no option or &#x2018;-help&#x2019; (&#x2018;-h&#x2019; for short) is provided, the command usage is printed. The options (-entityTableName, -appToflowTableName, -applicationTableName, -subApplicationTableName) will help to override the default table names. On using custom table names, The below corresponding configs with custom table name has to be set in hbase-site.xml configured at yarn.timeline-service.hbase.configuration.file.</p>

<div class="source">
<div class="source">
<pre>yarn.timeline-service.app-flow.table.name
yarn.timeline-service.entity.table.name
yarn.timeline-service.application.table.name
yarn.timeline-service.subapplication.table.name
yarn.timeline-service.flowactivity.table.name
yarn.timeline-service.flowrun.table.name
yarn.timeline-service.domain.table.name

</pre></div></div>
</section></section><section>
<h4><a name="Enabling_Timeline_Service_v.2"></a>Enabling Timeline Service v.2</h4>
<p>Following are the basic configurations to start Timeline service v.2:</p>

<div class="source">
<div class="source">
<pre>&lt;property&gt;
  &lt;name&gt;yarn.timeline-service.version&lt;/name&gt;
  &lt;value&gt;2.0f&lt;/value&gt;
&lt;/property&gt;

&lt;property&gt;
  &lt;name&gt;yarn.timeline-service.enabled&lt;/name&gt;
  &lt;value&gt;true&lt;/value&gt;
&lt;/property&gt;

&lt;property&gt;
  &lt;name&gt;yarn.nodemanager.aux-services&lt;/name&gt;
  &lt;value&gt;mapreduce_shuffle,timeline_collector&lt;/value&gt;
&lt;/property&gt;

&lt;property&gt;
  &lt;name&gt;yarn.nodemanager.aux-services.timeline_collector.class&lt;/name&gt;
  &lt;value&gt;org.apache.hadoop.yarn.server.timelineservice.collector.PerNodeTimelineCollectorsAuxService&lt;/value&gt;
&lt;/property&gt;

&lt;property&gt;
  &lt;description&gt;The setting that controls whether yarn system metrics is
  published on the Timeline service or not by RM And NM.&lt;/description&gt;
  &lt;name&gt;yarn.system-metrics-publisher.enabled&lt;/name&gt;
  &lt;value&gt;true&lt;/value&gt;
&lt;/property&gt;
</pre></div></div>

<p>If using an aux services manifest instead of setting aux services through the Configuration, ensure that the manifest services array includes the timeline_collector service as follows:</p>

<div class="source">
<div class="source">
<pre>{
  &quot;services&quot;: [
    {
      &quot;name&quot;: &quot;timeline_collector&quot;,
      &quot;configuration&quot;: {
        &quot;properties&quot;: {
          &quot;class.name&quot;: &quot;org.apache.hadoop.yarn.server.timelineservice.collector.PerNodeTimelineCollectorsAuxService&quot;
        }
      }
    }
  ]
}
</pre></div></div>

<p>In addition, you may want to set the YARN cluster name to a reasonably unique value in case you are using multiple clusters to store data in the same Apache HBase storage:</p>

<div class="source">
<div class="source">
<pre>&lt;property&gt;
  &lt;name&gt;yarn.resourcemanager.cluster-id&lt;/name&gt;
  &lt;value&gt;my_research_test_cluster&lt;/value&gt;
&lt;/property&gt;
</pre></div></div>

<p>Also, add the <code>hbase-site.xml</code> configuration file to the client Hadoop cluster configuration so that it can write data to the Apache HBase cluster you are using, or set <code>yarn.timeline-service.hbase.configuration.file</code> to the file URL pointing to <code>hbase-site.xml</code> for the same. For example:</p>

<div class="source">
<div class="source">
<pre>&lt;property&gt;
  &lt;description&gt; Optional URL to an hbase-site.xml configuration file to be
  used to connect to the timeline-service hbase cluster. If empty or not
  specified, then the HBase configuration will be loaded from the classpath.
  When specified the values in the specified configuration file will override
  those from the ones that are present on the classpath.
  &lt;/description&gt;
  &lt;name&gt;yarn.timeline-service.hbase.configuration.file&lt;/name&gt;
  &lt;value&gt;file:/etc/hbase/hbase-ats-dc1/hbase-site.xml&lt;/value&gt;
&lt;/property&gt;
</pre></div></div>

<p>To configure both Timeline Service 1.5 and v.2, add the following property</p>

<div class="source">
<div class="source">
<pre>&lt;property&gt;
  &lt;name&gt;yarn.timeline-service.versions&lt;/name&gt;
  &lt;value&gt;1.5f,2.0f&lt;/value&gt;
&lt;/property&gt;
</pre></div></div>

<p>If the above is not configured, then it defaults to the version set in <code>yarn.timeline-service.version</code></p></section><section>
<h4><a name="Running_Timeline_Service_v.2"></a>Running Timeline Service v.2</h4>
<p>Restart the resource manager as well as the node managers to pick up the new configuration. The collectors start within the resource manager and the node managers in an embedded manner.</p>
<p>The Timeline Service reader is a separate YARN daemon, and it can be started using the following syntax:</p>

<div class="source">
<div class="source">
<pre>$ yarn-daemon.sh start timelinereader
</pre></div></div>
</section><section>
<h4><a name="Enabling_MapReduce_to_write_to_Timeline_Service_v.2"></a>Enabling MapReduce to write to Timeline Service v.2</h4>
<p>To write MapReduce framework data to Timeline Service v.2, enable the following configuration in <code>mapred-site.xml</code>:</p>

<div class="source">
<div class="source">
<pre>&lt;property&gt;
  &lt;name&gt;mapreduce.job.emit-timeline-data&lt;/name&gt;
  &lt;value&gt;true&lt;/value&gt;
&lt;/property&gt;
</pre></div></div>
</section></section><section>
<h3><a name="Upgrade_from_alpha1_to_GA"></a>Upgrade from alpha1 to GA</h3>
<p>If you are currently running Timeline Service v2 alpha1 version, we recommend the following:</p>
<ul>

<li>

<p>Clear existing data in tables (truncate tables) since the row key for AppToFlow has changed.</p>
</li>
<li>

<p>The coprocessor is now a dynamically loaded table level coprocessor in GA. We recommend dropping the table, replacing the coprocessor jar on hdfs with the GA one, restarting the Region servers and recreating the <code>flowrun</code> table.</p>
</li>
</ul></section><section>
<h3><a name="Publishing_application_specific_data"></a><a name="Publishing_of_application_specific_data"></a> Publishing application specific data</h3>
<p>This section is for YARN application developers that want to integrate with Timeline Service v.2.</p>
<p>Developers need to use the <code>TimelineV2Client</code> API to publish per-framework data to the Timeline Service v.2. The entity/object API for v.2 is different than v.1 as the object model is significantly changed. The v.2 timeline entity class is <code>org.apache.hadoop.yarn.api.records.timelineservice.TimelineEntity</code>.</p>
<p>Timeline Service v.2 <code>putEntities</code> methods come in 2 varieties: <code>putEntities</code> and <code>putEntitiesAsync</code>. The former is a blocking operation which must be used for writing more critical data (e.g. lifecycle events). The latter is a non-blocking operation. Note that neither has a return value.</p>
<p>Creating a <code>TimelineV2Client</code> involves passing in the application id to the static method <code>TimelineV2Client.createTimelineClient</code>.</p>
<p>For example:</p>

<div class="source">
<div class="source">
<pre>// Create and start the Timeline client v.2
TimelineV2Client timelineClient =
    TimelineV2Client.createTimelineClient(appId);
timelineClient.init(conf);
timelineClient.start();

try {
  TimelineEntity myEntity = new TimelineEntity();
  myEntity.setType(&quot;MY_APPLICATION&quot;);
  myEntity.setId(&quot;MyApp1&quot;);
  // Compose other entity info

  // Blocking write
  timelineClient.putEntities(myEntity);

  TimelineEntity myEntity2 = new TimelineEntity();
  // Compose other info

  // Non-blocking write
  timelineClient.putEntitiesAsync(myEntity2);

} catch (IOException | YarnException e) {
  // Handle the exception
} finally {
  // Stop the Timeline client
  timelineClient.stop();
}
</pre></div></div>

<p>As evidenced above, you need to specify the YARN application id to be able to write to the Timeline Service v.2. Note that currently you need to be on the cluster to be able to write to the Timeline Service. For example, an application master or code in the container can write to the Timeline Service, while an off-cluster MapReduce job submitter cannot.</p>
<p>After creating the timeline v2 client, user also needs to set the timeline collector info which contains the collector address and collector token(only in secure mode) for the application. If <code>AMRMClient</code> is used then by registering the timeline client by calling <code>AMRMClient#registerTimelineV2Client</code> is sufficient.</p>

<div class="source">
<div class="source">
<pre>amRMClient.registerTimelineV2Client(timelineClient)&#x37e;
</pre></div></div>

<p>Else address needs to be retrieved from the AM allocate response and need to be set in timeline client explicitly.</p>

<div class="source">
<div class="source">
<pre>timelineClient.setTimelineCollectorInfo(response.getCollectorInfo());
</pre></div></div>

<p>You can create and publish your own entities, events, and metrics as with previous versions.</p>
<p>TimelineEntity objects have the following fields to hold timeline data:</p>
<ul>

<li>events: A set of TimelineEvents, ordered by the timestamp of the events in descending order. Each event contains one id and a map to store related information and is associated with one timestamp.</li>
<li>configs: A map from a string (config name) to a string (config value) representing all configs associated with the entity. Users can post the whole config or a part of it in the configs field. Supported for application and generic entities.</li>
<li>metrics: A set of metrics related to this entity. There are two types of metrics: single value metric and time series metric. Each metric item contains metric name (id), value, and what kind of aggregation operation should be performed in this metric (no&#xad;op by default). Supported for flow run, application and generic entities.</li>
<li>info: A map from a string (info key name) to an object (info value) to hold up related information for this entity. Supported for application and generic entities.</li>
<li>isrelatedtoEntities and relatestoEntities: It is also possible to represent relationships between entities. Each entity contains a relatestoEntities and isrelatedtoEntities fields to represent relationships to other entities. Both fields are represented by a map from a string (the name of the relationship) to a timeline entity. In this way relationships among entities can be represented as a DAG.</li>
</ul>
<p>Note that when posting timeline metrics, one may choose how each metric should be aggregated through the <code>TimelineMetric#setRealtimeAggregationOp()</code> method. The word &#x201c;aggregate&#x201d; here means applying one of the <code>TimelineMetricOperation</code> for a set of entities. Timeline service v2 provides built-in application level aggregation, which means aggregating metrics from different timeline entities within one YARN application. Right now, there are two kinds of operations supported in <code>TimelineMetricOperation</code>:</p>
<ul>

<li><code>MAX</code>: Getting the maximum value among all <code>TimelineMetric</code> objects.</li>
<li><code>SUM</code>: Getting the sum of all <code>TimelineMetric</code> objects.</li>
</ul>
<p>By default, the <code>NOP</code> operation means not performing any real-time aggregation operation.</p>
<p>Application frameworks must set the &#x201c;flow context&#x201d; whenever possible in order to take advantage of the flow support Timeline Service v.2 provides. The flow context consists of the following:</p>
<ul>

<li>Flow name: a string that identifies the high-level flow (e.g. &#x201c;distributed grep&#x201d; or any identifiable name that can uniquely represent the app)</li>
<li>Flow run id: a monotonically-increasing sequence of numbers that distinguish different runs of the same flow.</li>
<li>(optional) Flow version: a string identifier that denotes a version of the flow. Flow version can be used to identify changes in the flows, such as code changes or script changes.</li>
</ul>
<p>If the flow context is not specified, defaults are supplied for these attributes:</p>
<ul>

<li>Flow name: the YARN application name (or the application id if the name is not set)</li>
<li>Flow run id: the application start time in Unix time (milliseconds)</li>
<li>Flow version: &#x201c;1&#x201d;</li>
</ul>
<p>You can provide the flow context via YARN application tags:</p>

<div class="source">
<div class="source">
<pre>ApplicationSubmissionContext appContext = app.getApplicationSubmissionContext();

// set the flow context as YARN application tags
Set&lt;String&gt; tags = new HashSet&lt;&gt;();
tags.add(TimelineUtils.generateFlowNameTag(&quot;distributed grep&quot;));
tags.add(Timelineutils.generateFlowVersionTag(&quot;3df8b0d6100530080d2e0decf9e528e57c42a90a&quot;));
tags.add(TimelineUtils.generateFlowRunIdTag(System.currentTimeMillis()));

appContext.setApplicationTags(tags);
</pre></div></div>

<p>Note : The Resource Manager converts YARN application tags to lowercase before storing them. Hence one should convert Flow names and Flow versions to lowercase before using them in REST API queries.</p></section></section><section>
<h2><a name="Timeline_Service_v.2_REST_API"></a>Timeline Service v.2 REST API</h2>
<p>Querying Timeline Service v.2 is currently only supported via REST API; there is no API client implemented in the YARN libraries.</p>
<p>The v.2 REST API is implemented at under the path, <code>/ws/v2/timeline/</code> on the Timeline Service web service.</p>
<p>Here is an informal description of the API.</p><section>
<h3><a name="Root_path"></a>Root path</h3>

<div class="source">
<div class="source">
<pre>GET /ws/v2/timeline/
</pre></div></div>

<p>Returns a JSON object describing the service instance and version information.</p>

<div class="source">
<div class="source">
<pre>{
  &quot;About&quot;:&quot;Timeline Reader API&quot;,
  &quot;timeline-service-version&quot;:&quot;3.0.0-alpha1-SNAPSHOT&quot;,
  &quot;timeline-service-build-version&quot;:&quot;3.0.0-alpha1-SNAPSHOT from fb0acd08e6f0b030d82eeb7cbfa5404376313e60 by sjlee source checksum be6cba0e42417d53be16459e1685e7&quot;,
  &quot;timeline-service-version-built-on&quot;:&quot;2016-04-11T23:15Z&quot;,
  &quot;hadoop-version&quot;:&quot;3.0.0-alpha1-SNAPSHOT&quot;,
  &quot;hadoop-build-version&quot;:&quot;3.0.0-alpha1-SNAPSHOT from fb0acd08e6f0b030d82eeb7cbfa5404376313e60 by sjlee source checksum ee968fd0aedcc7384230ee3ca216e790&quot;,
  &quot;hadoop-version-built-on&quot;:&quot;2016-04-11T23:14Z&quot;
}
</pre></div></div>

<p>The following shows the supported queries on the REST API.</p></section><section>
<h3><a name="Query_Flows"></a><a name="REST_API_LIST_FLOWS"></a>Query Flows</h3>
<p>With Query Flows API, you can retrieve a list of active flows that had runs most recently. If the REST endpoint without the cluster name is used, the cluster specified by the configuration <code>yarn.resourcemanager.cluster-id</code> in <code>yarn-site.xml</code> is taken. If none of the flows match the predicates, an empty list will be returned.</p><section>
<h4><a name="HTTP_request:"></a>HTTP request:</h4>

<div class="source">
<div class="source">
<pre>GET /ws/v2/timeline/clusters/{cluster name}/flows/

or

GET /ws/v2/timeline/flows/
</pre></div></div>
</section><section>
<h4><a name="Query_Parameters_Supported:"></a>Query Parameters Supported:</h4>
<ol style="list-style-type: decimal">

<li><code>limit</code> - If specified, defines the number of flows to return. The maximum possible value for limit is maximum value of Long. If it is not specified or has a value less than 0, then limit will be considered as 100.</li>
<li><code>daterange</code> - If specified is given as &#x201c;[startdate]-[enddate]&#x201d;(i.e. start and end date separated by &#x201c;-&#x201d;) or single date. Dates are interpreted in the yyyyMMdd format and are assumed to be in UTC. If a single date is specified, all flows active on that date are returned. If both startdate and enddate is given, all flows active between start and end date will be returned. If only startdate is given, flows active on and after startdate are returned. If only enddate is given, flows active on and before enddate are returned.<br /> <i>For example</i> :<br /> &#x201c;daterange=20150711&#x201d; returns flows active on 20150711.<br /> &#x201c;daterange=20150711-20150714&#x201d; returns flows active between these 2 dates.<br /> &#x201c;daterange=20150711-&#x201d; returns flows active on and after 20150711.<br /> &#x201c;daterange=-20150711&#x201d; returns flows active on and before 20150711.<br /></li>
<li><code>fromid</code> -  If specified, retrieve the next set of flows from the given fromid. The set of entities retrieved is inclusive of specified fromid. fromid should be taken from the value associated with FROM_ID info key in flow entity response which was sent earlier.</li>
</ol></section><section>
<h4><a name="Example_JSON_Response:"></a>Example JSON Response:</h4>

<div class="source">
<div class="source">
<pre>[
  {
    &quot;metrics&quot;: [],
    &quot;events&quot;: [],
    &quot;id&quot;: &quot;test-cluster/1460419200000/sjlee@ds-date&quot;,
    &quot;type&quot;: &quot;YARN_FLOW_ACTIVITY&quot;,
    &quot;createdtime&quot;: 0,
    &quot;flowruns&quot;: [
      {
        &quot;metrics&quot;: [],
        &quot;events&quot;: [],
        &quot;id&quot;: &quot;sjlee@ds-date/1460420305659&quot;,
        &quot;type&quot;: &quot;YARN_FLOW_RUN&quot;,
        &quot;createdtime&quot;: 0,
        &quot;info&quot;: {
          &quot;SYSTEM_INFO_FLOW_VERSION&quot;: &quot;1&quot;,
          &quot;SYSTEM_INFO_FLOW_RUN_ID&quot;: 1460420305659,
          &quot;SYSTEM_INFO_FLOW_NAME&quot;: &quot;ds-date&quot;,
          &quot;SYSTEM_INFO_USER&quot;: &quot;sjlee&quot;
        },
        &quot;isrelatedto&quot;: {},
        &quot;relatesto&quot;: {}
      },
      {
        &quot;metrics&quot;: [],
        &quot;events&quot;: [],
        &quot;id&quot;: &quot;sjlee@ds-date/1460420587974&quot;,
        &quot;type&quot;: &quot;YARN_FLOW_RUN&quot;,
        &quot;createdtime&quot;: 0,
        &quot;info&quot;: {
          &quot;SYSTEM_INFO_FLOW_VERSION&quot;: &quot;1&quot;,
          &quot;SYSTEM_INFO_FLOW_RUN_ID&quot;: 1460420587974,
          &quot;SYSTEM_INFO_FLOW_NAME&quot;: &quot;ds-date&quot;,
          &quot;SYSTEM_INFO_USER&quot;: &quot;sjlee&quot;
        },
        &quot;isrelatedto&quot;: {},
        &quot;relatesto&quot;: {}
      }
    ],
    &quot;info&quot;: {
      &quot;SYSTEM_INFO_CLUSTER&quot;: &quot;test-cluster&quot;,
      &quot;UID&quot;: &quot;test-cluster!sjlee!ds-date&quot;,
      &quot;FROM_ID&quot;: &quot;test-cluster!1460419200000!sjlee!ds-date&quot;,
      &quot;SYSTEM_INFO_FLOW_NAME&quot;: &quot;ds-date&quot;,
      &quot;SYSTEM_INFO_DATE&quot;: 1460419200000,
      &quot;SYSTEM_INFO_USER&quot;: &quot;sjlee&quot;
    },
    &quot;isrelatedto&quot;: {},
    &quot;relatesto&quot;: {}
  }
]
</pre></div></div>
</section><section>
<h4><a name="Response_Codes"></a>Response Codes</h4>
<ol style="list-style-type: decimal">

<li>If successful, a HTTP 200 (OK) response is returned.</li>
<li>If any problem occurs in parsing request, HTTP 400 (Bad Request) is returned.</li>
<li>For non-recoverable errors while retrieving data, HTTP 500 (Internal Server Error) is returned.</li>
</ol></section></section><section>
<h3><a name="Query_Flow_Runs"></a><a name="REST_API_LIST_FLOW_RUNS"></a>Query Flow Runs</h3>
<p>With Query Flow Runs API, you can drill further down to get the runs (specific instances) of a given flow. This returns the most recent runs that belong to the given flow. If the REST endpoint without the cluster name is used, the cluster specified by the configuration <code>yarn.resourcemanager.cluster-id</code> in <code>yarn-site.xml</code> is taken. If none of the flow runs match the predicates, an empty list will be returned.</p><section>
<h4><a name="HTTP_request:"></a>HTTP request:</h4>

<div class="source">
<div class="source">
<pre>GET /ws/v2/timeline/clusters/{cluster name}/users/{user name}/flows/{flow name}/runs/

or

GET /ws/v2/timeline/users/{user name}/flows/{flow name}/runs/
</pre></div></div>
</section><section>
<h4><a name="Query_Parameters_Supported:"></a>Query Parameters Supported:</h4>
<ol style="list-style-type: decimal">

<li><code>limit</code> - If specified, defines the number of flows to return. The maximum possible value for limit is maximum value of Long. If it is not specified or has a value less than 0, then limit will be considered as 100.</li>
<li><code>createdtimestart</code> - If specified, then only flow runs started after this timestamp are returned.</li>
<li><code>createdtimeend</code> -  If specified, then only flow runs started before this timestamp are returned.</li>
<li><code>metricstoretrieve</code> - If specified, defines which metrics to retrieve or which ones not to retrieve and send back in response. metricstoretrieve can be an expression of the form :<br /> (&lt;metricprefix&gt;,&lt;metricprefix&gt;,&lt;metricprefix&gt;,&lt;metricprefix&gt;&#x2026;)<br /> This specifies a comma separated list of metric id prefixes. Only metrics matching any of the prefixes will be retrieved. Brackets are optional for the simple expression. Alternatively, expressions can be of the form :<br /> !(&lt;metricprefix&gt;,&lt;metricprefix&gt;,&lt;metricprefix&gt;,&lt;metricprefix&gt;&#x2026;)<br /> This specifies a comma separated list of metric id prefixes. Only metrics not matching any of the prefixes will be retrieved.<br /> If metricstoretrieve is specified, metrics will be retrieved irrespective of whether <code>METRICS</code> is specified in fields query param or not. Please note that URL unsafe characters such as spaces will have to be suitably encoded.</li>
<li><code>fields</code> - Specifies which fields to retrieve. For querying flow runs, only <code>ALL</code> or <code>METRICS</code> are valid fields. Other fields will lead to HTTP 400 (Bad Request) response. If not specified, in response, id, type, createdtime and info fields will be returned.</li>
<li><code>fromid</code> -  If specified, retrieve the next set of flow run entities from the given fromid. The set of entities retrieved is inclusive of specified fromid. fromid should be taken from the value associated with FROM_ID info key in flow entity response which was sent earlier.</li>
</ol></section><section>
<h4><a name="Example_JSON_Response:"></a>Example JSON Response:</h4>

<div class="source">
<div class="source">
<pre>[
  {
    &quot;metrics&quot;: [],
    &quot;events&quot;: [],
    &quot;id&quot;: &quot;sjlee@ds-date/1460420587974&quot;,
    &quot;type&quot;: &quot;YARN_FLOW_RUN&quot;,
    &quot;createdtime&quot;: 1460420587974,
    &quot;info&quot;: {
      &quot;UID&quot;: &quot;test-cluster!sjlee!ds-date!1460420587974&quot;,
      &quot;FROM_ID&quot;: &quot;test-cluster!sjlee!ds-date!1460420587974&quot;,
      &quot;SYSTEM_INFO_FLOW_RUN_ID&quot;: 1460420587974,
      &quot;SYSTEM_INFO_FLOW_NAME&quot;: &quot;ds-date&quot;,
      &quot;SYSTEM_INFO_FLOW_RUN_END_TIME&quot;: 1460420595198,
      &quot;SYSTEM_INFO_USER&quot;: &quot;sjlee&quot;
    },
    &quot;isrelatedto&quot;: {},
    &quot;relatesto&quot;: {}
  },
  {
    &quot;metrics&quot;: [],
    &quot;events&quot;: [],
    &quot;id&quot;: &quot;sjlee@ds-date/1460420305659&quot;,
    &quot;type&quot;: &quot;YARN_FLOW_RUN&quot;,
    &quot;createdtime&quot;: 1460420305659,
    &quot;info&quot;: {
      &quot;UID&quot;: &quot;test-cluster!sjlee!ds-date!1460420305659&quot;,
      &quot;FROM_ID&quot;: &quot;test-cluster!sjlee!ds-date!1460420305659&quot;,
      &quot;SYSTEM_INFO_FLOW_RUN_ID&quot;: 1460420305659,
      &quot;SYSTEM_INFO_FLOW_NAME&quot;: &quot;ds-date&quot;,
      &quot;SYSTEM_INFO_FLOW_RUN_END_TIME&quot;: 1460420311966,
      &quot;SYSTEM_INFO_USER&quot;: &quot;sjlee&quot;
    },
    &quot;isrelatedto&quot;: {},
    &quot;relatesto&quot;: {}
  }
]
</pre></div></div>
</section><section>
<h4><a name="Response_Codes"></a>Response Codes</h4>
<ol style="list-style-type: decimal">

<li>If successful, a HTTP 200 (OK) response is returned.</li>
<li>If any problem occurs in parsing request or if an invalid field is specified in fields query param, HTTP 400 (Bad Request) is returned.</li>
<li>For non-recoverable errors while retrieving data, HTTP 500 (Internal Server Error) is returned.</li>
</ol></section></section><section>
<h3><a name="Query_Flow_Run"></a><a name="REST_API_LIST_FLOW_RUN"></a>Query Flow Run</h3>
<p>With this API, you can query a specific flow run identified by cluster, user, flow name and run id. If the REST endpoint without the cluster name is used, the cluster specified by the configuration <code>yarn.resourcemanager.cluster-id</code> in <code>yarn-site.xml</code> is taken. Metrics are returned by default while querying individual flow runs.</p><section>
<h4><a name="HTTP_request:"></a>HTTP request:</h4>

<div class="source">
<div class="source">
<pre>GET /ws/v2/timeline/clusters/{cluster name}/users/{user name}/flows/{flow name}/runs/{run id}

or

GET /ws/v2/timeline/users/{user name}/flows/{flow name}/runs/{run id}
</pre></div></div>
</section><section>
<h4><a name="Query_Parameters_Supported:"></a>Query Parameters Supported:</h4>
<ol style="list-style-type: decimal">

<li><code>metricstoretrieve</code> - If specified, defines which metrics to retrieve or which ones not to retrieve and send back in response. metricstoretrieve can be an expression of the form :<br /> (&lt;metricprefix&gt;,&lt;metricprefix&gt;,&lt;metricprefix&gt;,&lt;metricprefix&gt;&#x2026;)<br /> This specifies a comma separated list of metric id prefixes. Only metrics matching any of the prefixes will be retrieved. Brackets are optional for the simple expression. Alternatively, expressions can be of the form :<br /> !(&lt;metricprefix&gt;,&lt;metricprefix&gt;,&lt;metricprefix&gt;,&lt;metricprefix&gt;&#x2026;)<br /> This specifies a comma separated list of metric id prefixes. Only metrics not matching any of the prefixes will be retrieved.<br /> Please note that URL unsafe characters such as spaces will have to be suitably encoded.</li>
</ol></section><section>
<h4><a name="Example_JSON_Response:"></a>Example JSON Response:</h4>

<div class="source">
<div class="source">
<pre>{
  &quot;metrics&quot;: [
    {
      &quot;type&quot;: &quot;SINGLE_VALUE&quot;,
      &quot;id&quot;: &quot;org.apache.hadoop.mapreduce.lib.input.FileInputFormatCounter:BYTES_READ&quot;,
      &quot;aggregationOp&quot;: &quot;NOP&quot;,
      &quot;values&quot;: {
        &quot;1465246377261&quot;: 118
      }
    },
    {
      &quot;type&quot;: &quot;SINGLE_VALUE&quot;,
      &quot;id&quot;: &quot;org.apache.hadoop.mapreduce.lib.output.FileOutputFormatCounter:BYTES_WRITTEN&quot;,
      &quot;aggregationOp&quot;: &quot;NOP&quot;,
      &quot;values&quot;: {
        &quot;1465246377261&quot;: 97
      }
    }
  ],
  &quot;events&quot;: [],
  &quot;id&quot;: &quot;varun@QuasiMonteCarlo/1465246348599&quot;,
  &quot;type&quot;: &quot;YARN_FLOW_RUN&quot;,
  &quot;createdtime&quot;: 1465246348599,
  &quot;isrelatedto&quot;: {},
  &quot;info&quot;: {
    &quot;UID&quot;:&quot;yarn-cluster!varun!QuasiMonteCarlo!1465246348599&quot;,
    &quot;FROM_ID&quot;:&quot;yarn-cluster!varun!QuasiMonteCarlo!1465246348599&quot;,
    &quot;SYSTEM_INFO_FLOW_RUN_END_TIME&quot;:1465246378051,
    &quot;SYSTEM_INFO_FLOW_NAME&quot;:&quot;QuasiMonteCarlo&quot;,
    &quot;SYSTEM_INFO_USER&quot;:&quot;varun&quot;,
    &quot;SYSTEM_INFO_FLOW_RUN_ID&quot;:1465246348599
  },
  &quot;relatesto&quot;: {}
}
</pre></div></div>
</section><section>
<h4><a name="Response_Codes"></a>Response Codes</h4>
<ol style="list-style-type: decimal">

<li>If successful, a HTTP 200(OK) response is returned.</li>
<li>If any problem occurs in parsing request, HTTP 400 (Bad Request) is returned.</li>
<li>If flow run for the given flow run id cannot be found, HTTP 404 (Not Found) is returned.</li>
<li>For non-recoverable errors while retrieving data, HTTP 500 (Internal Server Error) is returned.</li>
</ol></section></section><section>
<h3><a name="Query_Apps_for_a_flow"></a><a name="REST_API_LIST_FLOW_APPS"></a>Query Apps for a flow</h3>
<p>With this API, you can query all the YARN applications that are part of a specific flow. If the REST endpoint without the cluster name is used, the cluster specified by the configuration <code>yarn.resourcemanager.cluster-id</code> in <code>yarn-site.xml</code> is taken. If the number of matching applications are more than the limit, the most recent apps up to the limit will be returned. If none of the apps match the predicates, an empty list will be returned.</p><section>
<h4><a name="HTTP_request:"></a>HTTP request:</h4>

<div class="source">
<div class="source">
<pre>GET /ws/v2/timeline/clusters/{cluster name}/users/{user name}/flows/{flow name}/apps

or

GET /ws/v2/timeline/users/{user name}/flows/{flow name}/apps
</pre></div></div>
</section><section>
<h4><a name="Query_Parameters_Supported:"></a>Query Parameters Supported:</h4>
<ol style="list-style-type: decimal">

<li><code>limit</code> - If specified, defines the number of applications to return. The maximum possible value for limit is maximum value of Long. If it is not specified or has a value less than 0, then limit will be considered as 100.</li>
<li><code>createdtimestart</code> - If specified, then only applications created after this timestamp are returned.</li>
<li><code>createdtimeend</code> -  If specified, then only applications created before this timestamp are returned.</li>
<li><code>relatesto</code> - If specified, matched applications must relate to or not relate to given entities associated with a entity type. relatesto is represented as an expression of the form :<br /> &#x201c;(&lt;entitytype&gt;:&lt;entityid&gt;:&lt;entityid&gt;&#x2026;,&lt;entitytype&gt;:&lt;entityid&gt;:&lt;entityid&gt;&#x2026;) &lt;op&gt; !(&lt;entitytype&gt;:&lt;entityid&gt;:&lt;entityid&gt;&#x2026;,&lt;entitytype&gt;:&lt;entityid&gt;:&lt;entityid&gt;&#x2026;)&#x201d;.<br /> If relatesto expression has entity type - entity id(s) relations specified within enclosing brackets proceeding &#x201c;!&#x201d;, this means apps with these relations in its relatesto field, will not be returned. For expressions or subexpressions without &#x201c;!&#x201d;, all apps which have the specified relations in its relatesto field, will be returned. &#x201c;op&#x201d; is a logical operator and can be either AND or OR. entity type can be followed by any number of entity id(s). And we can combine any number of ANDs&#x2019; and ORs&#x2019; to create complex expressions. Brackets can be used to club expressions together.<br /> <i>For example</i> : relatesto can be &#x201c;(((type1:id1:id2:id3,type3:id9) AND !(type2:id7:id8)) OR (type1:id4))&#x201d;.<br /> Please note that URL unsafe characters such as spaces will have to be suitably encoded.</li>
<li><code>isrelatedto</code> - If specified, matched applications must be related to or not related to given entities associated with a entity type. isrelatedto is represented in the same form as relatesto.</li>
<li><code>infofilters</code> - If specified, matched applications must have exact matches to the given info key and must be either equal or not equal to given value. The info key is a string but value can be any object. infofilters are represented as an expression of the form :<br /> &#x201c;(&lt;key&gt; &lt;compareop&gt; &lt;value&gt;) &lt;op&gt; (&lt;key&gt; &lt;compareop&gt; &lt;value&gt;)&#x201d;.<br /> Here op can be either of AND or OR. And compareop can be either of &#x201c;eq&#x201d;, &#x201c;ne&#x201d; or &#x201c;ene&#x201d;.<br /> &#x201c;eq&#x201d; means equals, &#x201c;ne&#x201d; means not equals and existence of key is not required for a match and &#x201c;ene&#x201d; means not equals but existence of key is required. We can combine any number of ANDs&#x2019; and ORs&#x2019; to create complex expressions.  Brackets can be used to club expressions together.<br /> <i>For example</i> : infofilters can be &#x201c;(((infokey1 eq value1) AND (infokey2 ne value1)) OR (infokey1 ene value3))&#x201d;.<br /> Note : If value is an object then value can be given in the form of JSON format without any space.<br /> <i>For example</i> : infofilters can be (infokey1 eq {&#x201c;&lt;key&gt;&#x201d;:&#x201c;&lt;value&gt;&#x201d;,&#x201c;&lt;key&gt;&#x201d;:&#x201c;&lt;value&gt;&#x201d;&#x2026;}).<br /> Please note that URL unsafe characters such as spaces will have to be suitably encoded.</li>
<li><code>conffilters</code> - If specified, matched applications must have exact matches to the given config name and must be either equal or not equal to the given config value. Both the config name and value must be strings. conffilters are represented in the same form as infofilters.</li>
<li><code>metricfilters</code> - If specified, matched applications must have exact matches to the given metric and satisfy the specified relation with the metric value. Metric id must be a string and metric value must be an integral value.  metricfilters are represented as an expression of the form :<br /> &#x201c;(&lt;metricid&gt; &lt;compareop&gt; &lt;metricvalue&gt;) &lt;op&gt; (&lt;metricid&gt; &lt;compareop&gt; &lt;metricvalue&gt;)&#x201d;.<br /> Here op can be either of AND or OR. And compareop can be either of &#x201c;eq&#x201d;, &#x201c;ne&#x201d;, &#x201c;ene&#x201d;, &#x201c;gt&#x201d;, &#x201c;ge&#x201d;, &#x201c;lt&#x201d; and &#x201c;le&#x201d;.<br /> &#x201c;eq&#x201d; means equals, &#x201c;ne&#x201d; means not equals and existence of metric is not required for a match, &#x201c;ene&#x201d; means not equals but existence of metric is required, &#x201c;gt&#x201d; means greater than, &#x201c;ge&#x201d; means greater than or equals, &#x201c;lt&#x201d; means less than and &#x201c;le&#x201d; means less than or equals. We can combine any number of ANDs&#x2019; and ORs&#x2019; to create complex expressions.  Brackets can be used to club expressions together.<br /> <i>For example</i> : metricfilters can be &#x201c;(((metric1 eq 50) AND (metric2 gt 40)) OR (metric1 lt 20))&#x201d;.<br /> This in essence is an expression equivalent to &#x201c;(metric1 == 50 AND metric2 &gt; 40) OR (metric1 &lt; 20)&#x201d;<br /> Please note that URL unsafe characters such as spaces will have to be suitably encoded.</li>
<li><code>eventfilters</code> - If specified, matched applications must contain or not contain the given events depending on the expression. eventfilters is represented as an expression of the form :<br /> &#x201c;(&lt;eventid&gt;,&lt;eventid&gt;) &lt;op&gt; !(&lt;eventid&gt;,&lt;eventid&gt;,&lt;eventid&gt;)&#x201d;.<br /> Here, &#x201c;!&#x201d; means none of the comma-separated list of events within the enclosed brackets proceeding &#x201c;!&#x201d; must exist for a match to occur. If &#x201c;!&#x201d; is not specified, the specified events within the enclosed brackets must exist. op is a logical operator and can be either AND or OR. We can combine any number of ANDs&#x2019; and ORs&#x2019; to create complex expressions. Brackets can be used to club expressions together.<br /> <i>For example</i> : eventfilters can be &#x201c;(((event1,event2) AND !(event4)) OR (event3,event7,event5))&#x201d;.<br /> Please note that URL unsafe characters such as spaces will have to be suitably encoded.</li>
<li><code>metricstoretrieve</code> - If specified, defines which metrics to retrieve or which ones not to retrieve and send back in response. metricstoretrieve can be an expression of the form :<br /> (&lt;metricprefix&gt;,&lt;metricprefix&gt;,&lt;metricprefix&gt;,&lt;metricprefix&gt;&#x2026;)<br /> This specifies a comma separated list of metric id prefixes. Only metrics matching any of the prefixes will be retrieved. Brackets are optional for the simple expression. Alternatively, expressions can be of the form:<br /> !(&lt;metricprefix&gt;,&lt;metricprefix&gt;,&lt;metricprefix&gt;,&lt;metricprefix&gt;&#x2026;)<br /> This specifies a comma separated list of metric id prefixes. Only metrics not matching any of the prefixes will be retrieved.<br /> If metricstoretrieve is specified, metrics will be retrieved irrespective of whether <code>METRICS</code> is specified in fields query param or not. Please note that URL unsafe characters such as spaces will have to be suitably encoded.</li>
<li><code>confstoretrieve</code> - If specified, defines which configs to retrieve or which ones not to retrieve and send back in response. confstoretrieve can be an expression of the form :<br /> (&lt;config_name_prefix&gt;,&lt;config_name_prefix&gt;,&lt;config_name_prefix&gt;,&lt;config_name_prefix&gt;&#x2026;)<br /> This specifies a comma separated list of config name prefixes. Only configs matching any of the prefixes will be retrieved. Brackets are optional for the simple expression. Alternatively, expressions can be of the form:<br /> !(&lt;config_name_prefix&gt;,&lt;config_name_prefix&gt;,&lt;config_name_prefix&gt;,&lt;config_name_prefix&gt;&#x2026;)<br /> This specifies a comma separated list of config name prefixes. Only configs not matching any of the prefixes will be retrieved.<br /> If confstoretrieve is specified, configs will be retrieved irrespective of whether <code>CONFIGS</code> is specified in fields query param or not. Please note that URL unsafe characters such as spaces will have to be suitably encoded.</li>
<li><code>fields</code> - Specifies which fields to retrieve. Possible values for fields can be <code>EVENTS</code>, <code>INFO</code>, <code>CONFIGS</code>, <code>METRICS</code>, <code>RELATES_TO</code>, <code>IS_RELATED_TO</code> and <code>ALL</code>. All fields will be retrieved if <code>ALL</code> is specified. Multiple fields can be specified as a comma-separated list. If fields is not specified, in response, app id, type (equivalent to YARN_APPLICATION), app createdtime and UID in info field will be returned.</li>
<li><code>metricslimit</code> - If specified, defines the number of metrics to return. Considered only if fields contains METRICS/ALL or metricstoretrieve is specified. Ignored otherwise. The maximum possible value for metricslimit can be maximum value of Integer. If it is not specified or has a value less than 1, and metrics have to be retrieved, then metricslimit will be considered as 1 i.e. latest single value of metric(s) will be returned.</li>
<li><code>metricstimestart</code> - If specified, then metrics for the entity after this timestamp are returned.</li>
<li><code>metricstimeend</code> - If specified, then metrics for the entity before this timestamp are returned.</li>
<li><code>fromid</code> -  If specified, retrieve the next set of application entities from the given fromid. The set of entities retrieved is inclusive of specified fromid. fromid should be taken from the value associated with FROM_ID info key in flow entity response which was sent earlier.</li>
</ol></section><section>
<h4><a name="Example_JSON_Response:"></a>Example JSON Response:</h4>

<div class="source">
<div class="source">
<pre>[
  {
    &quot;metrics&quot;: [ ],
    &quot;events&quot;: [ ],
    &quot;type&quot;: &quot;YARN_APPLICATION&quot;,
    &quot;id&quot;: &quot;application_1465246237936_0001&quot;,
    &quot;createdtime&quot;: 1465246348599,
    &quot;isrelatedto&quot;: { },
    &quot;configs&quot;: { },
    &quot;info&quot;: {
      &quot;UID&quot;: &quot;yarn-cluster!application_1465246237936_0001&quot;
      &quot;FROM_ID&quot;: &quot;yarn-cluster!varun!QuasiMonteCarlo!1465246348599!application_1465246237936_0001&quot;,
    },
    &quot;relatesto&quot;: { }
  },
  {
    &quot;metrics&quot;: [ ],
    &quot;events&quot;: [ ],
    &quot;type&quot;: &quot;YARN_APPLICATION&quot;,
    &quot;id&quot;: &quot;application_1464983628730_0005&quot;,
    &quot;createdtime&quot;: 1465033881959,
    &quot;isrelatedto&quot;: { },
    &quot;configs&quot;: { },
    &quot;info&quot;: {
      &quot;UID&quot;: &quot;yarn-cluster!application_1464983628730_0005&quot;
      &quot;FROM_ID&quot;: &quot;yarn-cluster!varun!QuasiMonteCarlo!1465246348599!application_1464983628730_0005&quot;,
    },
    &quot;relatesto&quot;: { }
  }
]
</pre></div></div>
</section><section>
<h4><a name="Response_Codes"></a>Response Codes</h4>
<ol style="list-style-type: decimal">

<li>If successful, a HTTP 200 (OK) response is returned.</li>
<li>If any problem occurs in parsing request, HTTP 400 (Bad Request) is returned.</li>
<li>For non-recoverable errors while retrieving data, HTTP 500 (Internal Server Error) is returned.</li>
</ol></section></section><section>
<h3><a name="Query_Apps_for_a_flow_run"></a><a name="REST_API_LIST_FLOWRUN_APPS"></a>Query Apps for a flow run</h3>
<p>With this API, you can query all the YARN applications that are part of a specific flow run. If the REST endpoint without the cluster name is used, the cluster specified by the configuration <code>yarn.resourcemanager.cluster-id</code> in <code>yarn-site.xml</code> is taken. If number of matching applications are more than the limit, the most recent apps up to the limit will be returned. If none of the apps match the predicates, an empty list will be returned.</p><section>
<h4><a name="HTTP_request:"></a>HTTP request:</h4>

<div class="source">
<div class="source">
<pre>GET /ws/v2/timeline/clusters/{cluster name}/users/{user name}/flows/{flow name}/runs/{run id}/apps

or

GET /ws/v2/timeline/users/{user name}/flows/{flow name}/runs/{run id}/apps/
</pre></div></div>
</section><section>
<h4><a name="Query_Parameters_Supported:"></a>Query Parameters Supported:</h4>
<ol style="list-style-type: decimal">

<li><code>limit</code> - If specified, defines the number of applications to return. The maximum possible value for limit is maximum value of Long. If it is not specified or has a value less than 0, then limit will be considered as 100.</li>
<li><code>createdtimestart</code> - If specified, then only applications created after this timestamp are returned.</li>
<li><code>createdtimeend</code> -  If specified, then only applications created before this timestamp are returned.</li>
<li><code>relatesto</code> - If specified, matched applications must relate to or not relate to given entities associated with a entity type. relatesto is represented as an expression of the form :<br /> &#x201c;(&lt;entitytype&gt;:&lt;entityid&gt;:&lt;entityid&gt;&#x2026;,&lt;entitytype&gt;:&lt;entityid&gt;:&lt;entityid&gt;&#x2026;) &lt;op&gt; !(&lt;entitytype&gt;:&lt;entityid&gt;:&lt;entityid&gt;&#x2026;,&lt;entitytype&gt;:&lt;entityid&gt;:&lt;entityid&gt;&#x2026;)&#x201d;.<br /> If relatesto expression has entity type - entity id(s) relations specified within enclosing brackets proceeding &#x201c;!&#x201d;, this means apps with these relations in its relatesto field, will not be returned. For expressions or subexpressions without &#x201c;!&#x201d;, all apps which have the specified relations in its relatesto field, will be returned. &#x201c;op&#x201d; is a logical operator and can be either AND or OR. entity type can be followed by any number of entity id(s). And we can combine any number of ANDs&#x2019; and ORs&#x2019; to create complex expressions. Brackets can be used to club expressions together.<br /> <i>For example</i> : relatesto can be &#x201c;(((type1:id1:id2:id3,type3:id9) AND !(type2:id7:id8)) OR (type1:id4))&#x201d;.<br /> Please note that URL unsafe characters such as spaces will have to be suitably encoded.</li>
<li><code>isrelatedto</code> - If specified, matched applications must be related to or not related to given entities associated with a entity type. isrelatedto is represented in the same form as relatesto.</li>
<li><code>infofilters</code> - If specified, matched applications must have exact matches to the given info key and must be either equal or not equal to given value. The info key is a string but value can be any object. infofilters are represented as an expression of the form :<br /> &#x201c;(&lt;key&gt; &lt;compareop&gt; &lt;value&gt;) &lt;op&gt; (&lt;key&gt; &lt;compareop&gt; &lt;value&gt;)&#x201d;.<br /> Here op can be either of AND or OR. And compareop can be either of &#x201c;eq&#x201d;, &#x201c;ne&#x201d; or &#x201c;ene&#x201d;.<br /> &#x201c;eq&#x201d; means equals, &#x201c;ne&#x201d; means not equals and existence of key is not required for a match and &#x201c;ene&#x201d; means not equals but existence of key is required. We can combine any number of ANDs&#x2019; and ORs&#x2019; to create complex expressions.  Brackets can be used to club expressions together.<br /> <i>For example</i> : infofilters can be &#x201c;(((infokey1 eq value1) AND (infokey2 ne value1)) OR (infokey1 ene value3))&#x201d;.<br /> Note : If value is an object then value can be given in the form of JSON format without any space.<br /> <i>For example</i> : infofilters can be (infokey1 eq {&#x201c;&lt;key&gt;&#x201d;:&#x201c;&lt;value&gt;&#x201d;,&#x201c;&lt;key&gt;&#x201d;:&#x201c;&lt;value&gt;&#x201d;&#x2026;}).<br /> Please note that URL unsafe characters such as spaces will have to be suitably encoded.</li>
<li><code>conffilters</code> - If specified, matched applications must have exact matches to the given config name and must be either equal or not equal to the given config value. Both the config name and value must be strings. conffilters are represented in the same form as infofilters.</li>
<li><code>metricfilters</code> - If specified, matched applications must have exact matches to the given metric and satisfy the specified relation with the metric value. Metric id must be a string and metric value must be an integral value.  metricfilters are represented as an expression of the form :<br /> &#x201c;(&lt;metricid&gt; &lt;compareop&gt; &lt;metricvalue&gt;) &lt;op&gt; (&lt;metricid&gt; &lt;compareop&gt; &lt;metricvalue&gt;)&#x201d;.<br /> Here op can be either of AND or OR. And compareop can be either of &#x201c;eq&#x201d;, &#x201c;ne&#x201d;, &#x201c;ene&#x201d;, &#x201c;gt&#x201d;, &#x201c;ge&#x201d;, &#x201c;lt&#x201d; and &#x201c;le&#x201d;.<br /> &#x201c;eq&#x201d; means equals, &#x201c;ne&#x201d; means not equals and existence of metric is not required for a match, &#x201c;ene&#x201d; means not equals but existence of metric is required, &#x201c;gt&#x201d; means greater than, &#x201c;ge&#x201d; means greater than or equals, &#x201c;lt&#x201d; means less than and &#x201c;le&#x201d; means less than or equals. We can combine any number of ANDs&#x2019; and ORs&#x2019; to create complex expressions.  Brackets can be used to club expressions together.<br /> <i>For example</i> : metricfilters can be &#x201c;(((metric1 eq 50) AND (metric2 gt 40)) OR (metric1 lt 20))&#x201d;.<br /> This in essence is an expression equivalent to &#x201c;(metric1 == 50 AND metric2 &gt; 40) OR (metric1 &lt; 20)&#x201d;<br /> Please note that URL unsafe characters such as spaces will have to be suitably encoded.</li>
<li><code>eventfilters</code> - If specified, matched applications must contain or not contain the given events depending on the expression. eventfilters is represented as an expression of the form :<br /> &#x201c;(&lt;eventid&gt;,&lt;eventid&gt;) &lt;op&gt; !(&lt;eventid&gt;,&lt;eventid&gt;,&lt;eventid&gt;)&#x201d;.<br /> Here, &#x201c;!&#x201d; means none of the comma-separated list of events within the enclosed brackets proceeding &#x201c;!&#x201d; must exist for a match to occur. If &#x201c;!&#x201d; is not specified, the specified events within the enclosed brackets must exist. op is a logical operator and can be either AND or OR. We can combine any number of ANDs&#x2019; and ORs&#x2019; to create complex expressions. Brackets can be used to club expressions together.<br /> <i>For example</i> : eventfilters can be &#x201c;(((event1,event2) AND !(event4)) OR (event3,event7,event5))&#x201d;.<br /> Please note that URL unsafe characters such as spaces will have to be suitably encoded.</li>
<li><code>metricstoretrieve</code> - If specified, defines which metrics to retrieve or which ones not to retrieve and send back in response. metricstoretrieve can be an expression of the form :<br /> (&lt;metricprefix&gt;,&lt;metricprefix&gt;,&lt;metricprefix&gt;,&lt;metricprefix&gt;&#x2026;)<br /> This specifies a comma separated list of metric id prefixes. Only metrics matching any of the prefixes will be retrieved. Brackets are optional for the simple expression. Alternatively, expressions can be of the form :<br /> !(&lt;metricprefix&gt;,&lt;metricprefix&gt;,&lt;metricprefix&gt;,&lt;metricprefix&gt;&#x2026;)<br /> This specifies a comma separated list of metric id prefixes. Only metrics not matching any of the prefixes will be retrieved.<br /> If metricstoretrieve is specified, metrics will be retrieved irrespective of whether <code>METRICS</code> is specified in fields query param or not. Please note that URL unsafe characters such as spaces will have to be suitably encoded.</li>
<li><code>confstoretrieve</code> - If specified, defines which configs to retrieve or which ones not to retrieve and send back in response. confstoretrieve can be an expression of the form :<br /> (&lt;config_name_prefix&gt;,&lt;config_name_prefix&gt;,&lt;config_name_prefix&gt;,&lt;config_name_prefix&gt;&#x2026;)<br /> This specifies a comma separated list of config name prefixes. Only configs matching any of the prefixes will be retrieved. Brackets are optional for the simple expression. Alternatively, expressions can be of the form :<br /> !(&lt;config_name_prefix&gt;,&lt;config_name_prefix&gt;,&lt;config_name_prefix&gt;,&lt;config_name_prefix&gt;&#x2026;)<br /> This specifies a comma separated list of config name prefixes. Only configs not matching any of the prefixes will be retrieved.<br /> If confstoretrieve is specified, configs will be retrieved irrespective of whether <code>CONFIGS</code> is specified in fields query param or not. Please note that URL unsafe characters such as spaces will have to be suitably encoded.</li>
<li><code>fields</code> - Specifies which fields to retrieve. Possible values for fields can be <code>EVENTS</code>, <code>INFO</code>, <code>CONFIGS</code>, <code>METRICS</code>, <code>RELATES_TO</code>, <code>IS_RELATED_TO</code> and <code>ALL</code>. All fields will be retrieved if <code>ALL</code> is specified. Multiple fields can be specified as a comma-separated list. If fields is not specified, in response, app id, type (equivalent to YARN_APPLICATION), app createdtime and UID in info field will be returned.</li>
<li><code>metricslimit</code> - If specified, defines the number of metrics to return. Considered only if fields contains METRICS/ALL or metricstoretrieve is specified. Ignored otherwise. The maximum possible value for metricslimit can be maximum value of Integer. If it is not specified or has a value less than 1, and metrics have to be retrieved, then metricslimit will be considered as 1 i.e. latest single value of metric(s) will be returned.</li>
<li><code>metricstimestart</code> - If specified, then metrics for the entity after this timestamp are returned.</li>
<li><code>metricstimeend</code> - If specified, then metrics for the entity before this timestamp are returned.</li>
<li><code>fromid</code> -  If specified, retrieve the next set of application entities from the given fromid. The set of entities retrieved is inclusive of specified fromid. fromid should be taken from the value associated with FROM_ID info key in flow entity response which was sent earlier.</li>
</ol></section><section>
<h4><a name="Example_JSON_Response:"></a>Example JSON Response:</h4>

<div class="source">
<div class="source">
<pre>[
  {
    &quot;metrics&quot;: [],
    &quot;events&quot;: [],
    &quot;id&quot;: &quot;application_1460419579913_0002&quot;,
    &quot;type&quot;: &quot;YARN_APPLICATION&quot;,
    &quot;createdtime&quot;: 1460419580171,
    &quot;info&quot;: {
      &quot;UID&quot;: &quot;test-cluster!sjlee!ds-date!1460419580171!application_1460419579913_0002&quot;
      &quot;FROM_ID&quot;: &quot;test-cluster!sjlee!ds-date!1460419580171!application_1460419579913_0002&quot;,
    },
    &quot;configs&quot;: {},
    &quot;isrelatedto&quot;: {},
    &quot;relatesto&quot;: {}
  }
]
</pre></div></div>
</section><section>
<h4><a name="Response_Codes"></a>Response Codes</h4>
<ol style="list-style-type: decimal">

<li>If successful, a HTTP 200 (OK) response is returned.</li>
<li>If any problem occurs in parsing request, HTTP 400 (Bad Request) is returned.</li>
<li>For non-recoverable errors while retrieving data, HTTP 500 (Internal Server Error) is returned.</li>
</ol></section></section><section>
<h3><a name="Query_app"></a><a name="REST_API_LIST_APP"></a>Query app</h3>
<p>With this API, you can query a single YARN application identified by the cluster and the application ID. If the REST endpoint without the cluster name is used, the cluster specified by the configuration <code>yarn.resourcemanager.cluster-id</code> in <code>yarn-site.xml</code> is taken. Flow context information i.e. user, flow name and run id are not mandatory but if specified in query param can preclude the need for an additional operation to fetch flow context information based on cluster and app id.</p><section>
<h4><a name="HTTP_request:"></a>HTTP request:</h4>

<div class="source">
<div class="source">
<pre>GET /ws/v2/timeline/clusters/{cluster name}/apps/{app id}

or

GET /ws/v2/timeline/apps/{app id}
</pre></div></div>
</section><section>
<h4><a name="Query_Parameters_Supported:"></a>Query Parameters Supported:</h4>
<ol style="list-style-type: decimal">

<li><code>userid</code> -  If specified, only applications belonging to this user will be returned. This query param must be specified along with flowname and flowrunid query params, otherwise it will be ignored. If userid, flowname and flowrunid are not specified, we would have to fetch flow context information based on cluster and appid while executing the query.</li>
<li><code>flowname</code> - Only applications belonging to this flowname will be returned. This query param must be specified along with userid and flowrunid query params, otherwise it will be ignored. If userid, flowname and flowrunid are not specified, we would have to fetch flow context information based on cluster and appid while executing the query.</li>
<li><code>flowrunid</code> - Only applications belonging to this flow run id will be returned. This query param must be specified along with userid and flowname query params, otherwise it will be ignored. If userid, flowname and flowrunid are not specified, we would have to fetch flow context information based on cluster and appid while executing the query.</li>
<li><code>metricstoretrieve</code> - If specified, defines which metrics to retrieve or which ones not to retrieve and send back in response. metricstoretrieve can be an expression of the form :<br /> (&lt;metricprefix&gt;,&lt;metricprefix&gt;,&lt;metricprefix&gt;,&lt;metricprefix&gt;&#x2026;)<br /> This specifies a comma separated list of metric id prefixes. Only metrics matching any of the prefixes will be retrieved. Brackets are optional for the simple expression. Alternatively, expressions can be of the form :<br /> !(&lt;metricprefix&gt;,&lt;metricprefix&gt;,&lt;metricprefix&gt;,&lt;metricprefix&gt;&#x2026;)<br /> This specifies a comma separated list of metric id prefixes. Only metrics not matching any of the prefixes will be retrieved.<br /> If metricstoretrieve is specified, metrics will be retrieved irrespective of whether <code>METRICS</code> is specified in fields query param or not. Please note that URL unsafe characters such as spaces will have to be suitably encoded.</li>
<li><code>confstoretrieve</code> - If specified, defines which configs to retrieve or which ones not to retrieve and send back in response. confstoretrieve can be an expression of the form :<br /> (&lt;config_name_prefix&gt;,&lt;config_name_prefix&gt;,&lt;config_name_prefix&gt;,&lt;config_name_prefix&gt;&#x2026;)<br /> This specifies a comma separated list of config name prefixes. Only configs matching any of the prefixes will be retrieved. Brackets are optional for the simple expression. Alternatively, expressions can be of the form :<br /> !(&lt;config_name_prefix&gt;,&lt;config_name_prefix&gt;,&lt;config_name_prefix&gt;,&lt;config_name_prefix&gt;&#x2026;)<br /> This specifies a comma separated list of config name prefixes. Only configs not matching any of the prefixes will be retrieved.<br /> If confstoretrieve is specified, configs will be retrieved irrespective of whether <code>CONFIGS</code> is specified in fields query param or not. Please note that URL unsafe characters such as spaces will have to be suitably encoded.</li>
<li><code>fields</code> - Specifies which fields to retrieve. Possible values for fields can be <code>EVENTS</code>, <code>INFO</code>, <code>CONFIGS</code>, <code>METRICS</code>, <code>RELATES_TO</code>, <code>IS_RELATED_TO</code> and <code>ALL</code>. All fields will be retrieved if <code>ALL</code> is specified. Multiple fields can be specified as a comma-separated list. If fields is not specified, in response, app id, type (equivalent to YARN_APPLICATION), app createdtime and UID in info field will be returned.</li>
<li><code>metricslimit</code> - If specified, defines the number of metrics to return. Considered only if fields contains METRICS/ALL or metricstoretrieve is specified. Ignored otherwise. The maximum possible value for metricslimit can be maximum value of Integer. If it is not specified or has a value less than 1, and metrics have to be retrieved, then metricslimit will be considered as 1 i.e. latest single value of metric(s) will be returned.</li>
<li><code>metricstimestart</code> - If specified, then metrics for the entity after this timestamp are returned.</li>
<li><code>metricstimeend</code> - If specified, then metrics for the entity before this timestamp are returned.</li>
</ol></section><section>
<h4><a name="Example_JSON_Response:"></a>Example JSON Response:</h4>

<div class="source">
<div class="source">
<pre>{
  &quot;metrics&quot;: [],
  &quot;events&quot;: [],
  &quot;id&quot;: &quot;application_1460419579913_0002&quot;,
  &quot;type&quot;: &quot;YARN_APPLICATION&quot;,
  &quot;createdtime&quot;: 1460419580171,
  &quot;info&quot;: {
    &quot;UID&quot;: &quot;test-cluster!sjlee!ds-date!1460419580171!application_1460419579913_0002&quot;
  },
  &quot;configs&quot;: {},
  &quot;isrelatedto&quot;: {},
  &quot;relatesto&quot;: {}
}
</pre></div></div>
</section><section>
<h4><a name="Response_Codes"></a>Response Codes</h4>
<ol style="list-style-type: decimal">

<li>If successful, a HTTP 200(OK) response is returned.</li>
<li>If any problem occurs in parsing request, HTTP 400 (Bad Request) is returned.</li>
<li>If flow context information cannot be retrieved or application for the given app id cannot be found, HTTP 404 (Not Found) is returned.</li>
<li>For non-recoverable errors while retrieving data, HTTP 500 (Internal Server Error) is returned.</li>
</ol></section></section><section>
<h3><a name="Query_generic_entities_with_in_the_scope_of_Application"></a><a name="REST_API_LIST_ENTITIES_WITH_IN_SCOPE_OF_APPLICATION"></a>Query generic entities with in the scope of Application</h3>
<p>With this API, you can query generic entities identified by cluster ID, application ID and per-framework entity type. If the REST endpoint without the cluster name is used, the cluster specified by the configuration <code>yarn.resourcemanager.cluster-id</code> in <code>yarn-site.xml</code> is taken. Flow context information i.e. user, flow name and run id are not mandatory but if specified in query param can preclude the need for an additional operation to fetch flow context information based on cluster and app id.  If number of matching entities are more than the limit, the most recent entities up to the limit will be returned. This endpoint can be used to query containers, application attempts or any other generic entity which clients put into the backend. For instance, we can query containers by specifying entity type as <code>YARN_CONTAINER</code> and application attempts by specifying entity type as <code>YARN_APPLICATION_ATTEMPT</code>. If none of the entities match the predicates, an empty list will be returned.</p><section>
<h4><a name="HTTP_request:"></a>HTTP request:</h4>

<div class="source">
<div class="source">
<pre>GET /ws/v2/timeline/clusters/{cluster name}/apps/{app id}/entities/{entity type}

or

GET /ws/v2/timeline/apps/{app id}/entities/{entity type}
</pre></div></div>
</section><section>
<h4><a name="Query_Parameters_Supported:"></a>Query Parameters Supported:</h4>
<ol style="list-style-type: decimal">

<li><code>userid</code> -  If specified, only entities belonging to this user will be returned. This query param must be specified along with flowname and flowrunid query params, otherwise it will be ignored. If userid, flowname and flowrunid are not specified, we would have to fetch flow context information based on cluster and appid while executing the query.</li>
<li><code>flowname</code> - If specified, only entities belonging to this flowname will be returned. This query param must be specified along with userid and flowrunid query params, otherwise it will be ignored. If userid, flowname and flowrunid are not specified, we would have to fetch flow context information based on cluster and appid while executing the query.</li>
<li><code>flowrunid</code> - If specified, only entities belonging to this flow run id will be returned. This query param must be specified along with userid and flowname query params, otherwise it will be ignored. If userid, flowname and flowrunid are not specified, we would have to fetch flow context information based on cluster and appid while executing the query.</li>
<li><code>limit</code> - If specified, defines the number of entities to return. The maximum possible value for limit is maximum value of Long. If it is not specified or has a value less than 0, then limit will be considered as 100.</li>
<li><code>createdtimestart</code> - If specified, then only entities created after this timestamp are returned.</li>
<li><code>createdtimeend</code> -  If specified, then only entities created before this timestamp are returned.</li>
<li><code>relatesto</code> - If specified, matched entities must relate to or not relate to given entities associated with a entity type. relatesto is represented as an expression of the form :<br /> &#x201c;(&lt;entitytype&gt;:&lt;entityid&gt;:&lt;entityid&gt;&#x2026;,&lt;entitytype&gt;:&lt;entityid&gt;:&lt;entityid&gt;&#x2026;) &lt;op&gt; !(&lt;entitytype&gt;:&lt;entityid&gt;:&lt;entityid&gt;&#x2026;,&lt;entitytype&gt;:&lt;entityid&gt;:&lt;entityid&gt;&#x2026;)&#x201d;.<br /> If relatesto expression has entity type - entity id(s) relations specified within enclosing brackets proceeding &#x201c;!&#x201d;, this means entities with these relations in its relatesto field, will not be returned. For expressions or subexpressions without &#x201c;!&#x201d;, all entities which have the specified relations in its relatesto field, will be returned. &#x201c;op&#x201d; is a logical operator and can be either AND or OR. entity type can be followed by any number of entity id(s). And we can combine any number of ANDs&#x2019; and ORs&#x2019; to create complex expressions. Brackets can be used to club expressions together.<br /> <i>For example</i> : relatesto can be &#x201c;(((type1:id1:id2:id3,type3:id9) AND !(type2:id7:id8)) OR (type1:id4))&#x201d;.<br /> Please note that URL unsafe characters such as spaces will have to be suitably encoded.</li>
<li><code>isrelatedto</code> - If specified, matched entities must be related to or not related to given entities associated with a entity type. isrelatedto is represented in the same form as relatesto.</li>
<li><code>infofilters</code> - If specified, matched entities must have exact matches to the given info key and must be either equal or not equal to given value. The info key is a string but value can be any object. infofilters are represented as an expression of the form :<br /> &#x201c;(&lt;key&gt; &lt;compareop&gt; &lt;value&gt;) &lt;op&gt; (&lt;key&gt; &lt;compareop&gt; &lt;value&gt;)&#x201d;.<br /> Here op can be either of AND or OR. And compareop can be either of &#x201c;eq&#x201d;, &#x201c;ne&#x201d; or &#x201c;ene&#x201d;.<br /> &#x201c;eq&#x201d; means equals, &#x201c;ne&#x201d; means not equals and existence of key is not required for a match and &#x201c;ene&#x201d; means not equals but existence of key is required. We can combine any number of ANDs&#x2019; and ORs&#x2019; to create complex expressions.  Brackets can be used to club expressions together.<br /> <i>For example</i> : infofilters can be &#x201c;(((infokey1 eq value1) AND (infokey2 ne value1)) OR (infokey1 ene value3))&#x201d;.<br /> Note : If value is an object then value can be given in the form of JSON format without any space.<br /> <i>For example</i> : infofilters can be (infokey1 eq {&#x201c;&lt;key&gt;&#x201d;:&#x201c;&lt;value&gt;&#x201d;,&#x201c;&lt;key&gt;&#x201d;:&#x201c;&lt;value&gt;&#x201d;&#x2026;}).<br /> Please note that URL unsafe characters such as spaces will have to be suitably encoded.</li>
<li><code>conffilters</code> - If specified, matched entities must have exact matches to the given config name and must be either equal or not equal to the given config value. Both the config name and value must be strings. conffilters are represented in the same form as infofilters.</li>
<li><code>metricfilters</code> - If specified, matched entities must have exact matches to the given metric and satisfy the specified relation with the metric value. Metric id must be a string and metric value must be an integral value.  metricfilters are represented as an expression of the form :<br /> &#x201c;(&lt;metricid&gt; &lt;compareop&gt; &lt;metricvalue&gt;) &lt;op&gt; (&lt;metricid&gt; &lt;compareop&gt; &lt;metricvalue&gt;)&#x201d;<br /> Here op can be either of AND or OR. And compareop can be either of &#x201c;eq&#x201d;, &#x201c;ne&#x201d;, &#x201c;ene&#x201d;, &#x201c;gt&#x201d;, &#x201c;ge&#x201d;, &#x201c;lt&#x201d; and &#x201c;le&#x201d;.<br /> &#x201c;eq&#x201d; means equals, &#x201c;ne&#x201d; means not equals and existence of metric is not required for a match, &#x201c;ene&#x201d; means not equals but existence of metric is required, &#x201c;gt&#x201d; means greater than, &#x201c;ge&#x201d; means greater than or equals, &#x201c;lt&#x201d; means less than and &#x201c;le&#x201d; means less than or equals. We can combine any number of ANDs&#x2019; and ORs&#x2019; to create complex expressions.  Brackets can be used to club expressions together.<br /> <i>For example</i> : metricfilters can be &#x201c;(((metric1 eq 50) AND (metric2 gt 40)) OR (metric1 lt 20))&#x201d;.<br /> This in essence is an expression equivalent to &#x201c;(metric1 == 50 AND metric2 &gt; 40) OR (metric1 &lt; 20)&#x201d;<br /> Please note that URL unsafe characters such as spaces will have to be suitably encoded.</li>
<li><code>eventfilters</code> - If specified, matched entities must contain or not contain the given events depending on the expression. eventfilters is represented as an expression of the form :<br /> &#x201c;(&lt;eventid&gt;,&lt;eventid&gt;) &lt;op&gt; !(&lt;eventid&gt;,&lt;eventid&gt;,&lt;eventid&gt;)&#x201d;.<br /> Here, &#x201c;!&#x201d; means none of the comma-separated list of events within the enclosed brackets proceeding &#x201c;!&#x201d; must exist for a match to occur. If &#x201c;!&#x201d; is not specified, the specified events within the enclosed brackets must exist. op is a logical operator and can be either AND or OR. We can combine any number of ANDs&#x2019; and ORs&#x2019; to create complex expressions. Brackets can be used to club expressions together.<br /> <i>For example</i> : eventfilters can be &#x201c;(((event1,event2) AND !(event4)) OR (event3,event7,event5))&#x201d;.<br /> Please note that URL unsafe characters such as spaces will have to be suitably encoded.</li>
<li><code>metricstoretrieve</code> - If specified, defines which metrics to retrieve or which ones not to retrieve and send back in response. metricstoretrieve can be an expression of the form :<br /> (&lt;metricprefix&gt;,&lt;metricprefix&gt;,&lt;metricprefix&gt;,&lt;metricprefix&gt;&#x2026;)<br /> This specifies a comma separated list of metric id prefixes. Only metrics matching any of the prefixes will be retrieved. Brackets are optional for the simple expression. Alternatively, expressions can be of the form:<br /> !(&lt;metricprefix&gt;,&lt;metricprefix&gt;,&lt;metricprefix&gt;,&lt;metricprefix&gt;&#x2026;)<br /> This specifies a comma separated list of metric id prefixes. Only metrics not matching any of the prefixes will be retrieved.<br /> If metricstoretrieve is specified, metrics will be retrieved irrespective of whether <code>METRICS</code> is specified in fields query param or not. Please note that URL unsafe characters such as spaces will have to be suitably encoded.</li>
<li><code>confstoretrieve</code> - If specified, defines which configs to retrieve or which ones not to retrieve and send back in response. confstoretrieve can be an expression of the form :<br /> (&lt;config_name_prefix&gt;,&lt;config_name_prefix&gt;,&lt;config_name_prefix&gt;,&lt;config_name_prefix&gt;&#x2026;)<br /> This specifies a comma separated list of config name prefixes. Only configs matching any of the prefixes will be retrieved. Brackets are optional for the simple expression. Alternatively, expressions can be of the form:<br /> !(&lt;config_name_prefix&gt;,&lt;config_name_prefix&gt;,&lt;config_name_prefix&gt;,&lt;config_name_prefix&gt;&#x2026;)<br /> This specifies a comma separated list of config name prefixes. Only configs not matching any of the prefixes will be retrieved.<br /> If confstoretrieve is specified, configs will be retrieved irrespective of whether <code>CONFIGS</code> is specified in fields query param or not. Please note that URL unsafe characters such as spaces will have to be suitably encoded.</li>
<li><code>fields</code> - Specifies which fields to retrieve. Possible values for fields can be <code>EVENTS</code>, <code>INFO</code>, <code>CONFIGS</code>, <code>METRICS</code>, <code>RELATES_TO</code>, <code>IS_RELATED_TO</code> and <code>ALL</code>. All fields will be retrieved if <code>ALL</code> is specified. Multiple fields can be specified as a comma-separated list. If fields is not specified, in response, entity id, entity type, createdtime and UID in info field will be returned.</li>
<li><code>metricslimit</code> - If specified, defines the number of metrics to return. Considered only if fields contains METRICS/ALL or metricstoretrieve is specified. Ignored otherwise. The maximum possible value for metricslimit can be maximum value of Integer. If it is not specified or has a value less than 1, and metrics have to be retrieved, then metricslimit will be considered as 1 i.e. latest single value of metric(s) will be returned.</li>
<li><code>metricstimestart</code> - If specified, then metrics for the entity after this timestamp are returned.</li>
<li><code>metricstimeend</code> - If specified, then metrics for the entity before this timestamp are returned.</li>
<li><code>fromid</code> -  If specified, retrieve the next set of generic entities from the given fromid. The set of entities retrieved is inclusive of specified fromid. fromid should be taken from the value associated with FROM_ID info key in flow entity response which was sent earlier.</li>
</ol></section><section>
<h4><a name="Example_JSON_Response:"></a>Example JSON Response:</h4>

<div class="source">
<div class="source">
<pre>[
  {
    &quot;metrics&quot;: [ ],
    &quot;events&quot;: [ ],
    &quot;type&quot;: &quot;YARN_APPLICATION_ATTEMPT&quot;,
    &quot;id&quot;: &quot;appattempt_1465246237936_0001_000001&quot;,
    &quot;createdtime&quot;: 1465246358873,
    &quot;isrelatedto&quot;: { },
    &quot;configs&quot;: { },
    &quot;info&quot;: {
      &quot;UID&quot;: &quot;yarn-cluster!application_1465246237936_0001!YARN_APPLICATION_ATTEMPT!appattempt_1465246237936_0001_000001&quot;
      &quot;FROM_ID&quot;: &quot;yarn-cluster!sjlee!ds-date!1460419580171!application_1465246237936_0001!YARN_APPLICATION_ATTEMPT!0!appattempt_1465246237936_0001_000001&quot;
    },
    &quot;relatesto&quot;: { }
  },
  {
    &quot;metrics&quot;: [ ],
    &quot;events&quot;: [ ],
    &quot;type&quot;: &quot;YARN_APPLICATION_ATTEMPT&quot;,
    &quot;id&quot;: &quot;appattempt_1465246237936_0001_000002&quot;,
    &quot;createdtime&quot;: 1465246359045,
    &quot;isrelatedto&quot;: { },
    &quot;configs&quot;: { },
    &quot;info&quot;: {
      &quot;UID&quot;: &quot;yarn-cluster!application_1465246237936_0001!YARN_APPLICATION_ATTEMPT!appattempt_1465246237936_0001_000002&quot;
      &quot;FROM_ID&quot;: &quot;yarn-cluster!sjlee!ds-date!1460419580171!application_1465246237936_0001!YARN_APPLICATION_ATTEMPT!0!appattempt_1465246237936_0001_000002&quot;
    },
    &quot;relatesto&quot;: { }
  }
]
</pre></div></div>
</section><section>
<h4><a name="Response_Codes"></a>Response Codes</h4>
<ol style="list-style-type: decimal">

<li>If successful, a HTTP 200(OK) response is returned.</li>
<li>If any problem occurs in parsing request, HTTP 400 (Bad Request) is returned.</li>
<li>If flow context information cannot be retrieved, HTTP 404 (Not Found) is returned.</li>
<li>For non-recoverable errors while retrieving data, HTTP 500 (Internal Server Error) is returned.</li>
</ol></section></section><section>
<h3><a name="Query_generic_entities."></a><a name="REST_API_LIST_ENTITIES"></a>Query generic entities.</h3>
<p>With this API, you can query generic entities per user identified by cluster ID, doAsUser and entity type. If the REST endpoint without the cluster name is used, the cluster specified by the configuration <code>yarn.resourcemanager.cluster-id</code> in <code>yarn-site.xml</code> is taken. If number of matching entities are more than the limit, the most recent entities up to the limit will be returned. This endpoint can be used to query generic entity which clients put into the backend. For instance, we can query user entities by specifying entity type as <code>TEZ_DAG_ID</code>. If none of the entities match the predicates, an empty list will be returned. <b>Note</b> : As of today, we can query only those entities which are published with doAsUser which is different from application owner.</p><section>
<h4><a name="HTTP_request:"></a>HTTP request:</h4>

<div class="source">
<div class="source">
<pre>GET /ws/v2/timeline/clusters/{cluster name}/users/{userid}/entities/{entitytype}

or

GET /ws/v2/timeline/users/{userid}/entities/{entitytype}
</pre></div></div>
</section><section>
<h4><a name="Query_Parameters_Supported:"></a>Query Parameters Supported:</h4>
<ol style="list-style-type: decimal">

<li><code>limit</code> - If specified, defines the number of entities to return. The maximum possible value for limit is maximum value of Long. If it is not specified or has a value less than 0, then limit will be considered as 100.</li>
<li><code>createdtimestart</code> - If specified, then only entities created after this timestamp are returned.</li>
<li><code>createdtimeend</code> -  If specified, then only entities created before this timestamp are returned.</li>
<li><code>relatesto</code> - If specified, matched entities must relate to or not relate to given entities associated with a entity type. relatesto is represented as an expression of the form :<br /> &#x201c;(&lt;entitytype&gt;:&lt;entityid&gt;:&lt;entityid&gt;&#x2026;,&lt;entitytype&gt;:&lt;entityid&gt;:&lt;entityid&gt;&#x2026;) &lt;op&gt; !(&lt;entitytype&gt;:&lt;entityid&gt;:&lt;entityid&gt;&#x2026;,&lt;entitytype&gt;:&lt;entityid&gt;:&lt;entityid&gt;&#x2026;)&#x201d;.<br /> If relatesto expression has entity type - entity id(s) relations specified within enclosing brackets proceeding &#x201c;!&#x201d;, this means entities with these relations in its relatesto field, will not be returned. For expressions or subexpressions without &#x201c;!&#x201d;, all entities which have the specified relations in its relatesto field, will be returned. &#x201c;op&#x201d; is a logical operator and can be either AND or OR. entity type can be followed by any number of entity id(s). And we can combine any number of ANDs&#x2019; and ORs&#x2019; to create complex expressions. Brackets can be used to club expressions together.<br /> <i>For example</i> : relatesto can be &#x201c;(((type1:id1:id2:id3,type3:id9) AND !(type2:id7:id8)) OR (type1:id4))&#x201d;.<br /> Please note that URL unsafe characters such as spaces will have to be suitably encoded.</li>
<li><code>isrelatedto</code> - If specified, matched entities must be related to or not related to given entities associated with a entity type. isrelatedto is represented in the same form as relatesto.</li>
<li><code>infofilters</code> - If specified, matched entities must have exact matches to the given info key and must be either equal or not equal to given value. The info key is a string but value can be any object. infofilters are represented as an expression of the form :<br /> &#x201c;(&lt;key&gt; &lt;compareop&gt; &lt;value&gt;) &lt;op&gt; (&lt;key&gt; &lt;compareop&gt; &lt;value&gt;)&#x201d;.<br /> Here op can be either of AND or OR. And compareop can be either of &#x201c;eq&#x201d;, &#x201c;ne&#x201d; or &#x201c;ene&#x201d;.<br /> &#x201c;eq&#x201d; means equals, &#x201c;ne&#x201d; means not equals and existence of key is not required for a match and &#x201c;ene&#x201d; means not equals but existence of key is required. We can combine any number of ANDs&#x2019; and ORs&#x2019; to create complex expressions.  Brackets can be used to club expressions together.<br /> <i>For example</i> : infofilters can be &#x201c;(((infokey1 eq value1) AND (infokey2 ne value1)) OR (infokey1 ene value3))&#x201d;.<br /> Note : If value is an object then value can be given in the form of JSON format without any space.<br /> <i>For example</i> : infofilters can be (infokey1 eq {&#x201c;&lt;key&gt;&#x201d;:&#x201c;&lt;value&gt;&#x201d;,&#x201c;&lt;key&gt;&#x201d;:&#x201c;&lt;value&gt;&#x201d;&#x2026;}).<br /> Please note that URL unsafe characters such as spaces will have to be suitably encoded.</li>
<li><code>conffilters</code> - If specified, matched entities must have exact matches to the given config name and must be either equal or not equal to the given config value. Both the config name and value must be strings. conffilters are represented in the same form as infofilters.</li>
<li><code>metricfilters</code> - If specified, matched entities must have exact matches to the given metric and satisfy the specified relation with the metric value. Metric id must be a string and metric value must be an integral value.  metricfilters are represented as an expression of the form :<br /> &#x201c;(&lt;metricid&gt; &lt;compareop&gt; &lt;metricvalue&gt;) &lt;op&gt; (&lt;metricid&gt; &lt;compareop&gt; &lt;metricvalue&gt;)&#x201d;<br /> Here op can be either of AND or OR. And compareop can be either of &#x201c;eq&#x201d;, &#x201c;ne&#x201d;, &#x201c;ene&#x201d;, &#x201c;gt&#x201d;, &#x201c;ge&#x201d;, &#x201c;lt&#x201d; and &#x201c;le&#x201d;.<br /> &#x201c;eq&#x201d; means equals, &#x201c;ne&#x201d; means not equals and existence of metric is not required for a match, &#x201c;ene&#x201d; means not equals but existence of metric is required, &#x201c;gt&#x201d; means greater than, &#x201c;ge&#x201d; means greater than or equals, &#x201c;lt&#x201d; means less than and &#x201c;le&#x201d; means less than or equals. We can combine any number of ANDs&#x2019; and ORs&#x2019; to create complex expressions.  Brackets can be used to club expressions together.<br /> <i>For example</i> : metricfilters can be &#x201c;(((metric1 eq 50) AND (metric2 gt 40)) OR (metric1 lt 20))&#x201d;.<br /> This in essence is an expression equivalent to &#x201c;(metric1 == 50 AND metric2 &gt; 40) OR (metric1 &lt; 20)&#x201d;<br /> Please note that URL unsafe characters such as spaces will have to be suitably encoded.</li>
<li><code>eventfilters</code> - If specified, matched entities must contain or not contain the given events depending on the expression. eventfilters is represented as an expression of the form :<br /> &#x201c;(&lt;eventid&gt;,&lt;eventid&gt;) &lt;op&gt; !(&lt;eventid&gt;,&lt;eventid&gt;,&lt;eventid&gt;)&#x201d;.<br /> Here, &#x201c;!&#x201d; means none of the comma-separated list of events within the enclosed brackets proceeding &#x201c;!&#x201d; must exist for a match to occur. If &#x201c;!&#x201d; is not specified, the specified events within the enclosed brackets must exist. op is a logical operator and can be either AND or OR. We can combine any number of ANDs&#x2019; and ORs&#x2019; to create complex expressions. Brackets can be used to club expressions together.<br /> <i>For example</i> : eventfilters can be &#x201c;(((event1,event2) AND !(event4)) OR (event3,event7,event5))&#x201d;.<br /> Please note that URL unsafe characters such as spaces will have to be suitably encoded.</li>
<li><code>metricstoretrieve</code> - If specified, defines which metrics to retrieve or which ones not to retrieve and send back in response. metricstoretrieve can be an expression of the form :<br /> (&lt;metricprefix&gt;,&lt;metricprefix&gt;,&lt;metricprefix&gt;,&lt;metricprefix&gt;&#x2026;)<br /> This specifies a comma separated list of metric id prefixes. Only metrics matching any of the prefixes will be retrieved. Brackets are optional for the simple expression. Alternatively, expressions can be of the form:<br /> !(&lt;metricprefix&gt;,&lt;metricprefix&gt;,&lt;metricprefix&gt;,&lt;metricprefix&gt;&#x2026;)<br /> This specifies a comma separated list of metric id prefixes. Only metrics not matching any of the prefixes will be retrieved.<br /> If metricstoretrieve is specified, metrics will be retrieved irrespective of whether <code>METRICS</code> is specified in fields query param or not. Please note that URL unsafe characters such as spaces will have to be suitably encoded.</li>
<li><code>confstoretrieve</code> - If specified, defines which configs to retrieve or which ones not to retrieve and send back in response. confstoretrieve can be an expression of the form :<br /> (&lt;config_name_prefix&gt;,&lt;config_name_prefix&gt;,&lt;config_name_prefix&gt;,&lt;config_name_prefix&gt;&#x2026;)<br /> This specifies a comma separated list of config name prefixes. Only configs matching any of the prefixes will be retrieved. Brackets are optional for the simple expression. Alternatively, expressions can be of the form:<br /> !(&lt;config_name_prefix&gt;,&lt;config_name_prefix&gt;,&lt;config_name_prefix&gt;,&lt;config_name_prefix&gt;&#x2026;)<br /> This specifies a comma separated list of config name prefixes. Only configs not matching any of the prefixes will be retrieved.<br /> If confstoretrieve is specified, configs will be retrieved irrespective of whether <code>CONFIGS</code> is specified in fields query param or not. Please note that URL unsafe characters such as spaces will have to be suitably encoded.</li>
<li><code>fields</code> - Specifies which fields to retrieve. Possible values for fields can be <code>EVENTS</code>, <code>INFO</code>, <code>CONFIGS</code>, <code>METRICS</code>, <code>RELATES_TO</code>, <code>IS_RELATED_TO</code> and <code>ALL</code>. All fields will be retrieved if <code>ALL</code> is specified. Multiple fields can be specified as a comma-separated list. If fields is not specified, in response, entity id, entity type, createdtime and UID in info field will be returned.</li>
<li><code>metricslimit</code> - If specified, defines the number of metrics to return. Considered only if fields contains METRICS/ALL or metricstoretrieve is specified. Ignored otherwise. The maximum possible value for metricslimit can be maximum value of Integer. If it is not specified or has a value less than 1, and metrics have to be retrieved, then metricslimit will be considered as 1 i.e. latest single value of metric(s) will be returned.</li>
<li><code>metricstimestart</code> - If specified, then metrics for the entity after this timestamp are returned.</li>
<li><code>metricstimeend</code> - If specified, then metrics for the entity before this timestamp are returned.</li>
<li><code>fromid</code> -  If specified, retrieve the next set of generic entities from the given fromid. The set of entities retrieved is inclusive of specified fromid. fromid should be taken from the value associated with FROM_ID info key in flow entity response which was sent earlier.</li>
</ol></section><section>
<h4><a name="Example_JSON_Response:"></a>Example JSON Response:</h4>

<div class="source">
<div class="source">
<pre>[
  {
    &quot;metrics&quot;: [ ],
    &quot;events&quot;: [ ],
    &quot;type&quot;: &quot;TEZ_DAG_ID&quot;,
    &quot;id&quot;: &quot;dag_1465246237936_0001_000001&quot;,
    &quot;createdtime&quot;: 1465246358873,
    &quot;isrelatedto&quot;: { },
    &quot;configs&quot;: { },
    &quot;info&quot;: {
      &quot;UID&quot;: &quot;yarn-cluster!sjlee!TEZ_DAG_ID!0!dag_1465246237936_0001_000001&quot;
      &quot;FROM_ID&quot;: &quot;sjlee!yarn-cluster!TEZ_DAG_ID!0!dag_1465246237936_0001_000001&quot;
    },
    &quot;relatesto&quot;: { }
  },
  {
    &quot;metrics&quot;: [ ],
    &quot;events&quot;: [ ],
    &quot;type&quot;: &quot;TEZ_DAG_ID&quot;,
    &quot;id&quot;: &quot;dag_1465246237936_0001_000002&quot;,
    &quot;createdtime&quot;: 1465246359045,
    &quot;isrelatedto&quot;: { },
    &quot;configs&quot;: { },
    &quot;info&quot;: {
      &quot;UID&quot;: &quot;yarn-cluster!sjlee!TEZ_DAG_ID!0!dag_1465246237936_0001_000002!userX&quot;
      &quot;FROM_ID&quot;: &quot;sjlee!yarn-cluster!TEZ_DAG_ID!0!dag_1465246237936_0001_000002!userX&quot;
    },
    &quot;relatesto&quot;: { }
  }
]
</pre></div></div>
</section><section>
<h4><a name="Response_Codes"></a>Response Codes</h4>
<ol style="list-style-type: decimal">

<li>If successful, a HTTP 200(OK) response is returned.</li>
<li>If any problem occurs in parsing request, HTTP 400 (Bad Request) is returned.</li>
<li>For non-recoverable errors while retrieving data, HTTP 500 (Internal Server Error) is returned.</li>
</ol></section></section><section>
<h3><a name="Query_generic_entity_with_in_the_scope_of_Application"></a><a name="REST_API_LIST_ENTITY"></a>Query generic entity with in the scope of Application</h3>
<p>With this API, you can query a specific generic entity identified by cluster ID, application ID, per-framework entity type and entity ID. If the REST endpoint without the cluster name is used, the cluster specified by the configuration <code>yarn.resourcemanager.cluster-id</code> in <code>yarn-site.xml</code> is taken. Flow context information i.e. user, flow name and run id are not mandatory but if specified in query param can preclude the need for an additional operation to fetch flow context information based on cluster and app id. This endpoint can be used to query a single container, application attempt or any other generic entity which clients put into the backend. For instance, we can query a specific YARN container by specifying entity type as <code>YARN_CONTAINER</code> and giving entity ID as container ID. Similarly, application attempt can be queried by specifying entity type as <code>YARN_APPLICATION_ATTEMPT</code> and entity ID being the application attempt ID.</p><section>
<h4><a name="HTTP_request:"></a>HTTP request:</h4>

<div class="source">
<div class="source">
<pre>GET /ws/v2/timeline/clusters/{cluster name}/apps/{app id}/entities/{entity type}/{entity id}

or

GET /ws/v2/timeline/apps/{app id}/entities/{entity type}/{entity id}
</pre></div></div>
</section><section>
<h4><a name="Query_Parameters_Supported:"></a>Query Parameters Supported:</h4>
<ol style="list-style-type: decimal">

<li><code>userid</code> -  If specified, entity must belong to this user. This query param must be specified along with flowname and flowrunid query params, otherwise it will be ignored. If userid, flowname and flowrunid are not specified, we would have to fetch flow context information based on cluster and appid while executing the query.</li>
<li><code>flowname</code> - If specified, entity must belong to this flow name. This query param must be specified along with userid and flowrunid query params, otherwise it will be ignored. If userid, flowname and flowrunid are not specified, we would have to fetch flow context information based on cluster and appid while executing the query.</li>
<li><code>flowrunid</code> - If specified, entity must belong to this flow run id. This query param must be specified along with userid and flowname query params, otherwise it will be ignored. If userid, flowname and flowrunid are not specified, we would have to fetch flow context information based on cluster and appid while executing the query.</li>
<li><code>metricstoretrieve</code> - If specified, defines which metrics to retrieve or which ones not to retrieve and send back in response. metricstoretrieve can be an expression of the form :<br /> (&lt;metricprefix&gt;,&lt;metricprefix&gt;,&lt;metricprefix&gt;,&lt;metricprefix&gt;&#x2026;)<br /> This specifies a comma separated list of metric id prefixes. Only metrics matching any of the prefixes will be retrieved. Brackets are optional for the simple expression. Alternatively, expressions can be of the form:<br /> !(&lt;metricprefix&gt;,&lt;metricprefix&gt;,&lt;metricprefix&gt;,&lt;metricprefix&gt;&#x2026;)<br /> This specifies a comma separated list of metric id prefixes. Only metrics not matching any of the prefixes will be retrieved.<br /> If metricstoretrieve is specified, metrics will be retrieved irrespective of whether <code>METRICS</code> is specified in fields query param or not. Please note that URL unsafe characters such as spaces will have to be suitably encoded.</li>
<li><code>confstoretrieve</code> - If specified, defines which configs to retrieve or which ones not to retrieve and send back in response. confstoretrieve can be an expression of the form :<br /> (&lt;config_name_prefix&gt;,&lt;config_name_prefix&gt;,&lt;config_name_prefix&gt;,&lt;config_name_prefix&gt;&#x2026;)<br /> This specifies a comma separated list of config name prefixes. Only configs matching any of the prefixes will be retrieved. Brackets are optional for the simple expression. Alternatively, expressions can be of the form :<br /> !(&lt;config_name_prefix&gt;,&lt;config_name_prefix&gt;,&lt;config_name_prefix&gt;,&lt;config_name_prefix&gt;&#x2026;)<br /> This specifies a comma separated list of config name prefixes. Only configs not matching any of the prefixes will be retrieved.<br /> If confstoretrieve is specified, configs will be retrieved irrespective of whether <code>CONFIGS</code> is specified in fields query param or not. Please note that URL unsafe characters such as spaces will have to be suitably encoded.</li>
<li><code>fields</code> - Specifies which fields to retrieve. Possible values for fields can be <code>EVENTS</code>, <code>INFO</code>, <code>CONFIGS</code>, <code>METRICS</code>, <code>RELATES_TO</code>, <code>IS_RELATED_TO</code> and <code>ALL</code>. All fields will be retrieved if <code>ALL</code> is specified. Multiple fields can be specified as a comma-separated list. If fields is not specified, in response, entity id, entity type, createdtime and UID in info field will be returned.</li>
<li><code>metricslimit</code> - If specified, defines the number of metrics to return. Considered only if fields contains METRICS/ALL or metricstoretrieve is specified. Ignored otherwise. The maximum possible value for metricslimit can be maximum value of Integer. If it is not specified or has a value less than 1, and metrics have to be retrieved, then metricslimit will be considered as 1 i.e. latest single value of metric(s) will be returned.</li>
<li><code>metricstimestart</code> - If specified, then metrics for the entity after this timestamp are returned.</li>
<li><code>metricstimeend</code> - If specified, then metrics for the entity before this timestamp are returned.</li>
<li><code>entityidprefix</code> Defines the id prefix for the entity to be fetched. If specified, then entity retrieval will be faster.</li>
</ol></section><section>
<h4><a name="Example_JSON_Response:"></a>Example JSON Response:</h4>

<div class="source">
<div class="source">
<pre>{
  &quot;metrics&quot;: [ ],
  &quot;events&quot;: [ ],
  &quot;type&quot;: &quot;YARN_APPLICATION_ATTEMPT&quot;,
  &quot;id&quot;: &quot;appattempt_1465246237936_0001_000001&quot;,
  &quot;createdtime&quot;: 1465246358873,
  &quot;isrelatedto&quot;: { },
  &quot;configs&quot;: { },
  &quot;info&quot;: {
    &quot;UID&quot;: &quot;yarn-cluster!application_1465246237936_0001!YARN_APPLICATION_ATTEMPT!0!appattempt_1465246237936_0001_000001&quot;
    &quot;FROM_ID&quot;: &quot;yarn-cluster!sjlee!ds-date!1460419580171!application_1465246237936_0001!YARN_APPLICATION_ATTEMPT!0!appattempt_1465246237936_0001_000001&quot;
  },
  &quot;relatesto&quot;: { }
}
</pre></div></div>
</section><section>
<h4><a name="Response_Codes"></a>Response Codes</h4>
<ol style="list-style-type: decimal">

<li>If successful, a HTTP 200 (OK) response is returned.</li>
<li>If any problem occurs in parsing request, HTTP 400 (Bad Request) is returned.</li>
<li>If flow context information cannot be retrieved or entity for the given entity id cannot be found, HTTP 404 (Not Found) is returned.</li>
<li>For non-recoverable errors while retrieving data, HTTP 500 (Internal Server Error) is returned.</li>
</ol></section></section><section>
<h3><a name="Query_generic_entity."></a><a name="REST_API_LIST_ENTITIES"></a>Query generic entity.</h3>
<p>With this API, you can query generic entity per user identified by cluster ID, doAsUser and entity type and entity ID. If the REST endpoint without the cluster name is used, the cluster specified by the configuration <code>yarn.resourcemanager.cluster-id</code> in <code>yarn-site.xml</code> is taken. If number of matching entities are more than the limit, the most recent entities up to the limit will be returned. This endpoint can be used to query generic entity which clients put into the backend. For instance, we can query user entities by specifying entity type as <code>TEZ_DAG_ID</code>. If none of the entities match the predicates, an empty list will be returned. <b>Note</b> : As of today, we can query only those entities which are published with doAsUser which is different from application owner.</p><section>
<h4><a name="HTTP_request:"></a>HTTP request:</h4>

<div class="source">
<div class="source">
<pre>GET /ws/v2/timeline/clusters/{cluster name}/users/{userid}/entities/{entitytype}/{entityid}

or

GET /ws/v2/timeline/users/{userid}/entities/{entitytype}/{entityid}
</pre></div></div>
</section><section>
<h4><a name="Query_Parameters_Supported:"></a>Query Parameters Supported:</h4>
<ol style="list-style-type: decimal">

<li><code>metricstoretrieve</code> - If specified, defines which metrics to retrieve or which ones not to retrieve and send back in response. metricstoretrieve can be an expression of the form :<br /> (&lt;metricprefix&gt;,&lt;metricprefix&gt;,&lt;metricprefix&gt;,&lt;metricprefix&gt;&#x2026;)<br /> This specifies a comma separated list of metric id prefixes. Only metrics matching any of the prefixes will be retrieved. Brackets are optional for the simple expression. Alternatively, expressions can be of the form:<br /> !(&lt;metricprefix&gt;,&lt;metricprefix&gt;,&lt;metricprefix&gt;,&lt;metricprefix&gt;&#x2026;)<br /> This specifies a comma separated list of metric id prefixes. Only metrics not matching any of the prefixes will be retrieved.<br /> If metricstoretrieve is specified, metrics will be retrieved irrespective of whether <code>METRICS</code> is specified in fields query param or not. Please note that URL unsafe characters such as spaces will have to be suitably encoded.</li>
<li><code>confstoretrieve</code> - If specified, defines which configs to retrieve or which ones not to retrieve and send back in response. confstoretrieve can be an expression of the form :<br /> (&lt;config_name_prefix&gt;,&lt;config_name_prefix&gt;,&lt;config_name_prefix&gt;,&lt;config_name_prefix&gt;&#x2026;)<br /> This specifies a comma separated list of config name prefixes. Only configs matching any of the prefixes will be retrieved. Brackets are optional for the simple expression. Alternatively, expressions can be of the form:<br /> !(&lt;config_name_prefix&gt;,&lt;config_name_prefix&gt;,&lt;config_name_prefix&gt;,&lt;config_name_prefix&gt;&#x2026;)<br /> This specifies a comma separated list of config name prefixes. Only configs not matching any of the prefixes will be retrieved.<br /> If confstoretrieve is specified, configs will be retrieved irrespective of whether <code>CONFIGS</code> is specified in fields query param or not. Please note that URL unsafe characters such as spaces will have to be suitably encoded.</li>
<li><code>fields</code> - Specifies which fields to retrieve. Possible values for fields can be <code>EVENTS</code>, <code>INFO</code>, <code>CONFIGS</code>, <code>METRICS</code>, <code>RELATES_TO</code>, <code>IS_RELATED_TO</code> and <code>ALL</code>. All fields will be retrieved if <code>ALL</code> is specified. Multiple fields can be specified as a comma-separated list. If fields is not specified, in response, entity id, entity type, createdtime and UID in info field will be returned.</li>
<li><code>metricslimit</code> - If specified, defines the number of metrics to return. Considered only if fields contains METRICS/ALL or metricstoretrieve is specified. Ignored otherwise. The maximum possible value for metricslimit can be maximum value of Integer. If it is not specified or has a value less than 1, and metrics have to be retrieved, then metricslimit will be considered as 1 i.e. latest single value of metric(s) will be returned.</li>
<li><code>metricstimestart</code> - If specified, then metrics for the entity after this timestamp are returned.</li>
<li><code>metricstimeend</code> - If specified, then metrics for the entity before this timestamp are returned.</li>
<li><code>fromid</code> -  If specified, retrieve the next set of generic entities from the given fromid. The set of entities retrieved is inclusive of specified fromid. fromid should be taken from the value associated with FROM_ID info key in flow entity response which was sent earlier.</li>
</ol></section><section>
<h4><a name="Example_JSON_Response:"></a>Example JSON Response:</h4>

<div class="source">
<div class="source">
<pre>[
  {
    &quot;metrics&quot;: [ ],
    &quot;events&quot;: [ ],
    &quot;type&quot;: &quot;TEZ_DAG_ID&quot;,
    &quot;id&quot;: &quot;dag_1465246237936_0001_000001&quot;,
    &quot;createdtime&quot;: 1465246358873,
    &quot;isrelatedto&quot;: { },
    &quot;configs&quot;: { },
    &quot;info&quot;: {
      &quot;UID&quot;: &quot;yarn-cluster!sjlee!TEZ_DAG_ID!0!dag_1465246237936_0001_000001!userX&quot;
      &quot;FROM_ID&quot;: &quot;sjlee!yarn-cluster!TEZ_DAG_ID!0!dag_1465246237936_0001_000001!userX&quot;
    },
    &quot;relatesto&quot;: { }
  }
]
</pre></div></div>
</section><section>
<h4><a name="Response_Codes"></a>Response Codes</h4>
<ol style="list-style-type: decimal">

<li>If successful, a HTTP 200(OK) response is returned.</li>
<li>If any problem occurs in parsing request, HTTP 400 (Bad Request) is returned.</li>
<li>For non-recoverable errors while retrieving data, HTTP 500 (Internal Server Error) is returned.</li>
</ol></section></section><section>
<h3><a name="Query_generic_entity_types"></a><a name="REST_API_LIST_ENTITY_TYPES"></a>Query generic entity types</h3>
<p>With this API, you can query set of available entity types for a given app id. If the REST endpoint without the cluster name is used, the cluster specified by the configuration yarn.resourcemanager.cluster-id in yarn-site.xml is taken.  If userid, flow name and flow run id which are optional query parameters are not specified, they will be queried based on app id and cluster id from the flow context information stored in underlying storage implementation.</p><section>
<h4><a name="HTTP_request:"></a>HTTP request:</h4>

<div class="source">
<div class="source">
<pre>GET /ws/v2/timeline/apps/{appid}/entity-types

or

GET /ws/v2/timeline/clusters/{clusterid}/apps/{appid}/entity-types
</pre></div></div>
</section><section>
<h4><a name="Query_Parameters_Supported:"></a>Query Parameters Supported:</h4>
<ol style="list-style-type: decimal">

<li><code>userid</code> -  If specified, entity must belong to this user. This query param must be specified along with flowname and flowrunid query params, otherwise it will be ignored. If userid, flowname and flowrunid are not specified then timeline reader will fetch flow context information based on cluster and appid while executing the query.</li>
<li><code>flowname</code> - If specified, entity must belong to this flow name. This query param must be specified along with userid and flowrunid query params, otherwise it will be ignored. If userid, flowname and flowrunid are not specified, we would have to fetch flow context information based on cluster and appid while executing the query.</li>
<li><code>flowrunid</code> - If specified, entity must belong to this flow run id. This query param must be specified along with userid and flowname query params, otherwise it will be ignored. If userid, flowname and flowrunid are not specified, we would have to fetch flow context information based on cluster and appid while executing the query.</li>
</ol></section><section>
<h4><a name="Example_JSON_Response:"></a>Example JSON Response:</h4>

<div class="source">
<div class="source">
<pre>{
  YARN_APPLICATION_ATTEMPT,
  YARN_CONTAINER,
  MAPREDUCE_JOB,
  MAPREDUCE_TASK,
  MAPREDUCE_TASK_ATTEMPT
}
</pre></div></div>
</section><section>
<h4><a name="Response_Codes"></a>Response Codes</h4>
<ol style="list-style-type: decimal">

<li>If successful, a HTTP 200 (OK) response is returned.</li>
<li>If any problem occurs in parsing request, HTTP 400 (Bad Request) is returned.</li>
<li>If flow context information cannot be retrieved or entity for the given entity id cannot be found, HTTP 404 (Not Found) is returned.</li>
<li>For non-recoverable errors while retrieving data, HTTP 500 (Internal Server Error) is returned.</li>
</ol></section></section></section><section>
<h2><a name="Aggregated_Log_Serving_for_Historical_Apps"></a>Aggregated Log Serving for Historical Apps</h2>
<p>TimelineService v.2 supports serving aggregated logs of historical apps. To enable this, configure &#x201c;yarn.log.server.web-service.url&#x201d; to &#x201c;${yarn .timeline-service.hostname}:8188/ws/v2/applicationlog&#x201d; in <code>yarn-site.xml</code></p></section>
      </div>
    </div>
    <div class="clear">
      <hr/>
    </div>
    <div id="footer">
      <div class="xright">
        &#169;            2008-2024
              Apache Software Foundation
            
                          - <a href="http://maven.apache.org/privacy-policy.html">Privacy Policy</a>.
        Apache Maven, Maven, Apache, the Apache feather logo, and the Apache Maven project logos are trademarks of The Apache Software Foundation.
      </div>
      <div class="clear">
        <hr/>
      </div>
    </div>
  </body>
</html>
