commit
ca4f950195
2 changed files with 28 additions and 0 deletions
|
|
@ -341,6 +341,20 @@ SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DWEBSOCKETPP_STRICT_MASKING")
|
|||
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DBOOST_ASIO_HAS_STD_CHRONO")
|
||||
|
||||
OPTION( LOG_LONG_API "Log long API calls over websocket (ON OR OFF)" ON )
|
||||
MESSAGE( STATUS "LOG_LONG_API: ${LOG_LONG_API}" )
|
||||
if( LOG_LONG_API )
|
||||
SET( LOG_LONG_API_MAX_MS 1000 CACHE STRING "Max API execution time in ms" )
|
||||
SET( LOG_LONG_API_WARN_MS 750 CACHE STRING "API execution time in ms at which to warn" )
|
||||
MESSAGE( STATUS " " )
|
||||
MESSAGE( STATUS " LOGGING LONG API CALLS" )
|
||||
MESSAGE( STATUS " MAX MS: ${LOG_LONG_API_MAX_MS}" )
|
||||
MESSAGE( STATUS " WARN MS: ${LOG_LONG_API_WARN_MS}" )
|
||||
MESSAGE( STATUS " " )
|
||||
SET( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DLOG_LONG_API -DLOG_LONG_API_MAX_MS=${LOG_LONG_API_MAX_MS} -DLOG_LONG_API_WARN_MS=${LOG_LONG_API_WARN_MS}" )
|
||||
SET( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DLOG_LONG_API -DLOG_LONG_API_MAX_MS=${LOG_LONG_API_MAX_MS} -DLOG_LONG_API_WARN_MS=${LOG_LONG_API_WARN_MS}" )
|
||||
endif()
|
||||
|
||||
target_include_directories(fc
|
||||
PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include
|
||||
${Boost_INCLUDE_DIR}
|
||||
|
|
|
|||
|
|
@ -98,7 +98,21 @@ std::string websocket_api_connection::on_message(
|
|||
{
|
||||
try
|
||||
{
|
||||
#ifdef LOG_LONG_API
|
||||
auto start = time_point::now();
|
||||
#endif
|
||||
|
||||
auto result = _rpc_state.local_call( call.method, call.params );
|
||||
|
||||
#ifdef LOG_LONG_API
|
||||
auto end = time_point::now();
|
||||
|
||||
if( end - start > fc::milliseconds( LOG_LONG_API_MAX_MS ) )
|
||||
elog( "API call execution time limit exceeded.", ("method",call.method)("params",call.params)("time", end - start) );
|
||||
else if( end - start > fc::milliseconds( LOG_LONG_API_WARN_MS ) )
|
||||
wlog( "API call execution time nearing limit.", ("method",call.method)("params",call.params)("time", end - start) );
|
||||
#endif
|
||||
|
||||
if( call.id )
|
||||
{
|
||||
auto reply = fc::json::to_string( response( *call.id, result ) );
|
||||
|
|
|
|||
Loading…
Reference in a new issue