У меня есть следующий текст protobuf, и я использую google-protobuf для его анализа, но я не уверен, как это сделать.
# HELP Type about service.
# TYPE gauge
metadata_server1{namespace="default",service="nginx"} 1
metadata_server2{namespace="default",service="operator"} 1
metadata_server3{namespace="default",service="someservice"} 1
...
Всякий раз, когда я пытаюсь его декодировать, я получаю эту ошибку:
/usr/lib/ruby/gems/2.3.0/gems/protobuf-3.8.3/lib/protobuf/decoder.rb:21:in `decode_each_field'
Вот как я пытаюсь его расшифровать:
class Metrics < ::Protobuf::Message
required :string, :namespace, 1
required :string, :value, 2
required :string, :map, 3
end
class Message < ::Protobuf::Message
repeated Metrics, :metrics, 1
end
data = get_data('http://localhost:8080/')
parsed_data = Metrics.decode(data)
puts parsed_data.metrics //does not work
Кто-нибудь знает, как я могу разобрать это?
Accept
, я смог получить формат protobuf. Затем я использовал клиентскую библиотеку Prometheus Ruby для анализа данных. 12.06.2018