--- type: Entity layer: wiki tags: [stack, dashdescomplicar, infra, monitorizacao, gemini, telemetria] title: "Monitorizacao-Gemini" --- # Monitorizacao-Gemini Sistema de telemetria para hooks do Gemini CLI. Recolhe métricas de tool calls do Gemini e escreve no mesmo ficheiro JSONL usado pelo Claude Code para métricas unificadas. ## Responsabilidades - **Hook AfterTool**: Captura tool_name, session_id, success/error, duration - **Formato Unificado**: Escreve em `~/.claude-work/tool-invocations.jsonl` com campo `engine: gemini` - **Pré-Telemetria**: Script `gemini-pre-telemetry.py` regista timestamp de início para cálculo de duração - **Health Check**: `gemini-health.sh` verifica conectividade do Gemini CLI ## Stack - **Python 3**: Scripts de hook (piped via stdin/stdout do Gemini CLI) - **Formato**: JSONL (compatível com Claude Code) - **Ficheiro**: `~/.claude-work/tool-invocations.jsonl` ## Scripts | Script | Função | Trigger | |---|---|---| | `gemini-telemetry.py` (2.3KB) | Hook AfterTool — captura e regista métricas | Gemini CLI after tool call | | `gemini-pre-telemetry.py` (1.0KB) | Hook BeforeTool — regista timestamp início | Gemini CLI before tool call | | `gemini-health.sh` (1.0KB) | Health check conectividade Gemini | Manual/agendado | ## Formato de Log ```json { "ts": "2026-06-30T12:00:00Z", "session": "", "tool_name": "read_file", "success": true, "error": "", "duration": 1.23, "engine": "gemini" } ``` ## Localizações - **Scripts**: `Dev/DashDescomplicar/monitorizacao/` (3 ficheiros) - **Output**: `~/.claude-work/tool-invocations.jsonl` - **Temp**: `~/.gemini/tmp/telemetry/.start` ## Dependências - **Gemini CLI**: Pipe stdin/stdout para hooks Python - **Sistema de Ficheiros**: `~/.claude-work/`, `~/.gemini/tmp/` ## Fornece a - **Observabilidade-Sessions**: Dados de telemetria Gemini unificados com Claude - **Sistema IA**: Métricas cross-engine (Claude + Gemini + Hermes + OpenCode)