Files
kafkaex-lag-exporter/lib/kafkaex_lag_exporter/topic_name_parser.ex
2024-03-27 22:23:12 +01:00

15 lines
522 B
Elixir

defmodule KafkaexLagExporter.TopicNameParser do
@moduledoc "Parse Kafka internal member assignment payload in order to find which topics belong to the consumer group"
@invalid_topic_characters ~r/[^[:alnum:]\-\._]/
@spec parse_topic_names(binary) :: list(binary)
def parse_topic_names(member_assignment) do
member_assignment
|> String.chunk(:printable)
|> Enum.drop(1)
|> Enum.take_every(2)
|> Enum.map(fn topic_name -> Regex.replace(@invalid_topic_characters, topic_name, "") end)
end
end