43 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Perl
		
	
	
	
	
	
			
		
		
	
	
			43 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Perl
		
	
	
	
	
	
| package App::Netdisco::DB::Result::Virtual::PollerPerformance;
 | |
| 
 | |
| use strict;
 | |
| use warnings;
 | |
| 
 | |
| use base 'DBIx::Class::Core';
 | |
| 
 | |
| __PACKAGE__->table_class('DBIx::Class::ResultSource::View');
 | |
| 
 | |
| __PACKAGE__->table('poller_performance');
 | |
| __PACKAGE__->result_source_instance->is_virtual(1);
 | |
| __PACKAGE__->result_source_instance->view_definition(<<ENDSQL
 | |
|   SELECT action, entered, to_char( entered, 'YYYY-MM-DD HH24:MI:SS' ) AS entered_stamp,
 | |
|       COUNT( device ) AS number, MIN( started ) AS start, MAX( finished ) AS end,
 | |
|       justify_interval( extract ( epoch FROM( max( finished ) - min( started ) ) ) * interval '1 second' ) AS elapsed 
 | |
|     FROM admin
 | |
|     WHERE action IN ( 'discover', 'macsuck', 'arpnip', 'nbtstat' ) 
 | |
|     GROUP BY action, entered 
 | |
|     HAVING count( device ) > 1 
 | |
|     ORDER BY entered DESC, elapsed DESC
 | |
|     LIMIT 30
 | |
| ENDSQL
 | |
| );
 | |
| 
 | |
| __PACKAGE__->add_columns(
 | |
|   "action",
 | |
|   { data_type => "text", is_nullable => 1 },
 | |
|   "entered",
 | |
|   { data_type => "timestamp", is_nullable => 1 },
 | |
|   "entered_stamp",
 | |
|   { data_type => "text", is_nullable => 1 },
 | |
|   "number",
 | |
|   { data_type => "integer", is_nullable => 1 },
 | |
|   "start",
 | |
|   { data_type => "timestamp", is_nullable => 1 },
 | |
|   "end",
 | |
|   { data_type => "timestamp", is_nullable => 1 },
 | |
|   "elapsed",
 | |
|   { data_type => "interval", is_nullable => 1 },
 | |
| );
 | |
| 
 | |
| 1;
 |