JBoss.orgCommunity Documentation

Chapter 6. Available Services

6.1. Call Trace
6.2. Service Dependency
6.2.1. How to customize the severity levels

This section describes the "out of the box" additional services that are provided.

The "Call Trace" service is used to return a tree structure tracing the path of a business transaction (as a call/invocation stack) through a Service Oriented Architecture.

The URL for the service’s REST GET request is: <host>/overlord-rtgov/call/trace/instance?type=<type>&value=<value>

This service has the following query parameters:

Parameter Description

type

The type of the identify value, e.g. Conversation, Endpoint, Message or Link

value

The identifier value, e.g. if type is Conversation, then the value would be a globally unique identifier for the business transaction

The "Service Dependency" service is used to return a service dependency graph as a SVG image. The graph represents the invocation and usage links between services (and their operations), and provides a color-coded indication of areas that require attention. Where situations have been detected against services or their operations, this will be flagged on the service dependency graph with an appropriate colour reflecting their severity.

The URL for the service’s REST GET request is: <host>/overlord-rtgov/service/dependency/overview?width=<value>

This service has the following query parameters:

Parameter Description

width

Represents the optional image width. If the width is below a certain threshold, then a summary version of the dependency graph will be provided without text or tooltips (used to display metrics).

The severity levels used for the graph nodes and links can be customized by creating a MVEL script. A default script is provided within the overlord-rtgov.war, which can be used as a template. The script is called SeverityAnalyzer.mvel and is located within the /WEB-INF/classes folder of the overlord-rtgov.war archive.

An example of the contents of this script is:

Severity severity=Severity.Normal;

if (summary != null && latest != null && summary.getAverage() > 0) {
        double change=latest.getAverage()/summary.getAverage();

        if (change > 0) {

            if (change > 3.0) {
                severity = Severity.Critical;
            } else if (change > 2.2) {
                severity = Severity.Serious;
            } else if (change > 1.8) {
                severity = Severity.Error;
            } else if (change > 1.4) {
                severity = Severity.Warning;
            } else if (change > 1.2) {
                severity = Severity.Minor;
            }
        }
}

return (severity);

The script returns a value of type org.overlord.rtgov.service.dependency.presentation.Severity, which is automatically available as an imported class for use by the script.

The script takes four variables:

Variable Description

summary

The summary metric to be evaluated.

history

The list of recent metrics, merged to produce the summary metric.

latest

The latest metric.

component

The service definition component associated with the metric. This variable is not used within the example script above.

If a customized script is created, then its location can be specified in the MVELSeverityAnalyzer.scriptLocation property in the overlord-rtgov.properties configuration file.