#include <chrono>
#include <iostream>
#include <string>
#include <thread>
{
std::cout << " Executing database query..." << std::endl;
std::this_thread::sleep_for(std::chrono::milliseconds(50));
std::cout << " Query completed" << std::endl;
}
{
std::cout << " Checking cache..." << std::endl;
std::this_thread::sleep_for(std::chrono::milliseconds(5));
std::cout << " Cache miss" << std::endl;
}
{
std::cout << "=== Network Tracing Example ===" << std::endl;
std::cout << "\n1. Creating trace context:" << std::endl;
auto ctx = tracing::trace_context::create("handle_request");
std::cout << " Trace context created for 'handle_request'" << std::endl;
std::cout << "\n2. Creating nested spans:" << std::endl;
{
auto request_span = ctx.
create_span(
"process_request");
std::cout << " Request processing complete" << std::endl;
}
std::cout << "\n3. Header propagation:" << std::endl;
std::cout <<
" Trace headers (" <<
headers.size() <<
"):" << std::endl;
for (const auto& [key, value] : headers)
{
std::cout << " " << key << ": " << value << std::endl;
}
std::cout << "\n4. Reconstructing context from headers:" << std::endl;
std::unordered_map<std::string, std::string> header_map;
for (const auto& [key, value] : headers)
{
header_map[key] = value;
}
auto downstream_ctx = tracing::trace_context::from_headers(header_map);
auto downstream_span = downstream_ctx.create_span("downstream_service");
std::cout << " Downstream context reconstructed" << std::endl;
std::cout << " Downstream span created" << std::endl;
std::cout << "\nDone." << std::endl;
return 0;
}
Immutable trace context for distributed tracing.
static auto create_span(std::string_view name) -> span
Create a new root span with a new trace context.
auto to_headers() const -> std::vector< std::pair< std::string, std::string > >
Convert context to HTTP headers for propagation.
Main namespace for all Network System components.
void simulate_database_query(tracing::trace_context &ctx)
void simulate_cache_lookup(tracing::trace_context &ctx)
Unified tracing header for network_system.