-
Notifications
You must be signed in to change notification settings - Fork 39
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
Add possibility to read input files in parallel #300
Comments
Hello! This is a really good point, and there should be a way to handle such cases by default. What about such logic:
What do you think? |
Hello @buger, this is indeed what I had in mind. |
@ylegat yes, current logic is just very simplified variant of solution proposed here, and it should be replaced. |
@ylegat I would love to include this feature in the next release and wanted to ask if you still want to implement this feature, or I can do it with your with your guidance/testing? Thank you! |
@buger , actually we have already started to implement the feature. Hopefully we will be able to submit a pull request in the course of the week ;) |
When Gor deals with multiple input files, it sorts them and replay their requests file after file. This behavior is not convenient and should be changed. We should respect timestamps order when replaying requests.
Hey @buger , we are currently fighting with a concurrency issue that, I think, is already present in the code. The issue is related to The problem does not seem to occur with the existing code, but it appears that our refactoring has waking him up and There are two solutions for this:
What do you propose ? |
When Gor deals with multiple input files, it sorts them and replay their requests file after file. This behavior is not convenient and should be changed. We should respect timestamps order when replaying requests.
Ok I spoke too quickly regarding |
EDIT I just tried with Another thing, I'm using Go 1.6 to build the project and, even so the build is ok, I've got an error when I launch the app :
I tested it with branches |
When Gor deals with multiple input files, it sorts them and replay their requests file after file. This behavior is not convenient and should be changed. We should respect timestamps order when replaying requests.
I added few mutexes which fix And as you mentioned 0.14.1 fixes --output-file issue. |
Sorry I may have not been clear enough: I was actually talking about |
Oh, yes, i misread your message. Using finalizer is definitely too hacky, we need to find mutex way. It can be done similar to output_file change, only when |
Hey @buger, I think we have a better way than using a mutex : we can achieve the same result with non blocking channel ! But we have a remaining question about this line. Why do you check |
When Gor deals with multiple input files, it sorts them and replay their requests file after file. This behavior is not convenient and should be changed. We should respect timestamps order when replaying requests.
I'll be frank I do not remember why it was added, and for me right now it make no sense. I think it is safe to remove it :) |
When Gor deals with multiple input files, it sorts them and replay their requests file after file. This behavior is not convenient and should be changed. We should respect timestamps order when replaying requests.
Done, Pull-Request ready for review ! |
c138fa97 format file 89c34c6b format file a1054b10 fix typo cf402a1d Add option to specify custom BPF filter 09f47b25 Fix panic for non compilant http requests 652e589e fix proto.Path 5aa16966 Add TLS security support between --input-tcp and --output-tcp 21531cea Add support for rewriting headers 03767d1a Add support for HTTP 1.0 and less 2680ce9d Fix #467 b3dffae6 When using --input-file it should exit once file is fully read aa4a8784 Handle gzip encoding error 4fe95be4 Add example of middleware for javascript 23771b89 [Spelling Error] Change 'dirrectory' to 'directory' a1a4460c Update Dockerfile 2b20c110 Update Dockerfile d755c579 Create Dockerfile 064519ce Rename Dockerfile to Dockerfile.dev cdd818fe Update README.md c23f95d4 Add httpMethod function 4cf59cc9 Merge branch 'master' of https://github.com/buger/gor 8f450c77 Update README.md a49b250a Fix typo de47f6d6 Fix httpHeader when header value contain ":" d9ce263c Update README.md 74225ebb Rename all package imports from `gor` to `goreplay` d1ddda41 Add govendor and vendor all depended packages a15055ef Update README.md 1aa24a99 fixed bug dcc7af4c Fix output-file sizeLimit 0fb98a8f Improve http handling 6ea23de3 Add new option `--input-raw-expire` to configure TCP message expiration 37553826 Add additional check for malformed packets a2a1bd5c Fix handling of 304 responses if EOF error received ce46188d Update NodeJS middleware 7c67b8c5 Add NodeJS middleware framework 5a8d56e1 Improve http client error handling c8dfe67c Fix middleware when used with prettyfier and gzip encoding e1f3d71f Make http prettifier work with middleware 858dfaac Make HTTP output less verbose 6a488821 Fix infinite lock at file output bf1c67c5 Add install task e726e45d Fix kafka issue (#419) d66ba035 Prettify http (#418) ecb16664 Allow to use payload type for file names (#417) 8c162205 Track http responses (#416) ed375897 Cleanup modifier settings after test 590304d6 Ensure that flush do not get called on closed file e6957036 More fmt fixes 043c0b74 few fmt fixes 768a29e2 Merge branch 'msales-apache-kafka-input' 5e90377a Fmt changes f520b338 Add tests and modify to work same as Kafka output 53cbd886 Merge branch 'apache-kafka-input' of https://github.com/msales/goreplay into msales-apache-kafka-input def3c918 Add Kafka tests and raw format mode (#415) 4ea306b5 Merge branch 'master' of https://github.com/buger/gor 3b511581 continue work on new docs fe321cd0 Merge pull request #413 from SophisticaSean/master 8421ddb6 Rename Home.md to index.md e5935a00 Set theme jekyll-theme-cayman a519c097 Set theme jekyll-theme-slate 17c1abfc Create CNAME ea8d3f72 Set theme jekyll-theme-cayman 962fd70d Add docs to master b0b697cb flush the output buffer when it should be flushed 060f521a Merge pull request #412 from buger/handle_spaces_in_filters 8e5a2562 Allow spaces inside filters 8ce5318f Merge pull request #410 from smostovoy/381-dumb-to-files db1e3d71 Merge pull request #411 from buger/fix-proto-crash f5e8e26e Fix #408 826cc45d clean files in test [#381] 5909dd71 Support %r - request id - output file pattern #381 3043189d Merge branch 'pr/406' 9b407303 Merge branch 'master' into pr/406 be49c7e7 Run GC on each 1000th request dfd5fa0c Update documentation 5b5c3f33 Filter response if request is filtered #388 1f19e550 Create kafka input fd5118b7 fix test: should not add port to host for https 7c788296 Merge pull request #377 from kudos/patch-1 5e6b58e7 Merge branch 'master' of https://github.com/buger/gor a9ab7ca2 Merge pull request #395 from ylegat/feature/use-pcap-timestamp 0a74db6a Disallow zero timeout (also used fix tests) b462c06a remove dead code c6244435 [Boyscout] unexport TCPPacket.Dump() and Packet struct fa0e96b7 Resolve buger/goreplay#392 : use pcap timestamp ca61e397 Merge pull request #398 from oivoodoo/master bea255ab Register kafka output plugin in case of having passed settings bde29772 Merge pull request #396 from ylegat/bugfix/handle-content-length-missing-for-1xx-204-304 12043e5a Resolve buger/goreplay#394 : Timeout for NO_CONTENT responses 719e9b8e Merge pull request #379 from blastworksinc/feature/kafka-output cedc5fae Merge pull request #390 from outpace/sni-support 963f7a73 Add basic SNI support 1f24c709 Do not add port to Host header for https (#385) a1174a15 Do not add port to Host header for https f90dcc76 Remove server.go because of having 'gor file-server :8080' 638ddfb1 Add one more test case to cover ':' inside of header value 40f7facc User-Agent could contains ':' inside of value. 0a038575 Add all headers and properly passed body d424167f Change example of port for kafka host 41d3ce48 Add json message output for kafka 9b96dc20 Change Dockerfile because of issue on build echo.java e3a9a9b2 Add kafka output 76fb9196 Treat PATCH as a HTTP verb 22466d40 Adding ability to output http client to close connection on specific … (#375) 47db326b Fix truncated tcp check 0831476b Set default value for output-http-timeout at declaration (#371) 967c380d go fmt 1674b587 Fix basic http auth a2f5e433 Fix replayed response header fc0361dc Fix handling of connection: close for POST requests 647f7022 Add google/gopacket in vendor/ (#360) 082106df Fix Java middleware example (#358) ecd7e3a5 Update README.md 544d9402 Disable forced flush 25ded56a Update COMM-LICENSE 392d9a2f Update LICENSE.txt fbebe72f Fix multi-packet splited headers e38f6a58 Do not quite on flush error 25b998fa Fix run command f1f8e2f2 Fix http-disallow-header option 07fa6d9a Force Go DNS resolver f0acd31d Disable --input-http flag until I decide how to do it properly d34c27c3 Track FIN packets to check for closed connection (#350) 1d811f34 Update LICENSE.txt 35bb655f Fix response meta 24fc5b00 Update README.md 8e0a8b31 Add missing submodule dac04cbe Merge branch 'ortz-feature/timeout-flag' dae6a891 Refactor exit-after 6620d256 Change flag name, use of DurationVar instead of int c78933f1 Feature flag 12287d8b Fix type check, and add asserts submodule a5cc943a Fix padded packet check e65035dd Update elasticsearch output to use vendored elastigo and fix #331. (#333) c128d460 calculate TCP payload slice sizes for Ethernet II packets less than 64 octets (#326) 1ed8691b Fix loopback for non local IP's f17f5139 Fix 100-continue with multi-packet headers 5a0c03ec Fix BodySize for multi-packet headers 803d53a7 Merge branch 'ylegat-feature/respect_timestamps_when_replaying_requests' 7c333364 Add missing change 37650df2 Refactor #308 f2ff542c Merge branch 'feature/respect_timestamps_when_replaying_requests' of https://github.com/ylegat/gor into ylegat-feature/respect_timestamps_when_replaying_requests c756a113 Pass only valid HTTP responses (#317) 48fdc02d Fix tests + refactoring f2c9aee4 Merge branch 'o19s-fix-307' aea32d93 Rename DelHeader to DeleteHeader 0089892b update 100-continue logic to support different header placement 5d2cc68f Add proto.DelHeader b0fff3c4 Alternative 100 continue test da09b14c DRY 100-continue tests e50ff77c Update echo.sh 51860e13 Add support for known network layers 9e7351d2 Resolve buger/goreplay#300 : respect timestamps when replaying requests 2c49556b Clean current output file name (#304) d0e1858e Fix `Close` implementation of plugins (#305) 95eecb6b Output file fixes c4271ffa Connection timeout should inherit Timeout f4e2b12d v0.14.1 (#301) d193e249 Raise error if packet layer unknown d36afeeb Update homebrew formula 06d129d2 Add support for injecting real ip (#296) a3aeca20 Check dst and src IP's for packets (#295) 35696a49 Add logging to the file-server 0fb8cec6 Embed simple file server for tutorial purpose cefa2b5c Write files in chunks (#293) ae092d6a Add custom HTTP methods 9a6186ce Merge pull request #290 from buger/output-file-improvements ede0fb4c Allow looping mode for --input-file 651bd82d input-file support for gzip files a4e59185 start should after beging listen signal (#289) ecfd8549 Remove debug 0f5b5093 Add support for reading multiple files c8a234b3 Remove test artifacts b6f7de00 Add compression support ba98e6e1 Allow date templates for file names b01748bb Update echo.rb 75d217b8 Few fmt fixes c1f354a0 Support lower case headers b900e380 Add homebrew formula 2f45fc8e Fix link in Readme.md (#287) 62b92576 Update README.md 98fe7f19 Fix raw socket ipv6 support 1c3af3ef README: Fix link to issue tracker. (#283) 98868e81 Do not run multiple BPF filters at once 0ccace8c Improve reconnection strategy a181b144 Fix output-stdout bf13dc59 Rename --output-dummy to --output-stdout and make it boolean (#282) d944ac67 Properly handle requests with headers consisting of multiple packets (#281) a52f56df Do not track response by default (#279) 2836b555 Fix http client when headers are sent in separate chunks af6307e6 Rename http-buffer option 38535a20 Added http client buffer size (#249) ae7a3b7f Merge pull request #277 from buger/http-compilance 3fa1b66f Fix typo 7496692d Fix hound cdbf3b91 Apply fmt and fix tests fe90601b Improve HTTP client compliance d40d6c61 Fix --input-tcp for payloads > 64kb 37d657fc Update README.md 2f86d005 Update README.md 9bed47e4 Update README.md 61605aef Update README.md eb9e073a Update README.md 163f4602 Update README.md fee36a48 Fix makefile 854ea159 Update release script f8349e44 Merge pull request #273 from buger/libpcap-fixes aac1345d Add Mac support 663bd8b9 fmt fixes 19bfb821 Use latest libpcap and ensure to close sockets cbc871b8 Improve listening on all interfaces for complex environments 768c5f97 Apply FMT 47bb312b Allow listening on ALL interfaces fb9cf68f Merge pull request #270 from buger/ipv6 759efce5 Add support for IPv6 af831381 Merge pull request #269 from buger/performance 85e84ce3 Improve handling of fragmented messages 2bc441e0 More fixes 7ee06e84 Add dest port to id 4109336a Remove unused logging 3ada9b63 Remove unused fields from packet c41608e4 Fix tests 48995cc4 Do not span multiple goroutines 6a3b791f Fix memory leak and improve tests ddaa0e9d Require IP address 281219e6 Use static linking for libpcap and fix error with truncated packets ba227ae9 Fix license file 5779ea1b Update java middleware to not use apache commons bb0fab4d Update README.md 8cc377f2 Update README.md 5bea65c7 Fix input raw command line options 52a0ebfd Fmt fixes a8731f29 Fix broken pipe error 2f0e865e Fix middleware crashing for big payloads. afc8f785 Libpcap support and vairous bugfixes 00feb081 Add benchmark for testing packet capture (and its quality) 0754ed7d Merge pull request #239 from dougjohnson/output-http-debug 4baf3985 More debugging 32264eb4 Update README.md f2cedaf8 Merge pull request #256 from buger/revert-238-fix-memory-leak-in-aliases e8f7d305 Revert "Fixes memory leak by adding respAliases cleanup after expiration time" 0c7643f4 Merge pull request #238 from AnderEnder/fix-memory-leak-in-aliases 4c8a73a5 Merge pull request #235 from sneakybeaky/input_file_reader 3d7455d6 Update README.md 3c40ac7a Fix input dummy spec e0e065ba Fix license name fc1771ef Update README.md 5ec67ee8 Create COM-LICENSE 500d80d2 Update LICENSE.txt eb395ff8 Update README.md 538c05ec Merge pull request #255 from gitter-badger/gitter-badge d99117c9 Add Gitter badge e659f65d Replace the use of bufio.Scanner with bufio.Reader so that requests over 64Kb in size can be replayed from a capture file. 7a2f1aef Merge remote-tracking branch 'upstream/master' into fix-memory-leak-in-aliases 6c410ab9 Update README.md a3403a32 Update README.md cb4db10c Update README.md 55405b6b Update README.md fecfa7f1 More listener tests eb616672 Try to fix tests dbd8a485 Merge pull request #237 from leejones/patch-1 d6f5ac1c Merge pull request #241 from mortonfox/patch-1 334db15d Apply gofmt simplification d3e58ba3 Update README.md 7dee2dbe Update README.md 1014abf8 Merge pull request #253 from buger/listener-tests fa11cc04 Explicitly set ip in tests 4cfa33f8 Fix tests and formatting a62f269d Try to use local ip in tests 7b2d7800 Merge remote-tracking branch 'origin/go-1.5' into go-1.5 e5daaf06 Fix tests 9fc7cdc0 Add tests for listener and tcp_message 94f066c9 Merge pull request #246 from korzonek/master 7f27d60f codebeat badge ad2bf033 Fix link to the 'too many open files' blog entry 699eefe3 add flag to enable debugging of http output 2a955dcd Fixes memory leak by adding respAliases cleanup after expiration time 28f82b46 Update README.md 1fdcc541 Merge pull request #225 from johanneswuerbach/middleware-failures 5378ecca Handle middleware failures 9d861af3 Merge pull request #219 from pbsurf/pbsurf/fix_crashes 5c272661 fix crash on missing payload metadata a4c40cd8 Update README.md d2384816 Merge pull request #214 from bkochendorfer/itercepted 44506785 Fix small typo bb2adbce Update travis 028bc6c3 Switch to Go 1.5 16c5b6f1 Merge pull request #210 from buger/support-non-rfc-headers 5cf8f7df Handle headers added by bad clients 2b522285 Fix 100-continue check for packets with data < 4 5dcec259 Add more debug 766bbc61 Merge pull request #202 from buger/file-input-speed-fix 6d2a895d Fix file input replay speed d81e39d2 Improve test speed ed949853 Merge pull request #201 from buger/tcp-gc f378def0 Improve raw input GC cd83e6f9 Formatting fixes 60ddd535 Add test for large input-http payload 9ded2557 Merge pull request #195 from mre/patch-1 323f85bc Merge pull request #194 from buger/fix-memory-leaks 07a3c191 Speedup input-raw 4f335450 Fix race 661dd202 Fix grouting spawn loop and memory leaks 67505d99 Merge pull request #198 from justanshulsharma/fix-typo ac043899 Fix typo b5aa7d7c Fix some typos 8daa7fdc Fix memory leaks 1fea397d Merge pull request #162 from buger/input-modifier abde6ecf less verbose output 43262f33 Increase timeouts fe91a206 fix race 3c81723a Increase timeout for large payload 929e0279 small formatting change f0b96af4 Add protection for malformed requests f3ea30c6 Add example of java echo middleware d5a1eb0b Increase input raw timeout 02bf7a86 Rollback to 1.4.2 in travis cbc27bd6 More debugging 16d7f23d New fixes 6533b50a Travis should use 1.5 9309fb86 Reduce debugging 76d5e22b Enable packet debugging 81d35086 Enable race testing for travis 3c45595a More race fixes 6974a6e2 Ensure that raw input gets closed 33cdcd4d Use httptest package and properly close servers 9550b31f Fix plugin registration 6cb4c265 Some debugging and race fixes e54f77f2 Try to return all responses 5d2f6ece Fixes a6e29c68 Close connection 78456d6c More timeout c4037e0c Increase travis timeout time 7cff7817 Remove verbose flag b53fba04 Fix formatting issues d6c776fa Verbose output for travis ae35f880 Remove magic numbers 8da4e54c Tcp communication should use same protocol as file based 7790b33c Refactor protocol scanner a971d8a8 Change file format to be text based 3e763c43 Unify all input/output plugins ea94dd01 fmt changes d96e3393 Handle HTTP error codes 69424bf6 Fix hound 211be0cd Add request time and round-trip response time d1091102 Ignore all release files 0d445722 Some fixes 879ed48b Doc changes ddd51906 Improve docs a18079fa Improving docs 1a36374c Add some comments 41c1421a Simulate some real-life server by adding small response delay 4f2341b2 Remove more debug 56f0a3fc Remove too verbose output 70e7d8dd Reduce delay of raw input bb319b5f Add request ID and token modifier middleware 491541c2 Response object should be separate message 2990fab6 Track original responses 8046468e Fix tests 0009555d Apply fmt 5098e388 Fix tests, now properly receive responses 5667cd35 Merge branch 'master' into input-modifier 9ab8b3c1 Add header to request and response 5e526af4 Set version dynamically via ldflags 3a7badc5 Merge pull request #190 from buger/fix-default-port 9a76e354 Fix tcp input test d6b5c675 Do not add 80 port to host string de6c41c7 Update docs for Host header 08933e14 Merge pull request #188 from SaraRands/master 259b70a7 Added --http-original-host flag 35854196 Fix tests a9be1811 Merge branch 'master' into input-modifier 91854534 Merge pull request #176 from dt/dt.hexdecode 87ad851a Merge pull request #185 from buger/fix-large-response ce193d0d Fix travis config f92a0b12 Make buffer size configurable f6864d05 More debugging 3316447b Verbose output for travis 961d5a75 Style fixes dd68d07c Fix large responses 5c46db92 avoid trailing null in encoded tcp ed7c5210 Print warning if hex decoding fails 00ad6bd9 Merge pull request #183 from buger/configurable-timeout 587b9ad2 Update Readme 083c97a9 Option to configure timeout 8f2e9bd1 Merge pull request #182 from buger/fix-set-header a79e54c5 Do not set http header if it explicitly set 27f83a6c Improve debugging 5158f75d Merge pull request #178 from jakubholynet/patch-1 126957c5 Readme: Explain when `--stats` needs to be included d62eccb6 Make raw message expiration configurable to improve tests time 5cc4228d Merge branch 'master' into input-modifier 5e6f7e03 First middleware tests! :dance: 0a305821 Fix tests by adding small delay 5c21600b Fix timeout 10798239 Run all tests ac3e2097 One more fix e5d9f739 Fix tests df3b410e Merge pull request #171 from buger/code-styling 125d9db8 Next batch 6147e14f Merge pull request #173 from rgarcia/http-disallow-header fa003f5f add --http-disallow-header option 28540f43 New portion of changes 6158ee30 Remove debug 0859642b Update raw listener 32081b2d Improve byteutils 6647481f Improve style and docs for proto package 0551b19d Add linter task a5f2d2fd Update README.md f1c341e2 Update README.md becb4b95 Delete CHANGELOG.md db7f5c6a Update to use go 1.4.2 7af0eb2d Merge pull request #170 from buger/input-raw-performance 32d0557a Reduce test file size 6ba0bfc6 Fix tests runner 34fe137d Improve message_id to handle multiple ports bb74704f Rollback to use net package d0873d14 Try to add select 313c382a By default use all cores 6b9c9b91 Improve performance of input-raw and improve handing of large payloads 531bd1da Merge pull request #169 from buger/http-client-bugfixes acaf935c Fix tests 0fe72cc4 Improve http-client reliability and improve debug f812120d Support only 1 middleware and rewrite tests e64aac93 Rename input modifier to middleware 8db14e33 Merge branch 'master' into input-modifier b38cb458 Update version d380b719 Merge pull request #165 from buger/refactor-settings fd5388b6 Improve README 48492dc8 Allow url param rewriting 29035d45 Allow multiple url regexp and apply fmt 1ce10249 Percent based syntax for hash filters 5a23573c Add --http-allow-param-hash 413f5012 Add support for restricting certain urls 686d7436 Merge setting files 18c04732 Merge pull request #164 from buger/change-tcp-output-format 4d00ff87 Change internal message format 8f732337 Merge pull request #163 from buger/fix-proxy-set-host 07c65117 Handle proxy request format and HTTP 1.0 requests 31fa612f Add go tool coverage make task 9ddb7185 Merge pull request #160 from buger/raw-http-client 4f114f06 Apply fmt 9a0d9166 Yay! http.Client replaced by own simple http client bc48e1ad Fix tests 53c27cf3 Add Header Modifier tests a859ae02 More tests and simplify hashFilter 2b17989f Move HTTP modifier from HTTP output plugin 96fd7134 Use separate config for modifier 43fd14b5 Merge pull request #159 from whitekid/master 72b15db9 Add utilities for modifying HTTP payload 557cdbeb Update README.md 925ff151 Update README.md 481e4f2e Refactor http output settings 416586a3 Add support for redirects a08ecc79 Add support for timeouts and servers closing connections decb9483 Fix docker file path 21c544ef Fix tests and apply go fmt 122f06f6 Add raw http client 3d3c6a34 add .dockerignore 04d72791 Merge pull request #158 from buger/fix-100-expect 1e7b603a Fix import path 41294f94 Fix 100-Expect requests and refactor chunked encoding 3e86456e Add more debug 98f941b6 Add support for complex commands 674ffc62 Start adding tests for traffic modifier 4f03f81d Working modifier implementation with examples dcb8a1de Merge branch 'master' into input-modifier 451a1cd1 Update version number 6fe7ba8e Merge pull request #157 from buger/encoding-chunked 534e9b29 Merge branch 'master' into encoding-chunked 390f75fd Handle Transfer-Encoding: chunked a0596480 Merge pull request #150 from makern/64bit-align b2e1eea6 Fix alignment crash on i386 92ba3215 Merge pull request #148 from MartinNowak/pow2 2b497e61 simplify power of 2 test 09f9cac6 Merge pull request #145 from tarfu/master d05bc0d5 Introduce possibility to enable redirects. 1c018218 Merge pull request #143 from falzm/fix-socket-perm-crash cef8b754 Prevent crash if no permissions on port e9fd5eb2 Merge pull request #141 from wmoss/master 85fbfff3 Properly handle errors on input sockets a7aaf7df Merge pull request #140 from wmoss/master c1c87ed4 Properly return from errors from ReadRequest 072f3329 Merge pull request #138 from wmoss/master 7c68920a Make TCPOutput more robust to failures b6351a85 Fix travis test runner f557d412 Merge pull request #133 from buger/fix-post-requests ed5c2215 Fix POST requests 208faec7 Initial support for input modifiers ffe1646d Merge pull request #131 from chmac/patch-1 ae293320 Minor typo correction eb7885cd Patch from @jcw9930 b6977df9 Merge pull request #127 from jcw9930/url_regexp_rewrite 15417894 add test that explicitly checks if rewrites.Rewrite(url) == /v2/user/joe/ping 7f49314e allow matched parts in -output-http-rewrite-url 80572f5f add regular expression matching to --output-http-rewrite-url b7567bbd It should be 0.9.2 version e4b7c8c7 Merge pull request #126 from buger/limiter-extraction 62ced2e1 Update version 79ed6a75 Fix absolute limiting for file input 3793a84e Add docs on load testing using input-file f2cf81c5 FileInput should have own limiter algorithm aae57733 Fix limiter for readers 00df525b Update docs 7864808e Some formatting fixes 58c7e12d Add percentage based limiting de143e42 Make limiter work for Inputs 67cfca0e Make limiter work for all inputs/outputs 43920a96 Added docs on running single test 4cf3bf0a Refactor plugin registration 095c717f Update README.md abc44c2f Fix tcp_message typo 2d66ccc6 Add limiter support to output-file b257231d Ensure that channel not closed 2 times in row 1cab1ecb Add EmitFile for test purpose 983bc728 Increase buffer to 5 megabytes 4b592e0e Fix Makefile (it should use tabs) 1637dd49 Convert tabs to spaces and force `go fmt` 9e63fb5b Merge pull request #125 from buger/add-http-input 04a8cceb Updated docs 6ddf4df2 Add comment to make 51f5a3e9 Merge branch 'master' into add-http-input 4c0c9e97 Add http input 4f64b71a Merge pull request #124 from buger/workers-pool-refactoring be7e2701 Refactor http output 758995d8 Fix main goroutine 5f883e08 Run race detection for tests 3a43e697 Update `release` task to work with docker 468d9461 Merge branch 'DamianZaremba-url-rewrite2' d0266303 Merge #119 82ed628d Merge pull request #112 from buger/rollback-elastic-search 97dd1520 Update README.md 972a8035 Add `go get` call to travisci 91a02827 Update go version 2c03d3ee Run go get for docker image, and fix make file b2f90789 Instead of godep just clone elasticgo repo e68332b8 Update README.md cf0dfeca Merge pull request #116 from joekiller/scale_http_output_squash 4f9c983b Dynamic scaling by default 988c6abd Dynamic workers toggle. Separate stats toggles. README and FAQs 864723fe First go at a basic test 2c2d5439 Add in --output-http-rewrite-url option c04b2528 Merge pull request #115 from Blank101/filefix 58944fd4 calling this version 0.9.0 6e125a7b allow dynamic http workers with a signal channel for full queue 1a7cf2bb fixed file input sleep timer e022fdff Update travisci config c0dc1b3a Rollback elastic search, use godep for dependencies 674d6036 Revert "Remove elastic search functionality" 6f6c6aba Fix readme 2a6e9f7a Merge pull request #111 from buger/docker-dev 007e0f30 Add Docker development environment 115a37e0 Update README.md b2c87ff2 Add TomTom to companies using Gor 3a1efccb Update README.md a2873116 Update README.md ccb30917 Merge pull request #108 from matzhouse/master defc017a Add a testable SetHeader function with associated tests It seemed easier to pull this bit of functionality out and be able to test it on it's own than rely on the whole http tests 9e2f7fee gor issue 74 explicitly set the Host on the request when using the --output-http-header option git-subtree-dir: src/github.com/buger/gor git-subtree-split: c138fa97398ee8f8958504bc7232f1cf55856f72
Hey !
My team is currently playing with Gor to see if it fits our needs. To give you more context, we have an application deployed on 2 servers in production and we want to monitor their I/O so we can validate the next version of the application (using the
middleware
feature).The idea is to write those I/O inside a file, and then replay them on the application to validate. The problem is that, as we have two servers, we will have two log files. If I understand the code correctly, the current behaviour of Gor is to sort input files matching a pattern and read them in order. What we need is to read all input files "in parallel" so we can respect timestamp while replaying requests. We would compare next request timestamps to execute for each file, replay the oldest one, and loop until all files have been read.
Do you think it would be possible to add some kind of flag as a Gor parameter, so that requests coming from input files are executed this way ? If so, my team may help you on that matter and propose a Pull Request.
The text was updated successfully, but these errors were encountered: