Optimizing Tail Sampling in OpenTelemetry with Retroactive Sampling
La retroactive sampling n'envoie au collecteur central que les attributs essentiels pour décider et conserve les spans bruts sur les agents, en ne récupérant les traces complètes que si elles sont échantillonnées. Cette approche réduit la bande passante sortante ainsi que l'utilisation de mémoire et de CPU du collecteur en déplaçant le buffering vers une file FIFO sur disque côté agent. Le benchmark rapporte une réduction d'environ 70 % du trafic compressé et des économies de 60–70 % en CPU et mémoire, avec un faible usage disque (1,7 Go) et une économie de 4 Go de mémoire par rapport au tail sampling. Les limites incluent une visibilité réduite pour le collecteur si de nombreux attributs sont requis, et des variantes proposées sont la combinaison d'une décision locale avec la retroactive sampling ou l'emploi d'un stockage sur disque pour le tail sampling. L'implémentation est actuellement un prototype prévu pour être proposé comme processeur OpenTelemetry et intégré à l'agent de VictoriaTraces, s'appuyant sur des travaux académiques antérieurs (NSDI 2023).