Flutter遥测数据收集插件telemetry_sh的使用

Flutter遥测数据收集插件telemetry_sh的使用

Telemetry Sh

style: very good analysis Powered by Mason License: MIT

一个用于Dart的简单遥测日志SDK。

安装 💻

要在你的机器上开始使用Telemetry Sh,你必须安装Dart SDK。

通过dart pub add安装:

dart pub add telemetry_sh

特性

  • 将数据记录到特定表中。
  • 使用SQL查询查询遥测数据。
  • 简单易用的接口。
  • 支持额外参数进行自定义。

使用 🚀

  1. 导入包

    import 'package:telemetry_sh/telemetry_sh.dart';
    
  2. 初始化Telemetry Sh实例

    final telemetry = TelemetrySh('YOUR_API_KEY');
    
  3. 记录数据到表中

    await telemetry.log('table_name', {'key': 'value'});
    
  4. 查询遥测数据

    final data = await telemetry.query('SELECT * FROM table_name');
    

持续集成 🤖

Telemetry Sh自带了一个由Very Good Workflows支持的GitHub Actions工作流。你也可以添加自己的CI/CD解决方案。

默认情况下,在每次拉取请求和推送时,CI会格式化、校验并测试代码。这确保了代码的一致性和正确性。项目使用Very Good Analysis进行严格的分析选项。覆盖率使用Very Good Workflows来强制执行。


运行测试 🧪

要运行所有单元测试:

dart pub global activate coverage 1.2.0
dart test --coverage=coverage
dart pub global run coverage:format_coverage --lcov --in=coverage --out=coverage/lcov.info

要查看生成的覆盖率报告,可以使用lcov

# 生成覆盖率报告
genhtml coverage/lcov.info -o coverage/

# 打开覆盖率报告
open coverage/index.html

示例代码

example/main.dart

import 'dart:developer';

import 'package:telemetry_sh/telemetry_sh.dart';

void main(List<String> args) async {
  // 初始化Telemetry Sh实例,并传入API密钥
  final telemetry = TelemetrySh('test_api_key');

  // 记录用户数据到users表
  final logResponse = await telemetry.log(
    'users',
    {
      'name': 'John Doe',
      'email': 'john.doe@test.com',
    },
  );

  // 打印日志响应
  log('Log response: $logResponse');

  // 查询users表中的所有数据
  final queryResponse = await telemetry.query('SELECT * FROM users');

  // 打印查询响应
  log('Query response: $queryResponse');
}

更多关于Flutter遥测数据收集插件telemetry_sh的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter遥测数据收集插件telemetry_sh的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


telemetry_sh 是一个用于 Flutter 应用的遥测数据收集插件。它可以帮助开发者收集应用的性能和用户行为数据,以便进行分析和优化。以下是使用 telemetry_sh 插件的基本步骤:

1. 添加依赖

首先,在 pubspec.yaml 文件中添加 telemetry_sh 插件的依赖:

dependencies:
  flutter:
    sdk: flutter
  telemetry_sh: ^1.0.0  # 请使用最新版本

然后运行 flutter pub get 来安装依赖。

2. 初始化插件

在你的 Flutter 应用的入口文件(通常是 main.dart)中初始化 telemetry_sh 插件:

import 'package:flutter/material.dart';
import 'package:telemetry_sh/telemetry_sh.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  
  // 初始化 telemetry_sh
  await TelemetrySh.initialize(
    apiKey: 'YOUR_API_KEY',  // 替换为你的 API Key
    appId: 'YOUR_APP_ID',    // 替换为你的 App ID
  );

  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Telemetry Example',
      home: MyHomePage(),
    );
  }
}

3. 收集数据

telemetry_sh 提供了多种方法来收集数据,例如事件、错误、性能指标等。你可以在应用中的适当位置调用这些方法来收集数据。

记录事件

TelemetrySh.logEvent('button_clicked', parameters: {'button_id': 'login_button'});

记录错误

try {
  // 一些可能抛出异常的代码
} catch (e, stackTrace) {
  TelemetrySh.logError(e, stackTrace);
}

记录性能指标

TelemetrySh.logMetric('page_load_time', 120);  // 120 ms

4. 配置与自定义

telemetry_sh 提供了多种配置选项,允许你根据需求进行自定义。例如,你可以设置用户标识、配置数据上传频率等。

设置用户标识

TelemetrySh.setUserIdentifier('user_123');

配置数据上传频率

TelemetrySh.setUploadInterval(Duration(minutes: 5));

5. 上传数据

telemetry_sh 会自动在后台上传收集的数据。你也可以手动触发数据上传:

await TelemetrySh.upload();

6. 处理隐私和合规性

在使用遥测数据收集功能时,确保遵守当地的法律法规(如 GDPR、CCPA 等)。你可以在初始化时配置是否启用数据收集,并根据用户的隐私设置进行调整。

TelemetrySh.setDataCollectionEnabled(true);  // 或 false

7. 查看和分析数据

收集到的数据通常会发送到你配置的遥测服务器或第三方服务(如 Firebase、Google Analytics 等)。你可以通过这些平台查看和分析数据,以优化应用性能和用户体验。

8. 调试与测试

在开发和测试阶段,你可以启用调试模式来查看日志输出,确保数据收集和上传功能正常工作。

TelemetrySh.setDebugModeEnabled(true);
回到顶部