root/components/policy/core/common/cloud/enterprise_metrics.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


// Copyright (c) 2012 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef COMPONENTS_POLICY_CORE_COMMON_CLOUD_ENTERPRISE_METRICS_H_
#define COMPONENTS_POLICY_CORE_COMMON_CLOUD_ENTERPRISE_METRICS_H_

#include "components/policy/policy_export.h"

namespace policy {

// Metrics collected for enterprise events.

// Events related to fetching, saving and loading DM server tokens.
// These metrics are collected both for device and user tokens.
enum MetricToken {
  // A cached token was successfully loaded from disk.
  kMetricTokenLoadSucceeded,
  // Reading a cached token from disk failed.
  kMetricTokenLoadFailed,

  // A token fetch request was sent to the DM server.
  kMetricTokenFetchRequested,
  // The request was invalid, or the HTTP request failed.
  kMetricTokenFetchRequestFailed,
  // Error HTTP status received, or the DM server failed in another way.
  kMetricTokenFetchServerFailed,
  // A response to the fetch request was received.
  kMetricTokenFetchResponseReceived,
  // The response received was invalid. This happens when some expected data
  // was not present in the response.
  kMetricTokenFetchBadResponse,
  // DM server reported that management is not supported.
  kMetricTokenFetchManagementNotSupported,
  // DM server reported that the given device ID was not found.
  kMetricTokenFetchDeviceNotFound,
  // DM token successfully retrieved.
  kMetricTokenFetchOK,

  // Successfully cached a token to disk.
  kMetricTokenStoreSucceeded,
  // Caching a token to disk failed.
  kMetricTokenStoreFailed,

  // DM server reported that the device-id generated is not unique.
  kMetricTokenFetchDeviceIdConflict,
  // DM server reported that the serial number we try to register is invalid.
  kMetricTokenFetchInvalidSerialNumber,
  // DM server reported that the licenses for the domain have expired or been
  // exhausted.
  kMetricMissingLicenses,

  kMetricTokenSize  // Must be the last.
};

// Events related to fetching, saving and loading user and device policies.
enum MetricPolicy {
  // A cached policy was successfully loaded from disk.
  kMetricPolicyLoadSucceeded,
  // Reading a cached policy from disk failed.
  kMetricPolicyLoadFailed,

  // A policy fetch request was sent to the DM server.
  kMetricPolicyFetchRequested,
  // The request was invalid, or the HTTP request failed.
  kMetricPolicyFetchRequestFailed,
  // Error HTTP status received, or the DM server failed in another way.
  kMetricPolicyFetchServerFailed,
  // Policy not found for the given user or device.
  kMetricPolicyFetchNotFound,
  // DM server didn't accept the token used in the request.
  kMetricPolicyFetchInvalidToken,
  // A response to the policy fetch request was received.
  kMetricPolicyFetchResponseReceived,
  // The policy response message didn't contain a policy, or other data was
  // missing.
  kMetricPolicyFetchBadResponse,
  // Failed to decode the policy.
  kMetricPolicyFetchInvalidPolicy,
  // The device policy was rejected because its signature was invalid.
  kMetricPolicyFetchBadSignature,
  // Rejected policy because its timestamp is in the future.
  kMetricPolicyFetchTimestampInFuture,
  // Device policy rejected because the device is not managed.
  kMetricPolicyFetchNonEnterpriseDevice,
  // The policy was provided for a username that is different from the device
  // owner, and the policy was rejected.
  kMetricPolicyFetchUserMismatch,
  // The policy was rejected for another reason. Currently this can happen
  // only for device policies, when the SignedSettings fail to store or retrieve
  // a stored policy.
  kMetricPolicyFetchOtherFailed,
  // The fetched policy was accepted.
  kMetricPolicyFetchOK,
  // The policy just fetched didn't have any changes compared to the cached
  // policy.
  kMetricPolicyFetchNotModified,

  // Successfully cached a policy to disk.
  kMetricPolicyStoreSucceeded,
  // Caching a policy to disk failed.
  kMetricPolicyStoreFailed,

  kMetricPolicySize  // Must be the last.
};

// Events related to device enrollment.
enum MetricEnrollment {
  // The enrollment screen was closed without completing the enrollment
  // process.
  kMetricEnrollmentCancelled,
  // The user submitted credentials and started the enrollment process.
  kMetricEnrollmentStarted,
  // Enrollment failed due to a network error.
  kMetricEnrollmentNetworkFailed,
  // Enrollment failed because logging in to Gaia failed.
  kMetricEnrollmentLoginFailed,
  // Enrollment failed because it is not supported for the account used.
  kMetricEnrollmentNotSupported,
  // Enrollment failed because it failed to apply device policy.
  kMetricEnrollmentPolicyFailed,
  // Enrollment failed due to an unexpected error. This currently happens when
  // the Gaia auth token is not issued for the DM service, the device cloud
  // policy subsystem isn't initialized, or when fetching Gaia tokens fails
  // for an unknown reason.
  kMetricEnrollmentOtherFailed,
  // Enrollment was successful.
  kMetricEnrollmentOK,
  // Enrollment failed because the serial number we try to register is not
  // assigned to the domain used.
  kMetricEnrollmentInvalidSerialNumber,
  // Auto-enrollment started automatically after the user signed in.
  kMetricEnrollmentAutoStarted,
  // Auto-enrollment failed.
  kMetricEnrollmentAutoFailed,
  // Auto-enrollment was retried after having failed before.
  kMetricEnrollmentAutoRetried,
  // Auto-enrollment was canceled through the opt-out dialog.
  kMetricEnrollmentAutoCancelled,
  // Auto-enrollment succeeded.
  kMetricEnrollmentAutoOK,
  // Enrollment failed because the enrollment mode was not supplied by the
  // DMServer or the mode is not known to the client.
  kMetricEnrollmentInvalidEnrollmentMode,
  // Auto-enrollment is not supported for the mode supplied by the server.
  // This presently means trying to auto-enroll in kiosk mode.
  kMetricEnrollmentAutoEnrollmentNotSupported,
  // The lockbox initialization has taken too long to complete and the
  // enrollment has been canceled because of that.
  kMetricLockboxTimeoutError,
  // The username used to re-enroll the device does not belong to the domain
  // that the device was initially enrolled to.
  kMetricEnrollmentWrongUserError,
  // DM server reported that the licenses for the domain has expired or been
  // exhausted.
  kMetricMissingLicensesError,
  // Enrollment failed because the robot account auth code couldn't be
  // fetched from the DM Server.
  kMetricEnrollmentRobotAuthCodeFetchFailed,
  // Enrollment failed because the robot account auth code couldn't be
  // exchanged for a refresh token.
  kMetricEnrollmentRobotRefreshTokenFetchFailed,
  // Enrollment failed because the robot account refresh token couldn't be
  // persisted on the device.
  kMetricEnrollmentRobotRefreshTokenStoreFailed,
  // Enrollment failed because the administrator has deprovisioned the device.
  kMetricEnrollmentDeprovisioned,
  // Enrollment failed because the device doesn't belong to the domain.
  kMetricEnrollmentDomainMismatch,

  kMetricEnrollmentSize  // Must be the last.
};

// Events related to policy refresh.
enum MetricPolicyRefresh {
  // A refresh occurred while the policy was not invalidated and the policy was
  // changed. Invalidations were enabled.
  METRIC_POLICY_REFRESH_CHANGED,
  // A refresh occurred while the policy was not invalidated and the policy was
  // changed. Invalidations were disabled.
  METRIC_POLICY_REFRESH_CHANGED_NO_INVALIDATIONS,
  // A refresh occurred while the policy was not invalidated and the policy was
  // unchanged.
  METRIC_POLICY_REFRESH_UNCHANGED,
  // A refresh occurred while the policy was invalidated and the policy was
  // changed.
  METRIC_POLICY_REFRESH_INVALIDATED_CHANGED,
  // A refresh occurred while the policy was invalidated and the policy was
  // unchanged.
  METRIC_POLICY_REFRESH_INVALIDATED_UNCHANGED,

  METRIC_POLICY_REFRESH_SIZE  // Must be the last.
};

// Names for the UMA counters. They are shared from here since the events
// from the same enum above can be triggered in different files, and must use
// the same UMA histogram name.
POLICY_EXPORT extern const char kMetricToken[];
POLICY_EXPORT extern const char kMetricPolicy[];
POLICY_EXPORT extern const char kMetricEnrollment[];
POLICY_EXPORT extern const char kMetricPolicyRefresh[];
POLICY_EXPORT extern const char kMetricPolicyInvalidations[];

}  // namespace policy

#endif  // COMPONENTS_POLICY_CORE_COMMON_CLOUD_ENTERPRISE_METRICS_H_

/* [<][>][^][v][top][bottom][index][help] */