API Stability Preview

The servicesMetadata() GraphQL query will return metadata from all registered services. This is a preview and subject to change.

Related to this query field are the serviceStatus() query to check the status for a specific typed service, and the meta() query to get information about a LogScale instance.

Syntax

graphql
servicesMetadata: [ServiceMetadata]!

There is no input for this query field. For the results, you can get the names of the services found, and the health status and latest status message of each.

Example

Below is an example of how this query field might be used:

Raw
graphql
query {
  servicesMetadata
  {name, serviceType, healthStatus{status, message}}
}
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 {
  servicesMetadata
  {name, serviceType, healthStatus{status, message}}
}"
}
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 {
  servicesMetadata
  {name, serviceType, healthStatus{status, message}}
}"
}
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 { ^
  servicesMetadata ^
  {name, serviceType, healthStatus{status, message}} ^
}" ^
} '
Windows Powershell and curl
powershell
curl.exe -X POST 
    -H "Authorization: Bearer $TOKEN"
    -H "Content-Type: application/json"
    -d '{"query" : "query {
  servicesMetadata
  {name, serviceType, healthStatus{status, message}}
}"
}'
    "$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 = "query {
  servicesMetadata
  {name, serviceType, healthStatus{status, message}}
}";
$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" : "query {
  servicesMetadata
  {name, serviceType, healthStatus{status, message}}
}"
}'''

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 {
  servicesMetadata
  {name, serviceType, healthStatus{status, message}}
}"
}
);


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();

Returned Datatype

With the returned datatype, you can get the names of the services found, and the health status and latest status message of each. The table below lists the parameters you can request, and a link to other tables for more details.

Table: ServiceMetadata

ParameterTypeRequiredDefaultStabilityDescription
Some arguments may be required, as indicated in the Required column. For return datatypes, this indicates that you must specify which fields you want returned in the results.
Table last updated: Oct 3, 2024
endpointUrlstringyes PreviewThe endpoint of the service.
healthStatusHealthStatusyes PreviewThe health status of the service. See HealthStatus.
namestringyes PreviewThe name of the service.
serviceTypestringyes PreviewThe type of the service.
versionstringyes PreviewThe version of the service.