Does anyone have examples of how to use Splunk to measure continuous delivery builds?
The Splunk Product Best Practices team helped produce this response. Read more about example use cases in the Splunk Platform Use Cases manual.
Application development teams can find it overwhelming to deal with flurry of production changes inherit in a continuous integration and continuous delivery (CI/CD) model. Track these changes to maintain security compliance and have an audit trail for the life cycle of a host or application. Eventually you can use that data to demonstrate trends over time to improve your teams' performance.
Set up this example use case to measure continuous delivery builds.
How to implement: This example use case depends on event data from application performance monitoring platforms.
Install the appropriate add-ons for the platforms that exist in your environment.
The Splunk Plugin for Jenkins used in this post is not supported by Splunk, but is available for download from the Jenkins website as an open-source tool. You can find installation and configuration instructions in the Details tab of each Splunkbase item. Additional configuration details are available in the Configure the ITSI Module for Continuous Delivery in the Install and Configure the Splunk ITSI Module for Continuous Delivery manual.
Best practice: For more granular results with scripted inputs, you can increase the frequency at which the input runs using the interval
setting in inputs.conf. Running the input more frequently consumes more storage, and running it less frequently uses less, which can affect license consumption. The default interval is 60 seconds. See Scripted Input in the input.conf topic of the Splunk Enterprise Admin manual.
Best practice: For all of the data inputs, specify a desired target index to provide a more sustainable practice for data access controls and retention models. By default, Splunk collects the data in the default index named main
.
Use the Splunk platform to see the amount of time your builds take in minutes and get the percentage of successful builds.
Run the following search.
index=* tag=continuous_delivery tag=build_system
| mvexpand lifecycle_id
| eval success_rate=if(status=="Successful" OR status="SUCCESS", 100, 0), avg_duration=duration/(1000 * 60)
| timechart span=5min avg(avg_duration) AS "Average Build Duration", avg(success_rate) AS "Build Success Rate"
Best practice: In searches, replace the asterisk in index=*
with the name of the index that contains the data. By default, Splunk stores data in the main
index. Therefore, index=*
becomes index=main
. Use the OR
operator to specify one or multiple indexes to search. For example, index=main OR index=security
. See About managing indexes and How indexing works in Splunk docs for details.
How to respond: Track changes in your environment to complete the following tasks as needed:
The Troubleshoot the Splunk ITSI Module for Continuous Delivery section in the Install and Configure the Splunk ITSI Module for Continuous Delivery manual lists troubleshooting resources you can apply to this example use case.
If no results appear, it may be because the add-ons were not deployed to the search heads, so the needed tags and fields are not defined. Deploy the add-ons to the search heads to access the needed tags and fields. See About installing Splunk add-ons in the Splunk Add-ons manual.
For troubleshooting tips that you can apply to all add-ons, see Troubleshoot add-ons in the Splunk Add-ons manual.
For more support, post a question to the Splunk Answers community.
The Splunk Product Best Practices team helped produce this response. Read more about example use cases in the Splunk Platform Use Cases manual.
Application development teams can find it overwhelming to deal with flurry of production changes inherit in a continuous integration and continuous delivery (CI/CD) model. Track these changes to maintain security compliance and have an audit trail for the life cycle of a host or application. Eventually you can use that data to demonstrate trends over time to improve your teams' performance.
Set up this example use case to measure continuous delivery builds.
How to implement: This example use case depends on event data from application performance monitoring platforms.
Install the appropriate add-ons for the platforms that exist in your environment.
The Splunk Plugin for Jenkins used in this post is not supported by Splunk, but is available for download from the Jenkins website as an open-source tool. You can find installation and configuration instructions in the Details tab of each Splunkbase item. Additional configuration details are available in the Configure the ITSI Module for Continuous Delivery in the Install and Configure the Splunk ITSI Module for Continuous Delivery manual.
Best practice: For more granular results with scripted inputs, you can increase the frequency at which the input runs using the interval
setting in inputs.conf. Running the input more frequently consumes more storage, and running it less frequently uses less, which can affect license consumption. The default interval is 60 seconds. See Scripted Input in the input.conf topic of the Splunk Enterprise Admin manual.
Best practice: For all of the data inputs, specify a desired target index to provide a more sustainable practice for data access controls and retention models. By default, Splunk collects the data in the default index named main
.
Use the Splunk platform to see the amount of time your builds take in minutes and get the percentage of successful builds.
Run the following search.
index=* tag=continuous_delivery tag=build_system
| mvexpand lifecycle_id
| eval success_rate=if(status=="Successful" OR status="SUCCESS", 100, 0), avg_duration=duration/(1000 * 60)
| timechart span=5min avg(avg_duration) AS "Average Build Duration", avg(success_rate) AS "Build Success Rate"
Best practice: In searches, replace the asterisk in index=*
with the name of the index that contains the data. By default, Splunk stores data in the main
index. Therefore, index=*
becomes index=main
. Use the OR
operator to specify one or multiple indexes to search. For example, index=main OR index=security
. See About managing indexes and How indexing works in Splunk docs for details.
How to respond: Track changes in your environment to complete the following tasks as needed:
The Troubleshoot the Splunk ITSI Module for Continuous Delivery section in the Install and Configure the Splunk ITSI Module for Continuous Delivery manual lists troubleshooting resources you can apply to this example use case.
If no results appear, it may be because the add-ons were not deployed to the search heads, so the needed tags and fields are not defined. Deploy the add-ons to the search heads to access the needed tags and fields. See About installing Splunk add-ons in the Splunk Add-ons manual.
For troubleshooting tips that you can apply to all add-ons, see Troubleshoot add-ons in the Splunk Add-ons manual.
For more support, post a question to the Splunk Answers community.
Fixed post to be the right answer (not a set of links).