| 1 | const std = @import("std"); |
| 2 | const tracer = @import("tracer"); |
| 3 | const nfs = @import("nfs"); |
| 4 | |
| 5 | pub const build_options = @import("build_options"); |
| 6 | |
| 7 | pub const tracer_backend: tracer.Backend = @enumFromInt(build_options.backend); |
| 8 | pub const otel_service_name = "zig-tracer test"; |
| 9 | pub const otel_service_version = build_options.version; |
| 10 | |
| 11 | pub var io: std.Io = undefined; |
| 12 | |
| 13 | pub 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 | |
| 41 | fn handler() void { |
| 42 | const t = tracer.trace(@src(), "", .{}); |
| 43 | defer t.end(); |
| 44 | } |