express_metric { id: "job_scheduler.value_cntr_w_uid_estimated_network_bytes_updated" display_name: "Estimated network bytes updated" description: "Number of times apps update the estimated network bytes" owner_email: "nalini-team@google.com" owner_email: "kwekua@google.com" unit: UNIT_COUNT type: COUNTER_WITH_UID } express_metric { id: "job_scheduler.value_cntr_w_uid_estimated_network_download_bytes_decreased" display_name: "Estimated network download bytes decreased" description: "Number of times apps decreased the estimated network download bytes" owner_email: "nalini-team@google.com" owner_email: "kwekua@google.com" unit: UNIT_COUNT type: COUNTER_WITH_UID } express_metric { id: "job_scheduler.value_cntr_w_uid_estimated_network_download_bytes_increased" display_name: "Estimated network download bytes increased" description: "Number of times apps increased the estimated network download bytes" owner_email: "nalini-team@google.com" owner_email: "kwekua@google.com" unit: UNIT_COUNT type: COUNTER_WITH_UID } express_metric { id: "job_scheduler.value_cntr_w_uid_estimated_network_upload_bytes_decreased" display_name: "Estimated network upload bytes decreased" description: "Number of times apps decreased the estimated network upload bytes" owner_email: "nalini-team@google.com" owner_email: "kwekua@google.com" unit: UNIT_COUNT type: COUNTER_WITH_UID } express_metric { id: "job_scheduler.value_cntr_w_uid_estimated_network_upload_bytes_increased" display_name: "Estimated network upload bytes increased" description: "Number of times apps increased the estimated network upload bytes" owner_email: "nalini-team@google.com" owner_email: "kwekua@google.com" unit: UNIT_COUNT type: COUNTER_WITH_UID } express_metric { id: "job_scheduler.value_cntr_w_uid_initial_set_notification_call_optional" display_name: "First-time optional JobService.setNotification() calls" description: "Number of first-time calls to JobService.setNotification() when the call was optional" owner_email: "nalini-team@google.com" owner_email: "kwekua@google.com" unit: UNIT_COUNT type: COUNTER_WITH_UID } express_metric { id: "job_scheduler.value_cntr_w_uid_initial_set_notification_call_required" display_name: "First-time required JobService.setNotification() calls" description: "Number of first-time calls to JobService.setNotification() when the call was required" owner_email: "nalini-team@google.com" owner_email: "kwekua@google.com" unit: UNIT_COUNT type: COUNTER_WITH_UID } express_metric { id: "job_scheduler.value_cntr_w_uid_job_work_items_enqueued" display_name: "JobWorkItem enqueue count" description: "Count the number of times an app enqueues a JobWorkItem" owner_email: "nalini-team@google.com" owner_email: "kwekua@google.com" unit: UNIT_COUNT type: COUNTER_WITH_UID } express_metric { id: "job_scheduler.value_cntr_w_uid_max_scheduling_limit_hit" display_name: "Hitting the scheduling limit" description: "Number of times apps hit the scheduling limit (150 in U)" owner_email: "nalini-team@google.com" owner_email: "kwekua@google.com" unit: UNIT_COUNT type: COUNTER_WITH_UID } express_metric { id: "job_scheduler.value_cntr_w_uid_schedule_failure_app_start_mode_disabled" display_name: "Scheduling failure because of app start mode" description: "Number of times apps fail to schedule jobs because app start mode was disabled" owner_email: "nalini-team@google.com" owner_email: "kwekua@google.com" unit: UNIT_COUNT type: COUNTER_WITH_UID } express_metric { id: "job_scheduler.value_cntr_w_uid_schedule_failure_ej_out_of_quota" display_name: "Scheduling failure because of no EJ quota" description: "Number of times apps fail to schedule EJs because they didn't have quota" owner_email: "nalini-team@google.com" owner_email: "kwekua@google.com" unit: UNIT_COUNT type: COUNTER_WITH_UID } express_metric { id: "job_scheduler.value_cntr_w_uid_schedule_failure_uij_invalid_state" display_name: "UIJ scheduling failure because of invalid state" description: "Number of times apps fail to schedule UIJs because they weren't in a valid state to schedule them" owner_email: "nalini-team@google.com" owner_email: "kwekua@google.com" unit: UNIT_COUNT type: COUNTER_WITH_UID } express_metric { id: "job_scheduler.value_cntr_w_uid_schedule_failure_uij_no_permission" display_name: "UIJ scheduling failure because of missing permission" description: "Number of times apps fail to schedule UIJs because they didn't have the relevant permission granted" owner_email: "nalini-team@google.com" owner_email: "kwekua@google.com" unit: UNIT_COUNT type: COUNTER_WITH_UID } express_metric { id: "job_scheduler.value_cntr_w_uid_set_notification_changed_notification_ids" display_name: "JobService.setNotification() changed notification IDs" description: "Number of time JobService.setNotification() calls used a different notification ID" owner_email: "nalini-team@google.com" owner_email: "kwekua@google.com" unit: UNIT_COUNT type: COUNTER_WITH_UID } express_metric { id: "job_scheduler.value_cntr_w_uid_slow_app_response_binding" display_name: "Slow app response when binding" description: "Number of times apps hit the binding timeout" owner_email: "nalini-team@google.com" owner_email: "kwekua@google.com" unit: UNIT_COUNT type: COUNTER_WITH_UID } express_metric { id: "job_scheduler.value_cntr_w_uid_slow_app_response_on_start_job" display_name: "Slow app response to onStartJob()" description: "Number of times apps hit the timeout when responding to onStartJob" owner_email: "nalini-team@google.com" owner_email: "kwekua@google.com" unit: UNIT_COUNT type: COUNTER_WITH_UID } express_metric { id: "job_scheduler.value_cntr_w_uid_slow_app_response_on_stop_job" display_name: "Slow app response to onStopJob" description: "Number of times apps hit the timeout when responding to onStopJob" owner_email: "nalini-team@google.com" owner_email: "kwekua@google.com" unit: UNIT_COUNT type: COUNTER_WITH_UID } express_metric { id: "job_scheduler.value_cntr_w_uid_slow_app_response_set_notification" display_name: "Slow app response for setNotification" description: "Number of times apps hit the timeout before calling setNotification" owner_email: "nalini-team@google.com" owner_email: "kwekua@google.com" unit: UNIT_COUNT type: COUNTER_WITH_UID } express_metric { id: "job_scheduler.value_cntr_w_uid_subsequent_set_notification_call_optional" display_name: "Subsequent JobService.setNotification() calls if the first was optional" description: "Number of subsequent calls to JobService.setNotification() if the first call was optional" owner_email: "nalini-team@google.com" owner_email: "kwekua@google.com" unit: UNIT_COUNT type: COUNTER_WITH_UID } express_metric { id: "job_scheduler.value_cntr_w_uid_subsequent_set_notification_call_required" display_name: "Subsequent JobService.setNotification() calls if the first was required" description: "Number of subsequent calls to JobService.setNotification() if the first call was required" owner_email: "nalini-team@google.com" owner_email: "kwekua@google.com" unit: UNIT_COUNT type: COUNTER_WITH_UID } express_metric { id: "job_scheduler.value_cntr_w_uid_transferred_network_bytes_updated" display_name: "Transferred network bytes updated" description: "Number of times apps update the transferred network bytes" owner_email: "nalini-team@google.com" owner_email: "kwekua@google.com" unit: UNIT_COUNT type: COUNTER_WITH_UID } express_metric { id: "job_scheduler.value_cntr_w_uid_transferred_network_download_bytes_decreased" display_name: "Transferred network download bytes decreased" description: "Number of times apps decreased the transferred network download bytes" owner_email: "nalini-team@google.com" owner_email: "kwekua@google.com" unit: UNIT_COUNT type: COUNTER_WITH_UID } express_metric { id: "job_scheduler.value_cntr_w_uid_transferred_network_download_bytes_increased" display_name: "Transferred network download bytes increased" description: "Number of times apps increased the transferred network download bytes" owner_email: "nalini-team@google.com" owner_email: "kwekua@google.com" unit: UNIT_COUNT type: COUNTER_WITH_UID } express_metric { id: "job_scheduler.value_cntr_w_uid_transferred_network_upload_bytes_decreased" display_name: "Transferred network upload bytes decreased" description: "Number of times apps decreased the transferred network upload bytes" owner_email: "nalini-team@google.com" owner_email: "kwekua@google.com" unit: UNIT_COUNT type: COUNTER_WITH_UID } express_metric { id: "job_scheduler.value_cntr_w_uid_transferred_network_upload_bytes_increased" display_name: "Transferred network upload bytes increased" description: "Number of times apps increased the transferred network upload bytes" owner_email: "nalini-team@google.com" owner_email: "kwekua@google.com" unit: UNIT_COUNT type: COUNTER_WITH_UID } express_metric { id: "job_scheduler.value_cntr_w_uid_unexpected_service_disconnects" display_name: "Unexpected service disconnects" description: "Number of times the JobService disconnected unexpectedly" owner_email: "nalini-team@google.com" owner_email: "kwekua@google.com" unit: UNIT_COUNT type: COUNTER_WITH_UID } express_metric { id: "job_scheduler.value_hist_initial_job_estimated_network_download_kilobytes" display_name: "Initial job download kilobytes" description: "The initial estimated download kilobytes given to a connectivity job" owner_email: "nalini-team@google.com" owner_email: "kwekua@google.com" unit: UNIT_KILOBYTE type: HISTOGRAM histogram_options { scaled_bins { count: 50 min_value: 0 first_bin_width: 32 scale: 1.31 } } } express_metric { id: "job_scheduler.value_hist_initial_jwi_estimated_network_download_kilobytes" display_name: "Initial JobWorkItem download kilobytes" description: "The initial estimated download kilobytes given to a JobWorkItem associated with a connectivity job" owner_email: "nalini-team@google.com" owner_email: "kwekua@google.com" unit: UNIT_KILOBYTE type: HISTOGRAM histogram_options { scaled_bins { count: 50 min_value: 0 first_bin_width: 32 scale: 1.31 } } } express_metric { id: "job_scheduler.value_hist_initial_job_estimated_network_upload_kilobytes" display_name: "Initial job upload kilobytes" description: "The initial estimated upload kilobytes given to a connectivity job" owner_email: "nalini-team@google.com" owner_email: "kwekua@google.com" unit: UNIT_KILOBYTE type: HISTOGRAM histogram_options { scaled_bins { count: 50 min_value: 0 first_bin_width: 32 scale: 1.31 } } } express_metric { id: "job_scheduler.value_hist_initial_jwi_estimated_network_upload_kilobytes" display_name: "Initial JobWorkItem upload kilobytes" description: "The initial estimated upload bytes given to a JobWorkItem associated with a connectivity job" owner_email: "nalini-team@google.com" owner_email: "kwekua@google.com" unit: UNIT_KILOBYTE type: HISTOGRAM histogram_options { scaled_bins { count: 50 min_value: 0 first_bin_width: 32 scale: 1.31 } } } express_metric { id: "job_scheduler.value_hist_job_concurrency" display_name: "JobScheduler execution concurrency" description: "The range of jobs executing concurrently" owner_email: "nalini-team@google.com" owner_email: "kwekua@google.com" unit: UNIT_COUNT type: HISTOGRAM histogram_options { uniform_bins { count: 100 min: 0 max: 99 } } } express_metric { id: "job_scheduler.value_hist_scheduled_job_30_min_high_water_mark" display_name: "Scheduled job 30-min high water mark" description: "The high water mark within the most recent 30 minutes of uptime of the number of jobs (pending and active) in JobScheduler's JobStore. This is logged AT MOST once every 30 minutes." owner_email: "nalini-team@google.com" owner_email: "kwekua@google.com" unit: UNIT_COUNT type: HISTOGRAM histogram_options { scaled_bins { count: 15 min_value: 1 first_bin_width: 99 scale: 1.5 } } } express_metric { id: "job_scheduler.value_hist_transferred_network_download_kilobytes_high_water_mark" display_name: "Transferred network download kilobytes" description: "The range of transferred network download kilobytes apps provide" owner_email: "nalini-team@google.com" owner_email: "kwekua@google.com" unit: UNIT_KILOBYTE type: HISTOGRAM histogram_options { scaled_bins { count: 50 min_value: 0 first_bin_width: 32 scale: 1.31 } } } express_metric { id: "job_scheduler.value_hist_transferred_network_upload_kilobytes_high_water_mark" display_name: "Transferred network upload kilobytes" description: "The range of transferred network upload kilobytes apps provide" owner_email: "nalini-team@google.com" owner_email: "kwekua@google.com" unit: UNIT_KILOBYTE type: HISTOGRAM histogram_options { scaled_bins { count: 50 min_value: 0 first_bin_width: 32 scale: 1.31 } } } express_metric { id: "job_scheduler.value_hist_updated_estimated_network_download_kilobytes" display_name: "Updated estimated network download kilobytes" description: "The range of updated estimated network download kilobytes apps provide" owner_email: "nalini-team@google.com" owner_email: "kwekua@google.com" unit: UNIT_KILOBYTE type: HISTOGRAM histogram_options { scaled_bins { count: 50 min_value: 0 first_bin_width: 32 scale: 1.31 } } } express_metric { id: "job_scheduler.value_hist_updated_estimated_network_upload_kilobytes" display_name: "Updated estimated network upload kilobytes" description: "The range of updated estimated network upload kilobytes apps provide" owner_email: "nalini-team@google.com" owner_email: "kwekua@google.com" unit: UNIT_KILOBYTE type: HISTOGRAM histogram_options { scaled_bins { count: 50 min_value: 0 first_bin_width: 32 scale: 1.31 } } } express_metric { id: "job_scheduler.value_hist_w_uid_enqueued_work_items_at_job_start" display_name: "Enqueued JobWorkItems at job start" description: "Histogram of the number of JobWorkItems enqueued per job when the job starts" owner_email: "nalini-team@google.com" owner_email: "kwekua@google.com" unit: UNIT_COUNT type: HISTOGRAM_WITH_UID histogram_options { scaled_bins { count: 20 min_value: 1 first_bin_width: 3 scale: 1.4 } } } express_metric { id: "job_scheduler.value_hist_w_uid_enqueued_work_items_high_water_mark" display_name: "Enqueued JobWorkItems high water mark" description: "Histogram of the maximum number of JobWorkItems enqueued per job" owner_email: "nalini-team@google.com" owner_email: "kwekua@google.com" unit: UNIT_COUNT type: HISTOGRAM_WITH_UID histogram_options { scaled_bins { count: 25 min_value: 0 first_bin_width: 5 scale: 1.4 } } } express_metric { id: "job_scheduler.value_hist_w_uid_job_minimum_chunk_kilobytes" display_name: "Job minimum chunk kilobytes" description: "The minimum chunk kilobytes given to a connectivity job" owner_email: "nalini-team@google.com" owner_email: "kwekua@google.com" unit: UNIT_KILOBYTE type: HISTOGRAM_WITH_UID histogram_options { scaled_bins { count: 25 min_value: 0 first_bin_width: 5 scale: 1.76 } } } express_metric { id: "job_scheduler.value_hist_w_uid_jwi_minimum_chunk_kilobytes" display_name: "JobWorkItem minimum chunk kilobytes" description: "The minimum chunk kilobytes given to a JobWorkItem associated with a connectivity job" owner_email: "nalini-team@google.com" owner_email: "kwekua@google.com" unit: UNIT_KILOBYTE type: HISTOGRAM_WITH_UID histogram_options { scaled_bins { count: 25 min_value: 0 first_bin_width: 5 scale: 1.76 } } } express_metric { id: "job_scheduler.value_job_scheduler_job_deadline_expired_counter" display_name: "JobScheduler job hits its deadline" description: "Counting how many times a job hits its deadline" owner_email: "nalini-team@google.com" owner_email: "sharaienko@google.com" owner_email: "yanmin@google.com" unit: UNIT_COUNT type: COUNTER } express_metric { id: "job_scheduler.value_job_quota_reduced_due_to_buggy_uid" display_name: "JobScheduler quota reductions for buggy apps" description: "Counting the times the quota for a job was reduced because the hosting app was buggy" owner_email: "nalini-team@google.com" owner_email: "kwekua@google.com" unit: UNIT_COUNT type: COUNTER_WITH_UID }