BacklogTracer Interceptor
Available as of Camel 2.11
Camel supports a backlog tracer interceptor that is used for capturing a trace message of each message as they are routed in Camel.
The trace message is stored in a backlog queue, which contains the last N messages for each node in the routes (by default 10).
The BacklogTracer is an InterceptStrategy which can be applied to a DefaultCamelContext or SpringCamelContext to ensure that there is a TracerInterceptor created for every node in the DSL.
You can enable or disable the BacklogTracer's logging dynamically, by calling the backlogTracer's setEnabled
method.
Options
Option | Default | Description |
---|
enabled | false | Flag to enable or disable this tracer |
backlogSize | 1000 | Maximum number of total traced messages to keep in the backlog (FIFO queue). |
tracePattern | null | Allows to filter tracing using a pattern that matches against the node id and route id. For example use "to1,to2" to match only nodes with either the name "to1", or "to2". You can use * for wildcards. So you can do "to*" to match any to. Or use "route-foo*" to match any foo routes. |
traceFilter | null | Allow to configure a filter as a Predicate using any of the Camel languages. But default the Simple language is used. For example to filter on messages with a given header, use ${header.foo} != null . To use Groovy then prefix the value with "groovy:". And similar for the other languages. |
removeOnDump | true | Whether to remove the traced messages that was returned when invoking the dump methods. |
bodyMaxChars | 128kb | To limit the message body to a maximum size in the traced message. Use 0 or negative value to use unlimited size. |
bodyIncludeStreams | false | Whether to include the message body of stream based messages. If enabled then beware the stream may not be re-readable later. See more about Stream Caching. |
bodyIncludeFiles | true | Whether to include the message body of file based messages. The overhead is that the file content has to be read from the file. |
Operations
Option | Type | Description |
---|
getTraceCounter | long | Gets the total number of traced messages. |
resetTraceCounter | void | To reset the trace counter. |
dumpTracedMessages(nodeOrRouteId) | List<BacklogTracerEventMessage> | To dump the traced messages from the give node or route id. |
dumpTracedMessagesAsXml(nodeOrRouteId) | String | To dump the traced messages from the give node or route id in XML format. |
dumpAllTracedMessages | List<BacklogTracerEventMessage> | To dump all the traced messages |
dumpAllTracedMessagesAsXml | String | To dump all the traced messages in XML format. |
Enabling
You would need to enable this using the JMX API.
See Also