Create mutliples area with jmx data

Hello, i'm trying to create a vizualise which contains two area of jmx metrics of my java application :

  • Heap used
  • Heap max.

To do it, I use jmx plugin. This is my logstash pipeline :

input
{
  jmx {
    path => "/etc/logstash/conf.d/jmx_conf/"
    polling_frequency => 15
    type => jmx
  }
}
filter
{
}
output
{
  elasticsearch
  {
    hosts => "http://localhost:9200"
    index => "supervision_jmx"
  }
  stdout { codec => rubydebug }
}

My json configuration is :

{
   "host" : "192.168.XXX.XXX",
   "port" : 65030,
   "alias" : "lpdocfld1",
   "queries" : [
   {
      "object_name"  : "java.lang:type=Memory",
      "object_alias" : "Heap_Memory",
      "attributes"   : [ "HeapMemoryUsage" ]
   } ]
}

So when I start the pipeline, I get this :

[INFO ] 2020-10-23 12:26:11.052 [[main]<jmx] jmx - Loading configuration files in path {:path=>"/etc/logstash/conf.d/jmx_conf/"}
.
.
{
                   "type" => "jmx",
             "@timestamp" => 2020-10-23T10:26:11.081Z,
                   "host" => "192.168.XXX.XXX",
                   "path" => "/etc/logstash/conf.d/jmx_conf/",
            "metric_path" => "lpdocfld1.Heap_Memory.HeapMemoryUsage.max",
               "@version" => "1",
    "metric_value_number" => 8589934592
}
{
                   "type" => "jmx",
             "@timestamp" => 2020-10-23T10:26:11.082Z,
                   "host" => "192.168.XXX.XXX",
                   "path" => "/etc/logstash/conf.d/jmx_conf/",
            "metric_path" => "lpdocfld1.Heap_Memory.HeapMemoryUsage.used",
               "@version" => "1",
    "metric_value_number" => 4497189888
}
.
.

So now Into kibana I create Index pattern by default. So my problem :

When I want to create a Area vizualize, in X-asis, I put date histogram no problem.
But in Y-axis, I want to have two areas :

  • The first one with ":metric_path: lpdocfld1.Heap_Memory.HeapMemoryUsage.used"
  • The seconde with ":metric_path:lpdocfld1.Heap_Memory.HeapMemoryUsage.max"

I see that is possible into this site :

jmx_afresco

But if y add a filter which say : metric_path is "XXXX.used", i've got no data of "XXXX.max".

I think the solution is to play with "Advanced > JSON input" in Y-axis, but I don't know the correct syntax to achieve that.

Can someone could help me ?

Thank you.

Hi there,
What you can do is to split your series by the metric_path using a filter aggregation as shown here:

If you add instead a filter on the top bar, then all your data will be filtered out except for documents that match that query.