Interval Analysis

Introduction

This document helps you to understand the Interval Analysis feature in ISD. The purpose of interval-based analysis in ISD is to:

  • Evaluate release in smaller chunks of duration.

  • In case of failures and errors during the analysis, exit analysis as soon as the ongoing interval exits. This saves users the time and resources that would otherwise be spent waiting for the entire duration to end.

Modes of Interval Analysis

The interval analysis can be performed in the following two modes:

Growing Window Analysis:

In growing window analysis, the interval duration keeps adding to the previous interval. Let us say, the interval duration is 15 minutes, and the overall duration is 1 hour. Then the interval structure will be 0 to 15 minutes, 0 to 30 minutes, 0 to 45 minutes, and 0 to 60 minutes. Refer to the image below.

In case the overall interval is not perfectly divisible by the interval duration, then the remaining interval is included in the last interval.

Sliding Window Analysis

In the case of sliding window analysis, the interval duration keeps shifting further, starting from the end of the previous interval. Let us say, the interval duration is 15 minutes, and the overall interval is 1 hour. Then the interval structure will be 0 to 15 minutes, 15 to 30 minutes, and so on, as shown in the image below.

At the end of the entire duration(during the last interval), an end-to-end analysis from 0 to end of the duration will be executed.

Configuration of Interval Analysis in OpsMx Provider Configmap

Following the set of configurations, elements are to be defined in OpsMx provider definition, in “OpsMx Provider Configmap” to enable Interval analysis.

  • lookBackType: This field can carry two values, sliding or growing. The following example shows “lookBackType” as ‘growing’, the same can be set to ‘sliding’ to switch to sliding mode.

  • IntervalTime: This field defines the length of each interval and it is a numeric field. The value of “intervalTime” can be less than or equal to “lifetimeMinutes”, but not greater than that.

For example, Refer to the following OpsMx Provider Configmap.

apiVersion: v1
kind: ConfigMap
metadata:
  name: opsmx-provider-config
data:
  providerConfig: |
    application: rollout-app
    user: admin
    gateUrl: 'https://isd-argofull.isd-dev.opsmx.net/'
    lifetimeMinutes: 30
    intervalTime: 10
    lookBackType: sliding
    gitops: true
    passScore: 80
    serviceList:
    - serviceName: rollout-app-svc
      metricScopeVariables: "${app_key},${host_key}"
      baselineMetricScope: "rollout-app,{{env.STABLE_POD_HASH}}"
      canaryMetricScope: "rollout-app,{{env.LATEST_POD_HASH}}"
      metricTemplateName: "newrelic-verifier"
      metricTemplateVersion: "v1.0"
      logTemplateName: elasticsearch-verifier
      logScopeVariables: "resource.labels.pod_name"
      baselineLogScope: ".*{{env.STABLE_POD_HASH}}.*"
      canaryLogScope: ".*{{env.LATEST_POD_HASH}}.*"
      logTemplateVersion: "v1.0"

Interval Tracking in Analysis Run

The ongoing interval can be observed in the status block of analysis run, as shown in the image below.

In case, the analysis run failed for a specific interval and the entire analysis run exited, the following report is published along with the interval for which analysis failed.

Last updated