Skip to content

Commit 78a8c0e

Browse files
committed
feat #OBS-I736 : changes for observability apis
1 parent 2591e12 commit 78a8c0e

File tree

1 file changed

+22
-21
lines changed

1 file changed

+22
-21
lines changed

api-service/src/services/DatasetMetricsService.ts

Lines changed: 22 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,15 @@ import dayjs from "dayjs";
33
import _ from "lodash";
44
import { config } from "../configs/Config";
55
import { dataLineageSuccessQuery, generateConnectorQuery, generateDatasetQueryCallsQuery, generateDedupFailedQuery, generateDenormFailedQuery, generateTimeseriesQuery, generateTimeseriesQueryEventsPerHour, generateTotalQueryCallsQuery, generateTransformationFailedQuery, processingTimeQuery, totalEventsQuery, totalFailedEventsQuery } from "../controllers/DatasetMetrics/queries";
6+
import { druidHttpService } from "../connections/druidConnection";
67
const druidPort = _.get(config, "query_api.druid.port");
78
const druidHost = _.get(config, "query_api.druid.host");
89
const nativeQueryEndpoint = `${druidHost}:${druidPort}${config.query_api.druid.native_query_path}`;
910
const prometheusEndpoint = `${config.query_api.prometheus.url}/api/v1/query_range`;
1011

1112
export const getDataFreshness = async (dataset_id: string, intervals: string, defaultThreshold: number) => {
1213
const queryPayload = processingTimeQuery(intervals, dataset_id);
13-
const druidResponse = await axios.post(nativeQueryEndpoint, queryPayload?.query);
14+
const druidResponse = await druidHttpService.post(nativeQueryEndpoint, queryPayload?.query);
1415
const avgProcessingTime = _.get(druidResponse, "data[0].average_processing_time", 0);
1516
const freshnessStatus = avgProcessingTime < defaultThreshold ? "Healthy" : "Unhealthy";
1617

@@ -41,8 +42,8 @@ export const getDataObservability = async (dataset_id: string, intervals: string
4142
const totalQueryCallsAtDatasetLevel = generateDatasetQueryCallsQuery(dataset_id, config?.data_observability?.data_out_query_time_period);
4243

4344
const [totalEventsResponse, totalFailedEventsResponse, totalApiCallsResponse, totalCallsAtDatasetLevelResponse] = await Promise.all([
44-
axios.post(nativeQueryEndpoint, totalEventsPayload),
45-
axios.post(nativeQueryEndpoint, totalFailedEventsPayload),
45+
druidHttpService.post(nativeQueryEndpoint, totalEventsPayload),
46+
druidHttpService.post(nativeQueryEndpoint, totalFailedEventsPayload),
4647
axios.request({ url: prometheusEndpoint, method: "GET", params: totalQueryCalls }),
4748
axios.request({ url: prometheusEndpoint, method: "GET", params: totalQueryCallsAtDatasetLevel })
4849
]);
@@ -110,13 +111,13 @@ export const getDataVolume = async (dataset_id: string, volume_by_days: number,
110111
previousHourResponse, previousDayResponse, previousWeekResponse,
111112
nDaysResponse
112113
] = await Promise.all([
113-
axios.post(nativeQueryEndpoint, currentHourPayload),
114-
axios.post(nativeQueryEndpoint, currentDayPayload),
115-
axios.post(nativeQueryEndpoint, currentWeekPayload),
116-
axios.post(nativeQueryEndpoint, previousHourPayload),
117-
axios.post(nativeQueryEndpoint, previousDayPayload),
118-
axios.post(nativeQueryEndpoint, previousWeekPayload),
119-
axios.post(nativeQueryEndpoint, nDaysPayload)
114+
druidHttpService.post(nativeQueryEndpoint, currentHourPayload),
115+
druidHttpService.post(nativeQueryEndpoint, currentDayPayload),
116+
druidHttpService.post(nativeQueryEndpoint, currentWeekPayload),
117+
druidHttpService.post(nativeQueryEndpoint, previousHourPayload),
118+
druidHttpService.post(nativeQueryEndpoint, previousDayPayload),
119+
druidHttpService.post(nativeQueryEndpoint, previousWeekPayload),
120+
druidHttpService.post(nativeQueryEndpoint, nDaysPayload)
120121
]);
121122
const currentHourCount = _.get(currentHourResponse, "data[0].result.count") || 0;
122123
const currentDayCount = _.get(currentDayResponse, "data[0].result.count") || 0;
@@ -158,14 +159,14 @@ export const getDataLineage = async (dataset_id: string, intervals: string) => {
158159
transformationSuccessResponse, dedupSuccessResponse, denormSuccessResponse,
159160
totalValidationResponse, totalValidationFailedResponse, transformationFailedResponse, dedupFailedResponse, denormFailedResponse
160161
] = await Promise.all([
161-
axios.post(nativeQueryEndpoint, transformationSuccessPayload),
162-
axios.post(nativeQueryEndpoint, dedupSuccessPayload),
163-
axios.post(nativeQueryEndpoint, denormSuccessPayload),
164-
axios.post(nativeQueryEndpoint, totalValidationPayload),
165-
axios.post(nativeQueryEndpoint, totalValidationFailedPayload),
166-
axios.post(nativeQueryEndpoint, transformationFailedPayload),
167-
axios.post(nativeQueryEndpoint, dedupFailedPayload),
168-
axios.post(nativeQueryEndpoint, denormFailedPayload)
162+
druidHttpService.post(nativeQueryEndpoint, transformationSuccessPayload),
163+
druidHttpService.post(nativeQueryEndpoint, dedupSuccessPayload),
164+
druidHttpService.post(nativeQueryEndpoint, denormSuccessPayload),
165+
druidHttpService.post(nativeQueryEndpoint, totalValidationPayload),
166+
druidHttpService.post(nativeQueryEndpoint, totalValidationFailedPayload),
167+
druidHttpService.post(nativeQueryEndpoint, transformationFailedPayload),
168+
druidHttpService.post(nativeQueryEndpoint, dedupFailedPayload),
169+
druidHttpService.post(nativeQueryEndpoint, denormFailedPayload)
169170
]);
170171

171172
// success at each level
@@ -198,7 +199,7 @@ export const getDataLineage = async (dataset_id: string, intervals: string) => {
198199

199200
export const getConnectors = async (dataset_id: string, intervals: string) => {
200201
const connectorQueryPayload = generateConnectorQuery(intervals, dataset_id);
201-
const connectorResponse = await axios.post(nativeQueryEndpoint, connectorQueryPayload);
202+
const connectorResponse = await druidHttpService.post(nativeQueryEndpoint, connectorQueryPayload);
202203
const connectorsData = _.get(connectorResponse, "data[0].result", []);
203204
const result = {
204205
category: "connectors",
@@ -217,8 +218,8 @@ export const getDataQuality = async (dataset_id: string, intervals: string) => {
217218
const totalValidationFailedPayload = dataLineageSuccessQuery(intervals, dataset_id, "error_pdata_status", "failed");
218219
const [totalValidationResponse, totalValidationFailedResponse,
219220
] = await Promise.all([
220-
axios.post(nativeQueryEndpoint, totalValidationPayload),
221-
axios.post(nativeQueryEndpoint, totalValidationFailedPayload),
221+
druidHttpService.post(nativeQueryEndpoint, totalValidationPayload),
222+
druidHttpService.post(nativeQueryEndpoint, totalValidationFailedPayload),
222223
]);
223224
const totalValidationCount = _.get(totalValidationResponse, "data[0].result.count") || 0;
224225
const totalValidationFailedCount = _.get(totalValidationFailedResponse, "data[0].result.count") || 0;

0 commit comments

Comments
 (0)