Pipeline Feedback

Concept

Instana Pipeline Feedback is the first automatic analysis of application development and deployment pipeline events, correlated directly with application, infrastructure, and service performance data.

As DevOps teams shift more to a continuous deployment model, there is a significant increase in the amount of dynamism in production. More software is updated or added more frequently on more infrastructure. Consequently, it is essential to have end-to-end visibility of each release and their impact on application or infrastructure health. For example, without the context of when a release happened, it’s challenging to understand whether a latency spike of a service indicates a problem, or is it the artifact of the deployment process. This information may indicate that the release led to a degradation in performance, which helps to decide on whether to rollback to a previous version or identify a specific problem to be resolved.

Terminology

Release

A defined moment in time of when a change occurred to code, infrastructure, when the architecture becomes generally available. Also, it can have an impact on the health or performance of the system.

Release Marker

Indicator in a chart or list when system changes become available to their users.

Incident

An issue correlated to performance degradation that should be investigated by a human.

Configuration

The following sections explain how to create releases as part of your deployment process, how to view releases on Instana’s dashboards, and how this helps with problems that arise with the continuous change generated by CI/CD.

Easily create releases as part of your deployment process, by using either our Instana REST API or our Instana Pipeline Feedback Integration for Jenkins.

Releases API

Our Releases API provides endpoints to create, read, update and delete a release. As an example, the following curl command can be used to create a new release named My First Release at the given point in time (as UNIX timestamp in milliseconds):

curl --location --request POST "{{base}}/api/releases" \
  --header "Authorization: apiToken {{apiToken}}" \
  --header "Content-Type: application/json" \
  --data "{
	\"name\": \"My First Release\",
	\"start\": 1565610536335
}"

Please note:

  • The used API Token requires the permission “Configuration of releases”.
  • A release has no scope and is therefore globally applied to the whole monitored system.

Instana Pipeline Feedback Integration for Jenkins

Alternatively, we offer a Jenkins plugin to allow a smoother integration with your existing CI/DC tooling. The plugin and further information can be found on GitHub.

Usage

Release Health Markers

To correlate outliners and anomalies or shifts in a metric, Instana includes information of each release in various ways. For example, additional context is provided to judge whether a spike in a metric might be a deployment artifact. Release health markers can be used as a tool to compare the health of the system before and after the release.

Charts

As shown in the screenshot below, a Release Marker displays as an annotation on every graph in your environment. This marker serves as a reference point to quickly spot e.g., regressions or improvements in the performance of their applications.

release marker charts

Incidents View

To separate incidents that triggered before and after each release, the release marker is listed in the Incidents view as shown below.

release marker incidents

The Release Marker in the Incidents view contains the following information:

  • Name: The user-defined release name.
  • Release time: The point in time when the release has happened.
  • Timeframe: The timeframe that health and count metrics are based on. This timeframe is usually equal to the timeframe selected in Instana’s time-picker.
  • Number of ongoing Incidents: The number of ongoing Incidents before and after the respective release within the given timeframe. A single Incident that is active cross-border of a release is counted for both before and after the release.
  • Health: The health of the monitored system before and after the release based on active Incidents. The percentage value expresses the ratio of time with no active Incident.

When Dynamic Focus is applied, that scope reflects in the metrics displayed in the Release Marker of the Incidents view. This allows investigating for the release’s impact on a subset of the monitored system. As an example, you can filter down Incidents using the Dynamic Focus query entity.service.name:shop whether the latest configuration changes of that shop service lead the expected positive effect in health just relative to the matched incidents of all related entities.

Releases Navigation

Along with being shown in charts or the Incidents view, Instana also offers different ways to navigate to recent Releases; follow the current live release or scope the selected timeframe to the timeframe around the deployment of the release.

Releases Notification

Each time a new release is created, you are notified, and this notification enables you to perform the following two optional actions:

  • Focus time to release: Changes the selected timeframe so that the new release is in view while the current window-size of the timeframe stays unchanged so that metrics before and after the release are easily compared.
  • Follow release live: Enables the Live Mode so that effects of the release are immediately visible in all dashboards or charts.

release notification

Focus Time to a Release

Instana’s time picker lists the most recent releases, as shown in the following screenshot:

release time picker

After selecting a release, the timeframe is adjusted so that the current window size stays unchanged, but to your temporal view, the release time is centered. This enables you to investigate its impacts concerning performance and system health.

Please note: If you haven’t created a release using the API, you may not see the “Go to a Release” section in your time picker.