# Observability Patterns

> Use this skill when implementing logging, monitoring, timing, or diagnostics. Triggers on: logging setup, performance profiling, timing, stderr output, or mentions of "logging", "monitoring", "timing", "profiling", "observability", or "diagnostics".

- Skill: `majiayu000/observability-patterns-3` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds add majiayu000/observability-patterns-3`
- Raw SKILL.md: https://api.skillmd.com/api/skills/majiayu000/observability-patterns-3/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: majiayu000 (https://skillmd.com/u/majiayu000)
- Updated: 2026-09-09
- Page: https://skillmd.com/skills/majiayu000/observability-patterns-3

---


# Observability Patterns — DoclingOptimisation

## Current Logging
- Python `logging` module with custom format (`%(message)s`)
- All logs go to stderr (stdout reserved for markdown output)
- Timing helper `_step()` logs elapsed time since process start
- Pipeline profiling enabled: `settings.debug.profile_pipeline_timings = True`

## Logging Standards
- Use `logging.getLogger("docling-processor")` for the main logger
- Include elapsed time in all step messages
- Log CPU detection results, accelerator config, batch sizes
- Log input file metadata (name, size)
- Log conversion timing (convert duration, export duration, total)

## For Azure Deployment
- Container App Job logs go to Azure Log Analytics
- Consider structured JSON logging for machine-parseable output
- Track: conversion time, file size, thread count, model used
- Set up alerts for: job failures, timeouts, excessive memory usage

## Health Monitoring
- Container App Jobs don't need health check endpoints
- Monitor job execution status via Azure Container Apps API
- Track job duration trends to detect performance regressions

