1
5#pragma once
6
7#include <smithy/tracing/TraceSpan.h>
8
10 namespace components {
11 namespace tracing {
23 public:
25 m_currentSpanScope(std::make_shared<TraceSpan>(std::move(probe))) {}26
28 m_currentSpanScope(parent.getCurrentSpan()->newChildSpan()) {}
29
31
34 TraceEventLevel level,
35 uint64_t count)
36 {
37 TraceEvent event = getCurrentSpan()->newCountEvent(std::move(eventName),38 componentId,
39 level,
40 count);
43 }
44
47 TraceEventLevel level,
48 std::chrono::milliseconds timeTaken)
49 {
50 TraceEvent event = getCurrentSpan()->newTimerEvent(std::move(eventName),51 componentId,
52 level,
53 timeTaken);
56 }
57
58
61 TraceEventLevel level,
62 TraceStatType statType,
63 double value)
64 {
65 TraceEvent event = getCurrentSpan()->newStatEvent(std::move(eventName),66 componentId,
67 level,
68 statType,
69 value);
72 }
73
74
77 TraceEventLevel level,
79 {
80 TraceEvent event = getCurrentSpan()->newMessageEvent(std::move(eventName),81 componentId,
82 level,
83 std::move(message));
86 }
87
89 return m_currentSpanScope.get();
90 }
91
92 private:
93 const std::shared_ptr<TraceSpan> m_currentSpanScope;
94
96 };
97 }
98 }
99}
void OnCountEvent(Aws::String &&eventName, const Aws::String &componentId, TraceEventLevel level, uint64_t count)
ScopedTracer(std::shared_ptr< TraceProbe > probe)
virtual ~ScopedTracer()=default
ScopedTracer(ScopedTracer &parent)
TraceSpan * getCurrentSpan() const
void OnStatEvent(Aws::String &&eventName, const Aws::String &componentId, TraceEventLevel level, TraceStatType statType, double value)
void OnTimerEvent(Aws::String &&eventName, const Aws::String &componentId, TraceEventLevel level, std::chrono::milliseconds timeTaken)
void OnMessageEvent(Aws::String &&eventName, const Aws::String &componentId, TraceEventLevel level, Aws::String &&message)
void emitTraceEvent(TraceEvent &&event)
std::basic_string< char, std::char_traits< char >, Aws::Allocator< char > > String