diff options
author | Daniel Friesel <derf@finalrewind.org> | 2023-01-02 06:20:07 +0100 |
---|---|---|
committer | Daniel Friesel <derf@finalrewind.org> | 2023-01-02 06:20:07 +0100 |
commit | 4c1ae6d045354fa2c95478e4523d67ae56352ce8 (patch) | |
tree | 7e78c5a55d814185f61ef8a0430d0ff64fbd43a7 /lib/Travelynx/Command | |
parent | 4b8fd09b272fc8cbc22a2f705e216f1eb6238722 (diff) |
influxdb command: directly write to db rather than stdout
Diffstat (limited to 'lib/Travelynx/Command')
-rw-r--r-- | lib/Travelynx/Command/influxdb.pm | 45 |
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 |