saveStats method
Implementation
Future saveStats(int queriesCount, int timeMs) async {
if (config.getOptional<String>('influx.url', 'none') == 'none') {
return;
}
var client = InfluxDBClient(
url: config.getRequired<String>('influx.url'),
token: config.getRequired<String>('influx.token'),
org: config.getRequired<String>('influx.org'),
bucket: config.getRequired<String>('influx.bucket'),
);
// Create write service
var writeApi = client.getWriteService(WriteOptions().merge(precision: WritePrecision.s, batchSize: 100, flushInterval: 5000, gzip: true));
var time = DateTime.now().toUtc();
var taggedPoint = Point(
'$pointPrefix${prefix}_api',
).addTag('service_id', serviceId.toString()).addTag('action', className).addField('response_time', timeMs).addField('db_queries', queriesCount);
var untaggedPoint = Point(
'$pointPrefix${prefix}_api',
).addTag('service_id', 'ALL').addTag('action', 'ALL').addField('response_time', timeMs).addField('db_queries', queriesCount);
tags.forEach((key, value) {
taggedPoint.addTag(key, value);
untaggedPoint.addTag(key, 'ALL');
});
points.add(taggedPoint);
points.add(untaggedPoint);
for (var i = 0; i < points.length; i++) {
points[i].time(time);
}
await writeApi.write(points).catchError((exception) {
print('STATS SAVE ERROR');
print(exception);
});
}