Skip to content

Commit e612f48

Browse files
chore(profiling): remove unused MojoRenderer
1 parent ea4dcad commit e612f48

File tree

4 files changed

+27
-228
lines changed

4 files changed

+27
-228
lines changed

ddtrace/internal/datadog/profiling/stack_v2/CMakeLists.txt

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -55,15 +55,8 @@ if(NOT Threads_FOUND OR NOT CMAKE_USE_PTHREADS_INIT)
5555
endif()
5656

5757
# Specify the target C-extension that we want to build
58-
add_library(
59-
${EXTENSION_NAME} SHARED
60-
src/echion/danger.cc
61-
src/echion/frame.cc
62-
src/echion/render.cc
63-
src/sampler.cpp
64-
src/stack_renderer.cpp
65-
src/stack_v2.cpp
66-
src/thread_span_links.cpp)
58+
add_library(${EXTENSION_NAME} SHARED src/echion/danger.cc src/echion/frame.cc src/sampler.cpp src/stack_renderer.cpp
59+
src/stack_v2.cpp src/thread_span_links.cpp)
6760

6861
# Add common config
6962
add_ddup_config(${EXTENSION_NAME})

ddtrace/internal/datadog/profiling/stack_v2/echion/echion/render.h

Lines changed: 24 additions & 211 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,8 @@
44

55
#pragma once
66

7-
#include <fstream>
8-
#include <iostream>
97
#include <memory>
10-
#include <mutex>
11-
#include <ostream>
8+
#include <string>
129
#include <string_view>
1310

1411
#include <echion/config.h>
@@ -63,219 +60,34 @@ class RendererInterface
6360
virtual ~RendererInterface() = default;
6461
};
6562

66-
class MojoRenderer : public RendererInterface
63+
class NullRenderer : public RendererInterface
6764
{
68-
std::ofstream output;
69-
std::mutex lock;
70-
uint64_t metric = 0;
71-
72-
void inline event(MojoEvent event)
73-
{
74-
output.put(static_cast<char>(event));
75-
}
76-
void inline string(const std::string& string)
77-
{
78-
output << string << '\0';
79-
}
80-
void inline string(const char* string)
81-
{
82-
output << string << '\0';
83-
}
84-
void inline ref(mojo_ref_t value)
85-
{
86-
integer(value);
87-
}
88-
void inline integer(mojo_int_t n)
89-
{
90-
mojo_uint_t integer = n < 0 ? -n : n;
91-
bool sign = n < 0;
92-
93-
unsigned char byte = integer & 0x3f;
94-
if (sign)
95-
byte |= 0x40;
96-
97-
integer >>= 6;
98-
if (integer)
99-
byte |= 0x80;
100-
101-
output.put(byte);
102-
103-
while (integer)
104-
{
105-
byte = integer & 0x7f;
106-
integer >>= 7;
107-
if (integer)
108-
byte |= 0x80;
109-
output.put(byte);
110-
}
111-
}
112-
11365
public:
114-
MojoRenderer() = default;
115-
116-
[[nodiscard]] Result<void> open() override
117-
{
118-
output.open(std::getenv("ECHION_OUTPUT"));
119-
if (!output.is_open())
120-
{
121-
std::cerr << "Failed to open output file " << std::getenv("ECHION_OUTPUT") << std::endl;
122-
return ErrorKind::RendererError;
123-
}
124-
125-
return Result<void>::ok();
126-
}
127-
128-
// ------------------------------------------------------------------------
129-
void close() override
130-
{
131-
std::lock_guard<std::mutex> guard(lock);
132-
133-
output.flush();
134-
output.close();
135-
}
136-
137-
// ------------------------------------------------------------------------
138-
void inline header() override
139-
{
140-
std::lock_guard<std::mutex> guard(lock);
141-
142-
output << "MOJ";
143-
integer(MOJO_VERSION);
144-
}
145-
146-
// ------------------------------------------------------------------------
147-
void inline metadata(const std::string& label, const std::string& value) override
148-
{
149-
std::lock_guard<std::mutex> guard(lock);
150-
151-
event(MOJO_METADATA);
152-
string(label);
153-
string(value);
154-
}
155-
156-
// ------------------------------------------------------------------------
157-
void inline stack(mojo_int_t pid, mojo_int_t iid, const std::string& thread_name)
158-
{
159-
std::lock_guard<std::mutex> guard(lock);
160-
161-
event(MOJO_STACK);
162-
integer(pid);
163-
integer(iid);
164-
string(thread_name);
165-
}
166-
167-
// ------------------------------------------------------------------------
168-
void inline frame(mojo_ref_t key, mojo_ref_t filename, mojo_ref_t name, mojo_int_t line,
169-
mojo_int_t line_end, mojo_int_t column, mojo_int_t column_end) override
170-
{
171-
std::lock_guard<std::mutex> guard(lock);
172-
173-
event(MOJO_FRAME);
174-
ref(key);
175-
ref(filename);
176-
ref(name);
177-
integer(line);
178-
integer(line_end);
179-
integer(column);
180-
integer(column_end);
181-
}
182-
183-
// ------------------------------------------------------------------------
184-
void inline frame_ref(mojo_ref_t key) override
185-
{
186-
std::lock_guard<std::mutex> guard(lock);
187-
188-
if (key == 0)
189-
{
190-
event(MOJO_FRAME_INVALID);
191-
}
192-
else
193-
{
194-
event(MOJO_FRAME_REF);
195-
ref(key);
196-
}
197-
}
198-
199-
// ------------------------------------------------------------------------
200-
void inline frame_kernel(const std::string& scope) override
201-
{
202-
std::lock_guard<std::mutex> guard(lock);
203-
204-
event(MOJO_FRAME_KERNEL);
205-
string(scope);
206-
}
207-
208-
// ------------------------------------------------------------------------
209-
void inline metric_time(mojo_int_t value)
210-
{
211-
std::lock_guard<std::mutex> guard(lock);
212-
213-
event(MOJO_METRIC_TIME);
214-
integer(value);
215-
}
216-
217-
// ------------------------------------------------------------------------
218-
void inline metric_memory(mojo_int_t value)
219-
{
220-
std::lock_guard<std::mutex> guard(lock);
221-
222-
event(MOJO_METRIC_MEMORY);
223-
integer(value);
224-
}
225-
226-
// ------------------------------------------------------------------------
227-
void inline string(mojo_ref_t key, const std::string& value) override
228-
{
229-
std::lock_guard<std::mutex> guard(lock);
230-
231-
event(MOJO_STRING);
232-
ref(key);
233-
string(value);
234-
}
235-
236-
// ------------------------------------------------------------------------
237-
void inline string_ref(mojo_ref_t key) override
238-
{
239-
std::lock_guard<std::mutex> guard(lock);
240-
241-
event(MOJO_STRING_REF);
242-
ref(key);
243-
}
244-
245-
void render_message(std::string_view) override{};
246-
void render_thread_begin(PyThreadState*, std::string_view, microsecond_t, uintptr_t,
247-
unsigned long) override {};
248-
void render_task_begin(std::string, bool) override {};
249-
void render_stack_begin(long long pid, long long iid, const std::string& name) override
250-
{
251-
stack(pid, iid, name);
252-
};
253-
void render_frame(Frame& frame) override;
254-
void render_cpu_time(uint64_t cpu_time) override
255-
{
256-
metric = cpu_time;
257-
};
258-
void render_stack_end(MetricType metric_type, uint64_t delta) override
259-
{
260-
if (metric_type == MetricType::Time)
261-
{
262-
metric_time(cpu ? metric : delta);
263-
}
264-
else if (metric_type == MetricType::Memory)
265-
{
266-
metric_memory(delta);
267-
}
268-
};
269-
bool is_valid() override
270-
{
271-
return true;
272-
}
66+
bool is_valid() override { return true; }
67+
void header() override {}
68+
void metadata(const std::string&, const std::string&) override {}
69+
void frame(mojo_ref_t, mojo_ref_t, mojo_ref_t, mojo_int_t, mojo_int_t, mojo_int_t, mojo_int_t) override {}
70+
void frame_ref(mojo_ref_t) override {}
71+
void frame_kernel(const std::string&) override {}
72+
73+
void string(mojo_ref_t, const std::string&) override {}
74+
void string_ref(mojo_ref_t) override {}
75+
void render_message(std::string_view) override {}
76+
void render_thread_begin(PyThreadState*, std::string_view, microsecond_t, uintptr_t, unsigned long) override {}
77+
void render_task_begin(std::string, bool) override {}
78+
void render_stack_begin(long long, long long, const std::string&) override {}
79+
void render_frame(Frame&) override {}
80+
void render_cpu_time(uint64_t) override {}
81+
void render_stack_end(MetricType, uint64_t) override {}
82+
83+
Result<void> open() override { return Result<void>::ok(); }
84+
void close() override {}
27385
};
27486

27587
class Renderer
27688
{
27789
private:
278-
std::shared_ptr<RendererInterface> default_renderer = std::make_shared<MojoRenderer>();
90+
std::shared_ptr<RendererInterface> defaultRenderer = std::make_shared<NullRenderer>();
27991
std::weak_ptr<RendererInterface> currentRenderer;
28092

28193
std::shared_ptr<RendererInterface> getActiveRenderer()
@@ -287,7 +99,8 @@ class Renderer
28799
return renderer;
288100
}
289101
}
290-
return default_renderer;
102+
103+
return defaultRenderer;
291104
}
292105

293106
Renderer() = default;

ddtrace/internal/datadog/profiling/stack_v2/echion/echion/strings.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010

1111
#include <cstdint>
1212
#include <string>
13+
#include <mutex>
1314

1415
#include <echion/long.h>
1516
#include <echion/render.h>

ddtrace/internal/datadog/profiling/stack_v2/src/echion/render.cc

Lines changed: 0 additions & 8 deletions
This file was deleted.

0 commit comments

Comments
 (0)