Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
@supertenant/shared-metrics / src / healthchecks.js
Size: Mime:
// (c) Copyright 2023 Supertenant Ltd. - all rights reserved.
// See LICENSE file in project root for license terms.
"use strict";const requireHook=require("@supertenant/core").util["requireHook"];let logger=require("@supertenant/core").logger.getLogger("metrics");exports.setLogger=function(_logger){logger=_logger};let timeBetweenHealthcheckCalls;const healthy=1,unhealthy=0;let adminPluginHealthcheck,timeoutHandle;function gatherHealthcheckResults(){adminPluginHealthcheck.getHealthCheckResult().then(function(adminHealthcheckResults){var checkHealthy,changed,results={},previousResults=exports.currentPayload;for(const key in adminHealthcheckResults)adminHealthcheckResults.hasOwnProperty(key)&&(checkHealthy=adminHealthcheckResults[key].healthy?healthy:unhealthy,changed=null==previousResults[key]||previousResults[key].healthy!==checkHealthy,results[key]={healthy:checkHealthy,since:changed?(new Date).getTime():previousResults[key].since});exports.currentPayload=results,(timeoutHandle=setTimeout(gatherHealthcheckResults,timeBetweenHealthcheckCalls)).unref()}).catch(function(err){exports.currentPayload={},logger.warn("Unexpected error while getting healthcheck results",err),(timeoutHandle=setTimeout(gatherHealthcheckResults,timeBetweenHealthcheckCalls)).unref()})}exports.payloadPrefix="healthchecks",exports.currentPayload={},requireHook.onModuleLoad("admin-plugin-healthcheck",function(_adminPluginHealthcheck){adminPluginHealthcheck=_adminPluginHealthcheck}),exports.activate=function(config){timeBetweenHealthcheckCalls=config.metrics.timeBetweenHealthcheckCalls,null!=adminPluginHealthcheck&&gatherHealthcheckResults()},exports.deactivate=function(){clearTimeout(timeoutHandle)};