Skip to content

Commit e7307ec

Browse files
committed
feat #OBS-I623 : metrics for data in and data out api to have dataset id labels
1 parent 6e0abf9 commit e7307ec

File tree

3 files changed

+5
-4
lines changed

3 files changed

+5
-4
lines changed

api-service/src/controllers/DataIngestion/DataIngestionController.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ const requestValidation = async (req: Request) => {
2121
if (_.isEmpty(dataset)) {
2222
throw obsrvError(datasetKey, "DATASET_NOT_FOUND", `Dataset with id/alias name '${datasetKey}' not found`, "NOT_FOUND", 404)
2323
}
24+
_.set(req, "body.request.dataset_id", dataset.dataset_id);
2425
return dataset
2526
}
2627

api-service/src/controllers/DataOut/DataOutController.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ const requestValidation = async (req: Request) => {
2222
if (_.isEmpty(datasource)) {
2323
throw obsrvError(datasourceKey, "DATASET_NOT_FOUND", `Dataset with id/alias name '${datasourceKey}' not found`, "NOT_FOUND", 404)
2424
}
25+
_.set(req, "body.request.dataset_id", datasource.dataset_id);
2526
return datasource
2627
}
2728

api-service/src/metrics/prometheus/helpers.ts

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -44,21 +44,20 @@ export const onGone = (req: any, res: Response) => {
4444
}
4545

4646
export const onObsrvFailure = (req: any, res: Response,error: ObsrvError) => {
47-
const { duration = 0, metricLabels }: Metric = getMetricLabels(req, res)
48-
metricLabels.dataset_id = error.datasetId
47+
const { duration = 0, metricLabels }: Metric = getMetricLabels(req, res, error)
4948
const { statusCode = 404 } = res
5049
const labels = { ...metricLabels, status: statusCode }
5150
duration && setQueryResponseTime({ duration, labels })
5251
incrementApiCalls({ labels })
5352
incrementFailedApiCalls({ labels });
5453
}
5554

56-
const getMetricLabels = (req: any, res: Response) => {
55+
const getMetricLabels = (req: any, res: Response, errorBody?: ObsrvError) => {
5756
const { id, entity, originalUrl, startTime } = req;
5857
const { statusCode = 200 } = res
5958
const request_size = req.socket.bytesRead
6059
const response_size = res.getHeader("content-length");
61-
const dataset_id = _.get(req, ["body", "request", "dataset_id"]) || _.get(req, ["params", "dataset_id"]) || null
60+
const dataset_id = _.get(req, ["body", "request", "dataset_id"]) || _.get(req, ["params", "dataset_id"]) || _.get(errorBody, "datasetId") || null
6261
const duration = getDuration(startTime);
6362
const metricLabels = { entity, id, endpoint: originalUrl, dataset_id, status: statusCode, request_size, response_size }
6463
return { duration, metricLabels }

0 commit comments

Comments
 (0)