Mojo-Netdata

 view release on metacpan or  search on metacpan

lib/Mojo/Netdata/Collector.pm  view on Meta::CPAN

    $self->emit_data;
    logf(debug => 'Will update in %0.3fs...', $next_time - time);
    return Mojo::Promise->timer($next_time - time);
  })->then(sub {
    delete $self->{recurring_update_p};
    return $self->recurring_update_p;
  });
}

sub register ($self, $config, $netdata) { }
sub update_p ($self)                    { Mojo::Promise->resolve }

sub emit_data ($self) {
  my @stdout = map { $self->charts->{$_}->data_to_string } sort keys %{$self->charts};
  return $self->emit(stdout => join '', @stdout);
}

sub emit_charts ($self) {
  my @stdout = map { $self->charts->{$_}->to_string } sort keys %{$self->charts};
  return $self->emit(stdout => join '', @stdout);
}

lib/Mojo/Netdata/Collector.pm  view on Meta::CPAN

Mojo::Netdata::Collector - Base class for Mojo::Netdata collectors

=head1 SYNOPSIS

  package Mojo::Netdata::Collector::CoolBeans;
  use Mojo::Base 'Mojo::Netdata::Collector', -signatures;

  has type    => 'ice_cool';

  sub register ($self, $config, $netdata) { ... }
  sub update_p ($self) { ... }

  1;

=head1 DESCRIPTION

L<Mojo::Netdata::Collector> has basic functionality which should be inherited
by L<Mojo::Netdata> collectors. See L<Mojo::Netdata::Collector::HTTP> for an
(example) implementation.

=head1 ATTRIBUTES

lib/Mojo/Netdata/Collector/HTTP.pm  view on Meta::CPAN


  my @jobs = ref $config->{jobs} eq 'HASH' ? %{$config->{jobs}} : @{$config->{jobs}};
  while (my $url = shift @jobs) {
    my $job = $self->_make_job($url => ref $jobs[0] eq 'HASH' ? shift @jobs : {}, $config);
    push @{$self->jobs}, $job if $job;
  }

  return @{$self->jobs} ? $self : undef;
}

sub update_p ($self) {
  my ($ua, @p) = ($self->ua);

  return Mojo::Promise->map(
    {concurrency => $self->concurrency},
    sub {
      my ($job, $t0) = ($_, time);
      my $tx = $ua->build_tx(@{$job->[0]});
      return $ua->start_p($tx)->then(sub ($tx) {
        $job->[1]->($tx, $t0);
      })->catch(sub ($err) {



( run in 0.403 second using v1.01-cache-2.11-cpan-4d4bc49f3ae )