Merge branch 'staging' into mainnet-beta
This commit is contained in:
@@ -39,6 +39,7 @@ enum METRIC_TYPES {
|
|||||||
endpoint_response_status = 'endpoint_response_status',
|
endpoint_response_status = 'endpoint_response_status',
|
||||||
gpa_fetch_duration = 'gpa_fetch_duration',
|
gpa_fetch_duration = 'gpa_fetch_duration',
|
||||||
last_ws_message_received_ts = 'last_ws_message_received_ts',
|
last_ws_message_received_ts = 'last_ws_message_received_ts',
|
||||||
|
account_updates_per_sec = 'account_updates_per_sec',
|
||||||
current_system_ts = 'current_system_ts',
|
current_system_ts = 'current_system_ts',
|
||||||
health_status = 'health_status',
|
health_status = 'health_status',
|
||||||
}
|
}
|
||||||
@@ -125,6 +126,20 @@ lastWsReceivedTsGauge.addCallback((obs: ObservableResult) => {
|
|||||||
obs.observe(lastWsMsgReceivedTs, {});
|
obs.observe(lastWsMsgReceivedTs, {});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
let lastAccountUpdatesPerSecond = 0;
|
||||||
|
const setAccountUpdatesPerSecond = (updatesPerSecond: number) => {
|
||||||
|
lastAccountUpdatesPerSecond = updatesPerSecond;
|
||||||
|
};
|
||||||
|
const accountUpdatesPerSecondGauge = meter.createObservableGauge(
|
||||||
|
METRIC_TYPES.account_updates_per_sec,
|
||||||
|
{
|
||||||
|
description: 'Updates per second, the last second',
|
||||||
|
}
|
||||||
|
);
|
||||||
|
accountUpdatesPerSecondGauge.addCallback((obs: ObservableResult) => {
|
||||||
|
obs.observe(lastAccountUpdatesPerSecond, {});
|
||||||
|
});
|
||||||
|
|
||||||
const currentSystemTsGauge = meter.createObservableGauge(
|
const currentSystemTsGauge = meter.createObservableGauge(
|
||||||
METRIC_TYPES.current_system_ts,
|
METRIC_TYPES.current_system_ts,
|
||||||
{
|
{
|
||||||
@@ -229,4 +244,5 @@ export {
|
|||||||
responseStatusCounter,
|
responseStatusCounter,
|
||||||
handleHealthCheck,
|
handleHealthCheck,
|
||||||
setLastReceivedWsMsgTs,
|
setLastReceivedWsMsgTs,
|
||||||
|
setAccountUpdatesPerSecond as setLastAccountUpdatesPerSecond,
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -38,6 +38,7 @@ import * as http from 'http';
|
|||||||
import {
|
import {
|
||||||
gpaFetchDurationHistogram,
|
gpaFetchDurationHistogram,
|
||||||
handleHealthCheck,
|
handleHealthCheck,
|
||||||
|
setLastAccountUpdatesPerSecond,
|
||||||
setLastReceivedWsMsgTs,
|
setLastReceivedWsMsgTs,
|
||||||
} from './core/metrics';
|
} from './core/metrics';
|
||||||
import { handleResponseTime } from './core/middleware';
|
import { handleResponseTime } from './core/middleware';
|
||||||
@@ -254,6 +255,7 @@ const main = async () => {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
let updatesPerTenSecond = 0;
|
||||||
const orderSubscriber = new OrderSubscriber({
|
const orderSubscriber = new OrderSubscriber({
|
||||||
driftClient,
|
driftClient,
|
||||||
subscriptionConfig,
|
subscriptionConfig,
|
||||||
@@ -262,8 +264,13 @@ const main = async () => {
|
|||||||
'updateReceived',
|
'updateReceived',
|
||||||
(_pubkey: PublicKey, _slot: number, _dataType: 'raw' | 'decoded') => {
|
(_pubkey: PublicKey, _slot: number, _dataType: 'raw' | 'decoded') => {
|
||||||
setLastReceivedWsMsgTs(Date.now());
|
setLastReceivedWsMsgTs(Date.now());
|
||||||
|
updatesPerTenSecond++;
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
setInterval(() => {
|
||||||
|
setLastAccountUpdatesPerSecond(updatesPerTenSecond / 10);
|
||||||
|
updatesPerTenSecond = 0;
|
||||||
|
}, 10_000);
|
||||||
|
|
||||||
dlobProvider = getDLOBProviderFromOrderSubscriber(orderSubscriber);
|
dlobProvider = getDLOBProviderFromOrderSubscriber(orderSubscriber);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user