Summary

The updateKafkaEventForwarder() mutation updates the configuration of an existing Kafka event forwarder and returns the updated forwarder object. Kafka event forwarders continuously stream matching log events from a LogScale repository to an external Kafka topic. Use this mutation to change the forwarder name, description, target Kafka topic, producer configuration properties, or enabled state. To create a new Kafka event forwarder, use createKafkaEventForwarder() instead.

Syntax

graphql
updateKafkaEventForwarder(
      input: UpdateKafkaEventForwarder!
   ): KafkaEventForwarder!

The mutation accepts a single required input argument of type UpdateKafkaEventForwarder!. Provide the forwarder identifier, updated name and description, target Kafka topic, and producer configuration properties. To retrieve the forwarder identifier, run eventForwarders() first. The mutation returns a non-null KafkaEventForwarder! object containing the updated forwarder configuration.

Input parameters

The UpdateKafkaEventForwarder! input type requires the forwarder id, updated name and description, Kafka producer configuration properties, and target topic. To retrieve the forwarder id, run eventForwarders() first.

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 Kafka Configuration.

The enabled field is optional and defaults to true. Set enabled to false to pause event forwarding without deleting the forwarder configuration.

Table: UpdateKafkaEventForwarder Input Datatype

ParameterTypeRequiredDefaultStabilityAvailabilityDescription
descriptionStringyes Long-Term Description of the event forwarder.
enabledBoolean  Long-Term Whether the event forwarder 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 to which the events should be forwarded.

Example

Raw
graphql
mutation {
  updateKafkaEventForwarder( input:
       { id: "abc123"
         name: "franz-forward",
         description: "Kafka Forwarder",
         properties: "bootstrap.servers=localhost:3456 \n batch.size=100",
         topic: "hot-potatoes",
         enabled: true
      }
  )
  { 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 {
  updateKafkaEventForwarder( input:
       { id: \"abc123\"
         name: \"franz-forward\",
         description: \"Kafka Forwarder\",
         properties: \"bootstrap.servers=localhost:3456 \n batch.size=100\",
         topic: \"hot-potatoes\",
         enabled: true
      }
  )
  { 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 {
  updateKafkaEventForwarder( input:
       { id: \"abc123\"
         name: \"franz-forward\",
         description: \"Kafka Forwarder\",
         properties: \"bootstrap.servers=localhost:3456 \n batch.size=100\",
         topic: \"hot-potatoes\",
         enabled: true
      }
  )
  { 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 { ^
  updateKafkaEventForwarder( input: ^
       { id: \"abc123\" ^
         name: \"franz-forward\", ^
         description: \"Kafka Forwarder\", ^
         properties: \"bootstrap.servers=localhost:3456 \n batch.size=100\", ^
         topic: \"hot-potatoes\", ^
         enabled: true ^
      } ^
  ) ^
  { id } ^
}" ^
} '
Windows Powershell and curl
powershell
curl.exe -X POST 
    -H "Authorization: Bearer $TOKEN"
    -H "Content-Type: application/json"
    -d '{"query" : "mutation {
  updateKafkaEventForwarder( input:
       { id: \"abc123\"
         name: \"franz-forward\",
         description: \"Kafka Forwarder\",
         properties: \"bootstrap.servers=localhost:3456 \n batch.size=100\",
         topic: \"hot-potatoes\",
         enabled: true
      }
  )
  { 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 {
  updateKafkaEventForwarder( input:
       { id: \"abc123\"
         name: \"franz-forward\",
         description: \"Kafka Forwarder\",
         properties: \"bootstrap.servers=localhost:3456 \n batch.size=100\",
         topic: \"hot-potatoes\",
         enabled: true
      }
  )
  { 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 {
  updateKafkaEventForwarder( input:
       { id: \"abc123\"
         name: \"franz-forward\",
         description: \"Kafka Forwarder\",
         properties: \"bootstrap.servers=localhost:3456 \n batch.size=100\",
         topic: \"hot-potatoes\",
         enabled: true
      }
  )
  { 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 {
  updateKafkaEventForwarder( input:
       { id: \"abc123\"
         name: \"franz-forward\",
         description: \"Kafka Forwarder\",
         properties: \"bootstrap.servers=localhost:3456 \n batch.size=100\",
         topic: \"hot-potatoes\",
         enabled: true
      }
  )
  { 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();
Example Responses
Success (HTTP Response Code 200 OK)
json
{
  "data": {
    "updateKafkaEventForwarder": {
      "id": "abc123"
    }
  }
}

Returned values

The mutation returns the updated KafkaEventForwarder! object. Request id to confirm which forwarder was updated. Request properties to verify the saved producer configuration, or enabled to confirm the active state. The following table describes all available return fields:

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.