multikv
Description
Extracts field-values from table-formatted search results, such as the results of the top
, tstat
, and so on. The multikv
command creates a new event for each table row and assigns field names from the title row of the table.
An example of the type of data the multikv
command is designed to handle:
Name Age Occupation Josh 42 SoftwareEngineer Francine 35 CEO Samantha 22 ProjectManager
The key properties here are:
- Each line of text represents a conceptual record.
- The columns are aligned.
- The first line of text provides the names for the data in the columns.
The multikv
command can transform this table from one event into three events with the relevant fields. It works more easily with the fixed-alignment though can sometimes handle merely ordered fields.
The general strategy is to identify a header, offsets, and field counts, and then determine which components of subsequent lines should be included into those field names. Multiple tables in a single event can be handled (if multitable=true), but might require ensuring that the secondary tables have capitalized or ALLCAPS names in a header row.
Auto-detection of header rows favors rows that are text, and are ALLCAPS or Capitalized.
For Splunk Cloud Platform, you must create a private app to extract field-value pairs from table-formatted search results. If you are a Splunk Cloud administrator with experience creating private apps, see Manage private apps in your Splunk Cloud deployment in the Splunk Cloud Admin Manual. If you have not created private apps, contact your Splunk account representative for help with this customization.
Syntax
multikv [conf=<stanza_name>] [<multikv-option>...]
Optional arguments
- conf
- Syntax: conf=<stanza_name>
- Description: If you have a field extraction defined in
multikv.conf
, use this argument to reference the stanza in your search. For more information, refer to the configuration file reference for multikv.conf in the Admin Manual.
- <multikv-option>
- Syntax: copyattrs=<bool> | fields <field-list> | filter <term-list> | forceheader=<int> | multitable=<bool> | noheader=<bool> | rmorig=<bool>
- Description: Options for extracting fields from tabular events.
Descriptions for multikv options
- copyattrs
- Syntax: copyattrs=<bool>
- Description: When true,
multikv
copies all fields from the original event to the events generated from that event. When false, no fields are copied from the original event. This means that the events will have no _time field and the UI will not know how to display them. - Default: true
- fields
- Syntax: fields <field-list>
- Description: Limit the fields set by the multikv extraction to this list. Ignores any fields in the table which are not on this list.
- filter
- Syntax: filter <term-list>
- Description: If specified,
multikv
skips over table rows that do not contain at least one of the strings in the filter list. Quoted expressions are permitted, such as "multiple words" or "trailing_space ".
- forceheader
- Syntax: forceheader=<int>
- Description: Forces the use of the given line number (1 based) as the table's header. Does not include empty lines in the count.
- Default: The
multikv
command attempts to determine the header line automatically.
- multitable
- Syntax: multitable=<bool>
- Description: Controls whether or not there can be multiple tables in a single _raw in the original events.
- Default: true
- noheader
- Syntax: noheader=<bool>
- Description: Handle a table without header row identification. The size of the table will be inferred from the first row, and fields will be named Column_1, Column_2, ...
noheader=true
impliesmultitable=false
. - Default: false
- rmorig
- Syntax: rmorig=<bool>
- Description: When true, the original events will not be included in the output results. When false, the original events are retained in the output results, with each original emitted after the batch of generated results from that original.
- Default: true
Usage
The multikv
command is a distributable streaming command. See Command types.
Examples
Example 1: Extract the "COMMAND" field when it occurs in rows that contain "splunkd".
... | multikv fields COMMAND filter splunkd
Example 2: Extract the "pid" and "command" fields.
... | multikv fields pid command
See also
mstats | multisearch |
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, 8.0.0, 8.0.1, 8.0.2, 8.0.3, 8.0.4, 8.0.5, 8.0.6, 8.0.7, 8.0.8, 8.0.9, 8.0.10, 8.1.0, 8.1.1, 8.1.2, 8.1.3, 8.1.4, 8.1.5, 8.1.6, 8.1.7, 8.1.8, 8.1.9, 8.1.11, 8.2.0, 8.2.1, 8.2.2, 8.2.3, 8.2.4, 8.2.5, 8.2.6, 8.2.7, 8.2.8, 8.2.9, 8.2.10, 8.2.11, 8.2.12, 9.0.0, 9.0.1, 9.0.2, 9.0.3, 9.0.4, 9.0.5, 9.0.6, 9.0.7, 9.0.8, 9.0.9, 9.0.10, 9.1.0, 9.1.1, 9.1.2, 9.1.3, 9.1.4, 9.1.5, 9.1.6, 9.1.7, 9.2.0, 9.2.1, 9.2.2, 9.2.3, 9.2.4, 9.3.0, 9.3.1, 9.3.2, 8.1.10, 8.1.12, 8.1.13, 8.1.14
Feedback submitted, thanks!