Table of Contents

Driven User Guide

version 2.0.5

Searches, Saved Views, and Accessing Relevant Data

The graphs of a Status View provide an overall profile of application processing. But you are also likely to want to explore applications in more depth and with a sharper focus than the displayed accumulation of all runtime information provides. The Driven Plugin collects a rich set of operational data with each application run, which is indexed in the persistence layer of the Driven server. Searching, filtering, and using saved views help focus on the dimensions of application runs that are of most interest to you.

You can save searches with particular filters and search terms as views so that you and other members of your Driven team can retrieve the search criteria and apply to data later with one click. Depending on how permissions are set, you might also be able to share views with users outside your team. When you save a view, you can choose to save it as a Status View or to focus on specific application runtimes by saving it as an Application View.

The circled elements in Figure 1 show the areas of the Status View that allow you to filter what data populates the metrics on the page when you want to adjust the scope of reported performance data or to see different metrics. The Application View has the same filtering and search handles.

searching filtering viewing Driven2dot0 new
Figure 1. Searching and filtering controls of application data, including saved views
Note
An app details page also has search capabilities, but the search filters are different to better focus on finding relevant details after you identify an application run that you want to inspect. See Using the App Details Page.

Searches that you can initiate at top of the Driven window support several application-, statement-, process-, and resource-level query attributes. This is the starting point for mining performance data if you do not have access to any helpful saved views in the navigation panel.

Note
You can use the asterisk (*) as a wildcard character. The search feature does not support other special characters ("",@, #, $, <, >, ?, etc.) in search strings and does not support spaces.

There are multiple parameters that you can invoke to query the application runs:

  • Application, statement, process, and resource metadata - You can use a filter to specify a category for your search term. Click the All drop-down menu to select a parameter. The available search filter parameters are shown in Figure 2.

  • Date - Click the All dates drop-down menu to select a predefined date range or to customize the date or dates.

  • Status - Click the Status drop-down menu to filter on an application-run parameter that is listed in Figure 3. The predefined Active states filter queries for applications that are in Pending, Started, Submitted, or Running state. The predefined Finished states filter queries for applications that are in Successful, Failed, or Stopped state.

  • Teams - Click the All Teams filter button to filter application data based on association with one or more Driven teams. See Teams for more information about how teams are associated with applications.

search filter
Figure 2. Search filter parameters
status filters
Figure 3. Status filter parameters
Tip
If the application ID, tag, or owner is not displayed in the Details Table of the search results, use the column chooser to bring these dimensions in view. Figure 4 shows how to access column-chooser attributes.
columnChooser appID new
Figure 4. Column chooser icon and excerpt of selectable attributes

Statement and Process ID Filters

You can search by filters that focus on components that are more granular than an application. Searches that are filtered by Statement and Process ID return application instances that have matching criteria on the step level. Information about the step level is on the Unit of Work Details page.

The Statement search filter is useful for finding applications containing select statements at the unit-of-work level. Generally, applications can contain SQL statements, such as Hive-based apps with Hive Query Language (HQL). For example, consider the select statement for the Hive Flow -CalculateAverageQuantity flow, which contains:

HiveFlow_Select

Tip
You can use the asterisk symbol (*) as the wildcard at the front and end of the text within the SELECT statement you want to search.

The Process ID search filter is helpful for finding applications with Cascading objects that are executed at the step level. The process ID is correlated with the job ID of Hadoop’s JobTracker.

Note
In a search using the Process ID filter, the wildcard character (*) is NOT supported. Such a search would potentially return all components from every slice in all applications on the system, which can be a very expensive operation.

Resource Filters

The result set of searches filtered by Resource Identifier and Resource Field display applications that run with Resources matching the search criteria. Each application in the results has a Resource identifier or field name (depending on which filter is selected) that matches the string that is typed in the search field.

Resource identifier refers to a uniform resource identifier (URI) for the Resource. The Resource Identifier search filter returns applications that have processed data from a resource matching the identifier-string criteria as entered in the search field. A use case for a resource-identifier search is to discover which applications are accessing particular data resources. For example, a database administrator (DBA) who plans to bring down the system for maintenance could want to schedule a period for the outage by consulting with the people who run or use the affected database resources. A list of applications helps the DBA identify which users and groups access the data resources so that they can be contacted.

A Resource field is usually a descriptor for a field of sourced or sinked data. Searching with the Resource Field filter can help you detect whether or not applications are accessing particular types of data sets. Because a field is a grouping of data by a criterion, the field name in many cases reflects the nature of the data. For example, a field with the name "CC_number" could be used for a field containing credit card numbers.

The ability to easily diagnose application processing on the resource-field level can be useful in environments where a field is known to contain sensitive or confidential data that should not be exposed by running applications. By searching for the field name with the Resource Field filter selected, Driven parses runtime information to focus on whether or not applications process data from the field. Such a search can be a practical use case in an environment that needs to demonstrate or audit for data-security compliance. In this type of use case, the absence of search hits for an application with the given resource field indicates separation from the protected data set.

Saving Search Queries as Views

After searching for applications based on the parameters you have defined, you can save the query as a view. You can then return to the view to retrieve all applications that match the search criteria and filters. Search results of a saved view are dynamic, displaying applications with matching search parameters at the time that the view is opened.

When you save the view, select what information about the matched applications to display:

  • Status View highlights accumulated data about application states, graphically displaying the total numbers and relative frequencies of application statuses.

  • Application View provides canned quality-of-service statistics and heat maps by selectable timelines, which can serve as a gateway to discovering relevant details about repeated executions of specific applications (see Application Views documentation).

After you save a view, it appears as a link under a My Views heading in the navigation panel. If you do not see the link, you might need to expand STATUS VIEWS, APPLICATION VIEWS, or the appropriate My Views heading.

save your view
Figure 5. Saving a view

My Teams Views

Each link in the MY TEAMS area of the navigation panel is an entry point to a Status View that is associated with a team of which you are a member. A link in the MY TEAMS area of the side panel opens to a Status View that has the same parameters as the SHOW MY APPS page, except that the data is filtered to show only information that is correlated with the selected team.

The purpose of this type of view is to isolate metrics of application activity that is monitored by a single team. By opening a link under MY TEAMS, you get a broad view of a specific team’s application performance. The view can then be used as a gateway to further refine filter parameters or to start focused searches without extraneous data from applications that are associated with other teams.

Note
MY TEAMS links are generated automatically by virtue of belonging to teams and not actively "saved" by a user.

Case Examples of Searches, Views, and Teams

Joanne is a member of the ServerStar and EasternIT teams. She sees links for both of the teams under MY TEAMS. Other members of the ServerStar team see the same ServerStar link in their MY TEAMS navigation panels and access the same information if they click the view. The same applies to the EasternIT team.

Saving a Status View
  1. After Joanne opens the ServerStar link under MY TEAMS, she finds the information useful in general but she wants to refine the filter parameters to focus on application status for the past five days.

  2. She clicks the drop-down menu for filtering dates and selects Custom Date Range to set the date range to the last five days.

  3. After naming and saving the search, the view link appears in the STATUS VIEWS > My Views section of the navigation panel.

Saving and Sharing an Application View
  1. Joanne wants to troubleshoot why instances of an application named Cost_Analysis, which is administered by the EasternIT team, fail intermittently. She clicks the EasternIT link under MY TEAMS.

  2. She searches the EasternIT Status View with the following parameters:

    • App Name: Cost_Analysis

    • Status: Failed

  3. The graphs display failed application runs for the whole history stored by Driven.

  4. As a way to gather the most recent root causes of application failure, Joanne further filters the view to 1 week.

  5. To help herself and others find the relevant application execution details in Driven, Joanne saves the view as an Application View called Recent_CAFail.

  6. She wants other people on the EasternIT team to see the data to help troubleshoot the problem. After navigating to STATUS VIEWS > My Views > Recent_CAFail in the navigation panel to share the view, she selects only the EasternIT team because no other users should access the application data. When EasternIT teammates are viewing Driven, they will see a Recent_CAFail link in the APPLICATION VIEWS > Team Views section of the navigation panel.

Note
See Sharing and Limiting Access to Application Information for more information about sharing views.

Customizing Searches

You can create custom searches for application runs that have specific attributes, such as having a certain time range for processing or populating a counter with a defined value range. Custom searches are based on Lucene query syntax, which is entered in the search field of a Status View or Application View.

As with searches that do not use Lucene query syntax, custom searches return applications that match your search-parameter values and that are associated with your Driven teams.

Table 1 shows some examples of the types of information that can be retrieved with a custom search and the query statements to obtain the application search results. Refer to the statement syntax examples in Table 1 for guidance on how to construct some types of Lucene queries. For detailed information about the required syntax in search queries, see Apache Lucene - Query Parser Syntax documentation.

Note
The letters in the query statement syntax are case-sensitive.
Table 1. Examples of Custom Search Goals and Statement Syntax
Application Attributes Sample Values for Parameters Statement Syntax

Processing duration; Tag identifier

Duration more than or equals 5 minutes; Tag identifier = production

duration:[300000 TO *] AND tags:production

Pending status time; Runtime

Pending time does not equal 0; Runtime > 0

NOT pendingTime:0 AND (NOT runTime:0)

Application name; Processing duration

Name = Cascading-Hive; Duration more than or equals 5 minutes

name:Cascading-Hive* AND duration:[300000 TO *]

Application name containing spaces

Name = sales region

sales_region*

Counter with a particular value

The BYTES_WRITTEN counter equals 814186673

counters.org\:apache\:hadoop:\mapreduce\:lib\:output\:
FileOutputFormatCounter.BYTES_WRITTEN:814186673

Counters with a value in a particular range

The BYTES_WRITTEN counter equals or is greater than 814186000

counters.org\:apache\:hadoop\:mapreduce\:lib\:output\:
FileOutputFormatCounter.BYTES_WRITTEN:[814186000 TO *]

Path to user directory

Path is /Users/smith/company/code/project

userDir:\/Users\/smith\/company\/code\/project

Note
You must prepend a custom search query for counter values with counters. As also shown in the counter examples, backslashes are required as escape sequences to comment out colons in the paths so that they are not parsed as Lucene syntax.

Table 2 lists Cascading application attributes that are most relevant to searches in Driven. The most commonly used search targets, such as app name, are integrated in the Driven GUI so that you do not need to run a Lucene query to find matches. When an attribute can be located by a search filter or column chooser, Table 2 lists the part of the user interface that can be used to track the information.

Although an application attribute might be searchable with the GUI controls, you might prefer to query for the attribute and value in a Lucene query. This is particularly true when you want to find matches based on a range of values or if you want to run a complex query.

Elasticsearch truncates field values that exceed 16,000 characters. If a search parameter value includes characters that appear only in a string beyond the character limit (such as a very long classpath), Driven does not return a match because it is unable to search for possible matches after 16,000 characters of a string.

Table 2. Searchable Cascading Application Attributes
Attribute Displayed in GUI?

(Duration and other time-based attributes are listed at bottom of table.)

cascadingVersion

App Details page

classpath

No

command

Searchable with App Command filter;
Displayed on App Details page

counter
(Note: counters. must prepend the path in the query)

App Details and Unit-of-Work Details tables

finished

Searchable with Status filter

frameworks

App Details page

id (application ID)

Searchable with the App ID filter;
Displayed as the last node of the URL for the App Details page

jarName

App Details page

jarPath

App Details page (click on JAR Information link to display the path)

javaClassVersion

No

javaCompiler

No

javaHome

No

javaInterpreterVersion

No

javaIoTmpdir

No

javaVendor

No

javaVendorUrl

No

jvmMaxMemory

No

localeCountry

No

messagingProtocolVersion

No

name

Searchable with App Name filter;
Displayed on Application View and Application Details pages

osArch

No

osName

No

osVersion

No

owner

Searchable with the App Owner filter;
Displayed on the App Details page

pid

No

pluginVersion

Displayed on the App Details page when you hover over the information icon

status

Searchable with one of the Status filters;
Displayed in Status View and Application View

tags

Searchable with the App Tags filter;
Displayed on the App Details page

type

Types that are identified in the Driven user interface are applications, units of work, and steps

userDir

No

userHome

No

userLanguage

No

userRegion

No

userTimezone

No

version

No

Time Attributes

All time attributes with corresponding values can be displayed in the App Details and Unit-of-Work Details tables, except for the lastCounterFetchTime and statusTime attributes.

Absolute-time attributes
Values for these attributes are in milliseconds:

finishedTime
lastCounterFetchTime
pendingTime
runTime
startTime
statusTime
submitTime

Duration-time attributes
Values for these attributes are in Unix time:

duration
(duration = Amount of time from STARTED to FINISHED status.
Equivalent to the startTime:finishedTime attribute.)
pendingTime:finishedTime
pendingTime:runTime
pendingTime:startTime
pendingTime:submitTime
pendingTime:finishedTime
runTime:finishedTime
startTime:finishedTime
startTime:runTime
startTime:submitTime

Next