Skip to content

Home

Introduction

Development

IDEs

Services

Service manager

API Explorer

Monitoring Flux services

An overview of running services can be helpful in keeping track of ongoing activities. In this section, we will look at some methods for monitoring and inspecting your Flux services.

Using the Integrate service manager

The Integrate service manager provides a list of services that are currently running on a TORO Integrate instance. You can use this tool to monitor all running Flux services, as well as terminate them if you want to.

Using loggers

The Flux engine logs different kinds of information depending on the current log level. By default, its logger level is set to INFO which will provide exceptions and warnings that occur during its execution. To retrieve more information about Flux executions, edit or add io.toro.fluxengine's log level to DEBUG. Setting it to this level will yield information about:

  • The start and termination of a service
  • State and transition executions
  • Triggered services
  • External events
  • The debugger

Here are some example log messages sent when the Flux engine's logger is set to the DEBUG level:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
16/03/18 15:42:45.036 DEBUG [FluxStateProcessor] Started flux integration-223
16/03/18 15:42:45.091 DEBUG [FluxStateProcessor] Processing state state=state_A flux=integration-223
16/03/18 15:42:45.145 DEBUG [FluxStateProcessor] Invoking action for state=state_A flux=integration-223 action=io.toro.gloop.service.step.invoke.InvokeCodeStep(className:io.toro.integrate.LoggerMethods, methodName:println, returnType:null, parameters:[String], exceptions:[], inputModel:input = null, outputModel:output = null, iconName:java)
16/03/18 15:42:45.279 DEBUG [ProcessTransition] Processing transition event=proceed state=state_A flux=integration-223
16/03/18 15:46:20.978 DEBUG [FluxManagerImpl] External event received for flux request io.toro.fluxengine.model.event.FluxEvent([], trigger, jsonObject{})
16/03/18 15:46:21.742 DEBUG [TriggerFluxServices] Triggered flux services: [io.toro.fluxengine.model.event.PostEventState(227, state_A)]
16/03/18 15:42:45.366 DEBUG [FluxManagerImpl] Termination requested for flux id=223
16/03/18 15:48:38.789 DEBUG [FluxDebuggerImpl] On breakpoint state=state_A flux=integration-231
16/03/18 15:48:39.740 DEBUG [FluxDebuggerImpl] State suspended state=state_A flux=integration-231
16/03/18 15:48:45.720 DEBUG [FluxDebuggerImpl] State step INTO state=state_A flux=integration-231
16/03/18 15:48:48.685 DEBUG [FluxDebuggerImpl] Transition stepped over transition=proceed state=state_A flux=integration-231
16/03/18 15:48:51.733 DEBUG [FluxDebuggerImpl] State step OVER state=state_B flux=integration-231

Changing log levels

To change the Flux engine's log level, you can either modify your <toro-integrate-home>/conf/log4j.properties file or update its logger via the user interface.

Using Tracker

Another way to monitor the behavior of Flux services is by using Tracker. The Flux engine adds a Tracker document when a Flux service is executed and a document state is added for each of the following scenarios:

  • Start of execution - where the document state contains the context of the Flux service in a JSON file.
  • Execution of a state - where the document state contains the context of the invoked state in a JSON file.
  • Occurrence of an exception - where the document contains the stacktrace of the exception from the {stateName}-error.log file.
  • End of execution

The properties of a Flux-produced Tracker document by default, are defined as follows:

Name Description
internalId By default, this is a random 40-digit hex value. It can be overridden by adding a string input named $fluxTrackerId in your Flux.
externalId The time in milliseconds when the execution started.
documentType The value is "FluxExecution" by default, but can be overridden by adding a string input named $fluxTrackerDocumentType in your Flux.
senderId The context ID of the Flux execution.
receiverId The value is set to "Flux".

Tracking can be disabled on a Flux execution by adding a boolean input property named $fluxTrackerEnabled to a Flux service and setting it to false. To globally disable Tracker for all Flux services, set the flux.tracker.enabled application property to false in TORO Integrate's application properties. This global property takes precedence over the $fluxTrackerEnabled input property.

A Flux service will not be logged to Tracker if it is debugged or invoked using Coder.