1const std = @import("std");
2const tracer = @import("tracer");
3const nfs = @import("nfs");
4
5pub const build_options = @import("build_options");
6
7pub const tracer_backend: tracer.Backend = @enumFromInt(build_options.backend);
8pub const otel_service_name = "zig-tracer test";
9pub const otel_service_version = build_options.version;
10
11pub var io: std.Io = undefined;
12
13pub fn main() !void {
14 const allocator = std.heap.c_allocator;
15
16 var threaded: std.Io.Threaded = .init(allocator, .{});
17 defer threaded.deinit();
18 io = threaded.io();
19
20 try tracer.init(.{});
21 defer tracer.deinit();
22
23 // main loop
24 var go = true;
25 _ = &go;
26 while (go) {
27 try tracer.init_thread(switch (build_options.backend) {
28 0, 1 => .{},
29 2, 3 => .{try nfs.mkdtemp()},
30 4 => .{ std.heap.c_allocator, try std.Uri.parse("http://localhost:4318/v1/traces") },
31 else => comptime unreachable,
32 });
33 defer tracer.deinit_thread();
34
35 handler();
36
37 break;
38 }
39}
40
41fn handler() void {
42 const t = tracer.trace(@src(), "", .{});
43 defer t.end();
44}