Guardrails for Bamboo build log sizes
Platform Notice: Data Center - This article applies to Atlassian products on the Data Center platform.
Note that this knowledge base article was created for the Data Center version of the product. Data Center knowledge base articles for non-Data Center-specific features may also work for Server versions of the product, however they have not been tested. Support for Server* products ended on February 15th 2024. If you are running a Server product, you can visit the Atlassian Server end of support announcement to review your migration options.
*Except Fisheye and Crucible
Summary
This article provides a list of the supported guardrails for build log sizes in Bamboo.
Bamboo employs a combination of HTTP and JMS (Java Message Service) streams to facilitate the transfer of build logs from its Agents back to the Server. The HTTP protocol is utilized once per build upon completion, transferring the complete build log file as a text artifact, optionally compressed. Meanwhile, JMS is employed for builds that are still in progress, allowing users to monitor the active build progress status page directly in the UI via the Live Logs feature.
Transmitting excessively large and parallel build logs via JMS can lead to system stability challenges. This is due to Bamboo's JMS (ActiveMQ) service competing for system resources with other components of the application, which may result in ActiveMQ missing messages and subsequently causing overall performance and stability issues related to build queueing, agent communication, and unexpected error messages.
For additional information regarding best practices for ActiveMQ in Bamboo, please refer to the following KB article:
Solution
To ensure a stable environment, Atlassian has tested and validated the following guardrails for build log sizes, assuming Live Logs is enabled and users are actively observing the logs during build generation:
Component | Number of Lines | Size in MB |
---|---|---|
Build log size (per Job) | 100,000 | 25 |
Supported workarounds
If you have specific requirements that exceed the recommended log size limits, please consider the following suggestions:
Disable Live Logs
Live logging commands Bamboo Agents to push build messages over JMS, increasing the demand on ActiveMQ while a build is running and an active browser session is monitoring the logs on the build page. Although this may function normally under typical workloads, ActiveMQ could encounter performance issues due to excessive messaging traffic. If reducing log output is impractical, it is recommended to globally disable live log transmission to mitigate the impact of excessive logging on ActiveMQ.
Restrict the number of log lines or convert them to artifacts
If reducing the log size is not feasible, adjust your build pipelines to redirect log output to text files and publish them as build artifacts, which will be linked to the build results for future reference. Since artifacts are transferred over HTTP and don't use ActiveMQ to be sent back to the Bamboo server, this approach does not affect the ability to generate comprehensive logs.
Bamboo may trigger a hanging build event if no output is provided by a build after a specified period. To prevent this, either configure your builds to produce minimal but consistent output on the screen or adjust or disable the hanging build event threshold in your builds.