diff --git a/app/controllers/metrics/v2/logs_controller.rb b/app/controllers/metrics/v2/logs_controller.rb index 595f91b8b69..2d9475bff5d 100644 --- a/app/controllers/metrics/v2/logs_controller.rb +++ b/app/controllers/metrics/v2/logs_controller.rb @@ -16,7 +16,7 @@ def create private def metrics_not_saved - render json: { error_code: "Metrics not saved for user" }, status: :unprocessable_entity + render json: { error_code: "Metrics not saved for user" }, status: :accepted end def allowed_params diff --git a/app/services/metrics_service.rb b/app/services/metrics_service.rb index 7e201be75a5..08c2dbb68c4 100644 --- a/app/services/metrics_service.rb +++ b/app/services/metrics_service.rb @@ -93,8 +93,7 @@ def self.record(description, service: nil, name: "unknown", caller: nil) app_name: app, attrs: { service: service, - endpoint: name, - uuid: uuid + endpoint: name } } MetricsService.emit_gauge(sent_to_info) diff --git a/client/app/reader/PdfFile.jsx b/client/app/reader/PdfFile.jsx index c03ad5b6602..5f903c4fa90 100644 --- a/client/app/reader/PdfFile.jsx +++ b/client/app/reader/PdfFile.jsx @@ -52,7 +52,9 @@ export class PdfFile extends React.PureComponent { file: this.props.file, documentType: this.props.documentType, prefetchDisabled: this.props.featureToggles.prefetchDisabled, - overscan: this.props.windowingOverscan + overscan: this.props.windowingOverscan, + isPageVisible: this.props.isVisible, + name: null }; } @@ -467,32 +469,24 @@ export class PdfFile extends React.PureComponent { clearTimeout(this.scrollTimer); } - this.scrollTimer = setTimeout(() => { - const scrollStart = performance.now(); + const scrollStart = performance.now(); - const data = { - overscan: this.props.windowingOverscan, - documentType: this.props.documentType, - pageCount: this.props.pdfDocument.numPages, - pageIndex: this.pageIndex, - prefetchDisabled: this.props.featureToggles.prefetchDisabled, - start: scrollStart, - end: performance.now() - }; + this.scrollTimer = setTimeout(() => { + const scrollEnd = performance.now(); + const scrollMessage = `Scroll to page ${this.currentPage + 1} (${(Math.round(this.scrollLeft * 100) / 100).toFixed(2)}, ${(Math.round(this.scrollTop * 100) / 100).toFixed(2)})`; - const posx = (Math.round(this.scrollLeft * 100) / 100).toFixed(2); - const posy = (Math.round(this.scrollTop * 100) / 100).toFixed(2); + this.metricsAttributes.name = scrollMessage; storeMetrics( this.props.documentId, this.metricsAttributes, { - message: `Scroll to position ${posx}, ${posy}`, + message: scrollMessage, type: 'performance', product: 'reader', - start: new Date(performance.timeOrigin + data.start), - end: new Date(performance.timeOrigin + data.end), - duration: data.start ? data.end - data.start : 0 + start: new Date(performance.timeOrigin + scrollStart), + end: new Date(performance.timeOrigin + scrollEnd), + duration: scrollStart ? scrollEnd - scrollStart : 0 }, this.metricsIdentifier, ); diff --git a/client/app/reader/PdfPage.jsx b/client/app/reader/PdfPage.jsx index ca5b92a27f2..ad6c4a151b9 100644 --- a/client/app/reader/PdfPage.jsx +++ b/client/app/reader/PdfPage.jsx @@ -35,6 +35,18 @@ export class PdfPage extends React.PureComponent { this.isDrawing = false; this.renderTask = null; this.marks = []; + + this.metricsAttributes = { + documentId: this.props.documentId, + numPagesInDoc: null, + pageIndex: this.props.pageIndex, + file: this.props.file, + documentType: this.props.documentType, + prefetchDisabled: this.props.featureToggles.prefetchDisabled, + overscan: this.props.windowingOverscan, + isPageVisible: this.props.isVisible, + name: null + }; } getPageContainerRef = (pageContainer) => (this.pageContainer = pageContainer); diff --git a/spec/controllers/metrics/v2/logs_controller_spec.rb b/spec/controllers/metrics/v2/logs_controller_spec.rb index 1452eb7d9d1..f1871573f7e 100644 --- a/spec/controllers/metrics/v2/logs_controller_spec.rb +++ b/spec/controllers/metrics/v2/logs_controller_spec.rb @@ -43,10 +43,10 @@ end context "with good request and metrics_monitoring feature OFF" do - it "does not create a metric and returns 422" do + it "does not create a metric and returns 202" do expect(Metric).not_to receive(:create_metric_from_rest) post :create, params: request_params_javascript - expect(response.status).to eq(422) + expect(response.status).to eq(202) end end end diff --git a/spec/jobs/update_appellant_representation_job_spec.rb b/spec/jobs/update_appellant_representation_job_spec.rb index f045696399a..35219a6cb01 100644 --- a/spec/jobs/update_appellant_representation_job_spec.rb +++ b/spec/jobs/update_appellant_representation_job_spec.rb @@ -43,7 +43,7 @@ ) expect(MetricsService).to receive(:emit_gauge).with( app_name: "queue_job", - attrs: { endpoint: "AppellantNotification.appeal_mapper", service: "queue_job", uuid: anything }, + attrs: { endpoint: "AppellantNotification.appeal_mapper", service: "queue_job" }, metric_group: "service", metric_name: "request_latency", metric_value: anything diff --git a/spec/services/metrics_service_spec.rb b/spec/services/metrics_service_spec.rb index 6360a5273b8..9b349e84ebe 100644 --- a/spec/services/metrics_service_spec.rb +++ b/spec/services/metrics_service_spec.rb @@ -38,8 +38,7 @@ app_name: "other", attrs: { service: service, - endpoint: name, - uuid: anything + endpoint: name } ) expect(MetricsService).to receive(:increment_counter).with( @@ -72,8 +71,7 @@ app_name: "other", attrs: { service: service, - endpoint: name, - uuid: anything + endpoint: name } }, start: anything,