Skip to content

Backend: Add better logging to config_compose and config_mapper_process

Summary

As a part of investigating our error budget, we uncovered a high amount of slow requests for GraphqlController#execute: getCiConfigData and getPipeline.

Screen_Shot_2022-07-14_at_10.29.17_AM

As a result, it has created an unhealthy error budget in the last 7 days:

Screen_Shot_2022-07-14_at_10.33.03_AM

Proposal

In order for the error budget to return to a healthier state, before we can fix the slow requests, we need to add better logging in config_compose and config_mapper_process to better understand what is contributing to the slower behavior which will then help with knowing how to improve performance.

Based on the noted provided here:

  • yaml_process_duration_s = config_compose_duration_s + config_expand_duration_s + other processes
  • config_expand_duration_s = config_external_process_duration_s + other processes

Screen_Shot_2022-02-17_at_12.39.16

  • Most of the time is spent on config_compose and config_expand.
  • We don't know much about internal durations of config_compose.
  • Most of the time in config_expand is spent in config_external_process.
  • Most of the time in config_external_process is spent in config_mapper_process.

Prioritization Table

Title Issue Link
Backend: Add better logging to config_compose and config_mapper_process 👈 You are here
Backend: Puma Apdex: slow requests for GraphqlController#execute: getCiConfigData and getPipeline #349968 (closed)

Links/References

Edited by Mark Nuzzo