14 lines
472 B
Elixir
14 lines
472 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:]\-\._]/
|
|
|
|
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
|