Skip to content

Commit 5ac8c16

Browse files
authored
fix: add error reporting in datalake (#8535)
Signed-off-by: Alexander Onnikov <[email protected]>
1 parent a9b9690 commit 5ac8c16

File tree

5 files changed

+16
-1
lines changed

5 files changed

+16
-1
lines changed

services/datalake/pod-datalake/src/handlers/blob.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
// limitations under the License.
1414
//
1515

16+
import { Analytics } from '@hcengineering/analytics'
1617
import { MeasureContext } from '@hcengineering/core'
1718
import { type Request, type Response } from 'express'
1819
import { UploadedFile } from 'express-fileupload'
@@ -86,6 +87,7 @@ export async function handleBlobGet (
8687
if (err != null) {
8788
const error = err instanceof Error ? err.message : String(err)
8889
ctx.error('error writing response', { workspace, name, error })
90+
Analytics.handleError(err)
8991
if (!res.headersSent) {
9092
res.status(500).send('Internal Server Error')
9193
}
@@ -137,6 +139,7 @@ export async function handleBlobDelete (
137139

138140
res.status(204).send()
139141
} catch (error: any) {
142+
Analytics.handleError(error)
140143
ctx.error('failed to delete blob', { error })
141144
res.status(500).send()
142145
}
@@ -157,6 +160,7 @@ export async function handleBlobDeleteList (
157160

158161
res.status(204).send()
159162
} catch (error: any) {
163+
Analytics.handleError(error)
160164
ctx.error('failed to delete blobs', { error })
161165
res.status(500).send()
162166
}
@@ -175,6 +179,7 @@ export async function handleBlobSetParent (
175179
await datalake.setParent(ctx, workspace, name, parent)
176180
res.status(204).send()
177181
} catch (error: any) {
182+
Analytics.handleError(error)
178183
ctx.error('failed to delete blob', { error })
179184
res.status(500).send()
180185
}
@@ -211,6 +216,7 @@ export async function handleUploadFormData (
211216
sha256 =
212217
file.tempFilePath !== undefined ? await getFileSha256(file.tempFilePath) : await getBufferSha256(file.data)
213218
} catch (err: any) {
219+
Analytics.handleError(err)
214220
const error = err instanceof Error ? err.message : String(err)
215221
ctx.error('failed to calculate file hash', { error })
216222
throw err
@@ -229,6 +235,7 @@ export async function handleUploadFormData (
229235

230236
return { key, metadata }
231237
} catch (err: any) {
238+
Analytics.handleError(err)
232239
const error = err instanceof Error ? err.message : String(err)
233240
ctx.error('failed to upload blob', { error: err })
234241
return { key, error }

services/datalake/pod-datalake/src/handlers/image.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
// limitations under the License.
1414
//
1515

16+
import { Analytics } from '@hcengineering/analytics'
1617
import { MeasureContext } from '@hcengineering/core'
1718
import { type Request, type Response } from 'express'
1819
import { createReadStream, createWriteStream } from 'fs'
@@ -110,6 +111,7 @@ export async function handleImageGet (
110111

111112
await writeFileToResponse(ctx, outFile, res)
112113
} catch (err: any) {
114+
Analytics.handleError(err)
113115
ctx.error('image processing error', { workspace, name, error: err })
114116

115117
res.setHeader('Content-Type', blob.contentType)
@@ -237,6 +239,7 @@ async function writeFileToResponse (ctx: MeasureContext, path: string, res: Resp
237239

238240
pipeline(stream, res, (err) => {
239241
if (err != null) {
242+
Analytics.handleError(err)
240243
const error = err instanceof Error ? err.message : String(err)
241244
ctx.error('error writing response', { error })
242245
if (!res.headersSent) {

services/datalake/pod-datalake/src/handlers/s3.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
// limitations under the License.
1414
//
1515

16+
import { Analytics } from '@hcengineering/analytics'
1617
import { MeasureContext } from '@hcengineering/core'
1718
import { type Request, type Response } from 'express'
1819

@@ -46,6 +47,7 @@ export async function handleS3CreateBlob (
4647
await datalake.create(ctx, workspace, name, filename)
4748
res.status(200).send()
4849
} catch (err: any) {
50+
Analytics.handleError(err)
4951
const error = err instanceof Error ? err.message : String(err)
5052
ctx.error('failed to create blob', { workspace, name, error })
5153
res.status(500).send()

services/datalake/pod-datalake/src/handlers/video.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
// limitations under the License.
1414
//
1515

16+
import { Analytics } from '@hcengineering/analytics'
1617
import { systemAccountUuid, MeasureContext } from '@hcengineering/core'
1718
import { generateToken } from '@hcengineering/server-token'
1819

@@ -29,7 +30,8 @@ export async function requestHLS (ctx: MeasureContext, workspace: string, name:
2930
try {
3031
ctx.info('request for hls', { workspace, name })
3132
await postTranscodingTask(ctx, workspace, name)
32-
} catch (err) {
33+
} catch (err: any) {
34+
Analytics.handleError(err)
3335
ctx.error('can not schedule a task', { err })
3436
}
3537
}

services/datalake/pod-datalake/src/server.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -229,6 +229,7 @@ export function createServer (ctx: MeasureContext, config: Config): { app: Expre
229229
return
230230
}
231231

232+
Analytics.handleError(err)
232233
res.status(500).json({ message: err.message?.length > 0 ? err.message : 'Internal Server Error' })
233234
})
234235

0 commit comments

Comments
 (0)