Skip to content

scheduler: promScraper created but never used in Run() #578

@yairfalse

Description

@yairfalse

Problem

In internal/observers/scheduler/observer.go, the PrometheusScraper is created in New() but never actually started in Run().

// New() creates it:
promScraper := NewPrometheusScraper(promConfig)
obs.promScraper = promScraper

// But Run() only starts eventsWatcher:
func (o *SchedulerObserver) Run(ctx context.Context) error {
    if o.eventsWatcher != nil {
        o.eventsWatcher.Run(ctx)  // ✓ used
    }
    // promScraper.Run() never called ✗
    <-ctx.Done()
    return nil
}

Impact

  • If eventsWatcher is nil (no K8s client), the scheduler observer does nothing useful
  • Prometheus metrics from kube-scheduler are never scraped
  • The promScraper field is dead code

Suggested Fix

Either:

  1. Start promScraper in Run() alongside eventsWatcher
  2. Remove promScraper if it's not needed

Found By

Copilot code review on PR #577

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions