34 lines
1.1 KiB
C
34 lines
1.1 KiB
C
|
|
// Copyright 2016 The Chromium Authors
|
||
|
|
// Use of this source code is governed by a BSD-style license that can be
|
||
|
|
// found in the LICENSE file.
|
||
|
|
|
||
|
|
#ifndef COMPONENTS_METRICS_SAMPLING_METRICS_PROVIDER_H_
|
||
|
|
#define COMPONENTS_METRICS_SAMPLING_METRICS_PROVIDER_H_
|
||
|
|
|
||
|
|
#include "components/metrics/metrics_provider.h"
|
||
|
|
|
||
|
|
namespace metrics {
|
||
|
|
|
||
|
|
// Provides metrics related to sampling of metrics reporting clients. In
|
||
|
|
// particular, the rate at which clients are sampled.
|
||
|
|
class SamplingMetricsProvider : public MetricsProvider {
|
||
|
|
public:
|
||
|
|
// |sampling_rate_per_mille| is the number of clients per 1000 that are in the
|
||
|
|
// sample.
|
||
|
|
explicit SamplingMetricsProvider(int sampling_rate_per_mille);
|
||
|
|
~SamplingMetricsProvider() override = default;
|
||
|
|
SamplingMetricsProvider(const SamplingMetricsProvider&) = delete;
|
||
|
|
SamplingMetricsProvider operator=(const SamplingMetricsProvider&) = delete;
|
||
|
|
|
||
|
|
private:
|
||
|
|
// MetricsProvider:
|
||
|
|
void ProvideStabilityMetrics(
|
||
|
|
SystemProfileProto* system_profile_proto) override;
|
||
|
|
|
||
|
|
int sampling_rate_per_mille_;
|
||
|
|
};
|
||
|
|
|
||
|
|
} // namespace metrics
|
||
|
|
|
||
|
|
#endif // COMPONENTS_METRICS_SAMPLING_METRICS_PROVIDER_H_
|