Skip to content

Commit

Permalink
fix(vllm metrics): error stack trace
Browse files Browse the repository at this point in the history
Signed-off-by: gitdallas <[email protected]>
  • Loading branch information
gitdallas committed Sep 17, 2024
1 parent ec193eb commit 54a09d6
Show file tree
Hide file tree
Showing 4 changed files with 82 additions and 13 deletions.
45 changes: 45 additions & 0 deletions frontend/src/__mocks__/mockKserveMetricsConfigMap.ts
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,51 @@ export const MOCK_KSERVE_METRICS_CONFIG_1 = `
]
}`;

export const MOCK_KSERVE_METRICS_CONFIG_MISSING_QUERY = `{
"config": [
{
"title": "Requests per 5 minutes",
"type": "REQUEST_COUNT",
"queries": [
{
"title": "Number of successful incoming requests",
"query": "round(sum(increase(vllm:request_success_total{namespace='test-project',model_name='test vllm'}[5m])))"
}
]
},
{
"title": "Average response time (ms)",
"type": "MEAN_LATENCY",
"queries": [
{
"title": "Average e2e latency",
"query": "histogram_quantile(0.5, sum(rate(vllm:e2e_request_latency_seconds_bucket{namespace='test-project', model_name='test-vllm'}[1m])) by (le, model_name))"
}
]
},
{
"title": "CPU utilization %",
"type": "CPU_USAGE",
"queries": [
{
"title": "CPU usage",
"query": "sum(pod:container_cpu_usage:sum{namespace='test-project', pod=~'test-vllm-predictor-.*'})/sum(kube_pod_resource_limit{resource='cpu', pod=~'test-vllm-predictor-.*', namespace='test-project'})"
}
]
},
{
"title": "Memory utilization %",
"type": "MEMORY_USAGE",
"queries": [
{
"title": "Memory usage",
"query": "sum(container_memory_working_set_bytes{namespace='test-project', pod=~'test-vllm-predictor-.*'})/sum(kube_pod_resource_limit{resource='memory', pod=~'test-vllm-predictor-.*', namespace='test-project'})"
}
]
}
]
}`;

export const MOCK_KSERVE_METRICS_CONFIG_2 =
'{ I am malformed JSON and I am here to ruin your day }';

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ import {
import {
MOCK_KSERVE_METRICS_CONFIG_2,
MOCK_KSERVE_METRICS_CONFIG_3,
MOCK_KSERVE_METRICS_CONFIG_MISSING_QUERY,
mockKserveMetricsConfigMap,
} from '~/__mocks__/mockKserveMetricsConfigMap';

Expand Down Expand Up @@ -698,6 +699,25 @@ describe('KServe performance metrics', () => {
modelMetricsKserve.getAllMetricsCharts().should('have.length', 2);
});

it('charts should not error out if a query is missing', () => {
initIntercepts({
disableBiasMetrics: false,
disablePerformanceMetrics: false,
disableKServeMetrics: false,
hasServingData: true,
hasBiasData: false,
inferenceServices: [mockInferenceServiceK8sResource({ isModelMesh: false })],
});

cy.interceptK8s(
ConfigMapModel,
mockKserveMetricsConfigMap({ config: MOCK_KSERVE_METRICS_CONFIG_MISSING_QUERY }),
);

modelMetricsKserve.visit('test-project', 'test-inference-service');
modelMetricsKserve.getAllMetricsCharts().should('have.length', 4);
});

it('charts should show data when serving data is available', () => {
initIntercepts({
disableBiasMetrics: false,
Expand Down
12 changes: 6 additions & 6 deletions frontend/src/api/prometheus/kservePerformanceMetrics.ts
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,8 @@ export const useFetchKserveRequestCountData = (
): RequestCountData => {
const active = useIsAreaAvailable(SupportedArea.K_SERVE_METRICS).status;

const successQuery = metricsDef.queries[0].query;
const failedQuery = metricsDef.queries[1].query;
const successQuery = metricsDef.queries[0]?.query;
const failedQuery = metricsDef.queries[1]?.query;

const successCount = useQueryRangeResourceData(
active,
Expand Down Expand Up @@ -76,7 +76,7 @@ export const useFetchKserveMeanLatencyData = (

const inferenceLatency = useQueryRangeResourceData(
active,
metricsDef.queries[0].query,
metricsDef.queries[0]?.query,
endInMs,
timeframe,
defaultResponsePredicate,
Expand All @@ -85,7 +85,7 @@ export const useFetchKserveMeanLatencyData = (

const requestLatency = useQueryRangeResourceData(
active,
metricsDef.queries[1].query,
metricsDef.queries[1]?.query,
endInMs,
timeframe,
defaultResponsePredicate,
Expand Down Expand Up @@ -123,7 +123,7 @@ export const useFetchKserveCpuUsageData = (

const cpuUsage = useQueryRangeResourceData(
active,
metricsDef.queries[0].query,
metricsDef.queries[0]?.query,
endInMs,
timeframe,
defaultResponsePredicate,
Expand Down Expand Up @@ -159,7 +159,7 @@ export const useFetchKserveMemoryUsageData = (

const memoryUsage = useQueryRangeResourceData(
active,
metricsDef.queries[0].query,
metricsDef.queries[0]?.query,
endInMs,
timeframe,
defaultResponsePredicate,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,13 +32,17 @@ const KserveMeanLatencyGraph: React.FC<KserveMeanLatencyGraphProps> = ({
data: convertPrometheusNaNToZero(inferenceLatency.data),
},
},
{
name: graphDefinition.queries[1].title,
metric: {
...requestLatency,
data: convertPrometheusNaNToZero(requestLatency.data),
},
},
...(graphDefinition.queries[1]
? [
{
name: graphDefinition.queries[1].title,
metric: {
...requestLatency,
data: convertPrometheusNaNToZero(requestLatency.data),
},
},
]
: []),
]}
color="green"
title={graphDefinition.title}
Expand Down

0 comments on commit 54a09d6

Please sign in to comment.