Update mergeability logging to use static duration fields and extra array
What does this MR do and why?
This MR updates the mergeability logging format to reduce dynamic field generation while maintaining debugging information, following the approach suggested in !205173 (comment 2774384848).
The changes include:
- Converting dynamic duration field names to static top-level fields (e.g., mergeability_check_ci_status_duration)
- Moving additional attributes (successful,status) into anextraarray
- Each item in the extraarray includes anamefield plus additional properties
- Only including the extraarray when there's additional data beyond duration
This approach reduces the number of dynamic fields being indexed in Elasticsearch while preserving all debugging information needed for investigating mergeability issues.
Example log format
Before:
{
  "mergeability.check_ci_status.duration_s.values": [0.6],
  "mergeability.check_ci_status.successful.values": [false],
  "mergeability.check_ci_status.status.values": ["inactive"]
}After:
{
  "mergeability_check_ci_status_duration": 0.6,
  "extra": [
    {
      "name": "check_ci_status",
      "successful": false,
      "status": "inactive"
    }
  ]
}References
MR acceptance checklist
Evaluate this MR against the MR acceptance checklist. It helps you analyze changes to reduce risks in quality, performance, reliability, security, and maintainability.