@@ -19,41 +19,45 @@ function analyzeURL(req, res) {
1919 }
2020
2121 const hostname = url . parse ( urlToAnalyze ) . hostname ;
22- const options = {
23- method : 'HEAD' ,
24- timeout : 5000 ,
25- } ;
26-
27- const start = now ( ) ;
28-
29- makeHttpRequest ( urlToAnalyze , options , ( response , httpRequestError ) => {
30- if ( httpRequestError ) {
31- console . error ( `Failed to request ${ urlToAnalyze } : ${ httpRequestError } ` ) ;
32- return res . json ( { isUp : false , ipAddress : null , uptime : 0 , responseTime : 0 } ) ;
22+ makeHttpRequest ( urlToAnalyze , { } , ( responseDetails , latencyMs , httpRequestError ) => {
23+ if ( httpRequestError || ! responseDetails ) {
24+ console . error ( `Failed to request ${ urlToAnalyze } : ${ httpRequestError || 'Unknown error' } ` ) ;
25+ return res . json ( { isUp : false , ipAddress : null , uptime : 0 , latencyMs : 0 , dnsLookupMs : 0 } ) ;
3326 }
3427
35- const isUp = response . statusCode >= 200 && response . statusCode < 400 ;
28+ const isUp =
29+ responseDetails . statusCode >= 200 && responseDetails . statusCode < 400 ;
3630 if ( ! isUp ) {
37- return res . json ( { isUp : false , ipAddress : null , uptime : 0 , responseTime : 0 } ) ;
31+ return res . json ( {
32+ isUp : false ,
33+ ipAddress : null ,
34+ uptime : 0 ,
35+ latencyMs,
36+ dnsLookupMs : 0 ,
37+ statusCode : responseDetails . statusCode ,
38+ } ) ;
3839 }
3940
40- performDnsLookup ( hostname , ( ipAddress , dnsLookupError ) => {
41+ performDnsLookup ( hostname , ( { ipAddress, lookupMs , error : dnsLookupError } ) => {
4142 if ( dnsLookupError ) {
4243 console . error ( `Failed to lookup IP address for ${ urlToAnalyze } : ${ dnsLookupError } ` ) ;
4344 return res . status ( 500 ) . json ( { error : 'Internal server error' } ) ;
4445 }
4546
46- // Calculate responseTime
47- const end = now ( ) ;
48- const responseTime = ( ( end - start ) / 1000 ) . toFixed ( 2 ) ;
49-
50- // calculate uptime
51- const totalSeconds = ( end - start ) / 1000 ; // convert to seconds
52- const availableSeconds = totalSeconds - ( totalSeconds * 0.01 ) ; // assuming 99.99% uptime
53- const uptime = ( ( availableSeconds / totalSeconds ) * 100 ) . toFixed ( 2 ) ;
47+ // Calculate uptime baseline on successful check
48+ const uptime = 100 ;
5449
55- console . log ( `isUp: ${ isUp } , ipAddress: ${ ipAddress } , uptime: ${ uptime } %, responseTime: ${ responseTime } s` ) ;
56- return res . json ( { isUp : true , ipAddress, uptime, responseTime } ) ;
50+ console . log (
51+ `isUp: ${ isUp } , ipAddress: ${ ipAddress } , uptime: ${ uptime } %, latencyMs: ${ latencyMs } , dnsLookupMs: ${ lookupMs } `
52+ ) ;
53+ return res . json ( {
54+ isUp : true ,
55+ ipAddress,
56+ uptime,
57+ latencyMs,
58+ dnsLookupMs : lookupMs ,
59+ statusCode : responseDetails . statusCode ,
60+ } ) ;
5761 } ) ;
5862 } ) ;
5963 } catch ( error ) {
0 commit comments