<?php
/**
* Collects metrics from user input for scheduled runs.
*
* @param array $input_data User input data.
* @param string $run_id Unique identifier for the run.
* @return array Metrics data.
*/
function collectMetrics(array $input_data, string $run_id): array
{
$metrics = [];
// Validate input data (example)
if (empty($input_data)) {
$metrics['error'] = 'No input data provided.';
return $metrics;
}
// Collect basic metrics
$metrics['input_count'] = count($input_data);
$metrics['input_type'] = gettype($input_data[0]); // Type of the first element
// Collect data-specific metrics (example)
if (is_array($input_data)) {
$metrics['array_size'] = count($input_data);
$metrics['min_value'] = min($input_data);
$metrics['max_value'] = max($input_data);
} elseif (is_string($input_data)) {
$metrics['string_length'] = strlen($input_data);
} else {
$metrics['error'] = 'Unsupported input type.';
return $metrics;
}
// Add run ID
$metrics['run_id'] = $run_id;
return $metrics;
}
//Example Usage:
// Simulate user input
$user_input = [1, 2, 3, 4, 5];
$run_id = 'run_123';
// Collect metrics
$metrics = collectMetrics($user_input, $run_id);
// Output metrics (for demonstration)
print_r($metrics);
?>
Add your comment