]> git.proxmox.com Git - ceph.git/blame - ceph/src/common/zipkin_trace.h
import 15.2.0 Octopus source
[ceph.git] / ceph / src / common / zipkin_trace.h
CommitLineData
7c673cae
FG
1// -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*-
2// vim: ts=8 sw=2 smarttab
3#ifndef COMMON_ZIPKIN_TRACE_H
4#define COMMON_ZIPKIN_TRACE_H
5
7c673cae 6#include "acconfig.h"
31f18b77 7#include "include/encoding.h"
7c673cae
FG
8
9#ifdef WITH_BLKIN
10
11#include <ztracer.hpp>
12
13#else // !WITH_BLKIN
14
15// add stubs for noop Trace and Endpoint
16
17// match the "real" struct
18struct blkin_trace_info {
19 int64_t trace_id;
20 int64_t span_id;
21 int64_t parent_span_id;
22};
23
24namespace ZTracer
25{
26static inline int ztrace_init() { return 0; }
27
28class Endpoint {
29 public:
30 Endpoint(const char *name) {}
31 Endpoint(const char *ip, int port, const char *name) {}
32
33 void copy_ip(const std::string &newip) {}
34 void copy_name(const std::string &newname) {}
35 void copy_address_from(const Endpoint *endpoint) {}
36 void share_address_from(const Endpoint *endpoint) {}
37 void set_port(int p) {}
38};
39
40class Trace {
41 public:
42 Trace() {}
43 Trace(const char *name, const Endpoint *ep, const Trace *parent = NULL) {}
44 Trace(const char *name, const Endpoint *ep,
45 const blkin_trace_info *i, bool child=false) {}
46
47 bool valid() const { return false; }
48 operator bool() const { return false; }
49
50 int init(const char *name, const Endpoint *ep, const Trace *parent = NULL) {
51 return 0;
52 }
53 int init(const char *name, const Endpoint *ep,
54 const blkin_trace_info *i, bool child=false) {
55 return 0;
56 }
57
58 void copy_name(const std::string &newname) {}
59
60 const blkin_trace_info* get_info() const { return NULL; }
61 void set_info(const blkin_trace_info *i) {}
62
63 void keyval(const char *key, const char *val) const {}
64 void keyval(const char *key, int64_t val) const {}
65 void keyval(const char *key, const char *val, const Endpoint *ep) const {}
66 void keyval(const char *key, int64_t val, const Endpoint *ep) const {}
67
68 void event(const char *event) const {}
69 void event(const char *event, const Endpoint *ep) const {}
70};
71} // namespace ZTrace
72
73#endif // !WITH_BLKIN
74
9f95a23c 75static inline void encode(const blkin_trace_info& b, ceph::buffer::list& bl)
7c673cae 76{
9f95a23c 77 using ceph::encode;
11fdf7f2
TL
78 encode(b.trace_id, bl);
79 encode(b.span_id, bl);
80 encode(b.parent_span_id, bl);
7c673cae
FG
81}
82
9f95a23c 83static inline void decode(blkin_trace_info& b, ceph::buffer::list::const_iterator& p)
7c673cae 84{
9f95a23c 85 using ceph::decode;
11fdf7f2
TL
86 decode(b.trace_id, p);
87 decode(b.span_id, p);
88 decode(b.parent_span_id, p);
7c673cae
FG
89}
90
91
92
93#endif // COMMON_ZIPKIN_TRACE_H