fix(mcp): enrich host log evidence params
All checks were successful
Code Review / ai-code-review (push) Successful in 11s
CD Pipeline / tests (push) Successful in 2m29s
CD Pipeline / build-and-deploy (push) Successful in 4m15s
CD Pipeline / post-deploy-checks (push) Successful in 1m41s

This commit is contained in:
Your Name
2026-05-18 12:23:39 +08:00
parent 0e7fe211de
commit 5cb10a6d2d
4 changed files with 87 additions and 9 deletions

View File

@@ -166,6 +166,9 @@ def test_build_tool_params_uses_host_alias_and_service_from_affected_service() -
assert params["host"] == "192.168.0.188"
assert params["target"] == "ollama"
assert params["service_name"] == "ollama"
assert params["container_name"] == "ollama"
assert params["filter_name"] == "ollama"
assert params["severity"] == "ERROR,FATAL,CRITICAL"
assert params["search_text"] == "HostErrorLogFlood"
assert params["time_window_minutes"] == 30

View File

@@ -0,0 +1,61 @@
from __future__ import annotations
import pytest
from src.services.signoz_client import SignOzClient
@pytest.mark.asyncio
async def test_get_logs_uses_live_signoz_v2_table(monkeypatch) -> None:
client = SignOzClient()
queries: list[str] = []
async def fake_query(query: str) -> list[dict]:
queries.append(query)
return [
{
"timestamp": 1,
"severity_text": "ERROR",
"body": "boom",
"resources": {"service.name": "ollama"},
"attributes": {"container.name": "ollama"},
"trace_id": "trace-1",
"span_id": "span-1",
}
]
monkeypatch.setattr(client, "_query_clickhouse", fake_query)
logs = await client.get_logs(
service_name="ollama",
severity="ERROR",
search_text="HostErrorLogFlood",
time_window_minutes=5,
limit=3,
)
assert logs[0]["service"] == "ollama"
assert "FROM signoz_logs.distributed_logs_v2" in queries[0]
assert "resources_string['service.name'] = 'ollama'" in queries[0]
assert "attributes_string AS attributes" in queries[0]
@pytest.mark.asyncio
async def test_error_logs_summary_uses_live_signoz_v2_table(monkeypatch) -> None:
client = SignOzClient()
queries: list[str] = []
async def fake_query(query: str) -> list[dict]:
queries.append(query)
return [{"severity_text": "ERROR", "count": 2, "sample_message": "boom"}]
monkeypatch.setattr(client, "_query_clickhouse", fake_query)
summary = await client.get_error_logs_summary(
service_name="ollama",
time_window_minutes=5,
)
assert summary["total_errors"] == 2
assert "FROM signoz_logs.distributed_logs_v2" in queries[0]
assert "resources_string['service.name'] = 'ollama'" in queries[0]