address greptile review feedback + UI refinements for retry display

- Show "-" when retry info is absent (older logs)
- Show green "None" tag when not retried (attempted_retries === 0)
- Update max_retries after deployment/retry-policy overrides (greptile feedback)
- Update tests to match new display behavior

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
yuneng-jiang
2026-02-20 14:55:15 -08:00
co-authored by Claude Opus 4.6
parent de1517411f
commit d6c562a35d
4 changed files with 25 additions and 21 deletions
+4 -1
View File
@@ -5130,7 +5130,7 @@ class Router:
)
## ADD RETRY TRACKING TO METADATA - used for spend logs retry tracking
_metadata["attempted_retries"] = 0
_metadata["max_retries"] = num_retries
_metadata["max_retries"] = num_retries # Updated after overrides in exception handler
try:
self._handle_mock_testing_rate_limit_error(
model_group=model_group, kwargs=kwargs
@@ -5196,6 +5196,9 @@ class Router:
regular_fallbacks=fallbacks,
content_policy_fallbacks=content_policy_fallbacks,
)
# Update max_retries after overrides (deployment_num_retries / retry_policy)
_metadata["max_retries"] = num_retries
## LOGGING
if num_retries > 0:
kwargs = self.log_retry(kwargs=kwargs, e=original_exception)
@@ -296,13 +296,13 @@ function MetricsSection({ logEntry, metadata }: { logEntry: LogEntry; metadata:
</Descriptions.Item>
)}
{metadata?.attempted_retries !== undefined && metadata?.attempted_retries !== null && (
<Descriptions.Item label="Retries">
{metadata.attempted_retries > 0
<Descriptions.Item label="Retries">
{metadata?.attempted_retries !== undefined && metadata?.attempted_retries !== null
? metadata.attempted_retries > 0
? <>{metadata.attempted_retries}{metadata.max_retries !== undefined && metadata.max_retries !== null ? ` / ${metadata.max_retries}` : ''}</>
: "Not Retried"}
</Descriptions.Item>
)}
: <Tag color="green">None</Tag>
: "-"}
</Descriptions.Item>
<Descriptions.Item label="Start Time">
{moment(logEntry.startTime).format("YYYY-MM-DDTHH:mm:ss.SSS[Z]")}
@@ -145,7 +145,7 @@ describe("Request Viewer", () => {
expect(screen.getByText("2 / 3")).toBeInTheDocument();
});
it("should display 'Not Retried' when attempted_retries is 0", () => {
it("should display green 'None' tag when attempted_retries is 0", () => {
render(
<RequestViewer
row={createRow({
@@ -163,13 +163,14 @@ describe("Request Viewer", () => {
);
expect(screen.getByText("Retries:")).toBeInTheDocument();
expect(screen.getByText("Not Retried")).toBeInTheDocument();
expect(screen.getByText("None")).toBeInTheDocument();
});
it("should not display Retries when attempted_retries is not present in metadata", () => {
it("should display '-' for Retries when attempted_retries is not present in metadata", () => {
render(<RequestViewer row={createRow()} />);
expect(screen.queryByText("Retries:")).not.toBeInTheDocument();
expect(screen.getByText("Retries:")).toBeInTheDocument();
expect(screen.getByText("-")).toBeInTheDocument();
});
});
@@ -7,7 +7,7 @@ import { truncateString } from "@/utils/textUtils";
import { SettingOutlined, SyncOutlined } from "@ant-design/icons";
import { Row } from "@tanstack/react-table";
import { Switch, Tab, TabGroup, TabList, TabPanel, TabPanels } from "@tremor/react";
import { Button, Tooltip } from "antd";
import { Button, Tag, Tooltip } from "antd";
import { internalUserRoles } from "../../utils/roles";
import DeletedKeysPage from "../DeletedKeysPage/DeletedKeysPage";
import DeletedTeamsPage from "../DeletedTeamsPage/DeletedTeamsPage";
@@ -960,16 +960,16 @@ export function RequestViewer({ row, onOpenSettings }: { row: Row<LogEntry>; onO
<span>{row.original.metadata.litellm_overhead_time_ms} ms</span>
</div>
)}
{row.original.metadata?.attempted_retries !== undefined && row.original.metadata?.attempted_retries !== null && (
<div className="flex">
<span className="font-medium w-1/3">Retries:</span>
<span>
{row.original.metadata.attempted_retries > 0
<div className="flex">
<span className="font-medium w-1/3">Retries:</span>
<span>
{row.original.metadata?.attempted_retries !== undefined && row.original.metadata?.attempted_retries !== null
? row.original.metadata.attempted_retries > 0
? `${row.original.metadata.attempted_retries}${row.original.metadata.max_retries !== undefined && row.original.metadata.max_retries !== null ? ` / ${row.original.metadata.max_retries}` : ''}`
: 'Not Retried'}
</span>
</div>
)}
: <Tag color="green">None</Tag>
: '-'}
</span>
</div>
</div>
</div>
</div>