Kotzilla Console
The Kotzilla Console is a web-based environment that helps you analyze and resolve issues in your Kotlin and Kotlin Multiplatform (KMP) applications. It provides a comprehensive suite of tools for detecting, investigating, and resolving performance and stability issues across your apps.
Automatic Issue Detection
The Kotzilla Console automatically detects and surfaces critical issues in your app without requiring any additional instrumentation of your code. It uses the Kotzilla SDK to identify the following types of issues:
- Startup performance issues: Delays in app initialization, preventing the first usable screen from appearing quickly.
- Background performance issues: Slow or resource-heavy background components or dependencies resolutions impacting app responsiveness.
- Main thread performance issues: Components or dependencies resolutions running on the main thread for over 100ms, potentially leading to freezes or ANRs.
- Dependency performance issues: Inefficient resolution of dependencies slowing down app responsiveness.
- Dependency complexity issues: Complex dependency graphs with more than five child dependencies, increasing maintenance and performance risks.
- Child dependency performance issues: Dependencies taking over 5ms to resolve, causing cascading performance slowdowns.
- Crash detection: Unhandled exceptions and hard crashes that terminate the app unexpectedly.
Investigating issues and root cause analysis
The Kotzilla Console is designed for in-depth issue investigation and root cause analysis. It offers several views that provide rich contextual information to help you quickly diagnose and fix problems.
Dashboard View
The Dashboard is the first view you’ll see when accessing the Kotzilla Console for a specific app and version. It provides a comprehensive snapshot of your app's current health, performance, and user activity, enabling you to identify and prioritize issues efficiently.
The main view of the Dashboard is organized into three main sections:
App vitals overview
This section gives you a high-level summary of your app’s current state, including, total user sessions captured, total events consumed, devices detected, issues detected and open issues
Issues summary
Displays all remaining open issues for a particular app version, including details such issue overview and description, severity level and number of impacted sessions.
A pie chart is also available to categorize open issues by type for a selected app version:
- Crashes: unhandled errors or hard crashes
- Performance: slow startup times, delayed component resolutions, thread blocking (main/background)
- Architecture: complex dependency graphs that may affect maintainability and scalability
Recent user sessions recorded
Shows the latest user sessions recorded for a particular app version, including information about session duration and the complexity of dependency graph resolution.
Version performance comparison
The Dashboard also proposes a second view called Release Comparison that lets you compare the behavior and performance of different app versions to identify regressions or improvements. Metrics available for comparison include total user sessions, number of issues detected, number of affected devices and average session duration
Simply select the builds you want to compare, and the Console will automatically generate the insights.
Issues View
The Issues View provides detailed visibility into all detected issues across your app, including crashes, performance problems, and architectural issues identified via the Kotzilla SDK API. It offers two complementary views to help you monitor, prioritize, and resolve problems effectively.
All Issues View
This view displays the complete list of issues, with filtering options by app version, issue type, impacted class, and full-text search across properties. For each issue, the view includes key information such as:
- Issue description: a concise explanation of the issue type and its impact
- Impacted user sessions: the number of sessions in which the issue was observed
- Affected app versions: versions of the app impacted by the issue
- Issue status: whether the issue is open, acknowledged, or closed
- Severity level: classification as Critical, High, Medium, or Low
Severity is determined using an algorithm based on the Apdex methodology, which evaluates how far an issue deviates from its defined performance targets and tolerances. This ensures consistent, objective prioritization based on real impact.
Issues by Class view
This view groups issues by the app classes they affect, such as ViewModel, ListenableWorker, or DataRepository. It allows you to:
- Identify components or dependencies most commonly associated with issues
- Analyze patterns and trends across different parts of your app architecture
- Improve debugging workflows by targeting problematic classes directly
You can click on any issue to view detailed information such as stack traces for crashes, or explanations on the cause of the issue for performance, memory and app complexity problems. The issue details view also shows impacted user sessions, allowing you to continue the investigation down to specific user sessions
Timeline View
The Timeline View offers a complete, interactive picture of a specific user session to help you quickly understand app behavior and investigate the root causes of issues.
You can access the Timeline View by:
- Selecting a specific user session from the Sessions View
- Jumping directly from a flagged issue in the Issues View, where the view will focus on the session and event involved
The view is organized into three main sections:
Key user session moments
At the top of the screen, this visual timeline highlights key moments across the session such as screen transitions, crashes, and issues detected by the platform. You can zoom in to narrow the focus, and the other two sections will automatically update to reflect the selected time range.
Session activity graphs (left section)
This section gives you a visual breakdown of how the session behaved under the hood, helping you analyze both app workload and execution flow. It includes:
- A dependency resolution graph, which shows how many instances were requested and created at different moments during the session
- A thread timeline, providing a visual representation of how key events were scheduled and executed across your app’s threads
Two other tabs give access to session-level context:
- Session summary: Displays device information, OS version, app version, and the timestamp of the session’s creation
- Session properties: Shows custom metadata you’ve attached to the session using the Kotzilla SDK API, such as user preferences, app settings, or environment flags
Detailed event insights (right section)
This section provides a deep dive into everything that occurred during the session, making it easier to trace specific issues or understand system behavior.
Here you’ll find:
- The full sequence of events, including component and dependency resolutions, their types, bindings, and additional metadata
- Issues flagged by the platform, displayed in context and directly linked to the components or dependencies involved
- This section updates in sync with the others, so filtering or zooming in any view refines the data you see here.
A tree graph view displaying child nodes for each component resolution event, allows you to visually explore dependency hierarchies and see graphically which dependency resolutions are taking more time
Koin IDE Plugin integration
If you want to view and address issues directly within your development environment, the Koin IDE Plugin integrates with the Kotzilla Console. The plugin includes a Issues view that lists detected issues and impacted user sessions within your IDE. You can use the plugin to view a list of detected issues and then explore the details in the Kotzilla Console for further investigation.