Works with
ns-3.46
Latest Build :
Build History :
OpenTelemetry Protocol Exporter v1.0.0
Release Notes
<p><strong>Initial release of ns3-otlp module v1.0.0</strong></p>
<p><strong>Key Features</strong></p>
<ul>
<li><strong>Virtual Clock Synchronization (<code>OtelClock</code>):</strong> Anchors simulation time to real wall-clock at <code>Install()</code>; prevents 1970 epoch span rejection in Jaeger UI.</li>
<li><strong>Packet Lifecycle Tracing (<code>OtelTraceSink</code>):</strong> Auto-hooks <code>MacTx</code>, <code>MacRx</code>, <code>PhyRxDrop</code>, <code>MacTxDrop</code> on P2P and Wi-Fi devices. Emits spans with node IDs, packet UIDs, sizes, and drop reasons.</li>
<li><strong>Metrics Pipeline (<code>OtelMetricSink</code>):</strong> Exports throughput counter (<code>ns3.bytes_transferred</code>), drop counter (<code>ns3.packet_drops</code>), and queue occupancy histogram (<code>ns3.queue_size</code>) over OTLP/HTTP (<code>/v1/metrics</code>).</li>
<li><strong>ns-3 Native Design:</strong> Sinks inherit from <code>ns3::Object</code> with registered <code>TypeId</code> attributes under group <code>"otlp"</code>.</li>
<li><strong>Graceful Build Fallback:</strong> Soft <code>pkg-config</code> probe for <code>opentelemetry-cpp</code> in <code>CMakeLists.txt</code>; skips module gracefully if SDK is missing.</li>
<li><strong>Offline Testing:</strong> Unit tests use <code>InMemorySpanExporter</code> for zero-network CI execution.</li>
</ul>