- Introduced AGENTS.md, README.md, TASKS.md, and implementation_plan.md for Vexer, detailing mission, responsibilities, key components, and operational notes. - Established similar documentation structure for Vulnerability Explorer and Zastava modules, including their respective workflows, integrations, and observability notes. - Created risk scoring profiles documentation outlining the core workflow, factor model, governance, and deliverables. - Ensured all modules adhere to the Aggregation-Only Contract and maintain determinism and provenance in outputs.
		
			
				
	
	
		
			43 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			43 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
groups:
 | 
						|
  - name: scheduler-worker
 | 
						|
    interval: 30s
 | 
						|
    rules:
 | 
						|
      - alert: SchedulerPlannerFailuresHigh
 | 
						|
        expr: sum(rate(scheduler_planner_runs_total{status="failed"}[5m]))
 | 
						|
          /
 | 
						|
          sum(rate(scheduler_planner_runs_total[5m])) > 0.05
 | 
						|
        for: 10m
 | 
						|
        labels:
 | 
						|
          severity: critical
 | 
						|
          service: scheduler-worker
 | 
						|
        annotations:
 | 
						|
          summary: "Planner failure ratio above 5%"
 | 
						|
          description: "More than 5% of planning runs are failing. Inspect scheduler logs and ImpactIndex connectivity before queues back up."
 | 
						|
      - alert: SchedulerPlannerLatencyHigh
 | 
						|
        expr: histogram_quantile(0.95, sum by (le) (rate(scheduler_planner_latency_seconds_bucket[5m]))) > 45
 | 
						|
        for: 10m
 | 
						|
        labels:
 | 
						|
          severity: warning
 | 
						|
          service: scheduler-worker
 | 
						|
        annotations:
 | 
						|
          summary: "Planner latency p95 above 45s"
 | 
						|
          description: "Planning latency p95 stayed above 45 seconds for 10 minutes. Check ImpactIndex, Mongo, or external selectors to prevent missed SLAs."
 | 
						|
      - alert: SchedulerRunnerBacklogGrowing
 | 
						|
        expr: max_over_time(scheduler_runner_backlog[15m]) > 500
 | 
						|
        for: 15m
 | 
						|
        labels:
 | 
						|
          severity: warning
 | 
						|
          service: scheduler-worker
 | 
						|
        annotations:
 | 
						|
          summary: "Runner backlog above 500 images"
 | 
						|
          description: "Runner backlog exceeded 500 images over the last 15 minutes. Verify runner workers, scanner availability, and rate limits."
 | 
						|
      - alert: SchedulerRunStuck
 | 
						|
        expr: sum(scheduler_runs_active) > 0 and max_over_time(scheduler_runs_active[30m]) == min_over_time(scheduler_runs_active[30m])
 | 
						|
        for: 30m
 | 
						|
        labels:
 | 
						|
          severity: warning
 | 
						|
          service: scheduler-worker
 | 
						|
        annotations:
 | 
						|
          summary: "Scheduler runs stuck without progress"
 | 
						|
          description: "Active runs count has remained flat for 30 minutes. Investigate stuck segments or scanner timeouts."
 |