diff --git a/packages/backend/server/src/base/metrics/metrics.ts b/packages/backend/server/src/base/metrics/metrics.ts index 29f81db142..9154a605fd 100644 --- a/packages/backend/server/src/base/metrics/metrics.ts +++ b/packages/backend/server/src/base/metrics/metrics.ts @@ -59,7 +59,8 @@ export type KnownMetricScopes = | 'mail' | 'ai' | 'event' - | 'queue'; + | 'queue' + | 'storage'; const metricCreators: MetricCreators = { counter(meter: Meter, name: string, opts?: MetricOptions) { diff --git a/packages/backend/server/src/core/storage/wrappers/comment-attachment.ts b/packages/backend/server/src/core/storage/wrappers/comment-attachment.ts index 1ef983988b..aa65d24184 100644 --- a/packages/backend/server/src/core/storage/wrappers/comment-attachment.ts +++ b/packages/backend/server/src/core/storage/wrappers/comment-attachment.ts @@ -4,6 +4,7 @@ import { autoMetadata, Config, EventBus, + metrics, OnEvent, type StorageProvider, StorageProviderFactory, @@ -69,15 +70,23 @@ export class CommentAttachmentStorage { blob, meta ); + const mime = meta.contentType ?? 'application/octet-stream'; + const size = blob.length; await this.models.commentAttachment.upsert({ workspaceId, docId, key, name, - mime: meta.contentType ?? 'application/octet-stream', - size: blob.length, + mime, + size, createdBy: userId, }); + + metrics.storage.histogram('comment_attachment_size').record(size, { mime }); + metrics.storage.counter('comment_attachment_total').add(1, { mime }); + this.logger.log( + `uploaded comment attachment ${workspaceId}/${docId}/${key} with size ${size}, mime: ${mime}, name: ${name}, user: ${userId}` + ); } async get(