Splunk® Enterprise

Module System User Manual

Acrobat logo Download manual as PDF


Splunk Enterprise version 7.2 is no longer supported as of April 30, 2021. See the Splunk Software Support Policy for details. For information about upgrading to a supported version, see How to upgrade Splunk Enterprise.
This documentation does not apply to the most recent version of Splunk® Enterprise. For documentation on the most recent version, go to the latest release.
Acrobat logo Download topic as PDF

Module system terminology

Important notice: As part of Advanced XML deprecation, the Module System is officially deprecated beginning with Splunk Enterprise 6.3. For more information, see Advanced XML Deprecation.

These terms are relevant to the Module System. For general Splunk terms and definitions, see the Splexicon.

A - B - C - D - E - H - I - J - M - N - P - Q - R - S - T - V

-A-

abstract class

Actually, an abstract base class which may define methods to be implemented by subclasses. Abstract classes enforce inheritance hierarchy.

Module System uses the mechanism, in Python and JavaScript, for apps to hook into the framework, by sub-classing. The following are abstract classes:

  • Splunk.Module
  • Splunk.Module.DispatchingModule
  • ModuleController
  • ModuleHandler
  • BaseController

See also: base class, extension point

add-on

App implementations that have configurations, knowledge, inputs, outputs, and workflows that classify, transform, or normalize data, and are intended to be used by one or more apps are called add-ons.

An add-on provides a container for knowledge (event types, field extractions, lookups), scripted inputs, and other extensions to core Splunk capabilities, which may or may not be technology-, product-, or solution-specific.

Note  : Add-ons should not depend on other apps or add-ons for correct operation.

Add-on packaging facilitates distribution to Splunk instances.

See also: app

app

An app is a redistributable package containing some or all of the following components:

  • Configurations
  • Views
  • Modules
  • Controllers
  • Templates
  • Models
  • JavaScript
  • Static Content (HTML, CSS, Images)

In general, apps create a compelling and enriching user experience for exploring data produced by a particular,

  • Technology
  • Product
  • Solution

Apps provide a container for custom workflows, views, and other extensions to SplunkWeb. Apps also contain saved searches, macros, and other knowledge for working with domain-specific data and objects.

App packaging is intended to facilitate distribution to Splunk instances. Apps are commonly distributed using the app and add-on repository on Splunk Apps but can also be distributed using Splunk Web or by extracting the package within the Splunk file system.

Apps contain the ability to integrate with add-ons for advanced data collection.

See also: add-on

application

The term application refers to domain-specific software, independent of a particular implementation. Applications achieve significant reuse in the Splunk environment by being implemented using the Module System. Apps and add-ons are application implementations.

See also: add-on, app

-B-

base class

The class from which another class inherits is a base class, providing structural integrity.

Sub-classing a base class is the Module System mechanism for hooking an app into framework functionality. Applications usually need to implement required base class methods in a way that modifies Module System behavior to suit application requirements.

See also: abstract class

bind (events)

Web programming typically requires that a method or function is bound to a particular user or program event to perform the desired action when the event occurs. Binding, effectively, attaches a callback function to some event or action.

For example, AJAX request parameters include a completion function to be executed when the request completes.

Also, see the jQuery bind() method for binding browser events to DOM elements.

You can override default Splunk event handlers by implementing a custom handler in the application.js file. A number of API methods, such as dispatchJob(), also permit you to specify callback functions on success or failure of the operation.

-C-

CherryPy

CherryPy is a Python framework for building web applications. Module System uses CherryPy to handle HTTP requests, including session handling.

child (module)

In the hierarchical module relationship a child module is encapsulated by a parent module.

context

A context is a set of name-value pairs shared among views, which are defined by and only meaningful to the application. The Splunk.Context class encapsulates context getter and setter operations. Context is instantiated when a view is created and modules share context to communicate search and event changes. The Splunk.Module class provides mechanisms for sharing context, such as pushing context to child modules and receiving notification of a context change.

controller (module)

(See module controller)

-D-

decorator

Python syntactic sugar that wraps a function definition. (See 7.6. Function definitions and decorator.)

-E-

entity

The MVC model consists of entities (configuration objects or similar artifacts), which are REST resources accessed using the REST API. Entities are uniquely identified by ID and have associated metadata attributes, or model fields. The SplunkRESTManager class usually represents a unique entity and provides a number of API methods to abstract the REST interface for manipulating entities. Entities can also be created and deleted.

extension point

Module System extension points are hooks for attaching custom code to extend framework functionality, for creating domain-specific applications. Extension points are presented through the API and custom functionality is usually implemented by subclassing. The API describes how and where framework functionality can be changed.

-H-

hidden module

A hidden module has no visible elements. A hidden module typically does non-UI work whose results can be rendered by various UI child modules in the module hierarchy. An example is the HiddenSearchSwapper module.

-I-

ID

MVC model entities are uniquely referenced by ID, which is a string representing the hierarchical REST API path to a configuration object or similar artifact.

Example: /servicesNS/admin/search/saved/searches

-J-

job progress

Applications might perform different actions depending on job progress, the progression of a job from initiation through completion. Job progress states are:

jobCanceledJob has been canceled.
jobDispatchedJob has been dispatched.
jobDoneJob has completed.
jobFinalizedJob has been stopped.
jobPausedJob has been paused.
jobProgressJob has made progress.
jobResurrectedA search restarted the job poller.
jobStatusChangedJob status has changed.


The Splunk.Job class provides methods for checking job progress. The Splunk.Module and Splunk.Module.DispatchingModule classes include callback methods for handling job progress changes.

-M-

Mako templates

Module views are implemented using Mako templates

metadata

Metadata are the ownership, access control, sharing, and mutability settings associated with an entity. The ObjectMetadataModel and SplunkAppObjModel classes abstract operations on resource metadata contained in model fields.

model

Definition coming soon ...

model field

A model field is an attribute associated with a given entity, as defined by the model class. Fields have the notion of mutability.

module

A module is a fundamental Module System artifact that implements application functionality, including UI artifacts; every item in a view is module. The View XML provides the structuring component that defines the relationship between application modules. A module implementation is required to have a configuration (.conf) file and client-side logic (<file>.js</file>). A module can also, optionally, include a template (.html) file, a module controller (.py) file and static content, such as style sheets and images.

module controller

A module controller is the server-side component that responds to XMLHttpRequest AJAX calls, and is analagous to the controller part of the MVC pattern. A module controller, unlike a basic Splunk controller, has the following limitations:

  • Does not have access to decorators.
  • Only handles GET requests.
  • Cannot return a generator.

Module System

The Module System is a set of core Splunk software and architecture principles that provides large-scale reuse in creating Splunk apps and add-ons. Module System extension points provide hooks into framework module, AJAX, and MVC components and patterns, facilitating custom application development.

See also: app, add-on, module

-N-

namespace

See Mako Namespaces

-P-

parent

In the hierarchical module relationship a parent module encapsulates a child module.

-Q-

query set

Definition coming soon ...

-R-

resource

A partial resource path used to build Entity Id's (e.g. "resource = 'saved/my_object'").

result

In the context of the Module System, the result is what is returned by a job. For a search job, the result is search results.

-S-

self

Self is a Python keyword used in class instantiation that refers to the instantiated object, itself. By convention, the keyword cls may be used interchangeably with self.

-T-

template

(See Mako templates )

-V-

view

A view is a collection and layout of modules that work together, hierarchically, to give an enhanced user experience when exploring or visualizing data in Splunk. Views are configured using view XML.

View XML

The View XML provides the structuring component of the Module System that defines the relationship between application modules.

Last modified on 12 August, 2019
PREVIOUS
Welcome
  NEXT
Abbreviations

This documentation applies to the following versions of Splunk® Enterprise: 7.0.0, 7.0.1, 7.0.2, 7.0.3, 7.0.4, 7.0.5, 7.0.6, 7.0.7, 7.0.8, 7.0.9, 7.0.10, 7.0.11, 7.0.13, 7.1.0, 7.1.1, 7.1.2, 7.1.3, 7.1.4, 7.1.5, 7.1.6, 7.1.7, 7.1.8, 7.1.9, 7.1.10, 7.2.0, 7.2.1, 7.2.2, 7.2.3, 7.2.4, 7.2.5, 7.2.6, 7.2.7, 7.2.8, 7.2.9, 7.2.10, 7.3.0, 7.3.1, 7.3.2, 7.3.3, 7.3.4, 7.3.5, 7.3.6, 7.3.7, 7.3.8, 7.3.9


Was this documentation topic helpful?


You must be logged into splunk.com in order to post comments. Log in now.

Please try to keep this discussion focused on the content covered in this documentation topic. If you have a more general question about Splunk functionality or are experiencing a difficulty with Splunk, consider posting a question to Splunkbase Answers.

0 out of 1000 Characters