1. <?php
  2. /**
  3. * Collects metrics from user input for scheduled runs.
  4. *
  5. * @param array $input_data User input data.
  6. * @param string $run_id Unique identifier for the run.
  7. * @return array Metrics data.
  8. */
  9. function collectMetrics(array $input_data, string $run_id): array
  10. {
  11. $metrics = [];
  12. // Validate input data (example)
  13. if (empty($input_data)) {
  14. $metrics['error'] = 'No input data provided.';
  15. return $metrics;
  16. }
  17. // Collect basic metrics
  18. $metrics['input_count'] = count($input_data);
  19. $metrics['input_type'] = gettype($input_data[0]); // Type of the first element
  20. // Collect data-specific metrics (example)
  21. if (is_array($input_data)) {
  22. $metrics['array_size'] = count($input_data);
  23. $metrics['min_value'] = min($input_data);
  24. $metrics['max_value'] = max($input_data);
  25. } elseif (is_string($input_data)) {
  26. $metrics['string_length'] = strlen($input_data);
  27. } else {
  28. $metrics['error'] = 'Unsupported input type.';
  29. return $metrics;
  30. }
  31. // Add run ID
  32. $metrics['run_id'] = $run_id;
  33. return $metrics;
  34. }
  35. //Example Usage:
  36. // Simulate user input
  37. $user_input = [1, 2, 3, 4, 5];
  38. $run_id = 'run_123';
  39. // Collect metrics
  40. $metrics = collectMetrics($user_input, $run_id);
  41. // Output metrics (for demonstration)
  42. print_r($metrics);
  43. ?>

Add your comment