Files
kafkaex-lag-exporter/lib/kafkaex_lag_exporter/topic_name_parser.ex

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