Changeset 981917cbe864efa7811a6a3b8ad72ab7a81850bb in xas-collector


Ignore:
Timestamp:
05/18/18 14:51:35 (11 months ago)
Author:
Kevin L. Esteb <kevin@…>
Branches:
master
Children:
77a93ef643cec1754ed1c273835652462a213b4e
Parents:
0d8f666c73538b650d4873cb1199ea3323df9a5d
git-author:
Kevin L. Esteb <kevin@…> (05/18/18 14:51:35)
git-committer:
Kevin L. Esteb <kevin@…> (05/18/18 14:51:35)
Message:

added some more files

Location:
trunk
Files:
1 added
2 deleted
13 edited

Legend:

Unmodified
Added
Removed
  • trunk/MANIFEST

    rd4fb1f2b8cfe8b55c5211ef68e6c1a33c8c56761 r981917cbe864efa7811a6a3b8ad72ab7a81850bb  
    2222lib/XAS/Collector/Format/Alerts.pm 
    2323lib/XAS/Collector/Format/Logs.pm 
     24lib/XAS/Collector/Format/Nmon/Base.pm 
     25lib/XAS/Collector/Format/Nmon/Database.pm 
     26lib/XAS/Collector/Format/Nmon/ElasticSearch.pm 
     27lib/XAS/Collector/Format/Nmon/OpenTSDB.pm 
    2428lib/XAS/Collector/Output/Console/Base.pm 
    2529lib/XAS/Collector/Output/Console/Alerts.pm 
    2630lib/XAS/Collector/Output/Console/Logs.pm 
     31lib/XAS/Collector/Output/Console/Nmon/Database.pm 
     32lib/XAS/Collector/Output/Console/Nmon/ElasticSearch.pm 
     33lib/XAS/Collector/Output/Console/Nmon/OpenTSDB.pm 
    2734lib/XAS/Collector/Output/Database/Base.pm 
    2835lib/XAS/Collector/Output/Database/Alerts.pm 
    2936lib/XAS/Collector/Output/Database/Logs.pm 
     37lib/XAS/Collector/Output/Database/Nmon.pm 
    3038lib/XAS/Collector/Output/Socket/Base.pm 
    3139lib/XAS/Collector/Output/Socket/ElasticSearch.pm 
     
    3543lib/XAS/Model/Database/Messaging/Result/Alert.pm 
    3644lib/XAS/Model/Database/Messaging/Result/Log.pm 
     45lib/XAS/Model/Database/Metrics/Result/Nmon.pm 
    3746lib/XAS/Msgs/Collector.msg 
    3847logrotate.d/xas-collector 
  • trunk/debian/changelog

    ra5d05a55b5b2d3bb3188a82c517c10e9ac72a384 r981917cbe864efa7811a6a3b8ad72ab7a81850bb  
    1 libxas-collector-perl (0.03-1) unstable; urgency=low 
     1libxas-collector-perl (0.04-1) unstable; urgency=low 
    22 
    33  * Initial Release. 
  • trunk/lib/XAS/Apps/Collector/Process.pm

    r4953c21ad955ce9870d703e736228a3e418fa36d r981917cbe864efa7811a6a3b8ad72ab7a81850bb  
    7474        if ($section =~ /^collector:\s+input/) { 
    7575 
    76             my $alias = $self->cfg->val($section, 'alias'); 
     76            my ($alias) = $section =~ /^collector:(.*)/; 
     77             
    7778            my $module = $self->cfg->val($section, 'module'); 
    7879            my @parameters = $self->cfg->Parameters($section); 
    7980            my @args = $self->build_args($section, \@parameters); 
    8081 
     82            push(@args, '-alias', $alias); 
    8183            push(@args, '-types', $types); 
    8284 
     
    8890        } elsif ($section =~ /^collector:\s+format/) { 
    8991 
    90             my $alias = $self->cfg->val($section, 'alias'); 
     92            my ($alias) = $section =~ /^collector:(.*)/; 
     93 
    9194            my $module = $self->cfg->val($section, 'module'); 
    9295            my @parameters = $self->cfg->Parameters($section); 
    9396            my @args = $self->build_args($section, \@parameters); 
    9497 
     98            push(@args, '-alias', $alias); 
     99 
    95100            load_module($module); 
    96101            $module->new(@args); 
     
    100105        } elsif ($section =~ /^collector:\s+output/) { 
    101106 
    102             my $alias = $self->cfg->val($section, 'alias'); 
     107            my ($alias) = $section =~ /^collector:(.*)/; 
     108 
    103109            my $module = $self->cfg->val($section, 'module'); 
    104110            my @parameters = $self->cfg->Parameters($section); 
    105111            my @args = $self->build_args($section, \@parameters); 
     112 
     113            push(@args, '-alias', $alias); 
    106114 
    107115            load_module($module); 
     
    180188 
    181189This defines a message type. It specifies the queue to process, the name of 
    182 the format handler, the name of the output handler and the input handler. More 
    183 then one message type can be defined. But they need to be unique. 
    184  
    185  [collector: input] 
     190the format handler, the name of the output handler and the input handler.  
     191More then one message type can be defined. But they need to be unique. 
     192 
     193 [collector: input-stomp] 
    186194 module = XAS::Collector::Input::Stomp 
    187195 port = 61613 
    188196 host = localhost 
    189  alias = input-stomp 
    190197 
    191198This defines an input handler. There can be more the one. The names must be  
    192 unique. So you can have an input1, input2, etc. The standard parameters are  
    193 the following: 
     199unique. The standard parameters are the following: 
    194200 
    195201 module - the module that will handle the input 
    196  alias  - the name of the session handling this module 
    197202 
    198203Other parameters may be defined, depending on the module that is being used.  
    199204Please check their documentation. 
    200205 
    201  [collector: format] 
     206 [collector: format-alerts] 
    202207 module = XAS::Collector::Format::Alerts 
    203  alias = format-alerts 
    204  
    205 This defines a format handler. There can be more then one. The names 
    206 must be unique, So you can have a format1, format2, etc. A format handler 
    207 formats the incoming message into a standardized data structure. This  
    208 structures is then used by the output handlers. 
     208 
     209This defines a format handler. There can be more then one. A format  
     210handler formats the incoming message into a standardized data structure.  
     211These structures are then used by the output handlers. 
    209212 
    210213The standard parameters are the following: 
    211214 
    212215 module - the module that will handle the formatting 
    213  alias  - the name of the session handling this module 
    214216 
    215217There are no additional parameters. 
    216218 
    217  [collector: output] 
     219 [collector: output-alerts] 
    218220 module = XAS::Collector::Output::Database::Alerts 
    219  alias = output-alerts 
    220221 database = messaging 
    221222 
    222223This defines an output handler. There can be more then one. The names 
    223 must be unique, So you can have a output1, output2, etc. An output handler 
    224 does something with the created data structure. Usually storing it into a  
    225 data store of some kind. But it could be used for other things. The standard  
    226 parameters are the following: 
     224must be unique. An output handler does something with the created data  
     225structure. Usually storing it into a data store of some kind. But it  
     226could be used for other things. The standard parameters are the  
     227following: 
    227228 
    228229 module - the module that will handle the output 
    229  alias  - the name of the session handling this module 
    230230 
    231231Other parameters may be defined, depending on the module that is being used.  
     
    243243 input  = input-stomp 
    244244 
    245  [collector: input] 
     245 [collector: input-stomp] 
    246246 module = XAS::Collector::Input::Stomp 
    247247 port = 61613 
    248248 host = localhost 
    249  alias = input-stomp 
    250  
    251  [collector: format] 
     249 
     250 [collector: format-alerts] 
    252251 module = XAS::Collector::Format::Alerts 
    253  alias = format-alerts 
    254  
    255  [collector: output] 
     252 
     253 [collector: output-alerts] 
    256254 module = XAS::Collector::Output::Database::Alerts 
    257  alias = output-alerts 
    258255 database = messaging 
    259256 
  • trunk/lib/XAS/Collector/Format/Alerts.pm

    r4953c21ad955ce9870d703e736228a3e418fa36d r981917cbe864efa7811a6a3b8ad72ab7a81850bb  
    117117=over 4 
    118118 
    119 =item L<XAS::Collector::Format::Base|XAS::Collector::Format::Base> 
     119=item L<XAS::Collector::Format::Nmon::Database|XAS::Collector::Format::Nmon::Database> 
     120 
     121=item L<XAS::Collector::Format::Nmon::ElasticSearch|XAS::Collector::Format::Nmon::ElasticSearch> 
     122 
     123=item L<XAS::Collector::Format::Nmon::OpenTSDB|XAS::Collector::Format::Nmon::OpenTSDB> 
     124 
     125=item L<XAS::Collector::Format::Alerts|XAS::Collector::Format::Alerts> 
    120126 
    121127=item L<XAS::Collector::Format::Logs|XAS::Collector::Format::Logs> 
    122128 
    123 =item L<XAS::Collector|XAS::Collector> 
     129=item L<XAS::Colletor|XAS::Collector> 
    124130 
    125131=item L<XAS|XAS> 
  • trunk/lib/XAS/Collector/Format/Base.pm

    r4953c21ad955ce9870d703e736228a3e418fa36d r981917cbe864efa7811a6a3b8ad72ab7a81850bb  
    7979=over 4 
    8080 
     81=item L<XAS::Collector::Format::Nmon::Database|XAS::Collector::Format::Nmon::Database> 
     82 
     83=item L<XAS::Collector::Format::Nmon::ElasticSearch|XAS::Collector::Format::Nmon::ElasticSearch> 
     84 
     85=item L<XAS::Collector::Format::Nmon::OpenTSDB|XAS::Collector::Format::Nmon::OpenTSDB> 
     86 
    8187=item L<XAS::Collector::Format::Alerts|XAS::Collector::Format::Alerts> 
    8288 
  • trunk/lib/XAS/Collector/Format/Logs.pm

    r4953c21ad955ce9870d703e736228a3e418fa36d r981917cbe864efa7811a6a3b8ad72ab7a81850bb  
    111111=over 4 
    112112 
    113 =item L<XAS::Collector::Format::Base|XAS::Collector::Format::Base> 
     113=item L<XAS::Collector::Format::Nmon::Database|XAS::Collector::Format::Nmon::Database> 
     114 
     115=item L<XAS::Collector::Format::Nmon::ElasticSearch|XAS::Collector::Format::Nmon::ElasticSearch> 
     116 
     117=item L<XAS::Collector::Format::Nmon::OpenTSDB|XAS::Collector::Format::Nmon::OpenTSDB> 
    114118 
    115119=item L<XAS::Collector::Format::Alerts|XAS::Collector::Format::Alerts> 
    116120 
    117 =item L<XAS::Collector|XAS::Collector> 
     121=item L<XAS::Collector::Format::Logs|XAS::Collector::Format::Logs> 
     122 
     123=item L<XAS::Colletor|XAS::Collector> 
    118124 
    119125=item L<XAS|XAS> 
  • trunk/lib/XAS/Collector/Output/Console/Alerts.pm

    r4953c21ad955ce9870d703e736228a3e418fa36d r981917cbe864efa7811a6a3b8ad72ab7a81850bb  
    2626    $self->log->debug("$alias: entering store_data()"); 
    2727 
    28     $buffer = sprintf('%s: hostname = %s; timestamp = %s; priority = %s; facility = %s; message = %s', 
     28    printf("%s: hostname = %s; timestamp = %s; priority = %s; facility = %s; message = %s\n", 
    2929        $alias, $data->{'hostname'}, $data->{'datetime'}, $data->{'priority'},  
    3030        $data->{'facility'}, $data->{'message'} 
    3131    ); 
    3232 
    33     $self->log->debug($buffer); 
    34     $self->log->info(Dumper($data)); 
     33    $self->log->debug(Dumper($data)); 
    3534    $self->log->info_msg('collector_processed', $alias, 1, $data->{'hostname'}, $data->{'datetime'}); 
    3635 
  • trunk/lib/XAS/Collector/Output/Console/Logs.pm

    r4953c21ad955ce9870d703e736228a3e418fa36d r981917cbe864efa7811a6a3b8ad72ab7a81850bb  
    2626    $self->log->debug("$alias: entering store_data()"); 
    2727 
    28     $buffer = sprintf('%s: hostname = %s; timestamp = %s; level = %s; facility = %s; message = %s', 
     28    printf("%s: hostname = %s; timestamp = %s; level = %s; facility = %s; message = %s\n", 
    2929        $alias, $data->{'hostname'},  
    3030        $data->{'datetime'}, $data->{'level'},  
     
    3232    ); 
    3333 
    34     $self->log->debug($buffer); 
    35  
    36     $self->log->info(Dumper($data)); 
     34    $self->log->debug(Dumper($data)); 
    3735    $self->log->info_msg('collector_processed', $alias, 1, $data->{'hostname'}, $data->{'datetime'}); 
    3836     
  • trunk/lib/XAS/Collector/Output/Socket/ElasticSearch.pm

    rd4fb1f2b8cfe8b55c5211ef68e6c1a33c8c56761 r981917cbe864efa7811a6a3b8ad72ab7a81850bb  
    11package XAS::Collector::Output::Socket::ElasticSearch; 
    22 
    3 our $VERSION = '1.0'; 
     3our $VERSION = '0.02'; 
    44 
    55use POE; 
     
    1616  accessors => 'es pubsub', 
    1717  codec     => 'JSON', 
    18   constants => 'DELIMITER', 
     18  constants => 'DELIMITER ARRAY', 
     19  utils     => 'is_truthy', 
    1920  vars => { 
    2021    PARAMS => { 
     
    2324      -cxn_pool         => { optional => 1, default => 'Static' }, 
    2425      -template_name    => { optional => 1, default => 'logstash' }, 
    25       -template_file    => { optional => 1, isa => 'Badger::Filesystem::File', default => undef }, 
     26      -template_file    => { optional => 1, default => undef }, 
    2627      -indices_template => { optional => 1, default => 'logstash-%Y.%m.%d' }, 
    2728      -install_template => { optional => 1, default => 1 }, 
     
    4647    try { 
    4748 
    48         $self->es->index( 
    49             index => $self->_current_index($data), 
    50             type  => $self->type, 
    51             body  => $data, 
    52         ); 
    53  
    54         $self->log->info_msg('collector_elastic_sent', $alias, $ack->message_id); 
     49        # if an array, bulk load the data 
     50 
     51        if (ref($data) eq ARRAY) { 
     52 
     53            my $bulk = $self->es->bulk_helper( 
     54                index     => $self->_current_index($data->[0]), 
     55                type      => $self->type, 
     56                max_count => 0, 
     57                max_size  => 0, 
     58                on_error  => undef 
     59 
     60            ); 
     61 
     62            foreach my $d (@$data) { 
     63 
     64                $bulk->index({ 
     65                    source => $d 
     66                }); 
     67 
     68            } 
     69 
     70            $bulk->flush(); 
     71 
     72        } else { 
     73 
     74            $self->es->index( 
     75                index => $self->_current_index($data), 
     76                type  => $self->type, 
     77                body  => $data, 
     78            ); 
     79 
     80        } 
     81 
     82        $self->log->info_msg('collector_data_sent', $alias, $ack->message_id); 
    5583 
    5684    } catch { 
     
    112140    my $type   = lc($ex->{'type'}); 
    113141    my $reason = $ex->{'text'}; 
    114     my $status = $ex->{'vars'}->{'status_code'}; 
     142    my $status = ($ex->{'vars'}->{'status_code'} || "") + 0; 
    115143    my $msg = sprintf('%s -- %s', $self->env->script, $reason); 
    116144 
     
    160188    ); 
    161189 
    162     $self->_es_install_template() if ($self->install_template); 
     190    if (is_truthy($self->install_template)) { 
     191         
     192        $self->_es_install_template(); 
     193           
     194    } 
    163195 
    164196    return $self; 
     
    213245    if (defined($self->template_file)) { 
    214246 
    215       $json_text = read_file($self->template_file->path); 
     247        $json_text = read_file($self->template_file->path); 
    216248 
    217249    } else { 
    218250 
    219       $json_text = read_file( \*DATA ); 
     251        $json_text = read_file( \*DATA ); 
    220252 
    221253    } 
     
    264296=head1 DESCRIPTION 
    265297 
    266 This module will store data in a Elasticsearch cluster. This interface does 
    267 not implement bulk uploads. While this does slow down storage, it was felt 
    268 that acking individual messages, thus maintaining coherency with the 
    269 message queue server, was more important then speed. You can always 
    270 run more collectors listening on the same queue.  
    271  
    272 This module emulates what Logstash does when it communicates with Elasticsearch.  
     298This module will store data in a Elasticsearch cluster. This module emulates  
     299what Logstash does when it communicates with Elasticsearch. 
    273300 
    274301=head1 METHODS 
     
    276303=head2 new 
    277304 
    278 This module inherits from L<XAS::Lib::Service|XAS::Lib::Service>  
     305This module inherits from L<XAS::Lib::Service|XAS::Lib::Service> 
    279306and takes these addtional parameters. 
    280307 
     
    292319=item B<-cxn_pool> 
    293320 
    294 The Elasticsearch connection pool. Defaults to 'Static'. Check  
     321The Elasticsearch connection pool. Defaults to 'Static'. Check 
    295322L<Search::Elasticsearch|https://metacpan.org/pod/Search::Elasticsearch> for 
    296323additional options. 
     
    320347=head2 store_data(OBJECT, ARG0...ARG2) 
    321348 
    322 This event will trigger the sending of packets to a logstash instance.  
     349This event will trigger the sending of packets to a logstash instance. 
    323350 
    324351=over 4 
     
    346373=over 4 
    347374 
     375=item L<Search::Elasticsearch|https://metacpan.org/pod/Search::Elasticsearch> 
     376 
     377=item L<XAS::Collector::Ouput::OpenTSDB|XAS::Collector::Output::Logstash> 
     378 
     379=item L<XAS::Collector::Ouput::OpenTSDB|XAS::Collector::Output::OpenTSDB> 
     380 
     381=item L<XAS::Collector|XAS::Collector> 
     382 
    348383=item L<XAS|XAS> 
    349384 
    350 =item L<XAS::Collector|XAS::Collector> 
    351  
    352 =item L<Search::Elasticsearch|https://metacpan.org/pod/Search::Elasticsearch> 
    353  
    354385=back 
    355386 
     
    360391=head1 COPYRIGHT AND LICENSE 
    361392 
    362 Copyright (c) 2012-2016 Kevin L. Esteb 
     393Copyright (c) 2012-2018 Kevin L. Esteb 
    363394 
    364395This is free software; you can redistribute it and/or modify it under 
     
    372403__DATA__ 
    373404{ 
    374   "logstash" : { 
    375     "order" : 0, 
    376     "template" : "logstash-*", 
    377     "settings" : { 
    378       "index.refresh_interval" : "5s" 
    379     }, 
    380     "mappings" : { 
    381       "_default_" : { 
    382         "dynamic_templates" : [ { 
    383           "string_fields" : { 
    384             "mapping" : { 
    385               "index" : "analyzed", 
    386               "omit_norms" : true, 
    387               "type" : "string", 
    388               "fields" : { 
    389                 "raw" : { 
    390                   "index" : "not_analyzed", 
    391                   "ignore_above" : 256, 
    392                   "type" : "string" 
    393                 } 
     405    "logstash" : { 
     406        "order" : 0, 
     407          "template" : "logstash-*", 
     408          "settings" : { 
     409              "index.refresh_interval" : "5s" 
     410          }, 
     411          "mappings" : { 
     412              "_default_" : { 
     413                  "dynamic_templates" : [ { 
     414                                              "string_fields" : { 
     415                                                  "mapping" : { 
     416                                                      "index" : "analyzed", 
     417                                                        "omit_norms" : true, 
     418                                                        "type" : "string", 
     419                                                        "fields" : { 
     420                                                            "raw" : { 
     421                                                                "index" : "not_analyzed", 
     422                                                                  "ignore_above" : 256, 
     423                                                                  "type" : "string" 
     424                                                            } 
     425                                                        } 
     426                                                  }, 
     427                                                    "match_mapping_type" : "string", 
     428                                                    "match" : "*" 
     429                                              } 
     430                                          } ], 
     431                    "properties" : { 
     432                        "geoip" : { 
     433                            "dynamic" : true, 
     434                              "path" : "full", 
     435                              "properties" : { 
     436                                  "location" : { 
     437                                      "type" : "geo_point" 
     438                                  } 
     439                              }, 
     440                              "type" : "object" 
     441                        }, 
     442                          "@version" : { 
     443                              "index" : "not_analyzed", 
     444                                "type" : "string" 
     445                          } 
     446                    }, 
     447                    "_all" : { 
     448                        "enabled" : true 
     449                    } 
    394450              } 
    395             }, 
    396             "match_mapping_type" : "string", 
    397             "match" : "*" 
    398           } 
    399         } ], 
    400         "properties" : { 
    401           "geoip" : { 
    402             "dynamic" : true, 
    403             "path" : "full", 
    404             "properties" : { 
    405               "location" : { 
    406                 "type" : "geo_point" 
    407               } 
    408             }, 
    409             "type" : "object" 
    410451          }, 
    411           "@version" : { 
    412             "index" : "not_analyzed", 
    413             "type" : "string" 
    414           } 
    415         }, 
    416         "_all" : { 
    417           "enabled" : true 
    418         } 
    419       } 
    420     }, 
    421     "aliases" : { } 
    422   } 
     452          "aliases" : { } 
     453    } 
    423454} 
    424455_ 
  • trunk/lib/XAS/Collector/Output/Socket/Logstash.pm

    r4953c21ad955ce9870d703e736228a3e418fa36d r981917cbe864efa7811a6a3b8ad72ab7a81850bb  
    11package XAS::Collector::Output::Socket::Logstash; 
    22 
    3 our $VERSION = '0.01'; 
     3our $VERSION = '0.02'; 
    44 
    55use POE; 
     
    77 
    88use XAS::Class 
    9   debug   => 0, 
    10   version => $VERSION, 
    11   base    => 'XAS::Collector::Output::Socket::Base', 
    12   codec   => 'JSON', 
     9  debug     => 0, 
     10  version   => $VERSION, 
     11  base      => 'XAS::Collector::Output::Socket::Base', 
     12  codec     => 'JSON', 
     13  constants => 'ARRAY' 
    1314; 
    1415 
     
    2930    try { 
    3031 
    31         my $packet = encode($data); 
     32        if (ref($data) eq ARRAY) { 
     33             
     34            foreach my $d (@$data) { 
     35                 
     36                my $packet = encode($data); 
    3237 
    33         $poe_kernel->call($alias, 'write_data', $packet); 
    34 #        $self->log->info_msg('send', $alias); 
     38                $poe_kernel->call($alias, 'write_data', $packet); 
     39                 
     40            } 
     41                 
     42        } else { 
     43             
     44            my $packet = encode($data); 
     45 
     46            $poe_kernel->call($alias, 'write_data', $packet); 
     47             
     48        } 
     49 
     50        $self->log->info_msg('collector_data_sent', $alias, $ack->message_id); 
    3551 
    3652    } catch { 
  • trunk/lib/XAS/Collector/Output/Socket/OpenTSDB.pm

    r4953c21ad955ce9870d703e736228a3e418fa36d r981917cbe864efa7811a6a3b8ad72ab7a81850bb  
    11package XAS::Collector::Output::Socket::OpenTSDB; 
    22 
    3 our $VERSION = '0.01'; 
     3our $VERSION = '0.02'; 
    44 
    55use POE; 
     
    2828    try { 
    2929 
    30         my $packet = sprintf("put %s", $data); 
     30        if (ref($data) eq ARRAY) { 
     31             
     32            foreach my $d (@$data) { 
     33                 
     34                my $packet = sprintf("put %s", $data); 
     35                $poe_kernel->call($alias, 'write_data', $packet); 
    3136 
    32         $poe_kernel->call($alias, 'write_data', $packet); 
    33 #        $self->log->info_msg('send', $alias); 
     37            } 
     38             
     39        } else { 
     40                 
     41            my $packet = sprintf("put %s", $data); 
     42            $poe_kernel->call($alias, 'write_data', $packet); 
     43             
     44        } 
     45 
     46        $self->log->info_msg('collector_data_sent', $alias, $ack->message_id); 
    3447 
    3548    } catch { 
  • trunk/lib/XAS/Msgs/Collector.msg

    rd4fb1f2b8cfe8b55c5211ef68e6c1a33c8c56761 r981917cbe864efa7811a6a3b8ad72ab7a81850bb  
    2424collector_notype           = %s: no message type defined 
    2525collector_waiting          = %s: waiting on connection for: %s 
    26 collector_elastic_sent     = %s: sent message %s 
     26collector_data_sent        = %s: sent message %s 
    2727colelctor_elastic_connect  = %s: using elasticsearch on %s 
    2828colelctor_elastic_template = %s: installing index template - %s 
    2929collector_elastic_error    = %s: message: %s, type: %s, status: %s; reason: %s 
    30 colector_baddate           = error: "%s" for date: "%s" 
     30collector_baddate          = error: "%s" for date: "%s" 
     31collector_invformat        = %s, host: %s, datetime: %s 
     32collector_invname          = category %s; name - "%s" is numeric 
     33collector_invcategory      = category %s is invalid 
     34collector_processed        = %s: processed %s items from: %s; time: %s 
    3135 
  • trunk/perl-XAS-Collector.spec

    rd4fb1f2b8cfe8b55c5211ef68e6c1a33c8c56761 r981917cbe864efa7811a6a3b8ad72ab7a81850bb  
    11Name:           perl-XAS-Collector 
    22Version:        0.03 
    3 Release:        1%{?dist} 
    4 Summary:        A set of processes to manage spool files 
     3Release:        2%{?dist} 
     4Summary:        A set of processes to collect and store data 
    55License:        Artistic 2.0 
    66Group:          Development/Libraries 
Note: See TracChangeset for help on using the changeset viewer.