summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Friesel <derf@finalrewind.org>2023-01-02 06:20:07 +0100
committerDaniel Friesel <derf@finalrewind.org>2023-01-02 06:20:07 +0100
commit4c1ae6d045354fa2c95478e4523d67ae56352ce8 (patch)
tree7e78c5a55d814185f61ef8a0430d0ff64fbd43a7
parent4b8fd09b272fc8cbc22a2f705e216f1eb6238722 (diff)
influxdb command: directly write to db rather than stdout
-rw-r--r--lib/Travelynx/Command/influxdb.pm45
1 files changed, 30 insertions, 15 deletions
diff --git a/lib/Travelynx/Command/influxdb.pm b/lib/Travelynx/Command/influxdb.pm
index 5642261..4dad1d3 100644
--- a/lib/Travelynx/Command/influxdb.pm
+++ b/lib/Travelynx/Command/influxdb.pm
@@ -28,10 +28,11 @@ sub run {
my $now = DateTime->now( time_zone => 'Europe/Berlin' );
my $active = $now->clone->subtract( months => 1 );
- my @out;
+ my @stats;
+ my @traewelling;
push(
- @out,
+ @stats,
query_to_influx(
'pending_user_count',
$db->select( 'users', 'count(*) as count', { status => 0 } )
@@ -39,7 +40,7 @@ sub run {
)
);
push(
- @out,
+ @stats,
query_to_influx(
'reg_user_count',
$db->select( 'users', 'count(*) as count', { status => 1 } )
@@ -47,7 +48,7 @@ sub run {
)
);
push(
- @out,
+ @stats,
query_to_influx(
'active_user_count',
$db->select(
@@ -62,30 +63,30 @@ sub run {
);
push(
- @out,
+ @stats,
query_to_influx(
'checked_in_count',
$db->select( 'in_transit', 'count(*) as count' )->hash->{count}
)
);
push(
- @out,
+ @stats,
query_to_influx(
'checkin_count',
$db->select( 'journeys', 'count(*) as count' )->hash->{count}
)
);
push(
- @out,
+ @stats,
query_to_influx(
'polyline_count',
$db->select( 'polylines', 'count(*) as count' )->hash->{count}
)
);
push(
- @out,
+ @traewelling,
query_to_influx(
- 'traewelling_pull_count',
+ 'pull_user_count',
$db->select(
'traewelling',
'count(*) as count',
@@ -94,9 +95,9 @@ sub run {
)
);
push(
- @out,
+ @traewelling,
query_to_influx(
- 'traewelling_push_count',
+ 'push_user_count',
$db->select(
'traewelling',
'count(*) as count',
@@ -105,7 +106,7 @@ sub run {
)
);
push(
- @out,
+ @stats,
query_to_influx(
'polyline_ratio',
$db->query(
@@ -114,7 +115,21 @@ sub run {
)
);
- say join( ',', @out );
+ if ( $self->app->config->{influxdb}->{url} ) {
+ $self->app->ua->post_p(
+ $self->app->config->{influxdb}->{url},
+ 'stats ' . join( ',', @stats )
+ )->wait;
+ $self->app->ua->post_p(
+ $self->app->config->{influxdb}->{url},
+ 'traewelling ' . join( ',', @traewelling )
+ )->wait;
+ }
+ else {
+ $self->app->log->warn(
+ "influxdb command called, but no influxdb url has been configured");
+ }
+
return;
}
@@ -124,6 +139,6 @@ __END__
=head1 SYNOPSIS
- Usage: index.pl influx
+ Usage: index.pl influxdb
- Write statistics for InfluxDB to stdout
+ Write statistics to InfluxDB