The OpenKit provides an easy and lightweight way to get insights into applications with Dynatrace/AppMon by instrumenting the source code of those applications.
It is best suited for applications running separated from their backend and communicating via HTTP, like rich-client-applications, embedded devices, terminals, and so on.
The big advantages of the OpenKit are that it's designed to
- be as easy-to-use as possible
- be as dependency-free as possible (no third party libraries or Dynatrace/AppMon Agent needed)
- be easily portable to other languages and platforms
This repository contains the reference implementation in pure Java. Other implementations are listed as follows:
- .NET: https://github.com/Dynatrace/openkit-dotnet/
- C/C++: https://github.com/Dynatrace/openkit-native/
- JavaScript: https://github.com/Dynatrace/openkit-js
- Create Sessions and User Actions
- Report values, events, errors and crashes
- Trace web requests to server-side PurePaths
- Tag Sessions with a user tag
- Use it together with Dynatrace or AppMon
- Create server-side PurePaths (this functionality is provided by OneAgent SDKs)
- Create metrics (use the Custom network devices & metrics API to report metrics)
- API should be as simple and easy-to-understand as possible
- Incorrect usage of the OpenKit should still lead to valid results, if possible
- In case of errors, the API should not throw exceptions, but only log those errors (in verbose mode)
- No usage of third-party libraries, should run without any dependencies
- Avoid usage of newest Java APIs, should be running on older Java VMs, too
- Avoid usage of too much Java-specific APIs to allow rather easy porting to other languages
- Design reentrant APIs and document them
- All non binary files within the repository are formatted with UNIX style (LF) line endings.
- Installing and updating OpenKit Java
- General concepts
- Detailed example
- Contributing to OpenKit Java
- Supported versions
- problem with SSL keysize > 1024 for Diffie-Hellman (used by Dynatrace) in Java 6 (http://bugs.java.com/bugdatabase/view_bug.do?bug_id=7044060)
- fixed in Java 6u171, which is only available via Oracle support (http://bugs.java.com/bugdatabase/view_bug.do?bug_id=8182231)