<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Can dimensions be created from unstructured fields in logs for a metric index? in Getting Data In</title>
    <link>https://community.splunk.com/t5/Getting-Data-In/Can-dimensions-be-created-from-unstructured-fields-in-logs-for-a/m-p/685032#M114295</link>
    <description>&lt;P&gt;Hello! I have been trying to get some logs into a metric index and I'm wondering if they can be improved with better field extraction. These are what the logs look like:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;t=1713291900 path="/data/p1/p2" stat=s1:s2:s3:s4 type=COUNTER value=12
t=1713291900 path="/data/p1/p2" stat=s1:s2:s5:s6 type=COUNTER value=18
t=1713291900 path="/data/p1/p2" stat=s1:s2:s3:s7 type=COUNTER value=2
t=1713291900 path="/data/p1/p2" stat=s1:s2:s3 type=COUNTER value=104
t=1713291900 path="/data/p1/p2" stat=s1:s2:s3 type=COUNTER value=18
t=1713291900 path="/data/p1/p2" stat=s1:s2:s5:s8 type=COUNTER value=18
t=1713291900 path="/data/p1/p2" stat=s1:s2:s5:s8:s9:10 type=COUNTER value=8
t=1713291900 path="/data/p1/p2" stat=s1:s2:s3:s4 type=COUNTER value=104
t=1713291900 path="/data/p1/p2" stat=s1:s2:s5:s8:s9 type=COUNTER value=140
t=1713291900 path="/data/p1/p2" stat=s1:s2:s5:s8:s9 type=COUNTER value=3
t=1713291900 path="/data/p1/p2" stat=s1:s2:s5:s8:s9 type=COUNTER value=1
t=1713291900 path="/data/p3/p4" stat=s20 type=COUNTER value=585
t=1713291900 path="/data/p3/p4" stat=s21 type=COUNTER value=585
t=1713291900 path="/data/p3/p4" stat=s22 type=TIMEELAPSED value=5497.12
t=1713291900 path="/data/p3/p5" stat=s23 type=COUNTER value=585
t=1713291900 path="/data/p1/p5" stat=s24 type=COUNTER value=585
t=1713291900 path="/data/p1/p5" stat=s25 type=TIMEELAPSED value=5497.12
t=1713291900 path="/data/p1/p5/p6" stat=s26 type=COUNTER value=253
t=1713291900 path="/data/p1/p5/p6" stat=s27 type=GAUGE value=1&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;t is the epoch time.&lt;/LI&gt;&lt;LI&gt;path is the path of a URL which is in double quotes, always starts with /data/, and can have anywhere between 2 and 7 (maybe more) subpaths.&lt;/LI&gt;&lt;LI&gt;stat is is either a single stat (like s20) OR a colon-delimited string of between 3 and 6 stat names.&lt;/LI&gt;&lt;LI&gt;type is either COUNTER, TIMEELAPSED, or GAUGE.&lt;/LI&gt;&lt;LI&gt;value is the metric.&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;Right now I've been able to get a metric index set up that:&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;Assigns t as the timestamp and ignores t as a dimension or metric&lt;/LI&gt;&lt;LI&gt;Makes value the metric&lt;/LI&gt;&lt;LI&gt;Makes path, stat, and type dimensions&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;This is my transforms.conf:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;[metrics_field_extraction]
REGEX = ([a-zA-Z0-9_\.]+)=\"?([a-zA-Z0-9_\.\/:-]+)

[metric-schema:cm_log2metrics_keyvalue]
METRIC-SCHEMA-MEASURES = value
METRIC-SCHEMA-WHITELIST-DIMS = stat,path,type
METRIC-SCHEMA-BLACKLIST-DIMS = t&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;And props.conf (it's basically log2metrics_keyvalue, we need cm_ to match to our license):&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;[cm_log2metrics_keyvalue]
DATETIME_CONFIG =
LINE_BREAKER = ([\r\n]+)
METRIC-SCHEMA-TRANSFORMS = metric-schema:cm_log2metrics_keyvalue
TRANSFORMS-EXTRACT = metrics_field_extraction
NO_BINARY_CHECK = true
category = Log to Metrics
description = '&amp;lt;key&amp;gt;=&amp;lt;value&amp;gt;' formatted data. Log-to-metrics processing converts the keys with numeric values into metric data points.
disabled = false
pulldown_type = 1&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;path and stat are extracted exactly as they appear in the logs. However, I'm wondering if it's possible to get each part in the path &amp;amp; stat fields into their own dimension, so instead of:&lt;/P&gt;&lt;TABLE border="1" width="100%"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD width="20%"&gt;_time&lt;/TD&gt;&lt;TD width="20%"&gt;path&lt;/TD&gt;&lt;TD width="20%"&gt;stat&lt;/TD&gt;&lt;TD width="20%"&gt;value&lt;/TD&gt;&lt;TD width="20%"&gt;type&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD width="20%"&gt;&lt;SPAN&gt;4/22/24&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;2:20:00.000 PM&lt;/SPAN&gt;&lt;/TD&gt;&lt;TD width="20%"&gt;/p1/p2/p3&lt;/TD&gt;&lt;TD width="20%"&gt;s1:s2:s3&lt;/TD&gt;&lt;TD width="20%"&gt;500&lt;/TD&gt;&lt;TD width="20%"&gt;&lt;P&gt;COUNTER&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;It would be:&lt;/P&gt;&lt;TABLE border="1" width="100%"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD width="11.11111111111111%"&gt;_time&lt;/TD&gt;&lt;TD width="11.11111111111111%"&gt;path1&lt;/TD&gt;&lt;TD width="11.11111111111111%"&gt;path2&lt;/TD&gt;&lt;TD width="11.11111111111111%"&gt;path3&lt;/TD&gt;&lt;TD width="11.11111111111111%"&gt;stat1&lt;/TD&gt;&lt;TD width="11.11111111111111%"&gt;stat2&lt;/TD&gt;&lt;TD width="11.11111111111111%"&gt;stat3&lt;/TD&gt;&lt;TD width="11.11111111111111%"&gt;value&lt;/TD&gt;&lt;TD width="11.11111111111111%"&gt;type&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD width="11.11111111111111%"&gt;&lt;SPAN&gt;4/22/24&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;2:20:00.000 PM&lt;/SPAN&gt;&lt;/TD&gt;&lt;TD width="11.11111111111111%"&gt;p1&lt;/TD&gt;&lt;TD width="11.11111111111111%"&gt;p2&lt;/TD&gt;&lt;TD width="11.11111111111111%"&gt;p3&lt;/TD&gt;&lt;TD width="11.11111111111111%"&gt;s1&lt;/TD&gt;&lt;TD width="11.11111111111111%"&gt;s2&lt;/TD&gt;&lt;TD width="11.11111111111111%"&gt;s3&lt;/TD&gt;&lt;TD width="11.11111111111111%"&gt;500&lt;/TD&gt;&lt;TD width="11.11111111111111%"&gt;COUNTER&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;My thinking was that we'd be able to get really granular stats and interesting graphs.&lt;/P&gt;&lt;P&gt;Thanks in advance!&lt;/P&gt;</description>
    <pubDate>Mon, 22 Apr 2024 20:59:39 GMT</pubDate>
    <dc:creator>jasmartin</dc:creator>
    <dc:date>2024-04-22T20:59:39Z</dc:date>
    <item>
      <title>Can dimensions be created from unstructured fields in logs for a metric index?</title>
      <link>https://community.splunk.com/t5/Getting-Data-In/Can-dimensions-be-created-from-unstructured-fields-in-logs-for-a/m-p/685032#M114295</link>
      <description>&lt;P&gt;Hello! I have been trying to get some logs into a metric index and I'm wondering if they can be improved with better field extraction. These are what the logs look like:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;t=1713291900 path="/data/p1/p2" stat=s1:s2:s3:s4 type=COUNTER value=12
t=1713291900 path="/data/p1/p2" stat=s1:s2:s5:s6 type=COUNTER value=18
t=1713291900 path="/data/p1/p2" stat=s1:s2:s3:s7 type=COUNTER value=2
t=1713291900 path="/data/p1/p2" stat=s1:s2:s3 type=COUNTER value=104
t=1713291900 path="/data/p1/p2" stat=s1:s2:s3 type=COUNTER value=18
t=1713291900 path="/data/p1/p2" stat=s1:s2:s5:s8 type=COUNTER value=18
t=1713291900 path="/data/p1/p2" stat=s1:s2:s5:s8:s9:10 type=COUNTER value=8
t=1713291900 path="/data/p1/p2" stat=s1:s2:s3:s4 type=COUNTER value=104
t=1713291900 path="/data/p1/p2" stat=s1:s2:s5:s8:s9 type=COUNTER value=140
t=1713291900 path="/data/p1/p2" stat=s1:s2:s5:s8:s9 type=COUNTER value=3
t=1713291900 path="/data/p1/p2" stat=s1:s2:s5:s8:s9 type=COUNTER value=1
t=1713291900 path="/data/p3/p4" stat=s20 type=COUNTER value=585
t=1713291900 path="/data/p3/p4" stat=s21 type=COUNTER value=585
t=1713291900 path="/data/p3/p4" stat=s22 type=TIMEELAPSED value=5497.12
t=1713291900 path="/data/p3/p5" stat=s23 type=COUNTER value=585
t=1713291900 path="/data/p1/p5" stat=s24 type=COUNTER value=585
t=1713291900 path="/data/p1/p5" stat=s25 type=TIMEELAPSED value=5497.12
t=1713291900 path="/data/p1/p5/p6" stat=s26 type=COUNTER value=253
t=1713291900 path="/data/p1/p5/p6" stat=s27 type=GAUGE value=1&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;t is the epoch time.&lt;/LI&gt;&lt;LI&gt;path is the path of a URL which is in double quotes, always starts with /data/, and can have anywhere between 2 and 7 (maybe more) subpaths.&lt;/LI&gt;&lt;LI&gt;stat is is either a single stat (like s20) OR a colon-delimited string of between 3 and 6 stat names.&lt;/LI&gt;&lt;LI&gt;type is either COUNTER, TIMEELAPSED, or GAUGE.&lt;/LI&gt;&lt;LI&gt;value is the metric.&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;Right now I've been able to get a metric index set up that:&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;Assigns t as the timestamp and ignores t as a dimension or metric&lt;/LI&gt;&lt;LI&gt;Makes value the metric&lt;/LI&gt;&lt;LI&gt;Makes path, stat, and type dimensions&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;This is my transforms.conf:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;[metrics_field_extraction]
REGEX = ([a-zA-Z0-9_\.]+)=\"?([a-zA-Z0-9_\.\/:-]+)

[metric-schema:cm_log2metrics_keyvalue]
METRIC-SCHEMA-MEASURES = value
METRIC-SCHEMA-WHITELIST-DIMS = stat,path,type
METRIC-SCHEMA-BLACKLIST-DIMS = t&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;And props.conf (it's basically log2metrics_keyvalue, we need cm_ to match to our license):&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;[cm_log2metrics_keyvalue]
DATETIME_CONFIG =
LINE_BREAKER = ([\r\n]+)
METRIC-SCHEMA-TRANSFORMS = metric-schema:cm_log2metrics_keyvalue
TRANSFORMS-EXTRACT = metrics_field_extraction
NO_BINARY_CHECK = true
category = Log to Metrics
description = '&amp;lt;key&amp;gt;=&amp;lt;value&amp;gt;' formatted data. Log-to-metrics processing converts the keys with numeric values into metric data points.
disabled = false
pulldown_type = 1&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;path and stat are extracted exactly as they appear in the logs. However, I'm wondering if it's possible to get each part in the path &amp;amp; stat fields into their own dimension, so instead of:&lt;/P&gt;&lt;TABLE border="1" width="100%"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD width="20%"&gt;_time&lt;/TD&gt;&lt;TD width="20%"&gt;path&lt;/TD&gt;&lt;TD width="20%"&gt;stat&lt;/TD&gt;&lt;TD width="20%"&gt;value&lt;/TD&gt;&lt;TD width="20%"&gt;type&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD width="20%"&gt;&lt;SPAN&gt;4/22/24&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;2:20:00.000 PM&lt;/SPAN&gt;&lt;/TD&gt;&lt;TD width="20%"&gt;/p1/p2/p3&lt;/TD&gt;&lt;TD width="20%"&gt;s1:s2:s3&lt;/TD&gt;&lt;TD width="20%"&gt;500&lt;/TD&gt;&lt;TD width="20%"&gt;&lt;P&gt;COUNTER&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;It would be:&lt;/P&gt;&lt;TABLE border="1" width="100%"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD width="11.11111111111111%"&gt;_time&lt;/TD&gt;&lt;TD width="11.11111111111111%"&gt;path1&lt;/TD&gt;&lt;TD width="11.11111111111111%"&gt;path2&lt;/TD&gt;&lt;TD width="11.11111111111111%"&gt;path3&lt;/TD&gt;&lt;TD width="11.11111111111111%"&gt;stat1&lt;/TD&gt;&lt;TD width="11.11111111111111%"&gt;stat2&lt;/TD&gt;&lt;TD width="11.11111111111111%"&gt;stat3&lt;/TD&gt;&lt;TD width="11.11111111111111%"&gt;value&lt;/TD&gt;&lt;TD width="11.11111111111111%"&gt;type&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD width="11.11111111111111%"&gt;&lt;SPAN&gt;4/22/24&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;2:20:00.000 PM&lt;/SPAN&gt;&lt;/TD&gt;&lt;TD width="11.11111111111111%"&gt;p1&lt;/TD&gt;&lt;TD width="11.11111111111111%"&gt;p2&lt;/TD&gt;&lt;TD width="11.11111111111111%"&gt;p3&lt;/TD&gt;&lt;TD width="11.11111111111111%"&gt;s1&lt;/TD&gt;&lt;TD width="11.11111111111111%"&gt;s2&lt;/TD&gt;&lt;TD width="11.11111111111111%"&gt;s3&lt;/TD&gt;&lt;TD width="11.11111111111111%"&gt;500&lt;/TD&gt;&lt;TD width="11.11111111111111%"&gt;COUNTER&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;My thinking was that we'd be able to get really granular stats and interesting graphs.&lt;/P&gt;&lt;P&gt;Thanks in advance!&lt;/P&gt;</description>
      <pubDate>Mon, 22 Apr 2024 20:59:39 GMT</pubDate>
      <guid>https://community.splunk.com/t5/Getting-Data-In/Can-dimensions-be-created-from-unstructured-fields-in-logs-for-a/m-p/685032#M114295</guid>
      <dc:creator>jasmartin</dc:creator>
      <dc:date>2024-04-22T20:59:39Z</dc:date>
    </item>
  </channel>
</rss>

