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.

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.