Skip to content

Diagnostics

🙺 Diagnostic Checks (Updated for Azure Functions Python Programming Model v2)

This document lists diagnostic checks for Azure Functions Doctor, based on Azure Functions Python Reference and Best Practices.

# Diagnostic Check Description Feasibility Status
1 Python version ≥ 3.9 Check if the runtime meets minimum requirements ✅ Easy ✅ Implemented
2 Virtual environment (.venv) active Ensure Python environment is isolated via virtualenv ✅ Easy ✅ Implemented
3 Azure Functions Core Tools installed Validate that func CLI is installed and accessible ✅ Easy ✅ Implemented
4 host.json exists Required runtime configuration file must be present ✅ Easy ✅ Implemented
5 requirements.txt exists Check for dependency management file ✅ Easy ✅ Implemented
6 azure-functions package installed Ensure required Azure Functions SDK is installed ✅ Easy ✅ Implemented
7 azure-functions-python-library installed Required for Programming Model v2 decorator syntax ✅ Easy ✅ Implemented
8 local.settings.json exists (optional) Useful for storing app settings locally ✅ Easy 🔧 Planned
9 Detect use of decorators Confirm use of v2-style decorators like @function_name ✅ Easy ✅ Implemented
10 Function mode detection (v1 vs v2) Detect whether app uses function.json or decorators ✅ Medium 🔧 Planned
11 Directory structure validation Warn if folder structure is non-standard or missing expected files ✅ Easy ✅ Implemented
12 Durable Functions config in host.json Check for presence of durableTask section ✅ Medium 🔧 Planned
13 HTTP trigger validation Ensure authLevel, methods, route in binding are valid ✅ Medium 🔧 Planned
14 Timer trigger CRON validation Validate correct CRON format ✅ Medium 🔧 Planned
15 App Insights configuration Validate presence of instrumentation key or connection string ✅ Medium 🔧 Planned
16 EntryPoint in function.json (v1 only) Check if entryPoint matches a real function (v1 only) ✅ Easy ❌ Not needed
17 Function name and folder match (v1 only) Ensure folder/function naming aligns (v1 only) ✅ Easy ❌ Not needed
18 ASGI/WSGI compatibility Check if app exposes ASGI/WSGI callable ✅ Medium 🔧 Planned
19 Detect unused or invalid files Warn about .pyc, __pycache__, or legacy files ✅ Low 🔝 Possible
20 Detect long-running blocking patterns Detect sleep(), infinite loops, or sync IO blocking ❌ Hard ❌ Not feasible
21 Excessive logging Detect overuse of print() or logging.debug() ❌ Runtime ❌ Not feasible
22 Monolithic layout warning Detect if everything is in one large file ❌ Context ❌ Not feasible

Legend: ✅ Easy = statically checkable
✅ Medium = requires additional parsing/context
❌ = not feasible by static analysis
🔧 Planned = scheduled for future implementation
🧭 Possible = technically feasible but lower priority


✅ Key Changes

  • Removed main.py check (was v1 specific)
  • Added decorator detection (v2 model confirmation)
  • Excluded v1-only checks like entryPoint, function.json folder matching
  • Included v2-only checks like azure-functions-python-library
  • Clarified feasibility and implementation status across all checks