Uploaded image for project: 'Project Quay'
  1. Project Quay
  2. PROJQUAY-9684

Pull statistics: Column "Pull Count" keeps static number after several pulls

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Unresolved
    • Icon: Critical Critical
    • None
    • quay-v3.16.0
    • quay-ui
    • False
    • Hide

      None

      Show
      None
    • False

      Description:

      After several pulls, in tag view "Pull Count" columns value keeps 1(or other like 4), but the "Last Pulled" updated

      Env:

      Quay stable-3-16-v4-19 https://quay.io/redhat-user-workloads/quay-eng-tenant/stable-3-16-v4-19@sha256:d562543a047e3d58ac99364d46b302430815422d5c46e8fc3f19a331df23cc63

      Steps:

      1. Set FEATURE_IMAGE_PULL_STATS: true  
        change config.py REDIS_FLUSH_INTERVAL_SECONDS: 30
      2. Push busybox or ubuntu images to a repo, like quayorg/repo1
      3. Pull the multiple times
      4. Check tag view page Pull statistics column status     

      Result:

      "Last Pulled" updated but "Pull Count" keeps 1 .

      1st pull, timestamp: 4:30PM

      Second pull, timestamp updated: 5:09PM

      Quay log:  (full log is attached)

      app2.log:83834:pullstatsredisflushworker stdout | 2025-11-04 08:31:47,958 [80] [INFO] [apscheduler.executors.default] Job "RedisFlushWorker._flush_pull_metrics (trigger: interval[0:00:30], next run at: 2025-11-04 08:32:17 GMT)" executed successfully
      app2.log:85729:pullstatsredisflushworker stdout | 2025-11-04 08:32:12,421 [80] [ERROR] [util.metrics.prometheus] failed to push registry to pushgateway at http://localhost:9091 with grouping key {'host': 'quayregistry-quay-app-d85d7f54b-cdd7n', 'process_name': 'pullstatsredisflushworker.py', 'pid': '80'}
      app2.log:85730:pullstatsredisflushworker stdout | Traceback (most recent call last):
      app2.log:85731:pullstatsredisflushworker stdout |   File "/usr/lib64/python3.12/urllib/request.py", line 1344, in do_open
      app2.log:85732:pullstatsredisflushworker stdout |     h.request(req.get_method(), req.selector, req.data, headers,
      app2.log:85733:pullstatsredisflushworker stdout |   File "/usr/lib64/python3.12/http/client.py", line 1338, in request
      app2.log:85734:pullstatsredisflushworker stdout |     self._send_request(method, url, body, headers, encode_chunked)
      app2.log:85735:pullstatsredisflushworker stdout |   File "/usr/lib64/python3.12/http/client.py", line 1384, in _send_request
      app2.log:85736:pullstatsredisflushworker stdout |     self.endheaders(body, encode_chunked=encode_chunked)
      app2.log:85737:pullstatsredisflushworker stdout |   File "/usr/lib64/python3.12/http/client.py", line 1333, in endheaders
      app2.log:85738:pullstatsredisflushworker stdout |     self._send_output(message_body, encode_chunked=encode_chunked)
      app2.log:85739:pullstatsredisflushworker stdout |   File "/usr/lib64/python3.12/http/client.py", line 1093, in _send_output
      app2.log:85740:pullstatsredisflushworker stdout |     self.send(msg)
      app2.log:85741:pullstatsredisflushworker stdout |   File "/usr/lib64/python3.12/http/client.py", line 1037, in send
      app2.log:85742:pullstatsredisflushworker stdout |     self.connect()
      app2.log:85743:pullstatsredisflushworker stdout |   File "/usr/lib64/python3.12/http/client.py", line 1003, in connect
      app2.log:85744:pullstatsredisflushworker stdout |     self.sock = self._create_connection(
      app2.log:85745:pullstatsredisflushworker stdout |                 ^^^^^^^^^^^^^^^^^^^^^^^^
      app2.log:85746:pullstatsredisflushworker stdout |   File "/usr/lib64/python3.12/socket.py", line 865, in create_connection
      app2.log:85747:pullstatsredisflushworker stdout |     raise exceptions[0] 

      Quay Config:  config.yaml

      BROWSER_API_CALLS_XHR_ONLY: false
      PERMANENTLY_DELETE_TAGS: true
      RESET_CHILD_MANIFEST_EXPIRATION: true
      FEATURE_EXTENDED_REPOSITORY_NAMES: true
      CREATE_NAMESPACE_ON_PUSH: true
      FEATURE_QUOTA_MANAGEMENT: true
      FEATURE_PROXY_CACHE: true
      FEATURE_USER_INITIALIZE: true
      FEATURE_PROXY_STORAGE: true
      FEATURE_UI_V2: true
      FEATURE_SUPERUSERS_FULL_ACCESS: true
      FEATURE_AUTO_PRUNE: true
      FEATURE_IMAGE_EXPIRY_TRIGGER: true
      NOTIFICATION_TASK_RUN_MINIMUM_INTERVAL_MINUTES: 5
      SUPER_USERS:
        - quay
        - admin
      GLOBAL_READONLY_SUPER_USERS:
        - superglobalro
      FEATURE_IMAGE_PULL_STATS: true
      REDIS_FLUSH_INTERVAL_SECONDS: 30
      PULL_METRICS_REDIS:
          host: quayregistry-quay-redis
          port: 6379
          db: 1

       

        1. app1.log
          25.68 MB
        2. app2.log
          12.75 MB
        3. image-2025-11-04-17-27-01-616.png
          image-2025-11-04-17-27-01-616.png
          205 kB
        4. image-2025-11-04-17-27-57-833.png
          image-2025-11-04-17-27-57-833.png
          173 kB

              rh-ee-shudeshp Shubhra Jayant Deshpande
              szhao@redhat.com Sean Zhao
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

                Created:
                Updated: