Skip to content

RFE: Calculate change point on each metric series #122

@afcollins

Description

@afcollins

Problem:
One metric in a test config is detecting a changepoint. If I add an additional metric to the same config to focus the changepoint detection on one subset of the same data, it affects whether a changepoint is detected in the original data set.

When I use this config against OCP 4.19 data:

tests :
  - name : payload-cluster-density-v2
    index: {{ es_metadata_index }}
    benchmarkIndex: {{ es_benchmark_index }}
    metadata:
      platform: AWS
      clusterType: self-managed
      masterNodesType: m6a.xlarge
      masterNodesCount: 3
      workerNodesType: m6a.xlarge
      workerNodesCount: 6
      benchmark.keyword: cluster-density-v2
      ocpVersion: {{ version }}
      networkType: OVNKubernetes
      jobType: periodic

    metrics :
    - name: multusCPU
      metricName : containerCPU
      labels.namespace.keyword: openshift-multus
      metric_of_interest: value
      agg:
        value: cpu
        agg_type: avg
      labels:
        - "[Jira: multus]"
      direction: 1                                                                                                                                                                                                                          

I get a changepoint on run fc90b400-ee81-4fd1-afbf-dd1408eab767.

When I add a metric to focus on a only whereabouts pods, it appears to filter out uuids which don't contain whereabouts pods for all metrics.

tests :
  - name : payload-cluster-density-v2
    index: {{ es_metadata_index }}
    benchmarkIndex: {{ es_benchmark_index }}
    metadata:
      platform: AWS
      clusterType: self-managed
      masterNodesType: m6a.xlarge
      masterNodesCount: 3
      workerNodesType: m6a.xlarge
      workerNodesCount: 6
      benchmark.keyword: cluster-density-v2
      ocpVersion: {{ version }}
      networkType: OVNKubernetes
      jobType: periodic

    metrics :
    - name: multusCPU
      metricName : containerCPU
      labels.namespace.keyword: openshift-multus
      metric_of_interest: value
      agg:
        value: cpu
        agg_type: avg
      labels:
        - "[Jira: multus]"
      direction: 1

    - name: multusCPU-whereabouts-only
      metricName : containerCPU
      labels.namespace.keyword: openshift-multus
      labels.pod: whereabouts-reconciler
      metric_of_interest: value
      agg:
        value: cpu
        agg_type: avg
      labels:
        - "[Jira: multus]"
      direction: 1

output:

<testsuites>
        <testsuite name="payload-cluster-density-v2 nightly compare" failures="0" tests="2">
                <testcase name="[Jira: multus] multusCPU_avg regression detection" timestamp="1744664801"/>
                <testcase name="[Jira: multus] multusCPU-whereabouts-only_avg regression detection" timestamp="1744664801"/>
        </testsuite>
</testsuites>

The resulting dataset CSVs are different lengths:

% wc multus_{,without_}changepoint/data-payload-cluster-density-v2.csv
      31      31    7946 multus_changepoint/data-payload-cluster-density-v2.csv
      24      24    6606 multus_without_changepoint/data-payload-cluster-density-v2.csv

And I only see the changepoint uuid in the first config.
This uuid was filtered out of the dataset retrieved by the second config because this run doesn't contain any whereabouts-reconciler pods.

% grep -c fc90b400 multus_{,without_}changepoint/data-payload-cluster-density-v2.csv
multus_changepoint/data-payload-cluster-density-v2.csv:1
multus_without_changepoint/data-payload-cluster-density-v2.csv:0

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions