Summary

The createKafkaEventForwarder() mutation creates a Kafka event forwarder and returns the new forwarder object. A Kafka event forwarder streams matching events from a LogScale repository to a designated Kafka topic in real time, enabling downstream Kafka consumers to receive LogScale event data without polling the LogScale API. Provide the forwarder name, description, target Kafka topic, and Kafka producer configuration properties at creation time.

Syntax

graphql
createKafkaEventForwarder(
      input: CreateKafkaEventForwarder!
   ): KafkaEventForwarder!

The mutation accepts a single required input argument of type CreateKafkaEventForwarder. The input includes the forwarder name, description, Kafka topic, and producer configuration properties. The mutation returns a non-null KafkaEventForwarder object representing the newly created forwarder.

Example

Raw
graphql
mutation {
  createKafkaEventForwarder(input: 
    { name: "kafka-forwarder",
      description: "Kafka Forwarder",
      properties: "bootstrap.servers=localhost:3456 \n
                   batch.size=100",
      topic: "hot-potatoes",
      enabled: false
    } )
  { id }
}
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 {
  createKafkaEventForwarder(input: 
    { name: \"kafka-forwarder\",
      description: \"Kafka Forwarder\",
      properties: \"bootstrap.servers=localhost:3456 \n
                   batch.size=100\",
      topic: \"hot-potatoes\",
      enabled: false
    } )
  { id }
}"
}
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 {
  createKafkaEventForwarder(input: 
    { name: \"kafka-forwarder\",
      description: \"Kafka Forwarder\",
      properties: \"bootstrap.servers=localhost:3456 \n
                   batch.size=100\",
      topic: \"hot-potatoes\",
      enabled: false
    } )
  { id }
}"
}
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 { ^
  createKafkaEventForwarder(input:  ^
    { name: \"kafka-forwarder\", ^
      description: \"Kafka Forwarder\", ^
      properties: \"bootstrap.servers=localhost:3456 \n ^
                   batch.size=100\", ^
      topic: \"hot-potatoes\", ^
      enabled: false ^
    } ) ^
  { id } ^
}" ^
} '
Windows Powershell and curl
powershell
curl.exe -X POST 
    -H "Authorization: Bearer $TOKEN"
    -H "Content-Type: application/json"
    -d '{"query" : "mutation {
  createKafkaEventForwarder(input: 
    { name: \"kafka-forwarder\",
      description: \"Kafka Forwarder\",
      properties: \"bootstrap.servers=localhost:3456 \n
                   batch.size=100\",
      topic: \"hot-potatoes\",
      enabled: false
    } )
  { id }
}"
}'
    "$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 {
  createKafkaEventForwarder(input: 
    { name: \"kafka-forwarder\",
      description: \"Kafka Forwarder\",
      properties: \"bootstrap.servers=localhost:3456 \n
                   batch.size=100\",
      topic: \"hot-potatoes\",
      enabled: false
    } )
  { id }
}";
$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 {
  createKafkaEventForwarder(input: 
    { name: \"kafka-forwarder\",
      description: \"Kafka Forwarder\",
      properties: \"bootstrap.servers=localhost:3456 \n
                   batch.size=100\",
      topic: \"hot-potatoes\",
      enabled: false
    } )
  { id }
}"
}'''

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 {
  createKafkaEventForwarder(input: 
    { name: \"kafka-forwarder\",
      description: \"Kafka Forwarder\",
      properties: \"bootstrap.servers=localhost:3456 \n
                   batch.size=100\",
      topic: \"hot-potatoes\",
      enabled: false
    } )
  { id }
}"
}
);


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

Input Parameters

The CreateKafkaEventForwarder input type requires a forwarder name, description, Kafka producer configuration properties, and target topic.

The properties field accepts Kafka producer configuration in Java Properties format as a single string, with each key-value pair on a separate line (use \n to separate entries within the string). Required properties include bootstrap.servers to specify the Kafka broker address. Additional properties control authentication, batching, and delivery behavior. For supported configuration keys, see the Kafka event forwarder documentation.

The enabled field is optional and defaults to true, activating the forwarder immediately on creation. Set enabled to false to create the forwarder in a disabled state — for example, to configure and test the forwarder before it begins forwarding events.

Table: CreateKafkaEventForwarder Input Datatype

ParameterTypeRequiredDefaultStabilityAvailabilityDescription
descriptionStringyes Long-Term Description of the event forwarder.
enabledBoolean  Long-Term Whether the event forwarder is enabled.
nameStringyes Long-Term Name of the event forwarder.
propertiesStringyes Long-Term The Kafka producer configuration used to forward events in the form of properties (x.y.z=abc). See Kafka Configuration.
topicStringyes Long-Term The Kafka topic to which the events should be forwarded. See LanguageVersionEnum.

Returned Values

The mutation returns a KafkaEventForwarder object representing the created forwarder. The id field contains the unique forwarder identifier — retain this value, as it is required by the updateKafkaEventForwarder(), enableEventForwarder(), disableEventForwarder(), and deleteEventForwarder() mutations. The returned object also includes the target Kafka topic, the stored producer configuration properties, and the current enabled state.

Table: KafkaEventForwarder Datatype

ParameterTypeRequiredDefaultStabilityAvailabilityDescription
descriptionstringyes Long-Term The description of the event forwarder.
enabledbooleanyes Long-Term Whether the event forwarder is enabled.
idstringyes Long-Term The unique identifier of the event forwarder.
namestringyes Long-Term The name of the event forwarder.
propertiesstringyes Long-Term The Kafka producer configuration used to forward events in the form of properties (x.y.z=abc). See Kafka Configuration.
topicstringyes Long-Term The Kafka topic where the events should be forwarded.