* Monitor to detect client disconnetion on server side
* Renaming save_woody_state
* Rework monitor to use one per connection
* Changed event type
* wip: stream handler skeleton
* wip: log abnormal termination
* Upgrade cowboy to 2.7.0
* Finish migration to stream_handler
* Upgrade more dependencies
* Fix state type, remove early_error logging
* rename woody_monitor to comply with cowboy naming
* remove redundant monitor pid from state
* Log only socket errors
* wrap put_woody_state
* experimental: monitor for woody_events
* add missing update
* match on handle_event return, don't monitor tracing
* Rework update_woody_state
* Slightly increase min_complexity in linter config
* Make event state transition explicit
* Remove handle_event wraper
* Revert "Slightly increase min_complexity in linter config"
This reverts commit 38301e3b5b66967cb08c0bf7f27a2a8042a40a19.
* match unmetched returns
* Add test
* Erase trailing whitespace
* Refactor test
* Delete mistakenly added file
* Rename function
* Review fixes
* Match supervisor return
Co-Authored-By: Andrew Mayorov <a.mayorov@rbkmoney.com>
Co-authored-by: Andrew Mayorov <encube.ul@gmail.com>
* Add compex term formatting microbenchmark
* Format FP numbers more neatly
* Provide fast-path verbatim term formatter
* Add memory pressure benchmark runner
* Switch to rebar3_bench 0.2.1 package
* Employ assert macros throughout main ct suite
* Force print trace_id and Co
* Use integer control char for formtatting numbers
* Sync
* Fix format for "wrong" struct
* Replace string formatting with inplace string representation
* Replace foldl with tail call
* Added opts comntainer
* Add formatting with depth
* Simplify depth increment
* More depth tests
* Format test data
* lint fixes
* Fix dialyzer errors
* Introduce current_length and max_length
* Add first tests for max_length
* Add length options
* Fix state in format_struct
* Fix test
* Move depth to stack from state
* Move length from state to stack
* Added more test on chars limit
* More tests
* Try to log more data nj logs
* Cleanup
* Fix line count in arguments
* Add missing formatted text in list and map
* Add comment to raw_string
* Formating
* Replace format with concatenation
* Fix dialyzer errors
* Fix lint errors
* Ignore false positives
* Added tests for max_length and max_depth
* Let logger decide how to format data in case of error
* Add formatter options to meta
* Fix lint error
* Increase complexity for dont_repeat_yourself
* Increase compliexity - 2
* Decrease complexity to minimal for current codebase
* Do not add '...' if no more argemunts in call
* Unify arguments for maybe_add_delimiter and may_be_add_more_marker
* Fix formating for list/set/map
* Simplify format build
* Log error
* Review fixes
* Move formatter options to environment
* Minor fixes and code cleanup
* Fix Opts
* Review fix
* Rework exception handling
* Move list and set format to separate functions
* Fix possible injection
* Eliminate possible badmatch
* Allow more complex dry
* Add test for sets
* Rework list formatter
* More strict limit for length
* Minor cleanup
* Remove unreachable code
* Switch back to formatter
* Remove unneeded flatten
* Do not format last list element if there is no room for it
* Remove unused Param
* Fix
* Simplify formatting call
* Add missing delimiter length
* Fix woody_event_formatter:format_reply/3
* Cleanup
* Add Opts to formatters
* Make skip message compact
* use ~w instead of ~p
* Typo
* Add formatter_opts to woody:options()
* Rework options
* Added escape for "'"
* Rework tests
* Fix tests
* Rework
* Created hay handler to monitor connections
* Review fixes#1
* Added hay as app dependency
* Created metrics receiver for hackney
* Removed filtering, added key tagging
* Added metrics to tests
* Removed non list key tagging option
* Refactored metric updates
* Moved hay to test deps
* Strictened allowed metrics, enabled key mapping
* Added privkey to dialyze CI step
* Reordered privkey
* Changed cache location
* Hardcoded allowed metrics
* Use tag for test deps
* Collect info for all ranch listeners
List of changes:
* Use thrift plugin compiler 0.3.0
* Update build_tools to latest
* Update build image to Erlang 21
* Added execution_start_time, execution_end_time, execution_duration_ms to woody state
* MSPF-394/Migrate woody_erlang to cowboy 2.5.0 (#82)
* Renewed some old cowboy syntax
* Reworked types to fit new cowboy/ranch versions
* Replaced cowboy tuples with separate values
* Fixed types, deleted testing logs, deleted redundant errors
* Moved to new StackTrace retrieval syntax for Erlang/OTP 21
* Restored default config, fixed typing
* Cleaned unnessesary changes, removed export_all
* Restored genlib cached version
* Downgraded to old stacktrace retrieval syntax, fixed codestyle
* Restored new StackTrace retrieval syntax, updated build image
* Changed rebar3 version for CI
* Corrected typing and spelling, removed unnessesary supervisor
* Created stream handler to replace hooks
* Added options for reading body
* Simplified stream handler
* Fixed wrong module name, added read body options support in stream handler
* Puted read body opts to env, renamed stream handler
* Codestyle, types and config fixes
* Moved response tracing to a separate function, now tracing failed requests too
* Changed options to map (#83)
* Fixed wrong timeout override logic (#84)
* Patch merge conflict
* Bump dependencies (#87)
* bumped hackney
* bumped erlang thrift commit
* MSPF-232: optionally configure max_heap_size limit for server handler.
* MSPF-233: check vm total memory against configurable threshold before
starting to handle request on the server.
* MSPF-234: improve introspection for result_unexpected errors on the client.
* MSPF-234: send thrift decode error details from server to client
* MSPF-234: pass stacktrace for result_unexpected error from server to client as error details
* MSPF-235: use input Id as a span_id, instead of trace_id in woody_context:new_rpc_id/1.
trace_id is used across the entire requst tree and is rather safer
as woody snowflake id.
* fix a bug in server net_opts handling
* fix event formatting types
* align rpc id handling with new requirements
* add new interface woody.erl, mv woody_t -> woody
* bump up thrift for the latest thrift_membuffer_transport
* remove woody:call_safe/3, woody_client:call_safe/3 from client API
* add cowboy net_opts to Server API
* Introduce event formatter to woody_event_handler
* Refactor events
* Remove outdated exception from the elvis rules
* Update woody_server_thrift_handler internal API
* make Opts optional for handlers
* add default event handler
* bump up hackney
* update README
* fix issues: 12, 18, 20, 21, 25, 26, 31, 37
HG-64: fix several issues
* pass any transport opts to underlying hackney.
* remove TC for allowed options
* fix Issue https://github.com/rbkmoney/woody_erlang/issues/19
* bump up build_image
* bump up build_utils
* start using build_utils
* simplify woody_client:result_ok() type (issue 10)
* use integer snowflake id
* rename woody_client_thrift:format_return/3 (issue 11)
* provide details to event_handler for http errors (issue 15)
* clarify net_opts() for woody_server_thrift_http_handler:options() type
* switch snoflake to rbkmoney fork
* update readme
* introduce lint and fix lint warnings
* add woody_client:make_id_int/0 API function
* Make rpc_id (triple: span_id, parent_id and trace_id) a separate argument for handle_event/3.
* Sync README with refactored API in woody_event_handler, woody_server_thrift_handler and woody_client.
* woody_clinet:client -> context
* woody_client:new -> new_context
* woody_server_thrift_handler behaviour: RpcId is not available as handle_function/handle_error argument anymore.
It should be fetched from the provided Context value: woody_client:get_rpc_id(Context).