기여 목록 / 8506016
[glanceables] Remove four expired Ash.Glanceables.Api.Tasks histograms
PlatformcleanupMerged
ChromeOS Glanceables(달력 옆 할 일 패널)의 Google Tasks API 클라이언트가 기록하던 개수 히스토그램 4개를 지웠습니다. 넷 모두 2025-12-31에 만료돼 더는 수집되지 않는 죽은 코드였습니다. 3파일 +2/−88. 첫 리뷰어 achuith@가 «이 지표는 Artsiom 담당»이라며 amitrokhin@을 더했고, 두 사람이 승인했습니다. amitrokhin@의 첫 CQ는 android-binary-size 빌더의 «Invalid targets» 오류로 실패했는데, 같은 시간대(10-07 13:02~14:15 UTC)에 같은 빌더의 빌드 283건이 같은 오류로 실패한 트리 전체 문제였습니다. 이 근거를 적어 재시도를 부탁했고, achuith@의 CQ로 2026-10-08(UTC)에 머지됐습니다(2a40a79372c65).
문제 설명
- issue url: 버그 번호 없음 (OSSCA #655)
tasks_client_impl.cc가 기록하는Ash.Glanceables.Api.Tasks.{ProcessedTasksCount,RawTasksCount,SimultaneousMarkAsCompletedRequestsCount,TaskListsCount}는expires_after="2025-12-31"이고expired_intentionally가 아닙니다.tools/metrics/histograms/README.md는 만료된 히스토그램의 기록 코드를 죽은 코드로 보고 지우라고 안내합니다.
해결 내용
- 기록 네 곳을 지웠습니다. 두 곳은 같은 TODO 주석 아래
PagesCount기록이 남아, 주석을 «these histograms»에서 «this histogram»으로 고쳤습니다. - 테스트에서 이 4개만 검사하던 문장 7개를 지웠습니다. 테스트 자체는 모두 남아 있고, 같은 테스트의 다른 히스토그램 검사도 그대로입니다.
- histograms.xml의 4항목을 지웠습니다.
- 같은 클래스가 기록하는
Ash.Glanceables.Api.{Method}.{Latency,PagesCount,Status}는 xml에 패턴으로 따로 정의돼 있고 Classroom 클라이언트와 공유하므로 건드리지 않았습니다.
base::UmaHistogramCounts100(
"Ash.Glanceables.Api.Tasks.GetTaskLists.PagesCount", page_number);
- base::UmaHistogramCounts100("Ash.Glanceables.Api.Tasks.TaskListsCount",
- accumulated_raw_task_lists.size());발굴 과정
Mac에서 ChromeOS 경로의 만료 히스토그램 후보를 뽑았고(LE), 리눅스에서 파일을 다시 읽었습니다. 처음 수정 때는 같은 파일의 Latency·Status·PagesCount 기록까지 함께 지웠는데, diff를 검토하다가 그것들이 스캔 기준(2026-01-01 이전 만료) 밖이고 Classroom과 공유하는 패턴 정의이며 «Tasks API로 일반화» TODO가 붙은 운영 지표라는 것을 확인했습니다. 승인된 범위인 4개로 되돌려 다시 적용했습니다.
테스트 방법
- 리눅스 박스의
target_os="chromeos"빌드(out/cros)에서unit_tests증분 빌드: 14 스텝 1분 46초. gn check '//chrome/browser/ash/api/tasks/*',validate_format.py,pretty_print.py --presubmit통과.unit_tests --gtest_filter='TasksClientImpl*': 수정 전 36/36 → 수정 후 36/36. 테스트 이름 집합이 같은 것을 대조했습니다(테스트 삭제 없음).- presubmit 0 경고
배운 점
- 한 파일 안에서도 히스토그램마다 만료일과 정의 방식(개별 항목 vs
{Method}패턴)이 다릅니다. 스캔이 뽑아 준 목록을 넘어 지우기 전에, 각 이름의 xml 정의와 만료일을 하나씩 확인합니다. - 코드와
histograms.xml양쪽 OWNERS에 모두 있는 사람(chrome/browser/ash·metadata/ash의 achuith@)을 찾으면 code-owner 승인은 한 사람으로 끝납니다. 다만 비커미터 CL은 커미터 승인이 두 개 있어야 제출할 수 있어 두 번째 리뷰어가 필요합니다. 이번엔 achuith@가 지표 담당인 amitrokhin@을 직접 더했습니다. - CQ가 변경과 무관해 보이는 오류로 실패하면, 같은 빌더의 다른 CL들도 같은 시간대에 같은 오류로 실패했는지 Buildbucket에서 확인하고 그 근거를 적어 재시도를 부탁합니다. 이번엔 부탁하고 10분 뒤 CQ가 다시 돌았습니다.