How to increase service limits

Server only

This guide applies to server customers only. In Cloud you can request a limit increase via support (please include why you need this increase in your request).

Automation for Jira comes with a number of service limits out of the box to ensure Automation rules don't overload your Jira instance.  Sometimes it may be necessary to increase these limits if your server hardware can handle it, and your unique usage scenarios require it.

You will know you're hitting limits if you see errors like these in your audit log:

  • The audit item status is THROTTLED
  • The audit item contains one of:
    • This automation rule spent more than the allowed total time processing in the last day. Maximum allowed processing time over a day is (in minutes):
    • Automation for Jira has exceeded the allowed maximum number of rule executions in the last hour
    • A JQL search in this automation rule has exceeded the allowed maximum number of issues to retrieve per search. Only the first issues up to the following limit where processed:

We haven't had a chance yet to build a configuration UI to increase these limits, but they can be increased with a REST call.

Step-by-step guide

First find out what your current limits are. You can do so with the following HTTP REST call.

https://YOUR_JIRA_INSTANCE_URL/rest/cb-automation/latest/configuration/property:

{
    "max.processing.time.per.day": "3600",
    "rule.rate.per.five.second": "2",
    "short.scheduled.interval.issue.limit": "1000",   
    "max.rules.per.hour": "5000",
    "max.issues.per.search": "1000",
    "max.queued.items.per.rule": "25000"
}    

Lets break these down:

Property Description
max.processing.time.per.day This is the maximum number of seconds a single rule can spend processing in the last 24hr period. That is if a rule takes 1 min to execute on average and it executes 60 times in a 24 hour limit, then this rule would be throttled.
rule.rate.per.five.second
max.rules.per.hour

These control how many rules can be processed. They way these work are as follows:

  • If more executions happened in the last 5 seconds than specified by rule.rate.per.five.second check if the max per hour limits have been reached on this tenant.

This guarantees that if there's spikes of activity, they will eventually be throttled. However if after this spike activity returns to normal and rules trickle in slowly then they execute again immediately.

Say for example you have rule A triggered 10 times in the last 5 seconds: We then check how many times did all rules trigger in the last hour. If this exceeds 5000 for the instance then this rule execution will be throttled.

max.issues.per.search This controls how many issues will be processed in total by any trigger that runs a search (e.g. JQL or Incoming Webhook trigger). Defaults to jira.search.views.default.max configuration property which can be configured separately.
short.scheduled.interval.issue.limit This limit is used to reduce the interval at which large issue searches can be performed using a scheduled trigger. If a query returns more issues than this limit, the UI will show a warning and only allow schedules of at most 4 times in a 24 hour period. This is a soft limit meaning it will only apply when configuring a rule.
automation.processing.thread.pool .size.per.node

This one is a bit different from properties above. It defines the number of threads processing rules off the queue in Jira server.  By default this is 4 threads per server (or per node in data center).  Generally this should be plenty for most instances.  If you are seeing slow rule executions you may want to increase this to 8 threads.  

⚠️ Warning: Increasing this value can have the opposite effect and result in worse performance, if your DB or app server can't handle the increased load. Only increase this value if you are sure your infrastructure can handle it.

max.queued.items.per.rule See our KB on the queued item limit for more information.

To set one of these properties, please use this REST call (the Content-Type must be set to application/json) :

PUT https://<your Jira instance url>/rest/cb-automation/latest/configuration/property

{
    "key": "max.processing.time.per.day",
    "value": "10000"
}

Example curl command:

curl -X PUT -H 'Content-type: application/json' \
 -d '{"key": "max.rules.per.hour", "value": "10000"}' \
 https://your-instance.com/rest/cb-automation/latest/configuration/property