Flutter监控与指标收集插件pip_services4_prometheus的使用
Prometheus 组件用于 Dart #
此模块是 Pip.Services 多语言微服务工具包的一部分。
该模块包含在 Prometheus 服务中工作的计数器组件。PrometheusCounters 和 PrometheusMetricsService 组件允许你通过 PushGateway 以客户端模式工作,也可以作为服务。
该模块包含以下包:
- Build - 默认工厂,用于构建组件。
- Count - 计数器(指标)组件,通过 PushGateway 将数据发送到 Prometheus。
- Services - 服务组件,用于通过 Prometheus 服务读取计数器(指标)。
使用 #
在你的 `pubspec.yaml` 文件中添加以下内容:dependencies:
pip_services4_prometheus: version
现在你可以从命令行安装包:
pub get
开发 #
你需要安装以下前提条件:- Dart SDK 3
- Visual Studio Code 或其他你选择的 IDE
- Docker
安装依赖项:
pub get
运行自动化测试:
pub run test
生成 API 文档:
./docgen.ps1
在提交更改之前,运行容器化构建和测试:
./build.ps1
./test.ps1
./clear.ps1
联系人 #
该库由以下人员创建和维护:- Sergey Seroukhov
- Levichev Dmitry
文档由以下人员编写:
- Levichev Dmitry
- Mark Makarychev
示例代码:example/main.dart
// 导入必要的包
import 'package:pip_services4_components/pip_services4_components.dart';
import 'package:pip_services4_prometheus/pip_services4_prometheus.dart';
void main() async {
// 配置 Prometheus 监控服务
var restConfig = ConfigParams.fromTuples([
‘connection.protocol’,
‘http’,
‘connection.host’,
‘localhost’,
‘connection.port’,
3000
]);
// 创建 PrometheusCounters 和 PrometheusMetricsController 实例
PrometheusMetricsController controller;
PrometheusCounters counters;
controller = PrometheusMetricsController();
counters = PrometheusCounters();
// 配置控制器
controller.configure(restConfig);
// 设置上下文信息
var contextInfo = ContextInfo();
contextInfo.name = ‘Test’;
contextInfo.description = ‘This is a test container’;
// 设置引用
var references = References.fromTuples([
Descriptor(‘pip-services’, ‘context-info’, ‘default’, ‘default’, ‘1.0’),
contextInfo,
Descriptor(‘pip-services’, ‘counters’, ‘prometheus’, ‘default’, ‘1.0’),
counters,
Descriptor(
‘pip-services’, ‘metrics-controller’, ‘prometheus’, ‘default’, ‘1.0’),
controller
]);
// 设置引用
counters.setReferences(references);
controller.setReferences(references);
// 打开计数器和服务
await counters.open(null);
await controller.open(null);
// 收集一些指标
counters.incrementOne(‘test.counter1’); // 增加一个计数器
counters.stats(‘test.counter2’, 2); // 添加统计数据
counters.last(‘test.counter3’, 3); // 设置最后值
counters.timestampNow(‘test.counter4’); // 记录当前时间戳
// 所有指标可以在 http://localhost:3000/metrics 访问
// 配置 Prometheus 服务以轮询此主机
// …
// 关闭计数器和服务
await controller.close(null);
await counters.close(null);
}
更多关于Flutter监控与指标收集插件pip_services4_prometheus的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter监控与指标收集插件pip_services4_prometheus的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
pip_services4_prometheus
是一个用于在 Flutter 应用中集成 Prometheus 监控和指标收集的插件。Prometheus 是一个开源的系统监控和警报工具包,广泛用于监控微服务架构中的各种指标。
安装插件
首先,你需要在 pubspec.yaml
文件中添加 pip_services4_prometheus
插件的依赖:
dependencies:
pip_services4_prometheus: ^0.0.1
然后运行 flutter pub get
来安装依赖。
初始化 Prometheus 客户端
在使用 pip_services4_prometheus
之前,你需要初始化 Prometheus 客户端。以下是一个简单的初始化示例:
import 'package:pip_services4_prometheus/pip_services4_prometheus.dart';
void main() {
var prometheus = PrometheusClient();
prometheus.configure(ConfigParams.fromTuples([
'connection.protocol', 'http',
'connection.host', 'localhost',
'connection.port', 9090,
]));
prometheus.open(null).then((_) {
print('Prometheus client initialized');
});
}
收集和暴露指标
pip_services4_prometheus
提供了多种方法来收集和暴露指标。以下是一些常见的用法:
1. 计数器 (Counter)
计数器用于记录某些事件的发生次数。
var counter = prometheus.getCounter('my_counter', 'A simple counter');
counter.increment();
2. 计量器 (Gauge)
计量器用于记录当前的值,例如内存使用量。
var gauge = prometheus.getGauge('my_gauge', 'A simple gauge');
gauge.set(42);
3. 直方图 (Histogram)
直方图用于记录值的分布情况。
var histogram = prometheus.getHistogram('my_histogram', 'A simple histogram');
histogram.observe(3.7);
4. 摘要 (Summary)
摘要用于记录值的分布情况,并提供百分位数。
var summary = prometheus.getSummary('my_summary', 'A simple summary');
summary.observe(3.7);
暴露指标
Prometheus 通过 HTTP 端点来抓取指标。你可以使用 PrometheusMetricsService
来暴露这些指标:
var metricsService = PrometheusMetricsService();
metricsService.configure(ConfigParams.fromTuples([
'connection.protocol', 'http',
'connection.host', 'localhost',
'connection.port', 8080,
]));
metricsService.open(null).then((_) {
print('Metrics service started');
});
配置 Prometheus
在 Prometheus 的配置文件中,添加以下内容来抓取 Flutter 应用的指标:
scrape_configs:
- job_name: 'flutter_app'
static_configs:
- targets: ['localhost:8080']