The clusterManagementSettings() GraphQL query is used to return the cluster management settings for a LogScale cluster.

Syntax

Below is the syntax for the clusterManagementSettings() query field:

graphql
clusterManagementSettings: ClusterManagementSettings

There is no input for this query field. There's only parameters for the return datatype, ClusterManagementSettings, which are described in the next section.

Below is an example of how you might use this query field:

Raw
graphql
query {
	clusterManagementSettings
  { allowUpdateDesiredDigesters, 
    allowRebalanceExistingSegments,
    segmentReplicationFactor,
    minHostAlivePercentageToEnableClusterRebalancing}
}
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" : "query {
	clusterManagementSettings
  { allowUpdateDesiredDigesters, 
    allowRebalanceExistingSegments,
    segmentReplicationFactor,
    minHostAlivePercentageToEnableClusterRebalancing}
}"
}
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" : "query {
	clusterManagementSettings
  { allowUpdateDesiredDigesters, 
    allowRebalanceExistingSegments,
    segmentReplicationFactor,
    minHostAlivePercentageToEnableClusterRebalancing}
}"
}
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" : "query { ^
	clusterManagementSettings ^
  { allowUpdateDesiredDigesters,  ^
    allowRebalanceExistingSegments, ^
    segmentReplicationFactor, ^
    minHostAlivePercentageToEnableClusterRebalancing} ^
}" ^
} '
Windows Powershell and curl
powershell
curl.exe -X POST 
    -H "Authorization: Bearer $TOKEN"
    -H "Content-Type: application/json"
    -d '{"query" : "query {
	clusterManagementSettings
  { allowUpdateDesiredDigesters, 
    allowRebalanceExistingSegments,
    segmentReplicationFactor,
    minHostAlivePercentageToEnableClusterRebalancing}
}"
}'
    "$YOUR_LOGSCALE_URL/graphql"
Perl
perl
#!/usr/bin/perl

use HTTP::Request;
use LWP;

my $INGEST_TOKEN = "TOKEN";

my $uri = '$YOUR_LOGSCALE_URL/graphql';

my $json = '{"query" : "query {
	clusterManagementSettings
  { allowUpdateDesiredDigesters, 
    allowRebalanceExistingSegments,
    segmentReplicationFactor,
    minHostAlivePercentageToEnableClusterRebalancing}
}"
}';
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" : "query {
	clusterManagementSettings
  { allowUpdateDesiredDigesters, 
    allowRebalanceExistingSegments,
    segmentReplicationFactor,
    minHostAlivePercentageToEnableClusterRebalancing}
}"
}'''

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" : "query {
	clusterManagementSettings
  { allowUpdateDesiredDigesters, 
    allowRebalanceExistingSegments,
    segmentReplicationFactor,
    minHostAlivePercentageToEnableClusterRebalancing}
}"
}
);


const options = {
  hostname: '$YOUR_LOGSCALE_URL/graphql',
  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": {
    "clusterManagementSettings": {
      "allowUpdateDesiredDigesters": true,
      "allowRebalanceExistingSegments": true,
      "segmentReplicationFactor": 1,
      "minHostAlivePercentageToEnableClusterRebalancing": 25
    }
  }
}

As you can see, for the returned results, a list of requests is entered in a comma-separated list, within curly-brackets. Incidentally, despite the syntax including a colon, you don't actually enter it.

Returned Datatype

The ClusterManagementSettings has a few possible return values. They're listed below, along with descriptions of each.

Table: ClusterManagementSettings

ParameterTypeRequiredDefaultDescription
Some arguments may be required, as indicated in the Required column. For some fields, this column indicates that a result will always be returned for this column.
Table last updated: Sep 24, 2024
allowRebalanceExistingSegmentsbooleanyes Whether the cluster should allow the moving of existing segments between nodes. This is done generally to achieve a better data distribution.
allowUpdateDesiredDigestersbooleanyes Whether or not desired digesters are allowed to be updated automatically.
digestReplicationFactorlongyes The replication factor for the digesters.
minHostAlivePercentageToEnableClusterRebalancinglongyes Percentage of all hosts relevant to a particular cluster rebalance operation that need to be alive before we allow the system to automatically execute the operation. Cluster rebalance operations currently include reassigning digest work, and moving existing segments to balance disk usage. Value is between 0 and 100, both inclusive.
segmentReplicationFactorlongyes The replication factor for segments.