123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138 |
- // Copyright 2019 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 SERVICES_IMAGE_ANNOTATION_IMAGE_ANNOTATION_METRICS_H_
- #define SERVICES_IMAGE_ANNOTATION_IMAGE_ANNOTATION_METRICS_H_
- #include "services/image_annotation/image_annotation_utils.h"
- #include "services/image_annotation/public/mojom/image_annotation.mojom.h"
- namespace image_annotation {
- // Implementation details exposed only for testing. May change without warning.
- namespace metrics_internal {
- // TODO(crbug.com/916420): separate out client / annotation types when we have
- // more use cases for the service.
- constexpr char kCacheHit[] = "ImageAnnotationService.AccessibilityV1.CacheHit";
- constexpr char kJsonParseSuccess[] =
- "ImageAnnotationService.AccessibilityV1.JsonParseSuccess";
- constexpr char kPixelFetchSuccess[] =
- "ImageAnnotationService.AccessibilityV1.PixelFetchSuccess";
- constexpr char kAnnotationConfidence[] =
- "ImageAnnotationService.AccessibilityV1.%s.Confidence";
- constexpr char kAnnotationEmpty[] =
- "ImageAnnotationService.AccessibilityV1.%s.Empty";
- constexpr char kAnnotationStatus[] =
- "ImageAnnotationService.AccessibilityV1.%s.Status";
- constexpr char kDescType[] = "ImageAnnotationService.AccessibilityV1.DescType";
- constexpr char kDescFailure[] =
- "ImageAnnotationService.AccessibilityV1.DescFailure";
- constexpr char kEngineKnown[] =
- "ImageAnnotationService.AccessibilityV1.EngineKnown";
- constexpr char kServerNetError[] =
- "ImageAnnotationService.AccessibilityV1.ServerNetError";
- constexpr char kServerHttpResponseCode[] =
- "ImageAnnotationService.AccessibilityV1.ServerHttpResponseCode";
- constexpr char kServerLatency[] =
- "ImageAnnotationService.AccessibilityV1.ServerLatencyMs";
- constexpr char kImageRequestIncludesDesc[] =
- "ImageAnnotationService.AccessibilityV1.ImageRequestIncludesDesc";
- constexpr char kImageRequestIncludesIcon[] =
- "ImageAnnotationService.AccessibilityV1.ImageRequestIncludesIcon";
- constexpr char kServerRequestSize[] =
- "ImageAnnotationService.AccessibilityV1.ServerRequestSizeKB";
- constexpr char kServerResponseSize[] =
- "ImageAnnotationService.AccessibilityV1.ServerResponseSizeBytes";
- constexpr char kSourcePixelCount[] =
- "ImageAnnotationService.AccessibilityV1.SourcePixelCount";
- constexpr char kEncodedJpegSize[] =
- "ImageAnnotationService.AccessibilityV1.EncodedJpegSizeKB";
- constexpr char kClientResult[] =
- "ImageAnnotationService.AccessibilityV1.ClientResult";
- } // namespace metrics_internal
- // An enum for reporting the end result of an image annotation request.
- //
- // Logged in metrics - do not reuse or reassign values.
- enum class ClientResult {
- kUnknown = 0,
- kSucceeded = 1,
- kCanceled = 2,
- kFailed = 3,
- kShutdown = 4,
- kMaxValue = kShutdown,
- };
- // Report whether or not annotations for an image were already stored in the
- // service cache.
- void ReportCacheHit(bool cache_hit);
- // Report whether or not JSON returned by the image annotation service was
- // successfully parsed or not.
- void ReportJsonParseSuccess(bool success);
- // Report whether or not pixel data is successfully fetched from a client.
- void ReportPixelFetchSuccess(bool success);
- // Report metadata for a successful OCR annotation.
- void ReportOcrAnnotation(double confidence, bool empty);
- // Report metadata for a successful description annotation.
- void ReportDescAnnotation(mojom::AnnotationType type, double score, bool empty);
- // Report an unsuccessful description response.
- void ReportDescFailure(DescFailureReason reason);
- // Report the net error from the image annotation server request. This will be
- // populated even if e.g. the server URL is incorrect.
- void ReportServerNetError(int code);
- // Report a HTTP response code from the image annotation server.
- void ReportServerResponseCode(int code);
- // Report the length of time taken for a response to be returned from the
- // server.
- void ReportServerLatency(base::TimeDelta latency);
- // Report whether or not a request for image annotation includes parameters for
- // the description engine; requests for images that violate the description
- // engine policy (e.g. are too small) will not.
- void ReportImageRequestIncludesDesc(bool includes_desc);
- // Report whether or not a request for image annotation includes parameters for
- // the icon engine; requests for images that violate the description
- // engine policy (e.g. are too large) will not.
- void ReportImageRequestIncludesIcon(bool includes_icon);
- // Report the size of the request sent to the image annotation server.
- void ReportServerRequestSizeKB(size_t size_kb);
- // Report the size of the response returned by the image annotation server.
- void ReportServerResponseSizeBytes(size_t size_bytes);
- // Report the status code attached to the OCR engine response.
- void ReportOcrStatus(int status);
- // Report the status code attached to the description engine response.
- void ReportDescStatus(int status);
- // Report whether or not each engine is recognised as either OCR or description.
- void ReportEngineKnown(bool known);
- // Report the number of source (i.e. pre-scaling) pixels in an image sent to the
- // image annotation service.
- void ReportSourcePixelCount(size_t pixel_count);
- // Report the size of a single encoded image to be sent to the image annotation
- // service.
- void ReportEncodedJpegSize(size_t size_kb);
- // Report the result of the image annotation request for a client.
- void ReportClientResult(ClientResult result);
- } // namespace image_annotation
- #endif // SERVICES_IMAGE_ANNOTATION_IMAGE_ANNOTATION_METRICS_H_
|