Commit Graph

156 Commits

Author SHA1 Message Date
R Tyler Croy bd3eb822e5 Update the workflow to deal with pull requests to main 2020-11-04 13:38:15 -08:00
R Tyler Croy 78ad170d6d
Merge pull request #48 from reiseburo/new-deps
Upgrade a number of dependencies
2020-10-29 10:49:06 -07:00
R Tyler Croy 3e092a0550 Upgrade a number of dependencies 2020-10-29 10:06:06 -07:00
R Tyler Croy 938c5ae38f
Merge pull request #47 from reiseburo/simd
Enable the use of simd-json on certain platforms
2020-09-15 09:07:23 -07:00
R Tyler Croy 3b3b4fef4c Activate testing with simd in CI 2020-09-07 09:51:40 -07:00
R Tyler Croy 03abb26b3d Change the prototype of from_str to allow &mut str in order to allow for simd-json
No performance numbers yet or anything else substantial, but this does at least
pass the unit tests.

Unfortunately there _is_ an `unsafe` call in this simd_json helper code which
does an unsafe &str.as_bytes_mut().
2020-09-07 09:50:35 -07:00
R Tyler Croy 5c42097621 cargo update 2020-09-07 09:50:35 -07:00
R Tyler Croy deff9bd786 Introduce the json module to handle optionally supporting simd-json or stock serde 2020-09-07 09:50:35 -07:00
R Tyler Croy 70b4f4598f Add the `simd` feature to enable simd-json
This doesn't yet work, but this is the cargo part of the implementation
2020-09-07 09:50:35 -07:00
R Tyler Croy 67a47a3b73
Merge pull request #46 from Atul9/add-cargo-fmt-to-github-actions
Add cargo fmt to github actions
2020-07-19 10:21:20 -07:00
Atul Bhosale c8051d88e7
Add cargo fmt to github actions 2020-07-19 22:11:47 +05:30
R Tyler Croy 77afd83174
Merge pull request #45 from Atul9/cargo-fmt
Format code using 'cargo fmt'
2020-07-18 12:34:03 -07:00
Atul Bhosale e9c2f73ef2
Format code using 'cargo fmt' 2020-07-18 23:36:03 +05:30
R Tyler Croy 78fda3a7f4
Merge pull request #43 from reiseburo/more-perf
Handle the producing of each message to Kafka in a task
2020-06-23 10:07:28 -07:00
R Tyler Croy 900a22d750 Handle the producing of each message to Kafka in a task
Without launching the kafka producing in its own task, it appears that things
get clogged up whenever the network service is under load.

Appears to speed things up

Some load test notes

    100k messages:

    `hotdog-loadtest.yml`

    perf branch: 48.290s
    0.3.1: 48.685
    0.2.1: 55.341

    `hotdog.yml`
    0.2.1 with release build and RUST_LOG=info: 13.540s
    0.3.2 built off master (release):  2:01.94
    0.3.3 with a task::spawn per message: 7.664

See #41
2020-06-22 23:06:37 -07:00
R Tyler Croy c2200b4e6d
Merge pull request #42 from reiseburo/performance-regression-41
Attempt to improve performance in 0.3.x
2020-06-22 15:47:26 -07:00
R Tyler Croy 4a6ede26e9 Explicitly yield inside of the connection handling loop to allow futures to execute
This comes after some really great debugging by @stjepang with the help of this
nifty little snippet:
    https://gist.github.com/stjepang/9bdf8d70d0745ce2a6a5e3d47b12569c

Fixes #41
2020-06-22 15:37:33 -07:00
R Tyler Croy d3abfd542b Add the loadtest profile 2020-06-22 11:51:26 -07:00
R Tyler Croy d196306a55 Revert "Use async-std 1.5.0"
This reverts commit 902458bcef85de66b676c7bd517723f857379867.
2020-06-22 11:06:01 -07:00
R Tyler Croy 65956ff620 Use async-std 1.5.0 2020-06-22 11:06:01 -07:00
R Tyler Croy aa7c16177d Allow the generate script to take arbitrary user input 2020-06-22 11:06:01 -07:00
R Tyler Croy c9b02e5c0b Checkpoint some performance testing commits 2020-06-22 08:46:01 -07:00
R Tyler Croy cab30270bd cargo update 2020-06-21 21:13:08 -07:00
R Tyler Croy 5a6a76990b Switch the HashMap+Mutex over to Dashmap
Hopefully Dashmap ends up with improved performance for 🌭
2020-06-21 21:10:24 -07:00
R Tyler Croy bf9a534c72 Tinkering about,, WIP 2020-06-10 20:20:35 -07:00
R Tyler Croy 3bb74ecfd4 cargo fmt 2020-06-10 16:15:55 -07:00
R Tyler Croy 52d8bd57a7 cargo update 2020-06-10 16:15:44 -07:00
R Tyler Croy fa34218f9b
Merge pull request #39 from reiseburo/new-tide
Upgrade to tide 0.10.0
2020-06-05 21:35:57 -07:00
R Tyler Croy 730a5e1406 Upgrade to tide 0.10.0 2020-06-05 21:29:12 -07:00
R Tyler Croy 90632e49da Tidy up the doc 2020-05-31 22:13:14 -07:00
R Tyler Croy 8bc5f471c8 Document the `global.status` configuration options 2020-05-31 22:11:24 -07:00
R Tyler Croy f3f660af57
Merge pull request #37 from reiseburo/health-check-7
Implement health checks and upgrade to async-std 1.6.0
2020-05-31 20:04:39 -07:00
R Tyler Croy f0dd1240cd Upgrade to async-std 1.6.0 (smol!) and drop crossbeam for channels
I didn't know that async-std had channels, so here we are.
2020-05-31 19:13:57 -07:00
R Tyler Croy b8abec807c Implement the health check
fixes #7
2020-05-31 19:13:57 -07:00
R Tyler Croy 85a696a1eb Switch main to use the async_std::main attribute 2020-05-31 15:13:18 -07:00
R Tyler Croy cdc47ae878 Pin tide to 0.8.1. and async-std to 1.5.0
It seems that hotdog cannot work properly on async-std 1.6.0 which switches to
smol as its runtime. It seems to be that the TcpListener.incoming().next().await
in the accept_loop will never return properly
2020-05-31 15:13:18 -07:00
R Tyler Croy 648b7881ac Add the optional status configuration for health checks and other info
See #7
2020-05-31 15:13:18 -07:00
R Tyler Croy 39dca3223c Fix minor configuration issue I noticed while testing. `tls` should be optional 2020-05-29 16:52:59 -07:00
R Tyler Croy 3a6363541c Add some additional log information when failing to parse messages 2020-05-29 16:52:35 -07:00
R Tyler Croy 59ed0ade69
Merge pull request #34 from reiseburo/jmespath-optimize-32
Implement per-connection caching of JMESPath compilations
2020-05-29 16:51:57 -07:00
R Tyler Croy 016b1ae52d Implement per-connection caching of JMESPath compilations
This should further reduce the amount of CPU time spent per log line

Fixes #32
2020-05-29 16:37:46 -07:00
R Tyler Croy 8f6ae815f3
Merge pull request #33 from reiseburo/smaller-release
Optimize the size of the release binary
2020-05-29 16:12:24 -07:00
R Tyler Croy 23104cba3f
Merge branch 'master' into smaller-release 2020-05-29 16:05:06 -07:00
R Tyler Croy 7e61736e95 Optimize the size of the release binary
This cuts things down 5MB, fancy
2020-05-29 15:15:58 -07:00
R Tyler Croy b3ae634dfc
Merge pull request #30 from reiseburo/match-on-fields-15
Implement support for matching rules on different fields
2020-05-25 10:05:06 -07:00
R Tyler Croy 71f9a88adc Implement support for matching rules on different fields
Right now this only supports a subset of the total fields available in syslog to
keep things simple since 🌭 is supporting both RFC 5424 and RFC 3164
syslog. 🙀

Fixes #15
2020-05-25 09:54:00 -07:00
R Tyler Croy 69cf9904eb
Merge pull request #29 from reiseburo/refactor-serve-16
Refactor and cleanup the main module and server variants
2020-05-24 15:44:14 -07:00
R Tyler Croy e326f51a19 Ensure hotdog.connections is only decremented when the client actually disconnects 2020-05-24 15:30:27 -07:00
R Tyler Croy b96410ea44 Restore connection count gauge which was lost in the scuffle 2020-05-24 15:12:45 -07:00
R Tyler Croy 7f0b546c11 Clean up some test imports I missed :face_palm: 2020-05-24 15:02:00 -07:00