Monitoring System 0.1.0
System resource monitoring with pluggable collectors and alerting
Loading...
Searching...
No Matches
zipkin_proto.h File Reference

Serialization/deserialization of Zipkin zipkin.proto messages. More...

#include "protobuf_wire.h"
#include <cstdint>
#include <string>
#include <utility>
#include <vector>
Include dependency graph for zipkin_proto.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  kcenon::monitoring::zipkin_proto::endpoint
 
struct  kcenon::monitoring::zipkin_proto::annotation
 
struct  kcenon::monitoring::zipkin_proto::span
 
struct  kcenon::monitoring::zipkin_proto::list_of_spans
 

Namespaces

namespace  kcenon
 
namespace  kcenon::monitoring
 
namespace  kcenon::monitoring::zipkin_proto
 

Enumerations

enum class  kcenon::monitoring::zipkin_proto::span_kind : std::int32_t {
  kcenon::monitoring::zipkin_proto::unspecified = 0 , kcenon::monitoring::zipkin_proto::client = 1 , kcenon::monitoring::zipkin_proto::server = 2 , kcenon::monitoring::zipkin_proto::producer = 3 ,
  kcenon::monitoring::zipkin_proto::consumer = 4
}
 

Functions

span_kind kcenon::monitoring::zipkin_proto::parse_kind (const std::string &value)
 Convert a textual Zipkin kind (e.g. "CLIENT") to its enum value.
 
std::vector< std::uint8_t > kcenon::monitoring::zipkin_proto::encode_endpoint (const endpoint &ep)
 
std::vector< std::uint8_t > kcenon::monitoring::zipkin_proto::encode_annotation (const annotation &ann)
 
std::vector< std::uint8_t > kcenon::monitoring::zipkin_proto::encode_string_map_entry (const std::string &key, const std::string &value)
 Encode a single entry of a map<string,string> field.
 
std::vector< std::uint8_t > kcenon::monitoring::zipkin_proto::encode_span (const span &s)
 
std::vector< std::uint8_t > kcenon::monitoring::zipkin_proto::encode_list_of_spans (const list_of_spans &list)
 
bool kcenon::monitoring::zipkin_proto::decode_endpoint (const std::uint8_t *data, std::size_t size, endpoint &out)
 
bool kcenon::monitoring::zipkin_proto::decode_annotation (const std::uint8_t *data, std::size_t size, annotation &out)
 
bool kcenon::monitoring::zipkin_proto::decode_map_entry (const std::uint8_t *data, std::size_t size, std::string &key, std::string &value)
 
bool kcenon::monitoring::zipkin_proto::decode_span (const std::uint8_t *data, std::size_t size, span &out)
 
bool kcenon::monitoring::zipkin_proto::decode_list_of_spans (const std::uint8_t *data, std::size_t size, list_of_spans &out)
 

Detailed Description

Serialization/deserialization of Zipkin zipkin.proto messages.

Implements the subset of zipkin.proto3 required for POST /api/v2/spans. Field numbers match openzipkin/zipkin-api zipkin.proto: Span: trace_id=1, parent_id=2, id=3, kind=4, name=5, timestamp=6, duration=7, local_endpoint=8, remote_endpoint=9, annotations=10, tags=11, debug=12, shared=13 Endpoint: service_name=1, ipv4=2, ipv6=3, port=4 Annotation: timestamp=1, value=2 ListOfSpans: spans=1

Note: timestamp is encoded as fixed64 per spec; duration is varint uint64.

Definition in file zipkin_proto.h.