class CobaltService
Defined at line 54 of file ../../third_party/cobalt/src/public/cobalt_service.h
CobaltService is the primary public interface for Cobalt on client platforms.
It is constructed using a CobaltConfig struct, which provides all available customization options
for the behavior of Cobalt.
Example:
CobaltConfig cfg;
cfg.product_name = "product";
cfg.version = "version";
... continue setting config values ...
CobaltService service(std::move(cfg));
// Get a logger:
auto logger = service.NewLogger(project_context);
logger.LogEvent(Event);
Public Methods
void CobaltService (const CobaltService & )
Defined at line 60 of file ../../third_party/cobalt/src/public/cobalt_service.h
void CobaltService (CobaltService && )
Defined at line 61 of file ../../third_party/cobalt/src/public/cobalt_service.h
lib::statusor::StatusOr<std::unique_ptr<CobaltService>> Create (CobaltConfig cfg)
lib::statusor::StatusOr<std::unique_ptr<ClocklessCobaltServiceInterface>> CreateClockless (CobaltConfig cfg)
void SetDataCollectionPolicy (DataCollectionPolicy policy)
Sets the data collection policy.
Status GenerateAggregatedObservations ()
Generates aggregated observations for aggregation periods that have ended in the time zone
associated with the metric.
Status GenerateAggregatedObservations (uint32_t final_day_index_utc)
Test-only method that generates aggregated observations for aggregation periods with day index
less than or equal to final_day_index_utc (including hourly observations).
Status GenerateAggregatedObservations (const std::chrono::system_clock::time_point & timestamp)
Generates aggregated observations for aggregation periods that have ended
before |timestamp| in the time zone associated with the metric.
CobaltService & operator= (const CobaltService & )
Defined at line 62 of file ../../third_party/cobalt/src/public/cobalt_service.h
CobaltService & operator= (CobaltService && )
Defined at line 63 of file ../../third_party/cobalt/src/public/cobalt_service.h
system_data::SystemDataInterface & system_data_ref ()
Defined at line 110 of file ../../third_party/cobalt/src/public/cobalt_service.h
uint64_t num_observations_added ()
Defined at line 127 of file ../../third_party/cobalt/src/public/cobalt_service.h
std::vector<uint64_t> num_observations_added_for_reports (const std::vector<lib::ReportIdentifier> & report_specs)
Defined at line 131 of file ../../third_party/cobalt/src/public/cobalt_service.h
void ShippingRequestSendSoon (const SendCallback & send_callback)
Defined at line 136 of file ../../third_party/cobalt/src/public/cobalt_service.h
void WaitUntilShippingIdle (std::chrono::seconds max_wait)
Defined at line 140 of file ../../third_party/cobalt/src/public/cobalt_service.h
void ShutDown ()
Defined at line 144 of file ../../third_party/cobalt/src/public/cobalt_service.h
size_t num_shipping_send_attempts ()
Defined at line 146 of file ../../third_party/cobalt/src/public/cobalt_service.h
size_t num_shipping_failed_attempts ()
Defined at line 149 of file ../../third_party/cobalt/src/public/cobalt_service.h
bool has_internal_logger ()
Defined at line 153 of file ../../third_party/cobalt/src/public/cobalt_service.h
void ~CobaltService ()
std::unique_ptr<logger::LoggerInterface> NewLogger (std::unique_ptr<logger::ProjectContext> project_context)
NewLogger returns a new instance of a Logger object based on the provided |project_context|.
std::unique_ptr<logger::LoggerInterface> NewLogger (uint32_t customer_id, uint32_t project_id)
std::unique_ptr<logger::LoggerInterface> NewLogger (uint32_tcustomer_id,uint32_tproject_id,std::vector<uint32_t>experiment_ids)
std::unique_ptr<logger::AtTimePointLoggerInterface> NewAtTimePointLogger (uint32_t customer_id, uint32_t project_id)
void SystemClockIsAccurate (std::unique_ptr<util::SystemClockInterface> system_clock, bool start_event_aggregator_worker)
SystemClockIsAccurate lets CobaltService know that it no longer needs to maintain an
UndatedEventManager, and can flush the data from it into the observation store.
This method should be used at most once in the lifetime of a CobaltService object.
|system_clock|: An instance of SystemClockInterface that is used to add a timestamp to all of
the events that were received before the system clock was made accurate. It is then given to
the EventAggregator if |start_event_aggregator_worker| is true.
system_data::SystemDataInterface * system_data ()
system_data returns a pointer to the internal SystemData object. This should only be used for
updating the Expirement state or channel in SystemData.
Defined at line 109 of file ../../third_party/cobalt/src/public/cobalt_service.h
Friends
class CobaltServicePeer