-
Notifications
You must be signed in to change notification settings - Fork 50
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Use a single ares channel per dns resolution. #140
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
jmacd
approved these changes
Apr 8, 2019
rnburn
added a commit
that referenced
this pull request
Apr 30, 2019
* 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)
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Makes changes to use a single ares channel per dns resolution (similar to envoy).
Otherwise, dns servers that don't respond can get in the way of other queries being processed.