Files
tom goriunovandGitHub 043cf4aefc SolidityScan API response schema validation (#2190)
* add schema validation to solidity scan report resource

* report invalid API schema event to prometheus
2024-08-26 11:28:53 +02:00

40 lines
1.2 KiB
TypeScript

import * as promClient from 'prom-client';
const metrics = (() => {
// eslint-disable-next-line no-restricted-properties
if (process.env.PROMETHEUS_METRICS_ENABLED !== 'true') {
return;
}
promClient.register.clear();
const invalidApiSchema = new promClient.Counter({
name: 'invalid_api_schema',
help: 'Number of invalid external API schema events',
labelNames: [ 'resource', 'url' ] as const,
});
const socialPreviewBotRequests = new promClient.Counter({
name: 'social_preview_bot_requests_total',
help: 'Number of incoming requests from social preview bots',
labelNames: [ 'route', 'bot' ] as const,
});
const searchEngineBotRequests = new promClient.Counter({
name: 'search_engine_bot_requests_total',
help: 'Number of incoming requests from search engine bots',
labelNames: [ 'route', 'bot' ] as const,
});
const apiRequestDuration = new promClient.Histogram({
name: 'api_request_duration_seconds',
help: 'Duration of requests to API in seconds',
labelNames: [ 'route', 'code' ],
buckets: [ 0.2, 0.5, 1, 3, 10 ],
});
return { invalidApiSchema, socialPreviewBotRequests, searchEngineBotRequests, apiRequestDuration };
})();
export default metrics;