Summary

The setOldObjectSampleEnabled() mutation enables or disables the OldObjectSample Java Flight Recorder (JFR) event for a specified node. The OldObjectSample event captures heap data about long-lived objects, helping identify memory leaks and retention patterns. Enable sampling to collect old-object heap data; disable it when sampling is no longer needed. To control how long sampling runs before results are dumped and sampling restarts, use setOldObjectSampleDurationMinutes().

API Stability Short-Term

Syntax

graphql
setOldObjectSampleEnabled(
      vhost: Int!,
      oldObjectSampleEnabled: Boolean!
   ): Boolean!

The mutation requires two arguments: vhost identifies the node to update, and oldObjectSampleEnabled specifies whether to enable the OldObjectSample event. Both arguments are required. The mutation returns a non-null Boolean! value of true when the operation succeeds.

Example

Raw
graphql
mutation {
  setOldObjectSampleEnabled(
     vhost: 2,
     oldObjectSampleEnabled: true
  )
}
Mac OS or Linux (curl)
shell
curl -v -X POST $YOUR_LOGSCALE_URL/graphql \
    -H "Authorization: Bearer $TOKEN" \
    -H "Content-Type: application/json" \
    -d @- << EOF
{"query" : "mutation {
  setOldObjectSampleEnabled(
     vhost: 2,
     oldObjectSampleEnabled: true
  )
}"
}
EOF
Mac OS or Linux (curl) One-line
shell
curl -v -X POST $YOUR_LOGSCALE_URL/graphql \
    -H "Authorization: Bearer $TOKEN" \
    -H "Content-Type: application/json" \
    -d @- << EOF
{"query" : "mutation {
  setOldObjectSampleEnabled(
     vhost: 2,
     oldObjectSampleEnabled: true
  )
}"
}
EOF
Windows Cmd and curl
shell
curl -v -X POST $YOUR_LOGSCALE_URL/graphql ^
    -H "Authorization: Bearer $TOKEN" ^
    -H "Content-Type: application/json" ^
    -d @'{"query" : "mutation { ^
  setOldObjectSampleEnabled( ^
     vhost: 2, ^
     oldObjectSampleEnabled: true ^
  ) ^
}" ^
} '
Windows Powershell and curl
powershell
curl.exe -X POST 
    -H "Authorization: Bearer $TOKEN"
    -H "Content-Type: application/json"
    -d '{"query" : "mutation {
  setOldObjectSampleEnabled(
     vhost: 2,
     oldObjectSampleEnabled: true
  )
}"
}'
    "$YOUR_LOGSCALE_URL/graphql"
Perl
perl
#!/usr/bin/perl

use HTTP::Request;
use LWP;

my $TOKEN = "TOKEN";

my $uri = '$YOUR_LOGSCALE_URL/graphql';

my $query = "mutation {
  setOldObjectSampleEnabled(
     vhost: 2,
     oldObjectSampleEnabled: true
  )
}";
$query =~ s/\n/ /g;
my $json = sprintf('{"query" : "%s"}',$query);
my $req = HTTP::Request->new("POST", $uri );

$req->header("Authorization" => "Bearer $TOKEN");
$req->header("Content-Type" => "application/json");

$req->content( $json );

my $lwp = LWP::UserAgent->new;

my $result = $lwp->request( $req );

print $result->{"_content"},"\n";
Python
python
#! /usr/local/bin/python3

import requests

url = '$YOUR_LOGSCALE_URL/graphql'
mydata = r'''{"query" : "mutation {
  setOldObjectSampleEnabled(
     vhost: 2,
     oldObjectSampleEnabled: true
  )
}"
}'''

resp = requests.post(url,
                     data = mydata,
                     headers = {
   "Authorization" : "Bearer $TOKEN",
   "Content-Type" : "application/json"
}
)

print(resp.text)
Node.js
javascript
const https = require('https');

const data = JSON.stringify(
    {"query" : "mutation {
  setOldObjectSampleEnabled(
     vhost: 2,
     oldObjectSampleEnabled: true
  )
}"
}
);


const options = {
  hostname: '$YOUR_LOGSCALE_URL',
  path: 'graphql',
  port: 443,
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'Content-Length': data.length,
    Authorization: 'BEARER ' + process.env.TOKEN,
    'User-Agent': 'Node',
  },
};

const req = https.request(options, (res) => {
  let data = '';
  console.log(`statusCode: ${res.statusCode}`);

  res.on('data', (d) => {
    data += d;
  });
  res.on('end', () => {
    console.log(JSON.parse(data).data);
  });
});

req.on('error', (error) => {
  console.error(error);
});

req.write(data);
req.end();
Example Responses
Success (HTTP Response Code 200 OK)
json
{
  "data": {
    "setOldObjectSampleEnabled": true
  }
}

Input Parameters

This mutation requires the target node identifier and the enabled state for the OldObjectSample event.

Table: Input Parameters & Datatypes

Parameter Type Required Default Description
This table contains all input parameters for this mutation.
oldObjectSampleEnabled Boolean yes   Set to true to enable the OldObjectSample event. Set to false to disable it.
vhost Int yes   The integer identifier of the node (vhost) on which to change the OldObjectSample setting.