Power BI Diagnostics Skill
Troubleshoot performance, trace queries, and verify the pbi-cli environment.
Prerequisites
pipx install pbi-cli-tool
pbi-cli skills install
pbi connect
Environment Check
# Verify pythonnet and .NET DLLs are installed
pbi setup
# Show detailed environment info (version, DLL paths, pythonnet status)
pbi setup --info
pbi --json setup --info
# Check CLI version
pbi --version
Quick Troubleshooting
If pbi-cli isn't working, run these checks in order:
# 1. Is pbi-cli installed correctly?
pbi --version
pbi setup --info
# 2. Is Power BI Desktop running with a model open?
pbi connect
# 3. Is the connection still alive?
pbi connections last
# 4. Can you query the model?
pbi dax execute "EVALUATE ROW(\"test\", 1)"
Model Health Check
# Quick model overview
pbi --json model get
# Object counts (tables, columns, measures, relationships, partitions)
pbi --json model stats
# List all tables with column/measure counts
pbi --json table list
Query Tracing
Capture diagnostic events during DAX query execution:
# Start a trace
pbi trace start
# Execute the query you want to profile
pbi dax execute "EVALUATE SUMMARIZECOLUMNS(Products[Category], \"Total\", SUM(Sales[Amount]))"
# Stop the trace
pbi trace stop
# Fetch captured trace events
pbi --json trace fetch
# Export trace events to a file
pbi trace export ./trace-output.json
Cache Management
# Clear the formula engine cache (do this before benchmarking)
pbi dax clear-cache
Connection Diagnostics
# List all saved connections
pbi connections list
pbi --json connections list
# Show the last-used connection
pbi connections last
# Reconnect to a specific data source
pbi connect -d localhost:54321
# Disconnect
pbi disconnect
Workflow: Profile a Slow Query
# 1. Clear cache for a clean benchmark
pbi dax clear-cache
# 2. Start tracing
pbi trace start
# 3. Run the slow query
pbi dax execute "EVALUATE SUMMARIZECOLUMNS(Products[Category], \"Total\", SUM(Sales[Amount]))" --timeout 300
# 4. Stop tracing
pbi trace stop
# 5. Export trace for analysis
pbi trace export ./slow-query-trace.json
# 6. Review trace events
pbi --json trace fetch
Workflow: Model Health Audit
# 1. Model overview
pbi --json model get
pbi --json model stats
# 2. Check table sizes and structure
pbi --json table list
# 3. Review relationships
pbi --json relationship list
# 4. Check security roles
pbi --json security-role list
# 5. Export full model for offline review
pbi database export-tmdl ./audit-export/
Best Practices
- Clear cache before benchmarking:
pbi dax clear-cache - Use
--timeoutfor long-running queries to avoid premature cancellation - Export traces to files for sharing with teammates
- Run
pbi setup --infofirst when troubleshooting environment issues - Use
--jsonoutput for automated monitoring scripts - Use
pbi replfor interactive debugging sessions with persistent connection