Metastatic.Analysis.BusinessLogic.MissingTelemetryInObanWorker (Metastatic v0.10.4)

View Source

Detects background job processing without telemetry.

Universal pattern: async job workers without metrics/monitoring.

Examples

Python (Celery task without metrics):

@celery.task
def process_upload(file_id):  # Should emit task metrics
    file = File.objects.get(id=file_id)
    process_file(file)

JavaScript (Bull queue without telemetry):

queue.process(async (job) => {  # Should track job processing time
    await processData(job.data);
});

Elixir (Oban worker without telemetry):

def perform(%Oban.Job{args: args}) do
    process_data(args)  # Should emit telemetry for job execution
    :ok
end

C# (Hangfire job without logging):

public void ProcessUpload(int fileId) {  # Should track job metrics
    var file = db.Files.Find(fileId);
    ProcessFile(file);
}

Go (worker goroutine without metrics):

func processJob(job Job) error {  # Should emit job metrics
    return processData(job.Data)
}

Java (Quartz job without monitoring):

public void execute(JobExecutionContext context) {  # Should track execution time
    processData(context.getMergedJobDataMap());
}

Ruby (Sidekiq worker without telemetry):

def perform(file_id)  # Should emit job metrics
    file = File.find(file_id)
    process_file(file)
end

Python (RQ worker without tracking):

@job
def process_data(data_id):  # Should track job execution
    data = Data.objects.get(id=data_id)
    process(data)