mvisonneau / gitlab-ci-pipelines-exporter

Prometheus / OpenMetrics exporter for GitLab CI pipelines insights
Apache License 2.0
1.27k stars 240 forks source link

Question about gcpe_currently_queued_tasks_count nevering draining to zero #779

Open spirrello opened 8 months ago

spirrello commented 8 months ago

Hi,

Is it normal that the gcpe_currently_queued_tasks_count never drains to zero? Its always hovering at around 500ish. Overall I think the exporter is working as expected but was curious if this is a problem.

Here is my config:

log:
  level: debug

gitlab:
  url: https://mygitlab.asdfasdf.com/
  token: somethingcool

  maximum_jobs_queue_size: 1500

redis:
  url: redis://redis:6379

# Pull jobs related metrics on all projects
# Pull jobs related metrics on all projects
project_defaults:
  # Whether to output sparse job and pipeline status metrics.
  # When enabled, only the status label matching the last run
  # of a pipeline or job will be submitted (optional, default: true)
  output_sparse_status_metrics: true

  pull:
    environments:
      # Whether or not to pull project environments & their deployments
      # (optional, default: false)
      enabled: false

      # Filter out by name environments to include
      # (optional, default: ".*")
      # regexp: ".*"

      # Do not export metrics for stopped environments
      # (optional, default: true)
      exclude_stopped: true

    refs:
      branches:
        # Monitor pipelines related to project branches
        # (optional, default: true)
        enabled: true

        # Filter for branches to include
        # (optional, default: "^(?:main|master)$" -- main/master branches)
        regexp: ".*"

        # Only keep most 'n' recently updated branches
        # (optional, default: 0 -- disabled/keep every branch matching the regexp)"
        most_recent: 3

        # If the age of the most recently updated pipeline for the branch is greater than
        # this value, the pipeline metrics won't get exported (optional, default: 0 (disabled))
        max_age_seconds: 259200

        # If set to false, it will continue to export metrics for the branch even
        # if it has been deleted (optional, default: true)
        exclude_deleted: true

      tags:
        # Monitor pipelines related to project tags
        # (optional, default: true)
        enabled: true

        # Filter for tags to include
        # (optional, default: ".*" -- all tags)
        # regexp: ".*"

        # Only keep most 'n' recently updated tags
        # (optional, default: 0 -- disabled/keep every tag matching the regexp)"
        most_recent: 3

        # If the age of the most recently updated pipeline for the tag is greater than
        # this value, the pipeline metrics won't get exported (optional, default: 0 (disabled))
        max_age_seconds: 259200

        # If set to false, it will continue to export metrics for the tag even
        # if it has been deleted (optional, default: true)
        exclude_deleted: true

      merge_requests:
        # Monitor pipelines related to project merge requests
        # (optional, default: false)
        enabled: true

        # Only keep most 'n' recently updated merge requests
        # (optional, default: 0 -- disabled/keep every merge request)
        most_recent: 3

        # If the age of the most recently updated pipeline for the merge request is greater than
        # this value, the pipeline metrics won't get exported (optional, default: 0 (disabled))
        max_age_seconds: 259200

    pipeline:
      jobs:
        # Whether to attempt retrieving job level metrics from pipelines.
        # Increases the number of outputed metrics significantly!
        # (optional, default: false)
        enabled: true

        from_child_pipelines:
          # Collect jobs from subsequent child/downstream pipelines
          # (optional, default: true)
          enabled: true

        runner_description:
          # Export the description of the runner which ran the job
          # (optional, default: true)
          enabled: true

          # Whenever the description of a runner will match this regexp
          # The regexp will be used as the value of the runner description instead
          # (optional, default: "shared-runners-manager-(\d*)\.gitlab\.com")
          aggregation_regexp: runners

      variables:
        # Fetch pipeline variables in a separate metric (optional, default: false)
        enabled: false

        # Filter pipelines variables to include
        # (optional, default: ".*", all variables)
        regexp: ".*"

      test_reports:
        # Fetch test reports in a separate metric (optiona, default: false)
        enabled: false

        test_cases:
          # Fetch test cases reports in a separate metric (optional, default: false)
          enabled: false

server:
  webhook:
    enabled: true
    secret_token: somethingcool

wildcards:
  - # Define the owner of the projects we want to look for (optional)
    owner:
      # Name of the owner (required)
      name: mycompany

      # Owner kind: can be either 'group' or 'user' (required)
      kind: group

      # if owner kind is 'group', whether to include subgroups
      # or not (optional, default: false)
      include_subgroups: true

      # Search expression to filter out projects
      # (optional, default: '' -- no filter/all projects)
      search: ''

      # Including archived projects or not
      # (optional, default: false)
      archived: false

      # Here are all the project parameters which can be overriden (optional)
      pull:
        environments:
          # Whether or not to pull project environments & their deployments
          # (optional, default: false)
          enabled: false

          # Filter out by name environments to include
          # (optional, default: ".*")
          regexp: ".*"

          # Do not export metrics for stopped environments
          # (optional, default: true)
          exclude_stopped: true

      refs:
        branches:
          # Monitor pipelines related to project branches
          # (optional, default: true)
          enabled: true

          # Filter for branches to include
          # (optional, default: "^(?:main|master)$" -- main/master branches)
          # regexp: ".*

          # Only keep most 'n' recently updated branches
          # (optional, default: 0 -- disabled/keep every branch matching the regexp)"
          most_recent: 3

          # If the age of the most recently updated pipeline for the branch is greater than
          # this value, the pipeline metrics won't get exported (optional, default: 0 (disabled))
          max_age_seconds: 259200

          # If set to false, it will continue to export metrics for the branch even
          # if it has been deleted (optional, default: true)
          exclude_deleted: true

        tags:
          # Monitor pipelines related to project tags
          # (optional, default: true)
          enabled: true

          # Filter for tags to include
          # (optional, default: ".*" -- all tags)
          # regexp: ".*"

          # Only keep most 'n' recently updated tags
          # (optional, default: 0 -- disabled/keep every tag matching the regexp)"
          most_recent: 1

          # If the age of the most recently updated pipeline for the tag is greater than
          # this value, the pipeline metrics won't get exported (optional, default: 0 (disabled))
          max_age_seconds: 259200

          # If set to false, it will continue to export metrics for the tag even
          # if it has been deleted (optional, default: true)
          exclude_deleted: true

        merge_requests:
          # Monitor pipelines related to project merge requests
          # (optional, default: false)
          enabled: true

          # Only keep most 'n' recently updated merge requests
          # (optional, default: 0 -- disabled/keep every merge request)
          most_recent: 1

          # If the age of the most recently updated pipeline for the merge request is greater than
          # this value, the pipeline metrics won't get exported (optional, default: 0 (disabled))
          max_age_seconds: 259200

      pipeline:
        jobs:
          # Whether to attempt retrieving job level metrics from pipelines.
          # Increases the number of outputed metrics significantly!
          # (optional, default: false)
          enabled: true

          from_child_pipelines:
            # Collect jobs from subsequent child/downstream pipelines
            # (optional, default: true)
            enabled: true

          runner_description:
            # Export the description of the runner which ran the job
            # (optional, default: true)
            enabled: true

            # Whenever the description of a runner will match this regexp
            # The regexp will be used as the value of the runner description instead
            # (optional, default: "shared-runners-manager-(\d*)\.gitlab\.com")
            aggregation_regexp: runners

        variables:
          # Fetch pipeline variables in a separate metric (optional, default: false)
          enabled: false

          # Filter pipelines variables to include
          # (optional, default: ".*", all variables)
          regexp: ".*"

        test_reports:
          # Fetch test reports in a separate metric (optiona, default: false)
          enabled: false

          from_child_pipelines:
            # Combines test reports from subsequent child/downstream pipelines
            # (optional, default: false)
            enabled: false

          test_cases:
            # Fetch test cases reports in a separate metric (optional, default: false)
            enabled: false

pull:
  projects_from_wildcards:
    on_init: false
    scheduled: false

  environments_from_projects:
    on_init: false
    scheduled: false

  refs_from_projects:
    on_init: false
    scheduled: false

  metrics:
    on_init: false
    scheduled: false