Summary

The setGlobalDefaultCachePolicy() mutation sets the cluster-wide default cache policy for LogScale. The cache policy controls which ingested log segments the system prioritizes for retention in hot storage. Set the prioritizeMillis field to specify the age threshold in milliseconds; LogScale preferentially retains segments newer than this value in the cache tier, improving query performance for recent data.

This policy applies to all repositories and organizations that have no more-specific cache policy configured. It has the lowest precedence in the cache policy hierarchy. Use setOrgDefaultCachePolicy() to override this default for a specific organization, or setRepoCachePolicy() to override it at the repository level.

Syntax

graphql
setGlobalDefaultCachePolicy(
      input: SetGlobalDefaultCachePolicyInput!
   ): Boolean!

The mutation takes a single required input argument of type SetGlobalDefaultCachePolicyInput. The return type Boolean! is non-nullable: the mutation returns true when the policy is set successfully and false if the operation fails.

Example

Raw
graphql
mutation {
  setGlobalDefaultCachePolicy( input:
    { policy: { prioritizeMillis: 1000 }
    }
  )
}
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 {
  setGlobalDefaultCachePolicy( input:
    { policy: { prioritizeMillis: 1000 }
    }
  )
}"
}
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 {
  setGlobalDefaultCachePolicy( input:
    { policy: { prioritizeMillis: 1000 }
    }
  )
}"
}
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 { ^
  setGlobalDefaultCachePolicy( input: ^
    { policy: { prioritizeMillis: 1000 } ^
    } ^
  ) ^
}" ^
} '
Windows Powershell and curl
powershell
curl.exe -X POST 
    -H "Authorization: Bearer $TOKEN"
    -H "Content-Type: application/json"
    -d '{"query" : "mutation {
  setGlobalDefaultCachePolicy( input:
    { policy: { prioritizeMillis: 1000 }
    }
  )
}"
}'
    "$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 {
  setGlobalDefaultCachePolicy( input:
    { policy: { prioritizeMillis: 1000 }
    }
  )
}";
$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 {
  setGlobalDefaultCachePolicy( input:
    { policy: { prioritizeMillis: 1000 }
    }
  )
}"
}'''

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 {
  setGlobalDefaultCachePolicy( input:
    { policy: { prioritizeMillis: 1000 }
    }
  )
}"
}
);


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": {
    "setGlobalDefaultCachePolicy": true
  }
}

Input Parameters

The input argument takes a SetGlobalDefaultCachePolicyInput object containing a single required policy field of type CachePolicyInput. Set the prioritizeMillis field in CachePolicyInput to the age threshold in milliseconds; LogScale preferentially retains segments newer than this value in the cache tier. For example, set prioritizeMillis to 86400000 to prioritize the most recent 24 hours of data. The following tables describe both input types.

Table: SetGlobalDefaultCachePolicyInput Input Datatype

ParameterTypeRequiredDefaultStabilityAvailabilityDescription
policyCachePolicyInputyes Preview The global default cache policy to set. See CachePolicyInput.

Table: CachePolicyInput Input Datatype

ParameterTypeRequiredDefaultStabilityAvailabilityDescription
prioritizeMillisLong  Preview Prioritize caching segments newer than this.

Returned Values

This mutation returns Boolean!. A value of true indicates the global default cache policy was set successfully. A value of false indicates the operation failed. To verify the updated policy, query cluster() after the mutation completes.