feat(observability): focus PR 596 on Prometheus backend
This commit is contained in:
parent
eba544dbd4
commit
2560399423
12 changed files with 358 additions and 103 deletions
|
|
@ -1129,40 +1129,4 @@ mod tests {
|
|||
"https://opencode.ai/zen/v1/chat/completions"
|
||||
);
|
||||
}
|
||||
|
||||
// ══════════════════════════════════════════════════════════
|
||||
// Issue #580: Custom provider URL construction tests
|
||||
// ══════════════════════════════════════════════════════════
|
||||
|
||||
#[test]
|
||||
fn chat_completions_url_custom_provider_opencode_issue_580() {
|
||||
// Issue #580: Custom provider should correctly append /chat/completions
|
||||
// The error log format "{provider_name}/{current_model}" was confusing
|
||||
// but the actual URL construction was always correct.
|
||||
let p = make_provider("custom", "https://opencode.ai/zen/v1", None);
|
||||
assert_eq!(
|
||||
p.chat_completions_url(),
|
||||
"https://opencode.ai/zen/v1/chat/completions"
|
||||
);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn chat_completions_url_custom_provider_standard() {
|
||||
// Standard custom provider without /v1 path
|
||||
let p = make_provider("custom", "https://my-api.example.com", None);
|
||||
assert_eq!(
|
||||
p.chat_completions_url(),
|
||||
"https://my-api.example.com/chat/completions"
|
||||
);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn chat_completions_url_custom_provider_with_v1() {
|
||||
// Custom provider with /v1 path
|
||||
let p = make_provider("custom", "https://my-api.example.com/v1", None);
|
||||
assert_eq!(
|
||||
p.chat_completions_url(),
|
||||
"https://my-api.example.com/v1/chat/completions"
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -193,18 +193,8 @@ impl Provider for ReliableProvider {
|
|||
} else {
|
||||
"retryable"
|
||||
};
|
||||
// For custom providers, strip the URL from the provider name
|
||||
// to avoid confusion. The format "custom:https://..." in error
|
||||
// logs makes it look like the model is being appended to the URL.
|
||||
let display_provider = if provider_name.starts_with("custom:") {
|
||||
"custom"
|
||||
} else if provider_name.starts_with("anthropic-custom:") {
|
||||
"anthropic-custom"
|
||||
} else {
|
||||
provider_name
|
||||
};
|
||||
failures.push(format!(
|
||||
"{display_provider}/{current_model} attempt {}/{}: {failure_reason}",
|
||||
"provider={provider_name} model={current_model} attempt {}/{}: {failure_reason}",
|
||||
attempt + 1,
|
||||
self.max_retries + 1
|
||||
));
|
||||
|
|
@ -308,18 +298,8 @@ impl Provider for ReliableProvider {
|
|||
} else {
|
||||
"retryable"
|
||||
};
|
||||
// For custom providers, strip the URL from the provider name
|
||||
// to avoid confusion. The format "custom:https://..." in error
|
||||
// logs makes it look like the model is being appended to the URL.
|
||||
let display_provider = if provider_name.starts_with("custom:") {
|
||||
"custom"
|
||||
} else if provider_name.starts_with("anthropic-custom:") {
|
||||
"anthropic-custom"
|
||||
} else {
|
||||
provider_name
|
||||
};
|
||||
failures.push(format!(
|
||||
"{display_provider}/{current_model} attempt {}/{}: {failure_reason}",
|
||||
"provider={provider_name} model={current_model} attempt {}/{}: {failure_reason}",
|
||||
attempt + 1,
|
||||
self.max_retries + 1
|
||||
));
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue