Dashboards & Visualizations

Same key with different value and want to create a dashboard using those data.

apple4life
New Member

Here is a sample of my event:

  1. type=time1, value = 100, type=time2, value = 200, type=time3, value = 150
  2. type=time1, value = 120, type=time2, value = 300, type=time3, value = 100

The key is repeated multiple times but it may have different values. The order is guaranteed.

How can I create a graph based on these events?

Tags (1)
0 Karma
1 Solution

MuS
Legend

Hi apple4life,

you can achieve this in a search by using this nice eval feature shown in this run everywhere command:

 | gentimes start=-1 | eval type="time1", value="100" | eval {type}=value | table time*

It will use the value of the field type as new field name and the value of the field value as its value.

You can do the same in props.conf and transforms.conf as well:

props.conf

[sourcetype here]
REPORT-getmynewfields = getmynewfieldsformmydata

transforms.conf

[getmynewfieldsformmydata]
REGEX  = type=([^,]+),\svalue\s=\s([^,]+)
FORMAT = $1::$2

This will do the same based on the regex.
The configs must be placed on the search head, because it is a search time field extraction.

Hope this helps ...

cheers, MuS

View solution in original post

MuS
Legend

Hi apple4life,

you can achieve this in a search by using this nice eval feature shown in this run everywhere command:

 | gentimes start=-1 | eval type="time1", value="100" | eval {type}=value | table time*

It will use the value of the field type as new field name and the value of the field value as its value.

You can do the same in props.conf and transforms.conf as well:

props.conf

[sourcetype here]
REPORT-getmynewfields = getmynewfieldsformmydata

transforms.conf

[getmynewfieldsformmydata]
REGEX  = type=([^,]+),\svalue\s=\s([^,]+)
FORMAT = $1::$2

This will do the same based on the regex.
The configs must be placed on the search head, because it is a search time field extraction.

Hope this helps ...

cheers, MuS

sundareshr
Legend

Try this

 | rex max_match=0 "type=(?<type>[^\,]+)" | rex max_match=0 "value\s=\s(?<val>[^\,]+)" | eval z=mvzip(type, val) | mvexpand z | rex field=z "(?<type>[^\,]+)\,(?<val>.*)" | stats avg(val) as value by type

Just thought of one more approach

... | extract mv_add=t pairdelim="," kvdelim="=" | eval z=mvzip(type, value) | mvexpand z | rex field=z "(?<type>[^\,]+)\,(?<val>.*)" | stats avg(val) as value by type
0 Karma

MuS
Legend

This happens when it takes you too long to type an answer 😉 meanwhile someone else comes up with one 🙂

0 Karma
Get Updates on the Splunk Community!

Introducing the 2024 SplunkTrust!

Hello, Splunk Community! We are beyond thrilled to announce our newest group of SplunkTrust members!  The ...

Introducing the 2024 Splunk MVPs!

We are excited to announce the 2024 cohort of the Splunk MVP program. Splunk MVPs are passionate members of ...

Splunk Custom Visualizations App End of Life

The Splunk Custom Visualizations apps End of Life for SimpleXML will reach end of support on Dec 21, 2024, ...