- User-Agent header for http requests
- Business events capturing API
sendBizEvent
Session.reportNetworkTechnology(const char* technology)
Session.reportCarrier(const char* carrier)
Session.reportConnectionType(const ConnectionType connectionType)
- Default maximum age of an entry in the beacon cache changed from 1h 45m to 45m
- Removed AppMon functionality
- Maximum length of reported error/crash stacktrace has been limited to 128k.
- Maximum length of reported error/crash reason has been limited to 1000.
- x86 32-bit build
IWebRequestTracer::setResponseCode(int32_t responseCodee)
IWebRequestTracer::stop()
IRootAction::reportError(const char* errorName, int32_t errorCode, const char* reason)
IAction::reportError(const char* errorName, int32_t errorCode, const char* reason)
reportErrorOnAction(struct ActionHandle* actionHandle, const char* errorName, int32_t errorCode, const char* reason)
reportErrorOnRootAction(struct RootActionHandle* rootActionHandle, const char* errorName, int32_t errorCode, const char* reason)
setResponseCode(struct WebRequestTracerHandle* webRequestTracerHandle, int32_t responseCode)
stopWebRequest(struct WebRequestTracerHandle* webRequestTracerHandle)
- Overloaded
IAction::reportError(const char*, int32_t)
method for reporting an integer error code without reason.
The oldIAction::reportError(const char*, int32_t, const char*)
has been deprecated in favor of the new one. - Overloaded
IRootAction::reportError(const char*, int32_t)
method for reporting an integer error code without reason.
The oldIRootAction::reportError(const char*, int32_t, const char*)
has been deprecated in favor of the new one. - Overloaded
IAction::reportError(const char*, const char* , const char*, const char*)
method for reporting generic errors. - Overloaded
IRootAction::reportError(const char*, const char* , const char*, const char*)
method for reporting generic errors. - Added function
reportErrorCodeOnRootAction(struct RootActionHandle*, const char*, int32_t)
for reporting an integer error code without reason.
The old functionreportErrorOnRootAction(struct RootActionHandle*, const char*, int32_t, const char*)
has been deprecated in favor of the new one. - Added function
reportErrorCodeOnAction(struct ActionHandle*, const char*, int32_t)
for reporting an integer error code without reason.
The old functionreportErrorOnAction(struct ActionHandle*, const char*, int32_t, const char*)
has been deprecated in favor of the new one. - Added new functions
reportErrorCauseOnRootAction(struct RootActionHandle*, const char*, const char*, const char*, const char*)
reportErrorCauseOnAction(struct ActionHandle*, const char*, const char*, const char*, const char*)
for reporting generic errors on root actions and actions.
- Support cost control configured in the Dynatrace UI.
- Add libatomic as additional link library if required.
- Requests to Dynatrace can be intercepted to add custom HTTP headers.
- It is possible to get the duration from an
IAction
andIRootAction
. IAction
andIRootAction
can be canceled.
Canceling anIAction
orIRootAction
is similar to leaving it, without reporting it.
- Fix issue in JSON parser for compilers/platforms with unsigned char.
- Support for parsing JSON
- Technology type support for errors and crashes
- Support for session splitting. Sessions are split transparently after either the maximum session duration, the idle timeout or the number of top level actions are exceeded. Session splitting is only applicable, if it is also supported by Dynatrace. The internal details are described here.
- Re-apply user tag on split sessions.
- Support for reporting 64-bit integer values.
- Support for modified UTF-8 terminated strings.
- On OpenKitBuilder creation device ID is parsed from the given string. Non-numeric device IDs are hashed to a corresponding numeric value. Internally a numeric type is used for the device ID.
- Fix incorrect check in C-API's useBeaconCacheBehaviorForConfiguration function when setting the upper memory bound.
- Response code is now a parameter of IWebRequestTracer's stop function (stopWebRequestWithResponseCode in C API). Existing functions for stopping and setting the response code have been deprecated.
- Fixed Unix compile issue regarding zlib.h in CMakeLists.txt file
- Sleep calls in BeaconSender are interruptible to ensure OpenKit can be shutdown in time
- OpenKit version is parsed from version.properties file
- Application ID and Device ID are correctly encoded for special characters The encoding is a percent-encoding based on RFC 3986 with additional encoding of underscore characters.
- Remove "Enable minimal rebuild" compiler flag (MSVC only) In recent MSVC compilers this flag got marked as deprecated
- BeaconSender thread was stopped too early and did not flush sessions
- Fixed problem with infinite time sync requests This problem occurred mainly in AppMon settings.
- OpenKit::createSession method accepts nullptr as IP address In case nullptr is passed, the IP is determined on the server side.
- Reduce warnings when building on Linux
- Fix compiler errors for certain Visual Studio versions
- Fix
leaveAction
inRootAction
so that themEndTime
andmEndSequenceNumber
is set before the root action is added to theBeacon
. - Add IOpenKit::createSession overload without IP address parameter.
The IP address is determined in this case on the server side. - Reporting a crash causes a session split, which is transparently handled.
- Provide a more reliable way to determine monotonic timestamps.
- Only send end session events when sessions are explicitly ended via API method
ISession::end()
. - Fix potential endless loop in beacon sending, when lots of data is generated in a short period of time.
- Minimum required CMake version pumped to 3.4.0
- Improved CMake install target
It is possible to use CMake's
find_package
to search for OpenKit.
- Reformatted text files to unix style line endings (excluding 3rd party files)
- Device ID can be specified as String in addition to long This allows to send UUIDs or other specifiers
- Standalone web request tagging A WebRequestTracer can also be obtained from a Session