influxdb: per-backend stats

This commit is contained in:
Birte Kristina Friesel 2024-07-26 19:20:50 +02:00
parent 5354a6f6c5
commit f1ef2e472a
No known key found for this signature in database
GPG key ID: B63118F7196EA660

View file

@ -29,7 +29,7 @@ sub run {
my $active = $now->clone->subtract( months => 1 ); my $active = $now->clone->subtract( months => 1 );
my @stats; my @stats;
my @stations; my @backend_stats;
my @traewelling; my @traewelling;
push( push(
@ -85,50 +85,31 @@ sub run {
) )
); );
my @backends = $self->app->stations->get_backends;
for my $backend (@backends) {
push( push(
@stations, @backend_stats,
query_to_influx( [
'iris', $backend->{iris} ? 'IRIS' : $backend->{name},
$db->select( $db->select(
'stations', 'stations',
'count(*) as count', 'count(*) as count',
{ {
source => 0, source => $backend->{id},
archived => 0 archived => 0
} }
)->hash->{count} )->hash->{count},
)
);
push(
@stations,
query_to_influx(
'hafas',
$db->select( $db->select(
'stations', 'related_stations',
'count(*) as count', 'count(*) as count',
{ {
source => 1, backend_id => $backend->{id},
archived => 0
} }
)->hash->{count} )->hash->{count}
) ]
);
push(
@stations,
query_to_influx(
'archived',
$db->select( 'stations', 'count(*) as count', { archived => 1 } )
->hash->{count}
)
);
push(
@stations,
query_to_influx(
'meta',
$db->select( 'related_stations', 'count(*) as count' )
->hash->{count}
)
); );
}
push( push(
@traewelling, @traewelling,
@ -167,10 +148,18 @@ sub run {
. $self->app->config->{influxdb}->{url} . $self->app->config->{influxdb}->{url}
. ' stats ' . ' stats '
. join( ',', @stats ) ); . join( ',', @stats ) );
$self->app->log->debug( 'POST ' for my $backend_entry (@backend_stats) {
$self->app->log->debug(
'POST '
. $self->app->config->{influxdb}->{url} . $self->app->config->{influxdb}->{url}
. ' stations ' . ' stations,backend='
. join( ',', @stations ) ); . $backend_entry->[0]
. sprintf(
' count=%d,meta=%d',
$backend_entry->[1], $backend_entry->[2]
)
);
}
$self->app->log->debug( 'POST ' $self->app->log->debug( 'POST '
. $self->app->config->{influxdb}->{url} . $self->app->config->{influxdb}->{url}
. ' traewelling ' . ' traewelling '
@ -181,10 +170,16 @@ sub run {
$self->app->config->{influxdb}->{url}, $self->app->config->{influxdb}->{url},
'stats ' . join( ',', @stats ) 'stats ' . join( ',', @stats )
)->wait; )->wait;
$self->app->ua->post_p( my $buf = q{};
$self->app->config->{influxdb}->{url}, for my $backend_entry (@backend_stats) {
'stations ' . join( ',', @stations ) $buf
)->wait; .= "\nstations,backend="
. $backend_entry->[0]
. sprintf( ' count=%d,meta=%d',
$backend_entry->[1], $backend_entry->[2] );
}
$self->app->ua->post_p( $self->app->config->{influxdb}->{url}, $buf )
->wait;
$self->app->ua->post_p( $self->app->ua->post_p(
$self->app->config->{influxdb}->{url}, $self->app->config->{influxdb}->{url},
'traewelling ' . join( ',', @traewelling ) 'traewelling ' . join( ',', @traewelling )