/openkit-java

OpenKit Java Reference Implementation

Primary LanguageJavaApache License 2.0Apache-2.0

Dynatrace OpenKit - Java Reference Implementation

License Build Status Coverage Status

What is the OpenKit?

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:

What you can do with the OpenKit

  • 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

What you cannot do with the OpenKit

Design Principles

  • 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

General Remarks

  • All non binary files within the repository are formatted with UNIX style (LF) line endings.

Getting started

Advanced topics

Known Current Limitations