An AI-powered tool that helps analyze microservice logs. Built with a multi-agent architecture powered by Google’s Agent Development Kit (ADK) and OpenSearch-MCP integration.
git clone <https://sqbu-github.cisco.com/WebexDevPlatform/microservice-log-analyzer.git>
cd microservice-log-analyzer-
Ensure you have Python>= 3.10 installed.
-
Install Node.js>= 18 and pnpm
-
Create and activate a virtual environment:
python3 -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate- Install python dependencies:
pip install --upgrade pip
pip install -r requirements.txt-
Open:
search_agent/agent.py -
Locate the
MCPToolsetconfiguration. -
Update:
command→ Path to your local UV binary. refer to: https://www.uvicorn.org/#quickstartargs→ Full path to your localopensearch-mcp-server-pyrepository.
MCPToolset(
command="/path/to/your/uv",
args=["/full/path/to/opensearch-mcp-server-py"]
)- Make sure required environment variables for OpenSearch/MCP are set properly.
Create a .env file at the repo root with:
OPENSEARCH_OAUTH_TOKEN=
OPENSEARCH_OAUTH_NAME=
OPENSEARCH_OAUTH_PASSWORD=
OPENSEARCH_OAUTH_CLIENT_ID=
OPENSEARCH_OAUTH_CLIENT_SECRET=
OPENSEARCH_OAUTH_SCOPE=
OPENSEARCH_OAUTH_BEARER_TOKEN_URL=
OPENSEARCH_OAUTH_TOKEN_URL=cd log-analyzer-frontend
pnpm install
pnpm run devThe UI will be available at http://localhost:3000.
Set the backend URL for the UI:
export NEXT_PUBLIC_ADK_API_URL="http://127.0.0.1:8000"Note: The Webex bearer token is required to authenticate LiteLLM, which powers the LLM backend used for natural language analysis.
-
Visit the internal Webex Developer Portal:
https://developer-portal-intb.ciscospark.com -
Log in with your Cisco credentials.
-
After login, a Bearer Token will be generated automatically.
-
Copy the token shown in the Authorization field.
In agents/root_agent/agent.py:
Copy your bearer token in os.environ["AZURE_OPENAI_API_KEY"]=("...your token...")
run:
cd agents
adk webThis will launch the backend agent system using the Agent Development Kit (ADK).
- Frontend: http://localhost:3000
- Backend: Running with ADK and LiteLLM
- LLM Auth: Via Webex bearer token
This project includes a GitHub Actions workflow that builds a static Next.js export and publishes it to GitHub Pages.
- Set a repo variable named
NEXT_PUBLIC_ADK_API_URLto your ngrok URL (example:https://<your-subdomain>.ngrok.app). - Push to
mainor run the workflow manually. - In GitHub Pages settings, choose Source: GitHub Actions.
Notes:
- The workflow sets
NEXT_PUBLIC_BASE_PATHto/<repo-name>automatically. - Ensure your backend allows CORS from the GitHub Pages domain.
Found a bug or want to improve this project? Open a pull request or issue.