Warning
You are currently viewing v"2.17" of the documentation and it is not the latest. For the most recent documentation, kindly click here.
ActiveMQ Artemis
Scale applications based on ActiveMQ Artemis queues
This specification describes the artemis-queue
trigger for ActiveMQ Artemis queues.
triggers:
- type: artemis-queue
metadata:
managementEndpoint: "artemis-activemq.artemis:8161"
queueName: "test"
brokerName: "artemis-activemq"
brokerAddress: "test"
queueLength: '10'
activationQueueLength: '1'
username: 'ARTEMIS_USERNAME'
password: 'ARTEMIS_PASSWORD'
restApiTemplate: # Optional. Default : "http://<<managementEndpoint>>/console/jolokia/read/org.apache.activemq.artemis:broker=\"<<brokerName>>\",component=addresses,address=\"<<brokerAddress>>\",subcomponent=queues,routing-type=\"anycast\",queue=\"<<queueName>>\"/MessageCount"
Parameter list:
managementEndpoint
- ActiveMQ Artemis management endpoint to connect to in <hostname>:<port>
format.queueName
- Name of the queue to check for the number of messages available.brokerName
- Name of the broker as defined in Artemis.brokerAddress
- Address of the broker.queueLength
- Target value for queue length passed to the scaler. Example: if one pod can handle 10 messages, set the queue length target to 10. If the actual number of messages in the queue is 30, the scaler scales to 3 pods. (default: 10)activationQueueLength
- Target value for activating the scaler. Learn more about activation here. (Default: 0
, Optional)restApiTemplate
- Template to build REST API url to get queue size. (Default: "http://<<managementEndpoint>>/console/jolokia/read/org.apache.activemq.artemis:broker=\"<<brokerName>>\",component=addresses,address=\"<<brokerAddress>>\",subcomponent=queues,routing-type=\"anycast\",queue=\"<<queueName>>\"/MessageCount"
, Optional)corsHeader
- Value to populate the Origin header field for CORS filtering. (Default: "http://<<managmentEndpoint>>"
, Optional)You can use TriggerAuthentication
CRD to configure the username
and password
to connect to the management endpoint.
Username and Password based authentication:
username
- The username to use to connect to the broker’s management endpoint.password
- The password to use to connect to the broker’s management endpoint.apiVersion: v1
kind: Secret
metadata:
name: kedartemis
namespace: kedartemis
labels:
app: kedartemis
type: Opaque
data:
artemis-password: "YXJ0ZW1pcw=="
artemis-username: "YXJ0ZW1pcw=="
---
apiVersion: keda.sh/v1alpha1
kind: TriggerAuthentication
metadata:
name: trigger-auth-kedartemis
namespace: kedartemis
spec:
secretTargetRef:
- parameter: username
name: kedartemis
key: artemis-username
- parameter: password
name: kedartemis
key: artemis-password
---
apiVersion: keda.sh/v1alpha1
kind: ScaledObject
metadata:
name: kedartemis-consumer-scaled-object
namespace: kedartemis
spec:
scaleTargetRef:
name: kedartemis-consumer
triggers:
- type: artemis-queue
metadata:
managementEndpoint: "artemis-activemq.artemis:8161"
queueName: "test"
queueLength: "50"
brokerName: "artemis-activemq"
brokerAddress: "test"
restApiTemplate: # Optional. Default: "http://<<managementEndpoint>>/console/jolokia/read/org.apache.activemq.artemis:broker=\"<<brokerName>>\",component=addresses,address=\"<<brokerAddress>>\",subcomponent=queues,routing-type=\"anycast\",queue=\"<<queueName>>\"/MessageCount"
authenticationRef:
name: trigger-auth-kedartemis