| // Copyright 2021 The Chromium OS Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| syntax = "proto2"; |
| |
| option optimize_for = LITE_RUNTIME; |
| |
| package reporting; |
| |
| // |Destination| indicates which handler a |Record| should be delivered to. |
| enum Destination { |
| UNDEFINED_DESTINATION = 0; |
| |
| // |UPLOAD_EVENTS| sends records to the Eventing pipeline. |
| UPLOAD_EVENTS = 1; |
| |
| // |MEET_DEVICE_TELEMETRY| is for telemetry data events sent by Meet |
| // Devices. For more information, see go/reliable-meet-device-telemetry. |
| MEET_DEVICE_TELEMETRY = 2; |
| |
| // |WEB_PROTECT| legacy web protect events. |
| WEB_PROTECT = 3; |
| |
| // |ARC_INSTALL| legacy arc app installation events. |
| ARC_INSTALL = 4; |
| |
| // |POLICY_VALIDATION| legacy policy validation events. |
| POLICY_VALIDATION = 5; |
| |
| // |EXTENSION_INSTALL| legacy extension installation events. |
| EXTENSION_INSTALL = 6; |
| |
| // |REPORTING_RECORD| Temporary group for Encrypted Reporting Pipeline. |
| REPORTING_RECORD = 7; |
| |
| // |DEVICE_TRUST_REPORTS| is for reporting data updates related to the |
| // Device Trust connector, sent by Chrome browsers for Chrome Browser Cloud |
| // Management (CBCM). |
| DEVICE_TRUST_REPORTS = 8; |
| |
| // |PRINT_JOBS| print jobs events. |
| PRINT_JOBS = 9; |
| |
| // |EXTENSIONS_WORKFLOW| is for sending extension requests events, |
| // sent for Chrome Browser Cloud Management (CBCM). |
| EXTENSIONS_WORKFLOW = 10; |
| |
| // |DLP_EVENTS| events send from data leakage protection for Chrome OS |
| DLP_EVENTS = 11; |
| |
| // |LOGIN_LOGOUT_EVENTS| is for login/logout events. |
| LOGIN_LOGOUT_EVENTS = 12; |
| |
| // |HEARTBEAT_EVENT| event used with manual and integration tests to ensure |
| // that messages are being uploaded and processed correctly. |
| HEARTBEAT_EVENTS = 13; |
| |
| // |INFO_METRIC| device info events which are sent by ChromeOS devices. |
| INFO_METRIC = 14; |
| |
| // |TELEMETRY_METRIC| for device telemetry events which are sent by ChromeOS |
| // devices. |
| TELEMETRY_METRIC = 15; |
| |
| // |EVENT_METRIC| for device events which are sent by ChromeOS devices. |
| EVENT_METRIC = 16; |
| |
| // |ADDED_REMOVED_EVENTS| is for reporting events where a user has |
| // been added or removed. |
| ADDED_REMOVED_EVENTS = 17; |
| } |
| |
| // |Priority| is used to determine when items from the queue should be rate |
| // limited or shed. Rate limiting indicates that fewer records will be sent due |
| // to message volume, records of the lowest priority are limited first. Shedding |
| // records occurs when disk space is at or near the limt, records of the lowest |
| // priority are shed first. |
| enum Priority { |
| UNDEFINED_PRIORITY = 0; |
| |
| // |IMMEDIATE| queues should transfer small amounts of immediately necessary |
| // information. These are the events that will be rate limited before |
| // |SECURITY| records. |IMMEDIATE| records are shed before |SECURITY| records. |
| IMMEDIATE = 1; |
| |
| // |FAST_BATCH| queues should transfer small amounts of information that may |
| // be critical for administrative experience. These records will be rate |
| // limited before |IMMEDIATE| records. |
| // |FAST_BATCH| records are shed before |IMMEDIATE| records. |
| // Resource utilization and failed application installation are perfect |
| // examples of records that need to be |FAST_BATCH|. |
| FAST_BATCH = 2; |
| |
| // |SLOW_BATCH| queues should transfer small amounts of non-immediate data. |
| // These records will be rate limited before |FAST_BATCH| records. |
| // |SLOW_BATCH| records are shed before |FAST_BATCH| records. |
| // Application metrics are a good example of records that should be |
| // |SLOW_BATCH|. |
| SLOW_BATCH = 3; |
| |
| // |BACKGROUND_BATCH| queues transfer large amounts of non-immediate data. |
| // These records will be rate limited before |SLOW_BATCH| records. |
| // |BACKGROUND_BATCH| records are shed before |SLOW_BATCH| records. |
| // Log files are a perfect examples of records that need to be |
| // |BACKGROUND_BATCH|. |
| BACKGROUND_BATCH = 4; |
| |
| // |MANUAL_BATCH| queues transfer data only on explicit request. |
| // Note that since a queue can hold records submitted by multiple clients, |
| // one client requesting to transfer data will do so for all collected |
| // records of the same priority, including those enqueued by other clients. |
| // |MANUAL_BATCH| records are the first to be rate limited, and since there |
| // is no automatic transfer, it is important to explicitly flush them often |
| // enough to avoid loss of data. |
| // |MANUAL_BATCH| records are the first to be shed. |
| MANUAL_BATCH = 5; |
| |
| // |SECURITY| queues should transfer information indicating potential security |
| // issue; like |IMMEDIATE| they are uploaded right after recording. |
| // The difference from |IMMEDIATE| is that any sequencing breach (record |
| // digest mismatch, lost events, generation switch) in |SECURITY| queue will |
| // be exposed to the domain admin. These are the events that will be rate |
| // limited last. |SECURITY| records are the last ones to be shed. |
| SECURITY = 6; |
| } |