--- ./configure.ac-orig	2020-09-01 19:48:08.000000000 +0200
+++ ./configure.ac	2020-09-03 17:39:58.336002105 +0200
@@ -4842,12 +4842,12 @@ AC_SUBST([BUILD_WITH_LIBPROTOBUF_C_LIBS]
 
 AC_ARG_VAR([PROTOC_C], [path to the protoc-c binary])
 AC_PATH_PROG([PROTOC_C], [protoc-c])
-if test "x$PROTOC_C" = "x"
-then
-  have_protoc_c="no (protoc-c compiler not found)"
-else
+#if test "x$PROTOC_C" = "x"
+#then
+#  have_protoc_c="no (protoc-c compiler not found)"
+#else
   have_protoc_c="yes"
-fi
+#fi
 
 # --with-libpython {{{
 AC_ARG_VAR([LIBPYTHON_CPPFLAGS], [Preprocessor flags for libpython])
--- /dev/null	2020-08-29 04:17:16.135070548 +0200
+++ ./prometheus.pb-c.c	2020-09-01 19:52:23.928255380 +0200
@@ -0,0 +1,1081 @@
+/* Generated by the protocol buffer compiler.  DO NOT EDIT! */
+/* Generated from: prometheus.proto */
+
+/* Do not generate deprecated warnings for self */
+#ifndef PROTOBUF_C__NO_DEPRECATED
+#define PROTOBUF_C__NO_DEPRECATED
+#endif
+
+#include "prometheus.pb-c.h"
+void   io__prometheus__client__label_pair__init
+                     (Io__Prometheus__Client__LabelPair         *message)
+{
+  static const Io__Prometheus__Client__LabelPair init_value = IO__PROMETHEUS__CLIENT__LABEL_PAIR__INIT;
+  *message = init_value;
+}
+size_t io__prometheus__client__label_pair__get_packed_size
+                     (const Io__Prometheus__Client__LabelPair *message)
+{
+  assert(message->base.descriptor == &io__prometheus__client__label_pair__descriptor);
+  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
+}
+size_t io__prometheus__client__label_pair__pack
+                     (const Io__Prometheus__Client__LabelPair *message,
+                      uint8_t       *out)
+{
+  assert(message->base.descriptor == &io__prometheus__client__label_pair__descriptor);
+  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
+}
+size_t io__prometheus__client__label_pair__pack_to_buffer
+                     (const Io__Prometheus__Client__LabelPair *message,
+                      ProtobufCBuffer *buffer)
+{
+  assert(message->base.descriptor == &io__prometheus__client__label_pair__descriptor);
+  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
+}
+Io__Prometheus__Client__LabelPair *
+       io__prometheus__client__label_pair__unpack
+                     (ProtobufCAllocator  *allocator,
+                      size_t               len,
+                      const uint8_t       *data)
+{
+  return (Io__Prometheus__Client__LabelPair *)
+     protobuf_c_message_unpack (&io__prometheus__client__label_pair__descriptor,
+                                allocator, len, data);
+}
+void   io__prometheus__client__label_pair__free_unpacked
+                     (Io__Prometheus__Client__LabelPair *message,
+                      ProtobufCAllocator *allocator)
+{
+  if(!message)
+    return;
+  assert(message->base.descriptor == &io__prometheus__client__label_pair__descriptor);
+  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
+}
+void   io__prometheus__client__gauge__init
+                     (Io__Prometheus__Client__Gauge         *message)
+{
+  static const Io__Prometheus__Client__Gauge init_value = IO__PROMETHEUS__CLIENT__GAUGE__INIT;
+  *message = init_value;
+}
+size_t io__prometheus__client__gauge__get_packed_size
+                     (const Io__Prometheus__Client__Gauge *message)
+{
+  assert(message->base.descriptor == &io__prometheus__client__gauge__descriptor);
+  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
+}
+size_t io__prometheus__client__gauge__pack
+                     (const Io__Prometheus__Client__Gauge *message,
+                      uint8_t       *out)
+{
+  assert(message->base.descriptor == &io__prometheus__client__gauge__descriptor);
+  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
+}
+size_t io__prometheus__client__gauge__pack_to_buffer
+                     (const Io__Prometheus__Client__Gauge *message,
+                      ProtobufCBuffer *buffer)
+{
+  assert(message->base.descriptor == &io__prometheus__client__gauge__descriptor);
+  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
+}
+Io__Prometheus__Client__Gauge *
+       io__prometheus__client__gauge__unpack
+                     (ProtobufCAllocator  *allocator,
+                      size_t               len,
+                      const uint8_t       *data)
+{
+  return (Io__Prometheus__Client__Gauge *)
+     protobuf_c_message_unpack (&io__prometheus__client__gauge__descriptor,
+                                allocator, len, data);
+}
+void   io__prometheus__client__gauge__free_unpacked
+                     (Io__Prometheus__Client__Gauge *message,
+                      ProtobufCAllocator *allocator)
+{
+  if(!message)
+    return;
+  assert(message->base.descriptor == &io__prometheus__client__gauge__descriptor);
+  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
+}
+void   io__prometheus__client__counter__init
+                     (Io__Prometheus__Client__Counter         *message)
+{
+  static const Io__Prometheus__Client__Counter init_value = IO__PROMETHEUS__CLIENT__COUNTER__INIT;
+  *message = init_value;
+}
+size_t io__prometheus__client__counter__get_packed_size
+                     (const Io__Prometheus__Client__Counter *message)
+{
+  assert(message->base.descriptor == &io__prometheus__client__counter__descriptor);
+  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
+}
+size_t io__prometheus__client__counter__pack
+                     (const Io__Prometheus__Client__Counter *message,
+                      uint8_t       *out)
+{
+  assert(message->base.descriptor == &io__prometheus__client__counter__descriptor);
+  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
+}
+size_t io__prometheus__client__counter__pack_to_buffer
+                     (const Io__Prometheus__Client__Counter *message,
+                      ProtobufCBuffer *buffer)
+{
+  assert(message->base.descriptor == &io__prometheus__client__counter__descriptor);
+  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
+}
+Io__Prometheus__Client__Counter *
+       io__prometheus__client__counter__unpack
+                     (ProtobufCAllocator  *allocator,
+                      size_t               len,
+                      const uint8_t       *data)
+{
+  return (Io__Prometheus__Client__Counter *)
+     protobuf_c_message_unpack (&io__prometheus__client__counter__descriptor,
+                                allocator, len, data);
+}
+void   io__prometheus__client__counter__free_unpacked
+                     (Io__Prometheus__Client__Counter *message,
+                      ProtobufCAllocator *allocator)
+{
+  if(!message)
+    return;
+  assert(message->base.descriptor == &io__prometheus__client__counter__descriptor);
+  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
+}
+void   io__prometheus__client__quantile__init
+                     (Io__Prometheus__Client__Quantile         *message)
+{
+  static const Io__Prometheus__Client__Quantile init_value = IO__PROMETHEUS__CLIENT__QUANTILE__INIT;
+  *message = init_value;
+}
+size_t io__prometheus__client__quantile__get_packed_size
+                     (const Io__Prometheus__Client__Quantile *message)
+{
+  assert(message->base.descriptor == &io__prometheus__client__quantile__descriptor);
+  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
+}
+size_t io__prometheus__client__quantile__pack
+                     (const Io__Prometheus__Client__Quantile *message,
+                      uint8_t       *out)
+{
+  assert(message->base.descriptor == &io__prometheus__client__quantile__descriptor);
+  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
+}
+size_t io__prometheus__client__quantile__pack_to_buffer
+                     (const Io__Prometheus__Client__Quantile *message,
+                      ProtobufCBuffer *buffer)
+{
+  assert(message->base.descriptor == &io__prometheus__client__quantile__descriptor);
+  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
+}
+Io__Prometheus__Client__Quantile *
+       io__prometheus__client__quantile__unpack
+                     (ProtobufCAllocator  *allocator,
+                      size_t               len,
+                      const uint8_t       *data)
+{
+  return (Io__Prometheus__Client__Quantile *)
+     protobuf_c_message_unpack (&io__prometheus__client__quantile__descriptor,
+                                allocator, len, data);
+}
+void   io__prometheus__client__quantile__free_unpacked
+                     (Io__Prometheus__Client__Quantile *message,
+                      ProtobufCAllocator *allocator)
+{
+  if(!message)
+    return;
+  assert(message->base.descriptor == &io__prometheus__client__quantile__descriptor);
+  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
+}
+void   io__prometheus__client__summary__init
+                     (Io__Prometheus__Client__Summary         *message)
+{
+  static const Io__Prometheus__Client__Summary init_value = IO__PROMETHEUS__CLIENT__SUMMARY__INIT;
+  *message = init_value;
+}
+size_t io__prometheus__client__summary__get_packed_size
+                     (const Io__Prometheus__Client__Summary *message)
+{
+  assert(message->base.descriptor == &io__prometheus__client__summary__descriptor);
+  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
+}
+size_t io__prometheus__client__summary__pack
+                     (const Io__Prometheus__Client__Summary *message,
+                      uint8_t       *out)
+{
+  assert(message->base.descriptor == &io__prometheus__client__summary__descriptor);
+  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
+}
+size_t io__prometheus__client__summary__pack_to_buffer
+                     (const Io__Prometheus__Client__Summary *message,
+                      ProtobufCBuffer *buffer)
+{
+  assert(message->base.descriptor == &io__prometheus__client__summary__descriptor);
+  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
+}
+Io__Prometheus__Client__Summary *
+       io__prometheus__client__summary__unpack
+                     (ProtobufCAllocator  *allocator,
+                      size_t               len,
+                      const uint8_t       *data)
+{
+  return (Io__Prometheus__Client__Summary *)
+     protobuf_c_message_unpack (&io__prometheus__client__summary__descriptor,
+                                allocator, len, data);
+}
+void   io__prometheus__client__summary__free_unpacked
+                     (Io__Prometheus__Client__Summary *message,
+                      ProtobufCAllocator *allocator)
+{
+  if(!message)
+    return;
+  assert(message->base.descriptor == &io__prometheus__client__summary__descriptor);
+  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
+}
+void   io__prometheus__client__untyped__init
+                     (Io__Prometheus__Client__Untyped         *message)
+{
+  static const Io__Prometheus__Client__Untyped init_value = IO__PROMETHEUS__CLIENT__UNTYPED__INIT;
+  *message = init_value;
+}
+size_t io__prometheus__client__untyped__get_packed_size
+                     (const Io__Prometheus__Client__Untyped *message)
+{
+  assert(message->base.descriptor == &io__prometheus__client__untyped__descriptor);
+  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
+}
+size_t io__prometheus__client__untyped__pack
+                     (const Io__Prometheus__Client__Untyped *message,
+                      uint8_t       *out)
+{
+  assert(message->base.descriptor == &io__prometheus__client__untyped__descriptor);
+  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
+}
+size_t io__prometheus__client__untyped__pack_to_buffer
+                     (const Io__Prometheus__Client__Untyped *message,
+                      ProtobufCBuffer *buffer)
+{
+  assert(message->base.descriptor == &io__prometheus__client__untyped__descriptor);
+  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
+}
+Io__Prometheus__Client__Untyped *
+       io__prometheus__client__untyped__unpack
+                     (ProtobufCAllocator  *allocator,
+                      size_t               len,
+                      const uint8_t       *data)
+{
+  return (Io__Prometheus__Client__Untyped *)
+     protobuf_c_message_unpack (&io__prometheus__client__untyped__descriptor,
+                                allocator, len, data);
+}
+void   io__prometheus__client__untyped__free_unpacked
+                     (Io__Prometheus__Client__Untyped *message,
+                      ProtobufCAllocator *allocator)
+{
+  if(!message)
+    return;
+  assert(message->base.descriptor == &io__prometheus__client__untyped__descriptor);
+  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
+}
+void   io__prometheus__client__histogram__init
+                     (Io__Prometheus__Client__Histogram         *message)
+{
+  static const Io__Prometheus__Client__Histogram init_value = IO__PROMETHEUS__CLIENT__HISTOGRAM__INIT;
+  *message = init_value;
+}
+size_t io__prometheus__client__histogram__get_packed_size
+                     (const Io__Prometheus__Client__Histogram *message)
+{
+  assert(message->base.descriptor == &io__prometheus__client__histogram__descriptor);
+  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
+}
+size_t io__prometheus__client__histogram__pack
+                     (const Io__Prometheus__Client__Histogram *message,
+                      uint8_t       *out)
+{
+  assert(message->base.descriptor == &io__prometheus__client__histogram__descriptor);
+  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
+}
+size_t io__prometheus__client__histogram__pack_to_buffer
+                     (const Io__Prometheus__Client__Histogram *message,
+                      ProtobufCBuffer *buffer)
+{
+  assert(message->base.descriptor == &io__prometheus__client__histogram__descriptor);
+  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
+}
+Io__Prometheus__Client__Histogram *
+       io__prometheus__client__histogram__unpack
+                     (ProtobufCAllocator  *allocator,
+                      size_t               len,
+                      const uint8_t       *data)
+{
+  return (Io__Prometheus__Client__Histogram *)
+     protobuf_c_message_unpack (&io__prometheus__client__histogram__descriptor,
+                                allocator, len, data);
+}
+void   io__prometheus__client__histogram__free_unpacked
+                     (Io__Prometheus__Client__Histogram *message,
+                      ProtobufCAllocator *allocator)
+{
+  if(!message)
+    return;
+  assert(message->base.descriptor == &io__prometheus__client__histogram__descriptor);
+  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
+}
+void   io__prometheus__client__bucket__init
+                     (Io__Prometheus__Client__Bucket         *message)
+{
+  static const Io__Prometheus__Client__Bucket init_value = IO__PROMETHEUS__CLIENT__BUCKET__INIT;
+  *message = init_value;
+}
+size_t io__prometheus__client__bucket__get_packed_size
+                     (const Io__Prometheus__Client__Bucket *message)
+{
+  assert(message->base.descriptor == &io__prometheus__client__bucket__descriptor);
+  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
+}
+size_t io__prometheus__client__bucket__pack
+                     (const Io__Prometheus__Client__Bucket *message,
+                      uint8_t       *out)
+{
+  assert(message->base.descriptor == &io__prometheus__client__bucket__descriptor);
+  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
+}
+size_t io__prometheus__client__bucket__pack_to_buffer
+                     (const Io__Prometheus__Client__Bucket *message,
+                      ProtobufCBuffer *buffer)
+{
+  assert(message->base.descriptor == &io__prometheus__client__bucket__descriptor);
+  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
+}
+Io__Prometheus__Client__Bucket *
+       io__prometheus__client__bucket__unpack
+                     (ProtobufCAllocator  *allocator,
+                      size_t               len,
+                      const uint8_t       *data)
+{
+  return (Io__Prometheus__Client__Bucket *)
+     protobuf_c_message_unpack (&io__prometheus__client__bucket__descriptor,
+                                allocator, len, data);
+}
+void   io__prometheus__client__bucket__free_unpacked
+                     (Io__Prometheus__Client__Bucket *message,
+                      ProtobufCAllocator *allocator)
+{
+  if(!message)
+    return;
+  assert(message->base.descriptor == &io__prometheus__client__bucket__descriptor);
+  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
+}
+void   io__prometheus__client__metric__init
+                     (Io__Prometheus__Client__Metric         *message)
+{
+  static const Io__Prometheus__Client__Metric init_value = IO__PROMETHEUS__CLIENT__METRIC__INIT;
+  *message = init_value;
+}
+size_t io__prometheus__client__metric__get_packed_size
+                     (const Io__Prometheus__Client__Metric *message)
+{
+  assert(message->base.descriptor == &io__prometheus__client__metric__descriptor);
+  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
+}
+size_t io__prometheus__client__metric__pack
+                     (const Io__Prometheus__Client__Metric *message,
+                      uint8_t       *out)
+{
+  assert(message->base.descriptor == &io__prometheus__client__metric__descriptor);
+  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
+}
+size_t io__prometheus__client__metric__pack_to_buffer
+                     (const Io__Prometheus__Client__Metric *message,
+                      ProtobufCBuffer *buffer)
+{
+  assert(message->base.descriptor == &io__prometheus__client__metric__descriptor);
+  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
+}
+Io__Prometheus__Client__Metric *
+       io__prometheus__client__metric__unpack
+                     (ProtobufCAllocator  *allocator,
+                      size_t               len,
+                      const uint8_t       *data)
+{
+  return (Io__Prometheus__Client__Metric *)
+     protobuf_c_message_unpack (&io__prometheus__client__metric__descriptor,
+                                allocator, len, data);
+}
+void   io__prometheus__client__metric__free_unpacked
+                     (Io__Prometheus__Client__Metric *message,
+                      ProtobufCAllocator *allocator)
+{
+  if(!message)
+    return;
+  assert(message->base.descriptor == &io__prometheus__client__metric__descriptor);
+  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
+}
+void   io__prometheus__client__metric_family__init
+                     (Io__Prometheus__Client__MetricFamily         *message)
+{
+  static const Io__Prometheus__Client__MetricFamily init_value = IO__PROMETHEUS__CLIENT__METRIC_FAMILY__INIT;
+  *message = init_value;
+}
+size_t io__prometheus__client__metric_family__get_packed_size
+                     (const Io__Prometheus__Client__MetricFamily *message)
+{
+  assert(message->base.descriptor == &io__prometheus__client__metric_family__descriptor);
+  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
+}
+size_t io__prometheus__client__metric_family__pack
+                     (const Io__Prometheus__Client__MetricFamily *message,
+                      uint8_t       *out)
+{
+  assert(message->base.descriptor == &io__prometheus__client__metric_family__descriptor);
+  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
+}
+size_t io__prometheus__client__metric_family__pack_to_buffer
+                     (const Io__Prometheus__Client__MetricFamily *message,
+                      ProtobufCBuffer *buffer)
+{
+  assert(message->base.descriptor == &io__prometheus__client__metric_family__descriptor);
+  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
+}
+Io__Prometheus__Client__MetricFamily *
+       io__prometheus__client__metric_family__unpack
+                     (ProtobufCAllocator  *allocator,
+                      size_t               len,
+                      const uint8_t       *data)
+{
+  return (Io__Prometheus__Client__MetricFamily *)
+     protobuf_c_message_unpack (&io__prometheus__client__metric_family__descriptor,
+                                allocator, len, data);
+}
+void   io__prometheus__client__metric_family__free_unpacked
+                     (Io__Prometheus__Client__MetricFamily *message,
+                      ProtobufCAllocator *allocator)
+{
+  if(!message)
+    return;
+  assert(message->base.descriptor == &io__prometheus__client__metric_family__descriptor);
+  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
+}
+static const ProtobufCFieldDescriptor io__prometheus__client__label_pair__field_descriptors[2] =
+{
+  {
+    "name",
+    1,
+    PROTOBUF_C_LABEL_OPTIONAL,
+    PROTOBUF_C_TYPE_STRING,
+    0,   /* quantifier_offset */
+    offsetof(Io__Prometheus__Client__LabelPair, name),
+    NULL,
+    NULL,
+    0,             /* flags */
+    0,NULL,NULL    /* reserved1,reserved2, etc */
+  },
+  {
+    "value",
+    2,
+    PROTOBUF_C_LABEL_OPTIONAL,
+    PROTOBUF_C_TYPE_STRING,
+    0,   /* quantifier_offset */
+    offsetof(Io__Prometheus__Client__LabelPair, value),
+    NULL,
+    NULL,
+    0,             /* flags */
+    0,NULL,NULL    /* reserved1,reserved2, etc */
+  },
+};
+static const unsigned io__prometheus__client__label_pair__field_indices_by_name[] = {
+  0,   /* field[0] = name */
+  1,   /* field[1] = value */
+};
+static const ProtobufCIntRange io__prometheus__client__label_pair__number_ranges[1 + 1] =
+{
+  { 1, 0 },
+  { 0, 2 }
+};
+const ProtobufCMessageDescriptor io__prometheus__client__label_pair__descriptor =
+{
+  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
+  "io.prometheus.client.LabelPair",
+  "LabelPair",
+  "Io__Prometheus__Client__LabelPair",
+  "io.prometheus.client",
+  sizeof(Io__Prometheus__Client__LabelPair),
+  2,
+  io__prometheus__client__label_pair__field_descriptors,
+  io__prometheus__client__label_pair__field_indices_by_name,
+  1,  io__prometheus__client__label_pair__number_ranges,
+  (ProtobufCMessageInit) io__prometheus__client__label_pair__init,
+  NULL,NULL,NULL    /* reserved[123] */
+};
+static const ProtobufCFieldDescriptor io__prometheus__client__gauge__field_descriptors[1] =
+{
+  {
+    "value",
+    1,
+    PROTOBUF_C_LABEL_OPTIONAL,
+    PROTOBUF_C_TYPE_DOUBLE,
+    offsetof(Io__Prometheus__Client__Gauge, has_value),
+    offsetof(Io__Prometheus__Client__Gauge, value),
+    NULL,
+    NULL,
+    0,             /* flags */
+    0,NULL,NULL    /* reserved1,reserved2, etc */
+  },
+};
+static const unsigned io__prometheus__client__gauge__field_indices_by_name[] = {
+  0,   /* field[0] = value */
+};
+static const ProtobufCIntRange io__prometheus__client__gauge__number_ranges[1 + 1] =
+{
+  { 1, 0 },
+  { 0, 1 }
+};
+const ProtobufCMessageDescriptor io__prometheus__client__gauge__descriptor =
+{
+  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
+  "io.prometheus.client.Gauge",
+  "Gauge",
+  "Io__Prometheus__Client__Gauge",
+  "io.prometheus.client",
+  sizeof(Io__Prometheus__Client__Gauge),
+  1,
+  io__prometheus__client__gauge__field_descriptors,
+  io__prometheus__client__gauge__field_indices_by_name,
+  1,  io__prometheus__client__gauge__number_ranges,
+  (ProtobufCMessageInit) io__prometheus__client__gauge__init,
+  NULL,NULL,NULL    /* reserved[123] */
+};
+static const ProtobufCFieldDescriptor io__prometheus__client__counter__field_descriptors[1] =
+{
+  {
+    "value",
+    1,
+    PROTOBUF_C_LABEL_OPTIONAL,
+    PROTOBUF_C_TYPE_DOUBLE,
+    offsetof(Io__Prometheus__Client__Counter, has_value),
+    offsetof(Io__Prometheus__Client__Counter, value),
+    NULL,
+    NULL,
+    0,             /* flags */
+    0,NULL,NULL    /* reserved1,reserved2, etc */
+  },
+};
+static const unsigned io__prometheus__client__counter__field_indices_by_name[] = {
+  0,   /* field[0] = value */
+};
+static const ProtobufCIntRange io__prometheus__client__counter__number_ranges[1 + 1] =
+{
+  { 1, 0 },
+  { 0, 1 }
+};
+const ProtobufCMessageDescriptor io__prometheus__client__counter__descriptor =
+{
+  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
+  "io.prometheus.client.Counter",
+  "Counter",
+  "Io__Prometheus__Client__Counter",
+  "io.prometheus.client",
+  sizeof(Io__Prometheus__Client__Counter),
+  1,
+  io__prometheus__client__counter__field_descriptors,
+  io__prometheus__client__counter__field_indices_by_name,
+  1,  io__prometheus__client__counter__number_ranges,
+  (ProtobufCMessageInit) io__prometheus__client__counter__init,
+  NULL,NULL,NULL    /* reserved[123] */
+};
+static const ProtobufCFieldDescriptor io__prometheus__client__quantile__field_descriptors[2] =
+{
+  {
+    "quantile",
+    1,
+    PROTOBUF_C_LABEL_OPTIONAL,
+    PROTOBUF_C_TYPE_DOUBLE,
+    offsetof(Io__Prometheus__Client__Quantile, has_quantile),
+    offsetof(Io__Prometheus__Client__Quantile, quantile),
+    NULL,
+    NULL,
+    0,             /* flags */
+    0,NULL,NULL    /* reserved1,reserved2, etc */
+  },
+  {
+    "value",
+    2,
+    PROTOBUF_C_LABEL_OPTIONAL,
+    PROTOBUF_C_TYPE_DOUBLE,
+    offsetof(Io__Prometheus__Client__Quantile, has_value),
+    offsetof(Io__Prometheus__Client__Quantile, value),
+    NULL,
+    NULL,
+    0,             /* flags */
+    0,NULL,NULL    /* reserved1,reserved2, etc */
+  },
+};
+static const unsigned io__prometheus__client__quantile__field_indices_by_name[] = {
+  0,   /* field[0] = quantile */
+  1,   /* field[1] = value */
+};
+static const ProtobufCIntRange io__prometheus__client__quantile__number_ranges[1 + 1] =
+{
+  { 1, 0 },
+  { 0, 2 }
+};
+const ProtobufCMessageDescriptor io__prometheus__client__quantile__descriptor =
+{
+  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
+  "io.prometheus.client.Quantile",
+  "Quantile",
+  "Io__Prometheus__Client__Quantile",
+  "io.prometheus.client",
+  sizeof(Io__Prometheus__Client__Quantile),
+  2,
+  io__prometheus__client__quantile__field_descriptors,
+  io__prometheus__client__quantile__field_indices_by_name,
+  1,  io__prometheus__client__quantile__number_ranges,
+  (ProtobufCMessageInit) io__prometheus__client__quantile__init,
+  NULL,NULL,NULL    /* reserved[123] */
+};
+static const ProtobufCFieldDescriptor io__prometheus__client__summary__field_descriptors[3] =
+{
+  {
+    "sample_count",
+    1,
+    PROTOBUF_C_LABEL_OPTIONAL,
+    PROTOBUF_C_TYPE_UINT64,
+    offsetof(Io__Prometheus__Client__Summary, has_sample_count),
+    offsetof(Io__Prometheus__Client__Summary, sample_count),
+    NULL,
+    NULL,
+    0,             /* flags */
+    0,NULL,NULL    /* reserved1,reserved2, etc */
+  },
+  {
+    "sample_sum",
+    2,
+    PROTOBUF_C_LABEL_OPTIONAL,
+    PROTOBUF_C_TYPE_DOUBLE,
+    offsetof(Io__Prometheus__Client__Summary, has_sample_sum),
+    offsetof(Io__Prometheus__Client__Summary, sample_sum),
+    NULL,
+    NULL,
+    0,             /* flags */
+    0,NULL,NULL    /* reserved1,reserved2, etc */
+  },
+  {
+    "quantile",
+    3,
+    PROTOBUF_C_LABEL_REPEATED,
+    PROTOBUF_C_TYPE_MESSAGE,
+    offsetof(Io__Prometheus__Client__Summary, n_quantile),
+    offsetof(Io__Prometheus__Client__Summary, quantile),
+    &io__prometheus__client__quantile__descriptor,
+    NULL,
+    0,             /* flags */
+    0,NULL,NULL    /* reserved1,reserved2, etc */
+  },
+};
+static const unsigned io__prometheus__client__summary__field_indices_by_name[] = {
+  2,   /* field[2] = quantile */
+  0,   /* field[0] = sample_count */
+  1,   /* field[1] = sample_sum */
+};
+static const ProtobufCIntRange io__prometheus__client__summary__number_ranges[1 + 1] =
+{
+  { 1, 0 },
+  { 0, 3 }
+};
+const ProtobufCMessageDescriptor io__prometheus__client__summary__descriptor =
+{
+  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
+  "io.prometheus.client.Summary",
+  "Summary",
+  "Io__Prometheus__Client__Summary",
+  "io.prometheus.client",
+  sizeof(Io__Prometheus__Client__Summary),
+  3,
+  io__prometheus__client__summary__field_descriptors,
+  io__prometheus__client__summary__field_indices_by_name,
+  1,  io__prometheus__client__summary__number_ranges,
+  (ProtobufCMessageInit) io__prometheus__client__summary__init,
+  NULL,NULL,NULL    /* reserved[123] */
+};
+static const ProtobufCFieldDescriptor io__prometheus__client__untyped__field_descriptors[1] =
+{
+  {
+    "value",
+    1,
+    PROTOBUF_C_LABEL_OPTIONAL,
+    PROTOBUF_C_TYPE_DOUBLE,
+    offsetof(Io__Prometheus__Client__Untyped, has_value),
+    offsetof(Io__Prometheus__Client__Untyped, value),
+    NULL,
+    NULL,
+    0,             /* flags */
+    0,NULL,NULL    /* reserved1,reserved2, etc */
+  },
+};
+static const unsigned io__prometheus__client__untyped__field_indices_by_name[] = {
+  0,   /* field[0] = value */
+};
+static const ProtobufCIntRange io__prometheus__client__untyped__number_ranges[1 + 1] =
+{
+  { 1, 0 },
+  { 0, 1 }
+};
+const ProtobufCMessageDescriptor io__prometheus__client__untyped__descriptor =
+{
+  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
+  "io.prometheus.client.Untyped",
+  "Untyped",
+  "Io__Prometheus__Client__Untyped",
+  "io.prometheus.client",
+  sizeof(Io__Prometheus__Client__Untyped),
+  1,
+  io__prometheus__client__untyped__field_descriptors,
+  io__prometheus__client__untyped__field_indices_by_name,
+  1,  io__prometheus__client__untyped__number_ranges,
+  (ProtobufCMessageInit) io__prometheus__client__untyped__init,
+  NULL,NULL,NULL    /* reserved[123] */
+};
+static const ProtobufCFieldDescriptor io__prometheus__client__histogram__field_descriptors[3] =
+{
+  {
+    "sample_count",
+    1,
+    PROTOBUF_C_LABEL_OPTIONAL,
+    PROTOBUF_C_TYPE_UINT64,
+    offsetof(Io__Prometheus__Client__Histogram, has_sample_count),
+    offsetof(Io__Prometheus__Client__Histogram, sample_count),
+    NULL,
+    NULL,
+    0,             /* flags */
+    0,NULL,NULL    /* reserved1,reserved2, etc */
+  },
+  {
+    "sample_sum",
+    2,
+    PROTOBUF_C_LABEL_OPTIONAL,
+    PROTOBUF_C_TYPE_DOUBLE,
+    offsetof(Io__Prometheus__Client__Histogram, has_sample_sum),
+    offsetof(Io__Prometheus__Client__Histogram, sample_sum),
+    NULL,
+    NULL,
+    0,             /* flags */
+    0,NULL,NULL    /* reserved1,reserved2, etc */
+  },
+  {
+    "bucket",
+    3,
+    PROTOBUF_C_LABEL_REPEATED,
+    PROTOBUF_C_TYPE_MESSAGE,
+    offsetof(Io__Prometheus__Client__Histogram, n_bucket),
+    offsetof(Io__Prometheus__Client__Histogram, bucket),
+    &io__prometheus__client__bucket__descriptor,
+    NULL,
+    0,             /* flags */
+    0,NULL,NULL    /* reserved1,reserved2, etc */
+  },
+};
+static const unsigned io__prometheus__client__histogram__field_indices_by_name[] = {
+  2,   /* field[2] = bucket */
+  0,   /* field[0] = sample_count */
+  1,   /* field[1] = sample_sum */
+};
+static const ProtobufCIntRange io__prometheus__client__histogram__number_ranges[1 + 1] =
+{
+  { 1, 0 },
+  { 0, 3 }
+};
+const ProtobufCMessageDescriptor io__prometheus__client__histogram__descriptor =
+{
+  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
+  "io.prometheus.client.Histogram",
+  "Histogram",
+  "Io__Prometheus__Client__Histogram",
+  "io.prometheus.client",
+  sizeof(Io__Prometheus__Client__Histogram),
+  3,
+  io__prometheus__client__histogram__field_descriptors,
+  io__prometheus__client__histogram__field_indices_by_name,
+  1,  io__prometheus__client__histogram__number_ranges,
+  (ProtobufCMessageInit) io__prometheus__client__histogram__init,
+  NULL,NULL,NULL    /* reserved[123] */
+};
+static const ProtobufCFieldDescriptor io__prometheus__client__bucket__field_descriptors[2] =
+{
+  {
+    "cumulative_count",
+    1,
+    PROTOBUF_C_LABEL_OPTIONAL,
+    PROTOBUF_C_TYPE_UINT64,
+    offsetof(Io__Prometheus__Client__Bucket, has_cumulative_count),
+    offsetof(Io__Prometheus__Client__Bucket, cumulative_count),
+    NULL,
+    NULL,
+    0,             /* flags */
+    0,NULL,NULL    /* reserved1,reserved2, etc */
+  },
+  {
+    "upper_bound",
+    2,
+    PROTOBUF_C_LABEL_OPTIONAL,
+    PROTOBUF_C_TYPE_DOUBLE,
+    offsetof(Io__Prometheus__Client__Bucket, has_upper_bound),
+    offsetof(Io__Prometheus__Client__Bucket, upper_bound),
+    NULL,
+    NULL,
+    0,             /* flags */
+    0,NULL,NULL    /* reserved1,reserved2, etc */
+  },
+};
+static const unsigned io__prometheus__client__bucket__field_indices_by_name[] = {
+  0,   /* field[0] = cumulative_count */
+  1,   /* field[1] = upper_bound */
+};
+static const ProtobufCIntRange io__prometheus__client__bucket__number_ranges[1 + 1] =
+{
+  { 1, 0 },
+  { 0, 2 }
+};
+const ProtobufCMessageDescriptor io__prometheus__client__bucket__descriptor =
+{
+  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
+  "io.prometheus.client.Bucket",
+  "Bucket",
+  "Io__Prometheus__Client__Bucket",
+  "io.prometheus.client",
+  sizeof(Io__Prometheus__Client__Bucket),
+  2,
+  io__prometheus__client__bucket__field_descriptors,
+  io__prometheus__client__bucket__field_indices_by_name,
+  1,  io__prometheus__client__bucket__number_ranges,
+  (ProtobufCMessageInit) io__prometheus__client__bucket__init,
+  NULL,NULL,NULL    /* reserved[123] */
+};
+static const ProtobufCFieldDescriptor io__prometheus__client__metric__field_descriptors[7] =
+{
+  {
+    "label",
+    1,
+    PROTOBUF_C_LABEL_REPEATED,
+    PROTOBUF_C_TYPE_MESSAGE,
+    offsetof(Io__Prometheus__Client__Metric, n_label),
+    offsetof(Io__Prometheus__Client__Metric, label),
+    &io__prometheus__client__label_pair__descriptor,
+    NULL,
+    0,             /* flags */
+    0,NULL,NULL    /* reserved1,reserved2, etc */
+  },
+  {
+    "gauge",
+    2,
+    PROTOBUF_C_LABEL_OPTIONAL,
+    PROTOBUF_C_TYPE_MESSAGE,
+    0,   /* quantifier_offset */
+    offsetof(Io__Prometheus__Client__Metric, gauge),
+    &io__prometheus__client__gauge__descriptor,
+    NULL,
+    0,             /* flags */
+    0,NULL,NULL    /* reserved1,reserved2, etc */
+  },
+  {
+    "counter",
+    3,
+    PROTOBUF_C_LABEL_OPTIONAL,
+    PROTOBUF_C_TYPE_MESSAGE,
+    0,   /* quantifier_offset */
+    offsetof(Io__Prometheus__Client__Metric, counter),
+    &io__prometheus__client__counter__descriptor,
+    NULL,
+    0,             /* flags */
+    0,NULL,NULL    /* reserved1,reserved2, etc */
+  },
+  {
+    "summary",
+    4,
+    PROTOBUF_C_LABEL_OPTIONAL,
+    PROTOBUF_C_TYPE_MESSAGE,
+    0,   /* quantifier_offset */
+    offsetof(Io__Prometheus__Client__Metric, summary),
+    &io__prometheus__client__summary__descriptor,
+    NULL,
+    0,             /* flags */
+    0,NULL,NULL    /* reserved1,reserved2, etc */
+  },
+  {
+    "untyped",
+    5,
+    PROTOBUF_C_LABEL_OPTIONAL,
+    PROTOBUF_C_TYPE_MESSAGE,
+    0,   /* quantifier_offset */
+    offsetof(Io__Prometheus__Client__Metric, untyped),
+    &io__prometheus__client__untyped__descriptor,
+    NULL,
+    0,             /* flags */
+    0,NULL,NULL    /* reserved1,reserved2, etc */
+  },
+  {
+    "timestamp_ms",
+    6,
+    PROTOBUF_C_LABEL_OPTIONAL,
+    PROTOBUF_C_TYPE_INT64,
+    offsetof(Io__Prometheus__Client__Metric, has_timestamp_ms),
+    offsetof(Io__Prometheus__Client__Metric, timestamp_ms),
+    NULL,
+    NULL,
+    0,             /* flags */
+    0,NULL,NULL    /* reserved1,reserved2, etc */
+  },
+  {
+    "histogram",
+    7,
+    PROTOBUF_C_LABEL_OPTIONAL,
+    PROTOBUF_C_TYPE_MESSAGE,
+    0,   /* quantifier_offset */
+    offsetof(Io__Prometheus__Client__Metric, histogram),
+    &io__prometheus__client__histogram__descriptor,
+    NULL,
+    0,             /* flags */
+    0,NULL,NULL    /* reserved1,reserved2, etc */
+  },
+};
+static const unsigned io__prometheus__client__metric__field_indices_by_name[] = {
+  2,   /* field[2] = counter */
+  1,   /* field[1] = gauge */
+  6,   /* field[6] = histogram */
+  0,   /* field[0] = label */
+  3,   /* field[3] = summary */
+  5,   /* field[5] = timestamp_ms */
+  4,   /* field[4] = untyped */
+};
+static const ProtobufCIntRange io__prometheus__client__metric__number_ranges[1 + 1] =
+{
+  { 1, 0 },
+  { 0, 7 }
+};
+const ProtobufCMessageDescriptor io__prometheus__client__metric__descriptor =
+{
+  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
+  "io.prometheus.client.Metric",
+  "Metric",
+  "Io__Prometheus__Client__Metric",
+  "io.prometheus.client",
+  sizeof(Io__Prometheus__Client__Metric),
+  7,
+  io__prometheus__client__metric__field_descriptors,
+  io__prometheus__client__metric__field_indices_by_name,
+  1,  io__prometheus__client__metric__number_ranges,
+  (ProtobufCMessageInit) io__prometheus__client__metric__init,
+  NULL,NULL,NULL    /* reserved[123] */
+};
+static const ProtobufCFieldDescriptor io__prometheus__client__metric_family__field_descriptors[4] =
+{
+  {
+    "name",
+    1,
+    PROTOBUF_C_LABEL_OPTIONAL,
+    PROTOBUF_C_TYPE_STRING,
+    0,   /* quantifier_offset */
+    offsetof(Io__Prometheus__Client__MetricFamily, name),
+    NULL,
+    NULL,
+    0,             /* flags */
+    0,NULL,NULL    /* reserved1,reserved2, etc */
+  },
+  {
+    "help",
+    2,
+    PROTOBUF_C_LABEL_OPTIONAL,
+    PROTOBUF_C_TYPE_STRING,
+    0,   /* quantifier_offset */
+    offsetof(Io__Prometheus__Client__MetricFamily, help),
+    NULL,
+    NULL,
+    0,             /* flags */
+    0,NULL,NULL    /* reserved1,reserved2, etc */
+  },
+  {
+    "type",
+    3,
+    PROTOBUF_C_LABEL_OPTIONAL,
+    PROTOBUF_C_TYPE_ENUM,
+    offsetof(Io__Prometheus__Client__MetricFamily, has_type),
+    offsetof(Io__Prometheus__Client__MetricFamily, type),
+    &io__prometheus__client__metric_type__descriptor,
+    NULL,
+    0,             /* flags */
+    0,NULL,NULL    /* reserved1,reserved2, etc */
+  },
+  {
+    "metric",
+    4,
+    PROTOBUF_C_LABEL_REPEATED,
+    PROTOBUF_C_TYPE_MESSAGE,
+    offsetof(Io__Prometheus__Client__MetricFamily, n_metric),
+    offsetof(Io__Prometheus__Client__MetricFamily, metric),
+    &io__prometheus__client__metric__descriptor,
+    NULL,
+    0,             /* flags */
+    0,NULL,NULL    /* reserved1,reserved2, etc */
+  },
+};
+static const unsigned io__prometheus__client__metric_family__field_indices_by_name[] = {
+  1,   /* field[1] = help */
+  3,   /* field[3] = metric */
+  0,   /* field[0] = name */
+  2,   /* field[2] = type */
+};
+static const ProtobufCIntRange io__prometheus__client__metric_family__number_ranges[1 + 1] =
+{
+  { 1, 0 },
+  { 0, 4 }
+};
+const ProtobufCMessageDescriptor io__prometheus__client__metric_family__descriptor =
+{
+  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
+  "io.prometheus.client.MetricFamily",
+  "MetricFamily",
+  "Io__Prometheus__Client__MetricFamily",
+  "io.prometheus.client",
+  sizeof(Io__Prometheus__Client__MetricFamily),
+  4,
+  io__prometheus__client__metric_family__field_descriptors,
+  io__prometheus__client__metric_family__field_indices_by_name,
+  1,  io__prometheus__client__metric_family__number_ranges,
+  (ProtobufCMessageInit) io__prometheus__client__metric_family__init,
+  NULL,NULL,NULL    /* reserved[123] */
+};
+static const ProtobufCEnumValue io__prometheus__client__metric_type__enum_values_by_number[5] =
+{
+  { "COUNTER", "IO__PROMETHEUS__CLIENT__METRIC_TYPE__COUNTER", 0 },
+  { "GAUGE", "IO__PROMETHEUS__CLIENT__METRIC_TYPE__GAUGE", 1 },
+  { "SUMMARY", "IO__PROMETHEUS__CLIENT__METRIC_TYPE__SUMMARY", 2 },
+  { "UNTYPED", "IO__PROMETHEUS__CLIENT__METRIC_TYPE__UNTYPED", 3 },
+  { "HISTOGRAM", "IO__PROMETHEUS__CLIENT__METRIC_TYPE__HISTOGRAM", 4 },
+};
+static const ProtobufCIntRange io__prometheus__client__metric_type__value_ranges[] = {
+{0, 0},{0, 5}
+};
+static const ProtobufCEnumValueIndex io__prometheus__client__metric_type__enum_values_by_name[5] =
+{
+  { "COUNTER", 0 },
+  { "GAUGE", 1 },
+  { "HISTOGRAM", 4 },
+  { "SUMMARY", 2 },
+  { "UNTYPED", 3 },
+};
+const ProtobufCEnumDescriptor io__prometheus__client__metric_type__descriptor =
+{
+  PROTOBUF_C__ENUM_DESCRIPTOR_MAGIC,
+  "io.prometheus.client.MetricType",
+  "MetricType",
+  "Io__Prometheus__Client__MetricType",
+  "io.prometheus.client",
+  5,
+  io__prometheus__client__metric_type__enum_values_by_number,
+  5,
+  io__prometheus__client__metric_type__enum_values_by_name,
+  1,
+  io__prometheus__client__metric_type__value_ranges,
+  NULL,NULL,NULL,NULL   /* reserved[1234] */
+};
--- /dev/null	2020-08-29 04:17:16.135070548 +0200
+++ ./prometheus.pb-c.h	2020-09-01 19:52:23.931588737 +0200
@@ -0,0 +1,428 @@
+/* Generated by the protocol buffer compiler.  DO NOT EDIT! */
+/* Generated from: prometheus.proto */
+
+#ifndef PROTOBUF_C_prometheus_2eproto__INCLUDED
+#define PROTOBUF_C_prometheus_2eproto__INCLUDED
+
+#include <protobuf-c/protobuf-c.h>
+
+PROTOBUF_C__BEGIN_DECLS
+
+#if PROTOBUF_C_VERSION_NUMBER < 1000000
+# error This file was generated by a newer version of protoc-c which is incompatible with your libprotobuf-c headers. Please update your headers.
+#elif 1003003 < PROTOBUF_C_MIN_COMPILER_VERSION
+# error This file was generated by an older version of protoc-c which is incompatible with your libprotobuf-c headers. Please regenerate this file with a newer version of protoc-c.
+#endif
+
+
+typedef struct _Io__Prometheus__Client__LabelPair Io__Prometheus__Client__LabelPair;
+typedef struct _Io__Prometheus__Client__Gauge Io__Prometheus__Client__Gauge;
+typedef struct _Io__Prometheus__Client__Counter Io__Prometheus__Client__Counter;
+typedef struct _Io__Prometheus__Client__Quantile Io__Prometheus__Client__Quantile;
+typedef struct _Io__Prometheus__Client__Summary Io__Prometheus__Client__Summary;
+typedef struct _Io__Prometheus__Client__Untyped Io__Prometheus__Client__Untyped;
+typedef struct _Io__Prometheus__Client__Histogram Io__Prometheus__Client__Histogram;
+typedef struct _Io__Prometheus__Client__Bucket Io__Prometheus__Client__Bucket;
+typedef struct _Io__Prometheus__Client__Metric Io__Prometheus__Client__Metric;
+typedef struct _Io__Prometheus__Client__MetricFamily Io__Prometheus__Client__MetricFamily;
+
+
+/* --- enums --- */
+
+typedef enum _Io__Prometheus__Client__MetricType {
+  IO__PROMETHEUS__CLIENT__METRIC_TYPE__COUNTER = 0,
+  IO__PROMETHEUS__CLIENT__METRIC_TYPE__GAUGE = 1,
+  IO__PROMETHEUS__CLIENT__METRIC_TYPE__SUMMARY = 2,
+  IO__PROMETHEUS__CLIENT__METRIC_TYPE__UNTYPED = 3,
+  IO__PROMETHEUS__CLIENT__METRIC_TYPE__HISTOGRAM = 4
+    PROTOBUF_C__FORCE_ENUM_TO_BE_INT_SIZE(IO__PROMETHEUS__CLIENT__METRIC_TYPE)
+} Io__Prometheus__Client__MetricType;
+
+/* --- messages --- */
+
+struct  _Io__Prometheus__Client__LabelPair
+{
+  ProtobufCMessage base;
+  char *name;
+  char *value;
+};
+#define IO__PROMETHEUS__CLIENT__LABEL_PAIR__INIT \
+ { PROTOBUF_C_MESSAGE_INIT (&io__prometheus__client__label_pair__descriptor) \
+    , NULL, NULL }
+
+
+struct  _Io__Prometheus__Client__Gauge
+{
+  ProtobufCMessage base;
+  protobuf_c_boolean has_value;
+  double value;
+};
+#define IO__PROMETHEUS__CLIENT__GAUGE__INIT \
+ { PROTOBUF_C_MESSAGE_INIT (&io__prometheus__client__gauge__descriptor) \
+    , 0, 0 }
+
+
+struct  _Io__Prometheus__Client__Counter
+{
+  ProtobufCMessage base;
+  protobuf_c_boolean has_value;
+  double value;
+};
+#define IO__PROMETHEUS__CLIENT__COUNTER__INIT \
+ { PROTOBUF_C_MESSAGE_INIT (&io__prometheus__client__counter__descriptor) \
+    , 0, 0 }
+
+
+struct  _Io__Prometheus__Client__Quantile
+{
+  ProtobufCMessage base;
+  protobuf_c_boolean has_quantile;
+  double quantile;
+  protobuf_c_boolean has_value;
+  double value;
+};
+#define IO__PROMETHEUS__CLIENT__QUANTILE__INIT \
+ { PROTOBUF_C_MESSAGE_INIT (&io__prometheus__client__quantile__descriptor) \
+    , 0, 0, 0, 0 }
+
+
+struct  _Io__Prometheus__Client__Summary
+{
+  ProtobufCMessage base;
+  protobuf_c_boolean has_sample_count;
+  uint64_t sample_count;
+  protobuf_c_boolean has_sample_sum;
+  double sample_sum;
+  size_t n_quantile;
+  Io__Prometheus__Client__Quantile **quantile;
+};
+#define IO__PROMETHEUS__CLIENT__SUMMARY__INIT \
+ { PROTOBUF_C_MESSAGE_INIT (&io__prometheus__client__summary__descriptor) \
+    , 0, 0, 0, 0, 0,NULL }
+
+
+struct  _Io__Prometheus__Client__Untyped
+{
+  ProtobufCMessage base;
+  protobuf_c_boolean has_value;
+  double value;
+};
+#define IO__PROMETHEUS__CLIENT__UNTYPED__INIT \
+ { PROTOBUF_C_MESSAGE_INIT (&io__prometheus__client__untyped__descriptor) \
+    , 0, 0 }
+
+
+struct  _Io__Prometheus__Client__Histogram
+{
+  ProtobufCMessage base;
+  protobuf_c_boolean has_sample_count;
+  uint64_t sample_count;
+  protobuf_c_boolean has_sample_sum;
+  double sample_sum;
+  /*
+   * Ordered in increasing order of upper_bound, +Inf bucket is optional.
+   */
+  size_t n_bucket;
+  Io__Prometheus__Client__Bucket **bucket;
+};
+#define IO__PROMETHEUS__CLIENT__HISTOGRAM__INIT \
+ { PROTOBUF_C_MESSAGE_INIT (&io__prometheus__client__histogram__descriptor) \
+    , 0, 0, 0, 0, 0,NULL }
+
+
+struct  _Io__Prometheus__Client__Bucket
+{
+  ProtobufCMessage base;
+  /*
+   * Cumulative in increasing order.
+   */
+  protobuf_c_boolean has_cumulative_count;
+  uint64_t cumulative_count;
+  /*
+   * Inclusive.
+   */
+  protobuf_c_boolean has_upper_bound;
+  double upper_bound;
+};
+#define IO__PROMETHEUS__CLIENT__BUCKET__INIT \
+ { PROTOBUF_C_MESSAGE_INIT (&io__prometheus__client__bucket__descriptor) \
+    , 0, 0, 0, 0 }
+
+
+struct  _Io__Prometheus__Client__Metric
+{
+  ProtobufCMessage base;
+  size_t n_label;
+  Io__Prometheus__Client__LabelPair **label;
+  Io__Prometheus__Client__Gauge *gauge;
+  Io__Prometheus__Client__Counter *counter;
+  Io__Prometheus__Client__Summary *summary;
+  Io__Prometheus__Client__Untyped *untyped;
+  Io__Prometheus__Client__Histogram *histogram;
+  protobuf_c_boolean has_timestamp_ms;
+  int64_t timestamp_ms;
+};
+#define IO__PROMETHEUS__CLIENT__METRIC__INIT \
+ { PROTOBUF_C_MESSAGE_INIT (&io__prometheus__client__metric__descriptor) \
+    , 0,NULL, NULL, NULL, NULL, NULL, NULL, 0, 0 }
+
+
+struct  _Io__Prometheus__Client__MetricFamily
+{
+  ProtobufCMessage base;
+  char *name;
+  char *help;
+  protobuf_c_boolean has_type;
+  Io__Prometheus__Client__MetricType type;
+  size_t n_metric;
+  Io__Prometheus__Client__Metric **metric;
+};
+#define IO__PROMETHEUS__CLIENT__METRIC_FAMILY__INIT \
+ { PROTOBUF_C_MESSAGE_INIT (&io__prometheus__client__metric_family__descriptor) \
+    , NULL, NULL, 0, IO__PROMETHEUS__CLIENT__METRIC_TYPE__COUNTER, 0,NULL }
+
+
+/* Io__Prometheus__Client__LabelPair methods */
+void   io__prometheus__client__label_pair__init
+                     (Io__Prometheus__Client__LabelPair         *message);
+size_t io__prometheus__client__label_pair__get_packed_size
+                     (const Io__Prometheus__Client__LabelPair   *message);
+size_t io__prometheus__client__label_pair__pack
+                     (const Io__Prometheus__Client__LabelPair   *message,
+                      uint8_t             *out);
+size_t io__prometheus__client__label_pair__pack_to_buffer
+                     (const Io__Prometheus__Client__LabelPair   *message,
+                      ProtobufCBuffer     *buffer);
+Io__Prometheus__Client__LabelPair *
+       io__prometheus__client__label_pair__unpack
+                     (ProtobufCAllocator  *allocator,
+                      size_t               len,
+                      const uint8_t       *data);
+void   io__prometheus__client__label_pair__free_unpacked
+                     (Io__Prometheus__Client__LabelPair *message,
+                      ProtobufCAllocator *allocator);
+/* Io__Prometheus__Client__Gauge methods */
+void   io__prometheus__client__gauge__init
+                     (Io__Prometheus__Client__Gauge         *message);
+size_t io__prometheus__client__gauge__get_packed_size
+                     (const Io__Prometheus__Client__Gauge   *message);
+size_t io__prometheus__client__gauge__pack
+                     (const Io__Prometheus__Client__Gauge   *message,
+                      uint8_t             *out);
+size_t io__prometheus__client__gauge__pack_to_buffer
+                     (const Io__Prometheus__Client__Gauge   *message,
+                      ProtobufCBuffer     *buffer);
+Io__Prometheus__Client__Gauge *
+       io__prometheus__client__gauge__unpack
+                     (ProtobufCAllocator  *allocator,
+                      size_t               len,
+                      const uint8_t       *data);
+void   io__prometheus__client__gauge__free_unpacked
+                     (Io__Prometheus__Client__Gauge *message,
+                      ProtobufCAllocator *allocator);
+/* Io__Prometheus__Client__Counter methods */
+void   io__prometheus__client__counter__init
+                     (Io__Prometheus__Client__Counter         *message);
+size_t io__prometheus__client__counter__get_packed_size
+                     (const Io__Prometheus__Client__Counter   *message);
+size_t io__prometheus__client__counter__pack
+                     (const Io__Prometheus__Client__Counter   *message,
+                      uint8_t             *out);
+size_t io__prometheus__client__counter__pack_to_buffer
+                     (const Io__Prometheus__Client__Counter   *message,
+                      ProtobufCBuffer     *buffer);
+Io__Prometheus__Client__Counter *
+       io__prometheus__client__counter__unpack
+                     (ProtobufCAllocator  *allocator,
+                      size_t               len,
+                      const uint8_t       *data);
+void   io__prometheus__client__counter__free_unpacked
+                     (Io__Prometheus__Client__Counter *message,
+                      ProtobufCAllocator *allocator);
+/* Io__Prometheus__Client__Quantile methods */
+void   io__prometheus__client__quantile__init
+                     (Io__Prometheus__Client__Quantile         *message);
+size_t io__prometheus__client__quantile__get_packed_size
+                     (const Io__Prometheus__Client__Quantile   *message);
+size_t io__prometheus__client__quantile__pack
+                     (const Io__Prometheus__Client__Quantile   *message,
+                      uint8_t             *out);
+size_t io__prometheus__client__quantile__pack_to_buffer
+                     (const Io__Prometheus__Client__Quantile   *message,
+                      ProtobufCBuffer     *buffer);
+Io__Prometheus__Client__Quantile *
+       io__prometheus__client__quantile__unpack
+                     (ProtobufCAllocator  *allocator,
+                      size_t               len,
+                      const uint8_t       *data);
+void   io__prometheus__client__quantile__free_unpacked
+                     (Io__Prometheus__Client__Quantile *message,
+                      ProtobufCAllocator *allocator);
+/* Io__Prometheus__Client__Summary methods */
+void   io__prometheus__client__summary__init
+                     (Io__Prometheus__Client__Summary         *message);
+size_t io__prometheus__client__summary__get_packed_size
+                     (const Io__Prometheus__Client__Summary   *message);
+size_t io__prometheus__client__summary__pack
+                     (const Io__Prometheus__Client__Summary   *message,
+                      uint8_t             *out);
+size_t io__prometheus__client__summary__pack_to_buffer
+                     (const Io__Prometheus__Client__Summary   *message,
+                      ProtobufCBuffer     *buffer);
+Io__Prometheus__Client__Summary *
+       io__prometheus__client__summary__unpack
+                     (ProtobufCAllocator  *allocator,
+                      size_t               len,
+                      const uint8_t       *data);
+void   io__prometheus__client__summary__free_unpacked
+                     (Io__Prometheus__Client__Summary *message,
+                      ProtobufCAllocator *allocator);
+/* Io__Prometheus__Client__Untyped methods */
+void   io__prometheus__client__untyped__init
+                     (Io__Prometheus__Client__Untyped         *message);
+size_t io__prometheus__client__untyped__get_packed_size
+                     (const Io__Prometheus__Client__Untyped   *message);
+size_t io__prometheus__client__untyped__pack
+                     (const Io__Prometheus__Client__Untyped   *message,
+                      uint8_t             *out);
+size_t io__prometheus__client__untyped__pack_to_buffer
+                     (const Io__Prometheus__Client__Untyped   *message,
+                      ProtobufCBuffer     *buffer);
+Io__Prometheus__Client__Untyped *
+       io__prometheus__client__untyped__unpack
+                     (ProtobufCAllocator  *allocator,
+                      size_t               len,
+                      const uint8_t       *data);
+void   io__prometheus__client__untyped__free_unpacked
+                     (Io__Prometheus__Client__Untyped *message,
+                      ProtobufCAllocator *allocator);
+/* Io__Prometheus__Client__Histogram methods */
+void   io__prometheus__client__histogram__init
+                     (Io__Prometheus__Client__Histogram         *message);
+size_t io__prometheus__client__histogram__get_packed_size
+                     (const Io__Prometheus__Client__Histogram   *message);
+size_t io__prometheus__client__histogram__pack
+                     (const Io__Prometheus__Client__Histogram   *message,
+                      uint8_t             *out);
+size_t io__prometheus__client__histogram__pack_to_buffer
+                     (const Io__Prometheus__Client__Histogram   *message,
+                      ProtobufCBuffer     *buffer);
+Io__Prometheus__Client__Histogram *
+       io__prometheus__client__histogram__unpack
+                     (ProtobufCAllocator  *allocator,
+                      size_t               len,
+                      const uint8_t       *data);
+void   io__prometheus__client__histogram__free_unpacked
+                     (Io__Prometheus__Client__Histogram *message,
+                      ProtobufCAllocator *allocator);
+/* Io__Prometheus__Client__Bucket methods */
+void   io__prometheus__client__bucket__init
+                     (Io__Prometheus__Client__Bucket         *message);
+size_t io__prometheus__client__bucket__get_packed_size
+                     (const Io__Prometheus__Client__Bucket   *message);
+size_t io__prometheus__client__bucket__pack
+                     (const Io__Prometheus__Client__Bucket   *message,
+                      uint8_t             *out);
+size_t io__prometheus__client__bucket__pack_to_buffer
+                     (const Io__Prometheus__Client__Bucket   *message,
+                      ProtobufCBuffer     *buffer);
+Io__Prometheus__Client__Bucket *
+       io__prometheus__client__bucket__unpack
+                     (ProtobufCAllocator  *allocator,
+                      size_t               len,
+                      const uint8_t       *data);
+void   io__prometheus__client__bucket__free_unpacked
+                     (Io__Prometheus__Client__Bucket *message,
+                      ProtobufCAllocator *allocator);
+/* Io__Prometheus__Client__Metric methods */
+void   io__prometheus__client__metric__init
+                     (Io__Prometheus__Client__Metric         *message);
+size_t io__prometheus__client__metric__get_packed_size
+                     (const Io__Prometheus__Client__Metric   *message);
+size_t io__prometheus__client__metric__pack
+                     (const Io__Prometheus__Client__Metric   *message,
+                      uint8_t             *out);
+size_t io__prometheus__client__metric__pack_to_buffer
+                     (const Io__Prometheus__Client__Metric   *message,
+                      ProtobufCBuffer     *buffer);
+Io__Prometheus__Client__Metric *
+       io__prometheus__client__metric__unpack
+                     (ProtobufCAllocator  *allocator,
+                      size_t               len,
+                      const uint8_t       *data);
+void   io__prometheus__client__metric__free_unpacked
+                     (Io__Prometheus__Client__Metric *message,
+                      ProtobufCAllocator *allocator);
+/* Io__Prometheus__Client__MetricFamily methods */
+void   io__prometheus__client__metric_family__init
+                     (Io__Prometheus__Client__MetricFamily         *message);
+size_t io__prometheus__client__metric_family__get_packed_size
+                     (const Io__Prometheus__Client__MetricFamily   *message);
+size_t io__prometheus__client__metric_family__pack
+                     (const Io__Prometheus__Client__MetricFamily   *message,
+                      uint8_t             *out);
+size_t io__prometheus__client__metric_family__pack_to_buffer
+                     (const Io__Prometheus__Client__MetricFamily   *message,
+                      ProtobufCBuffer     *buffer);
+Io__Prometheus__Client__MetricFamily *
+       io__prometheus__client__metric_family__unpack
+                     (ProtobufCAllocator  *allocator,
+                      size_t               len,
+                      const uint8_t       *data);
+void   io__prometheus__client__metric_family__free_unpacked
+                     (Io__Prometheus__Client__MetricFamily *message,
+                      ProtobufCAllocator *allocator);
+/* --- per-message closures --- */
+
+typedef void (*Io__Prometheus__Client__LabelPair_Closure)
+                 (const Io__Prometheus__Client__LabelPair *message,
+                  void *closure_data);
+typedef void (*Io__Prometheus__Client__Gauge_Closure)
+                 (const Io__Prometheus__Client__Gauge *message,
+                  void *closure_data);
+typedef void (*Io__Prometheus__Client__Counter_Closure)
+                 (const Io__Prometheus__Client__Counter *message,
+                  void *closure_data);
+typedef void (*Io__Prometheus__Client__Quantile_Closure)
+                 (const Io__Prometheus__Client__Quantile *message,
+                  void *closure_data);
+typedef void (*Io__Prometheus__Client__Summary_Closure)
+                 (const Io__Prometheus__Client__Summary *message,
+                  void *closure_data);
+typedef void (*Io__Prometheus__Client__Untyped_Closure)
+                 (const Io__Prometheus__Client__Untyped *message,
+                  void *closure_data);
+typedef void (*Io__Prometheus__Client__Histogram_Closure)
+                 (const Io__Prometheus__Client__Histogram *message,
+                  void *closure_data);
+typedef void (*Io__Prometheus__Client__Bucket_Closure)
+                 (const Io__Prometheus__Client__Bucket *message,
+                  void *closure_data);
+typedef void (*Io__Prometheus__Client__Metric_Closure)
+                 (const Io__Prometheus__Client__Metric *message,
+                  void *closure_data);
+typedef void (*Io__Prometheus__Client__MetricFamily_Closure)
+                 (const Io__Prometheus__Client__MetricFamily *message,
+                  void *closure_data);
+
+/* --- services --- */
+
+
+/* --- descriptors --- */
+
+extern const ProtobufCEnumDescriptor    io__prometheus__client__metric_type__descriptor;
+extern const ProtobufCMessageDescriptor io__prometheus__client__label_pair__descriptor;
+extern const ProtobufCMessageDescriptor io__prometheus__client__gauge__descriptor;
+extern const ProtobufCMessageDescriptor io__prometheus__client__counter__descriptor;
+extern const ProtobufCMessageDescriptor io__prometheus__client__quantile__descriptor;
+extern const ProtobufCMessageDescriptor io__prometheus__client__summary__descriptor;
+extern const ProtobufCMessageDescriptor io__prometheus__client__untyped__descriptor;
+extern const ProtobufCMessageDescriptor io__prometheus__client__histogram__descriptor;
+extern const ProtobufCMessageDescriptor io__prometheus__client__bucket__descriptor;
+extern const ProtobufCMessageDescriptor io__prometheus__client__metric__descriptor;
+extern const ProtobufCMessageDescriptor io__prometheus__client__metric_family__descriptor;
+
+PROTOBUF_C__END_DECLS
+
+
+#endif  /* PROTOBUF_C_prometheus_2eproto__INCLUDED */
