Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Lead Time to Change does not reflect on grafana with two type of committime-exporter enabled #1111

Open
1 task done
pacopeng opened this issue Nov 29, 2023 · 1 comment
Open
1 task done
Labels
kind/bug Categorizes issue or PR as related to a bug. needs-triage Indicates an issue or PR lacks a `triage/foo` label and requires one.

Comments

@pacopeng
Copy link

pacopeng commented Nov 29, 2023

OpenShift version

4.10

Problem description

two deployment , go-hello-pipeline and mongo-db. none of them reflect the lead time to change from commit-exporter (both providers image and container image)

go-hello-pipeline image build from tekton with label and annotation with task and transferred from internal registry to standalone quay.

[root@lb-2 ~]#  podman inspect quay.apps.test.lab.local/paco/go-pipeline-hello| jq -r '.[0].Config.Labels'
{
  "architecture": "x86_64",
  "build-date": "2022-10-26T01:47:08",
  "com.redhat.component": "go-toolset-container",
  "com.redhat.license_terms": "https://www.redhat.com/agreements",
  "description": "Go Toolset available as a container is a base platform for building and running various Go applications and frameworks. Go is an easy to learn, powerful, statically typed language in the C/C++ tradition with garbage collection, concurrent programming support, and memory safety features.",
  "distribution-scope": "public",
  "io.buildah.version": "1.23.1",
  "io.k8s.description": "Go Toolset available as a container is a base platform for building and running various Go applications and frameworks. Go is an easy to learn, powerful, statically typed language in the C/C++ tradition with garbage collection, concurrent programming support, and memory safety features.",
  "io.k8s.display-name": "Go 1.17.12",
  "io.openshift.s2i.build.image": "image-registry.openshift-image-registry.svc:5000/openshift/golang:1.17-ubi7",
  "io.openshift.s2i.build.source-location": ".",
  "io.openshift.s2i.scripts-url": "image:///usr/libexec/s2i",
  "io.openshift.tags": "builder,golang,golang117,rh-golang117,go",
  "io.s2i.scripts-url": "image:///usr/libexec/s2i",
  "name": "devtools/go-toolset-rhel7",
  "release": "2.1666745579",
  "summary": "Platform for building and running Go applications",
  "url": "https://access.redhat.com/containers/#/registry.access.redhat.com/devtools/go-toolset-rhel7/images/1.17.12-2.1666745579",
  "vcs-ref": "f408ea11d446fcf044d4f8ffab35b958e6e8131d",
  "vcs-type": "git",
  "vendor": "Red Hat, Inc.",
  "version": "1.17.12"
}

mongo-db image build from Build Config with label automatically attached and transferred from internal registry to standalone quay.

podman inspect quay.apps.test.lab.local/paco/todolist-mongo-go| jq -r '.[0].Config.Labels'
{
  "io.buildah.version": "1.26.4",
  "io.openshift.build.commit.author": "PacoPeng <[email protected]>",
  "io.openshift.build.commit.date": "Fri Nov 3 07:53:12 2023 -0400",
  "io.openshift.build.commit.id": "8ede72c8f8fdb5724563cae0961d91351e59eef0",
  "io.openshift.build.commit.message": "Bug fix 20",
  "io.openshift.build.commit.ref": "master",
  "io.openshift.build.name": "todolist-128",
  "io.openshift.build.namespace": "mongo-persistent",
  "io.openshift.build.source-location": "http://10.73.69.214:7010/root/mig-demo-apps.git"
}

Steps to reproduce

  1. deploy pelorus 0.0.8 with operator in openshift 4.10.60
  2. configure pelorus instance with deployment-exporter and two committer-exporter
  3. upload prepared images from dev env which build by Build configure and Tekton to quay.
  4. created two deployment one is using the image build by Build config and another one use the image build by pipeline.
  5. check grafana dashboard

Pelorus configuration:

spec:
  prometheus_storage: true
  thanos_bucket_name: pelorus-f8a6ec8f-07bc-491d-bd15-f92d4f959661
  openshift_prometheus_basic_auth_pass: changeme
  prometheus_retention: 1y
  bucket_access_point: >-
    ocs-storagecluster-cephobjectstore-https-openshift-storage.apps.ocp2.rd.paas.pek2.redhat.com
  custom_ca: true
  federate_openshift_monitoring:
    enabled: false
  openshift_prometheus_htpasswd_auth: 'internal:{SHA}+pvrmeQCmtWmYVOZ57uuITVghrM='
  exporters:
    instances:
      - app_name: deploytime-exporter
        enabled: true
        exporter_type: deploytime
        extraEnv:
          - name: LOG_LEVEL
            value: DEBUG
          - name: NAMESPACES
            value: paco-demo
      - app_name: committime-exporter
        enabled: true
        exporter_type: committime
        extraEnv:
          - name: LOG_LEVEL
            value: DEBUG
          - name: NAMESPACES
            value: paco-demo
          - name: PROVIDER
            value: image
      - app_name: committime-exporter4
        enabled: true
        exporter_type: committime
        extraEnv:
          - name: NAMESPACES
            value: paco-demo
          - name: PROVIDER
            value: containerimage
  prometheus_storage_pvc_capacity: 2Gi
  prometheus_retention_size: 1GB
  prometheus_storage_pvc_storageclass: managed-nfs-storage
  bucket_access_key: <key>
  bucket_secret_access_key:  <secret>

deployment -prod-go-pipeline-hello

kind: Deployment
apiVersion: apps/v1
metadata:
  annotations:
    deployment.kubernetes.io/revision: '1'
  resourceVersion: '1859944991'
  name: prod-go-pipeline-hello
  namespace: paco-demo
  labels:
    app: go-pipeline-hello
    app.kubernetes.io/component: go-pipeline-hello
    app.kubernetes.io/instance: go-pipeline-hello
    app.kubernetes.io/name: go-pipeline-hello
    app.kubernetes.io/part-of: go-pipeline-hello
    app.openshift.io/runtime: golang
    app.openshift.io/runtime-version: 1.17-ubi7
spec:
  replicas: 1
  selector:
    matchLabels:
      app: go-pipeline-hello
  template:
    metadata:
      creationTimestamp: null
      labels:
        app: go-pipeline-hello
        app.kubernetes.io/name: go-pipeline-hello
        deployment: go-pipeline-hello
    spec:
      containers:
        - name: go-pipeline-hello
          image: 'quay.apps.test.lab.local/paco/go-pipeline-hello:latest'
          resources: {}
          terminationMessagePath: /dev/termination-log
          terminationMessagePolicy: File
          imagePullPolicy: Always
      restartPolicy: Always
      terminationGracePeriodSeconds: 30
      dnsPolicy: ClusterFirst
      securityContext: {}
      schedulerName: default-scheduler
  strategy:
    type: RollingUpdate
    rollingUpdate:
      maxUnavailable: 25%
      maxSurge: 25%
  revisionHistoryLimit: 10
  progressDeadlineSeconds: 600

deployment -mongo

kind: Deployment
apiVersion: apps/v1
metadata:
  annotations:
    deployment.kubernetes.io/revision: '3'
  resourceVersion: '1859975783'
  name: mongo
  namespace: paco-demo
  labels:
    app.kubernetes.io/name: prod-mongo
    e2e-app: 'true'
spec:
  replicas: 1
  selector:
    matchLabels:
      app: mongo
  template:
    metadata:
      creationTimestamp: null
      labels:
        app: mongo
        app.kubernetes.io/name: prod-mongo
        e2e-app: 'true'
    spec:
      restartPolicy: Always
      serviceAccountName: default
      schedulerName: default-scheduler
      terminationGracePeriodSeconds: 30
      securityContext: {}
      containers:
        - resources:
            limits:
              memory: 512Mi
          terminationMessagePath: /dev/termination-log
          name: mongo
          env:
            - name: MONGO_INITDB_ROOT_USERNAME
              value: changeme
            - name: MONGO_INITDB_ROOT_PASSWORD
              value: changeme
            - name: MONGO_INITDB_DATABASE
              value: todolist
          securityContext:
            privileged: true
          ports:
            - name: mongo
              containerPort: 27017
              protocol: TCP
          imagePullPolicy: Always
          volumeMounts:
            - name: mongo-data
              mountPath: /data/db
          terminationMessagePolicy: File
          image: 'quay.apps.test.lab.local/paco/todolist-mongo-go:latest'
      serviceAccount: default
      volumes:
        - name: mongo-data
          emptyDir: {}
      dnsPolicy: ClusterFirst
  strategy:
    type: Recreate
  revisionHistoryLimit: 10
  progressDeadlineSeconds: 600

Current behavior

no lead time to change
image

image

Expected behavior

There should be a lead time to change metrics appeared in the dashboard. as two committer-exporter(image and container image) configured.

Code of Conduct

  • I agree to follow Pelorus's Code of Conduct
@pacopeng pacopeng added kind/bug Categorizes issue or PR as related to a bug. needs-triage Indicates an issue or PR lacks a `triage/foo` label and requires one. labels Nov 29, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/bug Categorizes issue or PR as related to a bug. needs-triage Indicates an issue or PR lacks a `triage/foo` label and requires one.
Projects
None yet
Development

No branches or pull requests

1 participant