Instrumentation Record Language (IRL)

Kieker offers a user-friendly domain specific language called the Instrumentation Record Language (IRL). It is used to define records in a language-independent way. The IRL compiler (as command line or as Eclipse plugin) is then able to generate these records in arbitrary programming languages. Currently, the compiler can produce records in Java, C, and Perl. The compiler is extensible for other languages. Therefore, we provide an API based on OSGI.

abstract event AbstractExampleEntity {
    int id
    string label
}
template TemplateExample {
    boolean templateActive
}

event ExampleEntity extends AbstractEntity : TemplateExample {
   byte byteValue = 2  // default values
   transient short shortValue // value is not serialized
   changeable int intValue // value can be changed in analysis
   auto-increment long longvalue // every read to the value increments the value
   double doubleValue
   float floatValue
   char characterValue
   string stringValue
   boolean boolValue
}