Index: third_party/crashpad/crashpad/util/misc/metrics.cc |
diff --git a/third_party/crashpad/crashpad/util/misc/metrics.cc b/third_party/crashpad/crashpad/util/misc/metrics.cc |
index 6a363b1302a2b9e68d256fd1d503c4a5c7d74b77..6967398d0e1cb45bf0c129636d30baa3616eb80a 100644 |
--- a/third_party/crashpad/crashpad/util/misc/metrics.cc |
+++ b/third_party/crashpad/crashpad/util/misc/metrics.cc |
@@ -15,13 +15,60 @@ |
#include "util/misc/metrics.h" |
#include "base/metrics/histogram_macros.h" |
+#include "base/metrics/sparse_histogram.h" |
+#include "build/build_config.h" |
namespace crashpad { |
+namespace { |
+ |
+//! \brief Metrics values used to track the start and completion of a crash |
+//! handling. These are used as metrics values directly, so |
+//! enumeration values so new values should always be added at the end. |
+enum class ExceptionProcessingState { |
+ //! \brief Logged when exception processing is started. |
+ kStarted = 0, |
+ |
+ //! \brief Logged when exception processing completes. |
+ kFinished = 1, |
+}; |
+ |
+void ExceptionProcessing(ExceptionProcessingState state) { |
+ UMA_HISTOGRAM_COUNTS("Crashpad.ExceptionEncountered", |
+ static_cast<int>(state)); |
+} |
+ |
+} // namespace |
+ |
+// static |
void Metrics::CrashReportSize(FileHandle file) { |
const FileOffset size = LoggingFileSizeByHandle(file); |
UMA_HISTOGRAM_CUSTOM_COUNTS( |
- "Crashpad.CrashReportSize", size, 0, 5 * 1024 * 1024, 50); |
+ "Crashpad.CrashReportSize", size, 0, 20 * 1024 * 1024, 50); |
+} |
+ |
+// static |
+void Metrics::ExceptionCaptureResult(CaptureResult result) { |
+ ExceptionProcessing(ExceptionProcessingState::kFinished); |
+ UMA_HISTOGRAM_ENUMERATION("Crashpad.ExceptionCaptureResult", |
+ static_cast<int32_t>(result), |
+ static_cast<int32_t>(CaptureResult::kMaxValue)); |
+} |
+ |
+// static |
+void Metrics::ExceptionCode(uint32_t exception_code) { |
+#if defined(OS_WIN) |
+ static const char kExceptionCodeString[] = "Crashpad.ExceptionCode.Win"; |
+#elif defined(OS_MACOSX) |
+ static const char kExceptionCodeString[] = "Crashpad.ExceptionCode.Mac"; |
+#endif |
+ UMA_HISTOGRAM_SPARSE_SLOWLY(kExceptionCodeString, |
+ static_cast<int32_t>(exception_code)); |
+} |
+ |
+// static |
+void Metrics::ExceptionEncountered() { |
+ ExceptionProcessing(ExceptionProcessingState::kStarted); |
} |
} // namespace crashpad |