Dashboards & Visualizations

Coloring column dynamically based on all the results for a given column in a given search (AKA Conditional Formatting)

nitzan_b
New Member

I’m trying to apply a color logic to a specific column in a table by range and thresholds.
I have 1000 rows in that table, with 10 rows presented in each page.
The range of colors should be the same for all the values in the table, not only those that are presented in the current page.

alt text

As suggested here I tried using the following method:

        <format type="color" field="kw_blocks / total_kw_blocks">
          <colorPalette type="list">[#DC4E41,#F8BE34,#53A051]</colorPalette>
          <scale type="threshold">33,66</scale>
        </format>
        <format type="number" field="kw_blocks / total_kw_blocks">
          <option name="unit">%</option>
        </format>

The only issue in this solution is that it uses constant thresholds:

 <scale type="threshold">33,66</scale>

However In my case I don't know in advance what will be the max value and therefore I am getting it from the query search dynamically. Therefore I would like the thresholds to be percentile of this value.
It will look something like this:

<scale type="threshold">0.33*Max(kw_blocks / total_kw_blocks),0.66*Max(kw_blocks / total_kw_blocks)</scale>

Any idea how to do it?

0 Karma

niketn
Legend

@nitzan_b what is the logic that you need to apply for table cell color palette? If it is based on Range have you tried threshold based colorPalette? Following is an example:

    <format type="color" field="data">
      <colorPalette type="list">[#53A051,#B6C75A,#006D9C,#62B3B2,#F8BE34,#EC9960,#F1813F,#DC4E41]</colorPalette>
      <scale type="threshold">0,20,40,60,80,90,95</scale>
    </format>
    <format type="number" field="data">
      <option name="unit">%</option>
    </format>

If the logic is different and not covered by any of mechanism provided in Splunk Documentation: https://docs.splunk.com/Documentation/Splunk/latest/Viz/TableFormatsXML#Color_palette_types_and_opti..., then, please add details for the community to assist!

____________________________________________
| makeresults | eval message= "Happy Splunking!!!"
0 Karma

nitzan_b
New Member

@niketnilay the solution you suggested is exactly what I need.
However when using threshold based colorPalette the problem is that I need to define constant thresholds:

<scale type="threshold">0,20,40,60,80,90,95</scale>

In my case I don't know in advance what will be the max value. I am getting it from the query dynamically. Therefore I would like the thresholds to be percentile of this value.
It will look something like this:

    <scale type="threshold">0.33*MaxData,0.66*MaxData</scale>

Is this doable?
I also tried to calculate these values in the query itself:

| eventstats max(data) as MaxValueColoring
| eval 33Precentile=0.33*MaxValueColoring, 66Precentile=0.66*MaxValueColoring

And then pass them as the thresholds values but this is not working either:

 <scale type="threshold">33Precentile,66Precentile</scale>
0 Karma
Get Updates on the Splunk Community!

New This Month in Splunk Observability Cloud - Metrics Usage Analytics, Enhanced K8s ...

The latest enhancements across the Splunk Observability portfolio deliver greater flexibility, better data and ...

Alerting Best Practices: How to Create Good Detectors

At their best, detectors and the alerts they trigger notify teams when applications aren’t performing as ...

Discover Powerful New Features in Splunk Cloud Platform: Enhanced Analytics, ...

Hey Splunky people! We are excited to share the latest updates in Splunk Cloud Platform 9.3.2408. In this ...