more fixing of Kafkatorio packets...
This commit is contained in:
parent
e0574ea8eb
commit
f99208b5b2
2 changed files with 29 additions and 14 deletions
|
|
@ -26,8 +26,7 @@ import org.apache.kafka.streams.StreamsBuilder
|
||||||
import org.apache.kafka.streams.kstream.KStream
|
import org.apache.kafka.streams.kstream.KStream
|
||||||
|
|
||||||
|
|
||||||
private const val PACKET_TAG = "KafkatorioPacket:::"
|
private const val ENCODED_TAG = "encoded:"
|
||||||
private const val PACKET_ENCODED_TAG = "${PACKET_TAG}encoded:"
|
|
||||||
|
|
||||||
|
|
||||||
fun factorioServerPacketStream(
|
fun factorioServerPacketStream(
|
||||||
|
|
@ -43,7 +42,7 @@ fun factorioServerPacketStream(
|
||||||
)
|
)
|
||||||
).mapValues("decode-packets") { _: FactorioServerId, value: String? ->
|
).mapValues("decode-packets") { _: FactorioServerId, value: String? ->
|
||||||
|
|
||||||
val packet = decodeKafkatorioPacket(value)
|
val packet = decodeKafkatorioPacket(value?.trim())
|
||||||
|
|
||||||
if (packet.data is KafkatorioPacketDataError) {
|
if (packet.data is KafkatorioPacketDataError) {
|
||||||
println("error parsing $TOPIC_SRC_SERVER_LOG message: $packet")
|
println("error parsing $TOPIC_SRC_SERVER_LOG message: $packet")
|
||||||
|
|
@ -73,20 +72,16 @@ fun splitFactorioServerPacketStream(
|
||||||
|
|
||||||
private fun decodeKafkatorioPacket(value: String?): KafkatorioPacket = try {
|
private fun decodeKafkatorioPacket(value: String?): KafkatorioPacket = try {
|
||||||
when {
|
when {
|
||||||
value.isNullOrBlank() ->
|
value.isNullOrBlank() ->
|
||||||
createErrorPacket(message = "null/blank message", rawValue = value)
|
createErrorPacket(message = "null/blank message", rawValue = value)
|
||||||
|
|
||||||
value.substringAfter(PACKET_TAG).isBlank() ->
|
else -> {
|
||||||
createErrorPacket(message = "missing '$PACKET_TAG'", rawValue = value)
|
val packetJson = if (value.startsWith(ENCODED_TAG)) {
|
||||||
|
val encodedValue = value.substringAfter(ENCODED_TAG)
|
||||||
else -> {
|
|
||||||
val packetJson = if (PACKET_ENCODED_TAG in value) {
|
|
||||||
val encodedValue = value.substringAfter(PACKET_ENCODED_TAG)
|
|
||||||
decodeFactorioEncodedString(encodedValue)
|
decodeFactorioEncodedString(encodedValue)
|
||||||
} else {
|
} else {
|
||||||
value.substringAfter(PACKET_TAG)
|
value
|
||||||
}
|
}
|
||||||
|
|
||||||
jsonMapper.decodeFromString(KafkatorioPacket.serializer(), packetJson)
|
jsonMapper.decodeFromString(KafkatorioPacket.serializer(), packetJson)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -101,9 +101,26 @@ class KafkatorioPacketKafkaProducer(
|
||||||
serverId: FactorioServerId,
|
serverId: FactorioServerId,
|
||||||
syslog: SyslogMsg,
|
syslog: SyslogMsg,
|
||||||
) {
|
) {
|
||||||
val kafkatorioMessage = syslog.message?.substringAfter(":::")
|
val syslogMessage = syslog.message?.trim()
|
||||||
|
|
||||||
val record = ProducerRecord<FactorioServerId, String>(
|
if (syslogMessage.isNullOrBlank()) {
|
||||||
|
// ignore blank messages
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!syslogMessage.startsWith(KAFKATORIO_MESSAGE_TAG)) {
|
||||||
|
// ignore non-Kafkatorio message
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
val kafkatorioMessage = syslogMessage.substringAfter(KAFKATORIO_MESSAGE_TAG)
|
||||||
|
|
||||||
|
if (kafkatorioMessage.isBlank()) {
|
||||||
|
produceDlqMessage(syslog, "error - Kafkatorio message was blank $syslogMessage")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
val record = ProducerRecord(
|
||||||
TOPIC_SRC_SERVER_LOG,
|
TOPIC_SRC_SERVER_LOG,
|
||||||
serverId,
|
serverId,
|
||||||
kafkatorioMessage,
|
kafkatorioMessage,
|
||||||
|
|
@ -136,6 +153,9 @@ class KafkatorioPacketKafkaProducer(
|
||||||
|
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
|
private const val KAFKATORIO_MESSAGE_TAG = "KafkatorioPacket:::"
|
||||||
|
|
||||||
|
|
||||||
private fun log(msg: String) = println("[KafkatorioPacketKafkaProducer] $msg")
|
private fun log(msg: String) = println("[KafkatorioPacketKafkaProducer] $msg")
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue