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.
Info | ||
---|---|---|
| ||
Camel also provides a Tracer which has similar capabilities as this backlog tracer. The difference is that the backlog tracer is storing |
Options
Wiki Markup |
---|
{div:class=confluenceTableSmall} || 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. | {div} |
Operations
Wiki Markup |
---|
{div:class=confluenceTableSmall} || 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. | {div} |
Enabling
You would need to enable this using the JMX API.