Flutter应用性能监控插件talker_azure_application_insights_observer的使用

发布于 1周前 作者 itying888 来自 Flutter

Flutter应用性能监控插件talker_azure_application_insights_observer的使用

使用

要将所有日志事件从Talker转发到Azure Application Insights,您可以使用talker_azure_application_insights_observer插件。以下是一个简单的示例:

import 'package:talker/talker.dart';
import 'package:talker_azure_application_insights_observer/talker_azure_application_insights_observer.dart';

void main() {
  // 初始化TalkerAzureApplicationInsightsObserver,并传入连接字符串
  final azureInsightsObserver = TalkerAzureApplicationInsightsObserver(
      connectionString: '<APPLICATION_INSIGHTS_CONNECTION_STRING>');

  // 创建Talker实例,并将其观察者设置为azureInsightsObserver
  final talker = Talker(observer: azureInsightsObserver);

  // 发送一条信息级别的日志消息到Azure Application Insights
  talker.info('Info message sent via Talker to Azure Application Insights');
}

在上述代码中:

  • connectionString 是Azure Application Insights的连接字符串,用于配置与Azure Application Insights的连接。
  • talker.info 方法用于发送信息级别的日志消息。

额外信息

如果该插件部署在Azure上并且已经设置了与Application Insights的连接,那么它会自动进行配置。自动配置通过读取环境变量 APPLICATIONINSIGHTS_CONNECTION_STRING 来实现。

或者,您也可以直接传递一个连接字符串或现有的 TelemetryClient 实例。

如果没有提供参数且环境变量不存在,观察者将不会提交任何日志(但也不会产生错误)。


完整示例Demo

以下是完整的示例代码,您可以将其复制并运行以查看效果:

import 'package:flutter/material.dart';
import 'package:talker/talker.dart';
import 'package:talker_azure_application_insights_observer/talker_azure_application_insights_observer.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('Flutter App with Azure Application Insights'),
        ),
        body: Center(
          child: ElevatedButton(
            onPressed: () {
              // 初始化TalkerAzureApplicationInsightsObserver,并传入连接字符串
              final azureInsightsObserver = TalkerAzureApplicationInsightsObserver(
                  connectionString: '<APPLICATION_INSIGHTS_CONNECTION_STRING>');

              // 创建Talker实例,并将其观察者设置为azureInsightsObserver
              final talker = Talker(observer: azureInsightsObserver);

              // 发送一条信息级别的日志消息到Azure Application Insights
              talker.info('Info message sent via Talker to Azure Application Insights');
            },
            child: Text('Send Info Message to Azure Application Insights'),
          ),
        ),
      ),
    );
  }
}

更多关于Flutter应用性能监控插件talker_azure_application_insights_observer的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter应用性能监控插件talker_azure_application_insights_observer的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


在Flutter应用中使用talker_azure_application_insights_observer插件进行性能监控,可以帮助你收集和分析应用运行时的各种性能指标。以下是一个基本的代码示例,展示了如何在Flutter项目中集成和使用这个插件。

步骤 1: 添加依赖

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

dependencies:
  flutter:
    sdk: flutter
  talker_azure_application_insights_observer: ^最新版本号 # 请替换为实际最新版本号

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

步骤 2: 配置Application Insights

你需要在Azure门户中创建一个Application Insights资源,并获取其Instrumentation Key。

步骤 3: 初始化插件

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

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

void main() {
  // 替换为你的Instrumentation Key
  const String instrumentationKey = 'your-instrumentation-key-here';

  // 初始化Application Insights Observer
  ApplicationInsightsObserver.initialize(instrumentationKey: instrumentationKey);

  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: MyHomePage(),
    );
  }
}

class MyHomePage extends StatefulWidget {
  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Flutter Application Insights Demo'),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            Text(
              'You have pushed the button this many times:',
            ),
            Text(
              '0',
              style: Theme.of(context).textTheme.headline4,
            ),
          ],
        ),
      ),
      floatingActionButton: FloatingActionButton(
        onPressed: () {
          // 模拟一个性能事件
          ApplicationInsightsObserver.trackEvent(
            name: 'buttonClicked',
            properties: {'customProperty': 'customValue'},
          );
          
          // 模拟一个页面视图
          ApplicationInsightsObserver.trackPageView(name: '/home');
          
          // 模拟一个自定义指标
          ApplicationInsightsObserver.trackMetric(
            name: 'customMetric',
            value: 42.0,
          );
          
          setState(() {}); // 更新UI以模拟交互
        },
        tooltip: 'Increment',
        child: Icon(Icons.add),
      ), // This trailing comma makes auto-formatting nicer for build methods.
    );
  }
}

解释

  1. 依赖添加:在pubspec.yaml文件中添加依赖。
  2. 初始化:在main.dart文件的main函数中,使用ApplicationInsightsObserver.initialize方法初始化插件,并传入你的Instrumentation Key。
  3. 事件跟踪:在按钮点击事件中,使用ApplicationInsightsObserver.trackEvent方法记录事件。
  4. 页面视图跟踪:使用ApplicationInsightsObserver.trackPageView方法记录页面视图。
  5. 自定义指标跟踪:使用ApplicationInsightsObserver.trackMetric方法记录自定义指标。

注意事项

  • 确保你的Instrumentation Key是正确的,并且你的Azure Application Insights资源是可访问的。
  • 根据你的实际需求,调整事件、页面视图和自定义指标的名称和属性。
  • 在生产环境中,注意保护你的Instrumentation Key,避免泄露。

这个示例展示了如何在Flutter应用中集成talker_azure_application_insights_observer插件,并进行基本的性能监控。你可以根据具体需求进一步扩展和定制。

回到顶部