Mwalker has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/149285

Change subject: Timing breakdowns for backend
......................................................................

Timing breakdowns for backend

Change-Id: Ida912a659431bbd909634bc1d37bb845ecdf9985
---
M lib/threads/backend.js
1 file changed, 28 insertions(+), 2 deletions(-)


  git pull 
ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Collection/OfflineContentGenerator
 refs/changes/85/149285/1

diff --git a/lib/threads/backend.js b/lib/threads/backend.js
index 2a3fa3b..648f745 100644
--- a/lib/threads/backend.js
+++ b/lib/threads/backend.js
@@ -289,8 +289,9 @@
 }
 
 function runBundler( jobDetails, metabookPath, bundleFile ) {
-       var child, killTimer;
-       var p = Promise.defer();
+       var child, killTimer,
+               startTime = Date.now(),
+               p = Promise.defer();
 
        jobDetails.updateBundling( null, 'Launching bundler', 0 );
        redisClient.hset( config.redis.status_set_name,
@@ -342,12 +343,22 @@
                }
 
                if ( code !== 0 ) {
+                       statsd.timing(
+                                       'backend.bundler.time_to_failure',
+                                       ( Date.now() - startTime ) / 1000
+                       );
+
                        if ( signal === 'SIGTERM' ) {
                                p.reject( new BundlerError( 'Killed bundler, 
exceeded execution time limit' ) );
                        } else {
                                p.reject( new BundlerError( 'Bundling process 
died with non zero code: ' + code ) );
                        }
                } else {
+                       statsd.timing(
+                               'backend.bundler.time_to_success',
+                               ( Date.now() - startTime ) / 1000
+                       );
+
                        console.info( 'Bundle completed successfully!', {
                                channel: 'backend.bundler',
                                job: { id: jobDetails.collectionId, writer: 
jobDetails.writer }
@@ -374,6 +385,7 @@
 
 function runRenderer( jobDetails, bundleFile ) {
        var child, killTimer,
+               startTime = Date.now(),
                writer = jobDetails.writer;
 
        if ( !config.backend.writers[writer] ) {
@@ -437,6 +449,11 @@
                }
 
                if ( code !== 0 ) {
+                       statsd.timing(
+                               'backend.writer.' + writer + '.time_to_failure',
+                               ( Date.now() - startTime ) / 1000
+                       );
+
                        if ( signal === 'SIGTERM' ) {
                                p.reject( new BundlerError( 'Killed renderer, 
exceeded execution time limit' ) );
                        } else {
@@ -445,6 +462,11 @@
                } else {
                        Promise.promisify( fs.stat )( renderFile )
                                .then( function( result ) {
+                                       statsd.timing(
+                                                       'backend.writer.' + 
writer + '.time_to_success',
+                                                       ( Date.now() - 
startTime ) / 1000
+                                       );
+
                                        console.info( 'Render completed 
successfully!', {
                                                channel: 'backend.renderer',
                                                job:     { id: 
jobDetails.collectionId, writer: jobDetails.writer }
@@ -452,6 +474,10 @@
                                        p.resolve( [ renderFile, result.size ] 
);
                                })
                                .catch( function( err ) {
+                                       statsd.timing(
+                                               'backend.writer.' + writer + 
'.time_to_failure',
+                                               ( Date.now() - startTime ) / 
1000
+                                       );
                                        p.reject(
                                                new BackendError( 'Could not 
stat rendered output file. Render failed!' )
                                        );

-- 
To view, visit https://gerrit.wikimedia.org/r/149285
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ida912a659431bbd909634bc1d37bb845ecdf9985
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Collection/OfflineContentGenerator
Gerrit-Branch: master
Gerrit-Owner: Mwalker <mwal...@wikimedia.org>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to