Axon Framework Connector
The Axon Framework connector is in charge of instrumenting the components in your Axon applications. This instrumentation allows metrics to be collected and sent to the AxonIQ Console servers. In addition, it registers specific operations that can be triggered from AxonIQ Console, such a pausing and starting event processors. The client is open-source and can be found on GitHub.
Summary
The Axon Framework connector has been designed with privacy concerns in mind. It only collects aggregated metrics and names of components, but never the message payload unless specifically enabled by the user (DLQ).
All data is sent over a secure SSL connection using the RSocket protocol and stored for a maximum of 30 calendar days. A select set of operations are opened by the client, and can only be invoked by users with the appropriate rights assigned in AxonIQ Console.
You can find more information about the data collected on the data collection page, and more about the possible operations on the operations page.
Firewall configuration
The Axon Framework connector needs to establish a connection to the AxonIQ Console servers.
This happens over port 7000
to IP address 34.149.46.65
.
If your organization has a firewall, you need to allow this connection.
Bi-directional communication
RSocket provides bi-directional communication between the client and the server. During the setup phase, a payload is sent to the server to authenticate the client. If this fails, the connection is closed before any data is accepted.
When the connection is established, the client sends metrics to the server periodically. The client can also receive commands from the server, such as stopping a processor, triggered via the AxonIQ Console user interface.
Note that in some cases, for example, when enabling automatic scaling, the server can send commands to the client without user intervention. For more information, see the automatic scaling of segments page.
Installation
The installation of the Axon Framework connector depends on if you are using Spring Boot or not. AxonIQ Console will lead you through the installation.
You can access this wizard in various parts of the user interface:
-
On the Dashboard page
-
Click "Start Installation now" if you do not have any applications connected
-
Click "Add more applications" if you already have one
-
-
On the Applications page, at the right-hand side of the screen
Step 1: Dependency
You will need to add a dependency to your project.
-
Spring Boot
-
Non-Spring Boot
<dependency>
<groupId>io.axoniq.console</groupId>
<artifactId>console-framework-client-spring-boot-starter</artifactId>
<version>LATEST_VERSION</version>
</dependency>
<dependency>
<groupId>io.axoniq.console</groupId>
<artifactId>console-framework-client</artifactId>
<version>LATEST_VERSION</version>
</dependency>
Step 2: Configure
After adding the dependency, we need to configure the connector.
-
Spring Boot
-
Non-Spring Boot
The installation for Spring Boot is simple.
Put the properties the UI indicates in your application.properties
or application.yml
file.
This will look like the following:
axoniq.console.application-name=My Application
axoniq.console.credentials=ENVIRONMENT_ID:ACCESS_TOKEN
axoniq.console.dlq-mode=FULL
Without Spring Boot we need to configure the connector manually.
For this, we configure the Configurer
of Axon Framework:
public void configure(Configurer configurer) {
AxoniqConsoleConfigurerModule
.builder(
"ENVIRONMENT_ID",
"ACCESS_TOKEN",
"My application"
)
.dlqMode(AxoniqConsoleDlqMode.FULL)
.build()
.configureModule(configurer);
}
Access tokens
As you can see in the configuration, you need to provide an environment ID and an access token. This will be automatically generated for you when you set up the environment in AxonIQ Console.
If you wish, you can generate more access tokens on the applications page of AxonIQ Console. You can find the section to do this on the right-hand side of the screen. At any time, you can retract these tokens. Retracting a token will immediately disconnect all clients that use this token.
There are no dangerous or sensitive operations the clients can perform, so there’s no need to have only one application per token, or to rotate them out of precaution. Of course, you are still free to do this.