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 | |
| parent | 4b8fd09b272fc8cbc22a2f705e216f1eb6238722 (diff) | |
influxdb command: directly write to db rather than stdout
Diffstat (limited to 'lib')
| -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 | 
