Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add support for an http streaming tracer (#148)
* Adds circular buffers for streaming. (#125) * Add chunk delimited circular buffer. * Add additional tests for MessageCircularBuffer. * s/MessageCircularBuffer/ChunkCircularBuffer/ * Document classes. * Document. * Fix build issues. * Fix clang-tidy error. * Fix clang-tidy error #2. * Fix clang-tidy #3. * Fix clang-tidy #4. * Fix magic numbers. * Add stub for http streaming recorder (#126) * Restructure source code. * Reorganize directory structure. * Run clang-format. * Reorging. * Add bazel build for grpc transporter. * Add top-level tracer libraries. * Add build for tests. * Reorging tests. * Port over recorder tests. * Don't expose internal header files. * Port dynamic loading test. * Add EventBase. * Add TimerEvent. * Support StreamRecorder as a tracer options. * Set up polling in StreamRecorder. * Fills out the StreamRecorder class. * Run clang-format. * Fix cmake build. * Convert benchmark to bazel. * Add benchmark build. * Add minimal cmake test. * Remove config.h * Port CI targets. * Fix ci build. * Fix memory leak. * Fix tsan target. * Fix typo. * Add exception handling to StreamRecorder. * Fix typo. * Add clang-tidy to CI. * Fix clang-tidy build. * Fix test case. * Adds an asynchronous dns resolver (#127) * Add code for ip addresses. * Add interface for dns resolution. * Adding in ares resolver. * Add Event class. * Add async dns resolution. * Add support for dns resolution without c-ares. * Add ChildProcessHandle. * Add a mock dns server. * Set up basic dns testing. * Add Socket. * Add addtional dns resolution tests. * Add more tests for dns resolver. * Add test coverage for no build with no dns resolution. * Fix naming. * Naming. * Fix tests with TSAN. * Add c-ares as cmake option. * Fix cmake file. * Fix do_ci.sh. * Add c-ares to plugin. * Add missing step to plugin build. * Fix clang-tidy errors. * Add commenting. * Add commenting. * Drop flaky test. * Fix lifetime issue with AresLibraryHandle. * Adds an endpoint manager to assign round-robin satellite connections (#128) * Change resolver construction function interface. * Set up classes for managing endpoints. * Separate out random code. * Add code to generate random durations. * Fill out code for endpoint manager. * Fix typo. * Fix assertion. * Fix memory issue in test. * Add ready callback to ResolutionManager. * Add test for dns resolution refreshes. * Add test coverage for retry. * Add test coverage for SatelliteEndpointManager. * Add sources to cmake. * Fix clang-tidy warnings. * Add satellite endpoints option to json. * Fix schema typos. * Add SatelliteStreamer (#129) * Add default dns resolution timeout. * Ignore case when comparing hosts. * Set up satellite connection classes. * Fill out SatelliteConnectionManager. * Add Noncopyable class. * s/SatelliteConnectionManager/SatelliteStreamer/ * Fill in SatelliteConnection. * Fix noexcept specifier. * Fill out parts of mock satellite. * Work on SatelliteStreamer. * Fix CI errors. * Add documentation. * Make connections as non-writable when they're closed * Add a mock satellite (#130) * Set up protobuf for go. * Add a mock satellite request handler. * Add reportprocessor. * Fill out mock satellite. * Add HttpConnection. * Add test case for mock satellite. * Add a handler for streaming report requests. * Don't reuse ReportRequest. * Add streaming test. * Check for chunked requests. * Don't modify request after posting to connection. * Fix format. * Fix clang-tidy. * Avoid unnecessary allocations. * Add network code for vectored IO (#131) * Add types for working with fragments. * Add coverage for FragmentInputStream. * Add test coverage for FragmentSet. * Add test coverage for vector-io. * Readability change. * Add additional coverage for Write. * Update CMake build files. * Update CMake build files. * Make FragmentInputStream final. * Fix clang-tidy error. * Add FunctionRef. * Use FunctionRef with ChunkCircularBuffer. * s/Serializer2/Serializer/ * Avoid implicit bool. * Use FunctionRef in FragmentSet. * Add documentation. * Add documentation. * Fix typo. * Remove unused code. * Fix typo. * Add documentation. * Assert that writev limit isn't exceeded. * Fix clang-tidy error. * Starts satellite streaming sessions. (#133) * Add library function for serializing embedded messages. * Generate the common stream header segment. * Add class for serializing metrics in stream header. * s/segment/fragment/ * Add test coverage for WriteStreamHeaderCommonFragment. * Add metrics to stream recorder. * Use FunctionRef in dns resolution. * Add classes for connection streaming. * Fill out code for ConnectionStream. * Fix assignment in FragmentInputStream. * s/FragmentInputStream/FixedFragmentInputStream/ * s/FragmentSet/FragmentInputStream/ * Change FragmentInputStream interface. * Add test coverage for Consume function. * Add HostHeader class. * Return the host name when requesting an endpoint. * Add FragmentArrayInputStream. * Fill out request part of stream header. * Integrate streaming classes. * Add test coverage for ConnectionStream. * Remove unused code. * Add test coverage for ConnectionStream. * Minor refactoring. * Minor refactoring. * Refactor connection code. * Add code for gracefully closing the satellite stream. * Fix post request. * Add test coverage for metrics. * Add files to cmake build. * Add missing files. * Fix clang-tidy error. * Fix clang-tidy errors. * Use preincrement. * Add documentation. * Remove unused include. * Remove magic numbers. * Stream spans (#134) * Fill out parts of SpanStream. * Add FindChunk method. * Fill out SpanStream functionality. * Add tracking from span remnants. * Allot and Consume bytes from the span stream. * Fill in SpanStream::Consume. * Add test coverage for SpanStream. * Put in fixes to SpanStream. * Add test coverage for ConnectionStream. * Add RandomSequencer. * Send spans to satellite. * Fix coverage. * Add missing cmake files. * Remove unnecessary capture. * Avoid recomputing message size. * Factor out code for binary number simulations. * Working on ConnectionStream simulation. * Get number simulation working with a single connection. * Finish ConnectionStream simulation. * Change number simulation functions to be static. * Check that buffer is empty. * Remove unused header. * tee clang-tidy output. * Document and test new circular buffer functions. * Increase clang-tidy timeout. * Document RandomTraverser. * Document GetRandomNumberGenerator. * Document ready method. * Document new ConnectionStream methods. * Fix ConnectionStream simulation. * Document FragmentArrayInputStream. * Document FragmentSpanInputStream. * Document Contains. * Document methods in SpanStream. * Document new test functions. * Document ZeroCopyConnectionInputStream. * Implement FlushWithTimeout (#136) * Work on supporing flush function. * Get rid of forwarding functions. * Use 64-bit number for head and tail in circular buffer. * Add support for flushing. * Fix flushing. * Add additional test coverage. * Fix typo. * Fix test. * Add example that streams to public satellites (#138) * Guard against self-move. * Parse the status code from satellite responses. * Make requests compatible. * Validate options. * Add stream example. * Add stream example. * Add missing cmake file. * Fix clang-tidy errors. * Fix clang-tidy issues. * Use a single ares channel per dns resolution. (#140) * Use a single ares channel per dns resolution. * Remove extra include. * Add missing release job. (#144) * Valid the streaming recorder's config. (#145) * Use smaller flush timeout (#142) * Use smaller flush timeout. * Move flush timeout to constant. * Support MetricsObserver in StreamRecorder. (#146) * Track chunk counts. * Move StreamRecorderMetrics to class. * Make metrics available to SpanStream. * Track spans sent. * Record spans sent. * Record flushes. * Change MetricsObserver to be noexcept. * Document StreamRecorderMetrics. * Fix sent spans count. * Add missing span sent observation. * Fix clang-tidy error. (#147)
- Loading branch information