Skip to content

Telemetry for Android Registration Client #648

@Pragya279

Description

@Pragya279

1. Ticket Contents: Description

This feature focuses on implementing a telemetry system within the Flutter-based Android Registration Client to collect data on user behavior and application performance.

Currently, there is limited visibility into how users interact with the application and where performance issues may occur. By integrating telemetry, the system will enable data-driven decision-making, helping product and engineering teams identify usage patterns, detect bottlenecks, monitor crashes, and continuously improve the user experience.

The feature will ensure that telemetry data is collected securely, respects user privacy, and can be configured based on deployment needs.

2. Goals & Mid-Point Milestone

Overall Goals

  • Integrate a telemetry library/service into the Flutter application
  • Capture user interaction events (clicks, navigation, flows)
  • Collect application performance metrics (startup time, response latency)
  • Capture device metadata (model, OS version, app version)
  • Log errors, exceptions, and crash reports
  • Enable secure transmission of telemetry data to backend systems
  • Ensure compliance with privacy regulations (user consent, opt-in/opt-out)
  • Provide dashboards and reporting for analysis
  • Ensure minimal performance overhead due to telemetry

Mid-Point Milestone (1.5 Months)

  • Basic telemetry SDK integration in Flutter app
  • Capture core user events (screen navigation, key actions)
  • Capture basic performance metrics (app startup time)
  • Implement error and crash logging
  • Backend endpoint integration for telemetry ingestion
  • Basic configuration toggle to enable/disable telemetry

3. Expected Outcome

The final implementation will provide a robust and scalable telemetry framework embedded within the Flutter application:

  • The system will automatically capture and log user interactions, enabling visibility into user journeys and feature usage
  • Performance metrics such as app startup time, API response times, and screen load times will be tracked continuously
  • Crash reports and error logs will be collected to help quickly identify and debug issues
  • Telemetry data will be securely transmitted and stored in backend systems for further analysis
  • Users will have control over telemetry collection through consent mechanisms and configuration settings
  • Product and engineering teams will be able to access dashboards and reports to analyze trends, detect anomalies, and make informed decisions
  • The telemetry system will be optimized to ensure no noticeable degradation in app performance or user experience

4. Acceptance Criteria

  • AC1: A telemetry library/service is successfully integrated into the Flutter application
  • AC2: The system captures user events such as button clicks and screen navigation
  • AC3: Application performance metrics (e.g., startup time, response time) are collected
  • AC4: Device information (device model, OS version, app version) is captured
  • AC5: Error logs and crash reports are recorded and accessible
  • AC6: Telemetry data is securely transmitted to a backend server for storage and analysis
  • AC7: User consent is obtained before collecting telemetry data, in compliance with privacy regulations
  • AC8: Users can enable or disable telemetry collection via configuration settings
  • AC9: Dashboards and reports are available for visualizing telemetry data
  • AC10: Telemetry implementation does not significantly impact application performance or user experience

5. Implementation Details

Architecture

  • Client-side telemetry module integrated within the Flutter app
  • Backend telemetry ingestion service for data collection and storage
  • Analytics and visualization layer for dashboards and reporting

Client-Side (Flutter)

  • Integration with telemetry/analytics SDKs such as:

    • Firebase Analytics / Crashlytics
    • OpenTelemetry (if standardized approach is preferred)
  • Event tracking framework:

    • Structured event logging (event name, timestamp, metadata)
  • Performance monitoring:

    • App startup time tracking
    • API latency measurement
  • Error tracking:

    • Exception handling hooks
    • Crash reporting integration

Backend

  • Secure API endpoints for telemetry ingestion
  • Data storage (e.g., Elasticsearch, BigQuery, or similar analytics store)
  • Data processing pipelines for aggregation and analysis

Security & Privacy

  • Data encryption in transit (HTTPS) and at rest
  • User consent management (opt-in/opt-out mechanism)
  • Anonymization or pseudonymization of sensitive data
  • Compliance with regulations (e.g., GDPR)

Configurability

  • Feature flags to enable/disable telemetry
  • Configurable event tracking levels
  • Environment-based configurations (dev, staging, production)

Performance Considerations

  • Asynchronous event logging
  • Batching and throttling of telemetry data
  • Minimal resource usage (CPU, memory, network)

Product Name

MOSIP - Android Registration Client

Organisation Name

C4GT

Tech Skills Needed

Java, Android Development

Organizational Mentor

Feature Support : @Pragya279
Tech Support: @SachinPremkumar

Complexity

Medium

Category

Spike

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions