/
githubmirror
/
serverless
Обзор
Документация
Войти
/
githubmirror
/
serverless
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
packages/util/src/instanceUsageTracking/index.js
47 строк
1 KB
Tomasz Czubocha
chore: integrate v4 packages into main repository
19 дек 2025, 00:28
19 дек 2025, 00:28
8cec971
Код
Авторство
О чём код?
import { log } from '@serverless/util' import { platformEventClient } from '../telemetry/index.js' class InstanceUsageTrackingClient { constructor() { this.eventClient = platformEventClient this.partialInstanceReportBodies = [] this.logger = log.get('util:instance-usage-tracking') } trackUsage(event) { this.partialInstanceReportBodies.push(event) } async publishEventBatches({ accessKey, orgId, user, versionFramework }) { if (accessKey === undefined || accessKey === '') { throw new Error('Not authenticated') } if (!orgId) { this.logger.debug( 'Skipping instance usage tracking events because org ID is unknown.', ) this.partialInstanceReportBodies = [] await this.eventClient.publishEventBatches({ accessKey }) return } this.partialInstanceReportBodies.forEach((body) => { this.eventClient.addToPublishBatch({ source: 'billing.instance.reported.v1', event: { ...body, orgId, user }, }) }) this.partialInstanceReportBodies = [] await this.eventClient.publishEventBatches({ accessKey, versionFramework, }) } } const instanceUsageTrackingClient = new InstanceUsageTrackingClient() export { instanceUsageTrackingClient }