Alt-NewRelic-Agent-FFI-Empty

 view release on metacpan or  search on metacpan

lib/NewRelic/Agent/FFI.pm  view on Meta::CPAN

package NewRelic::Agent::FFI;

use strict;
use warnings;
use 5.010;
use NewRelic::Agent::FFI::Procedural ();

# ABSTRACT: Perl Agent for NewRelic APM
our $VERSION = '0.08';


sub new
{
  my($class, %args) = @_;

  my $license_key          = delete $args{license_key}
                          || $ENV{NEWRELIC_LICENSE_KEY}
                          || '';
  my $app_name             = delete $args{app_name}
                          || $ENV{NEWRELIC_APP_NAME}
                          || 'AppName';
  my $app_language         = delete $args{app_language}
                          || $ENV{NEWRELIC_APP_LANGUAGE}
                          || 'perl';
  my $app_language_version = delete $args{app_language_version}
                          || $ENV{NEWRELIC_APP_LANGUAGE_VERSION}
                          || $];

  if (%args) {
    require Carp;
    Carp::croak("Invalid arguments: @{[ keys %args ]}");
  }

  bless {
    license_key          => $license_key,
    app_name             => $app_name,
    app_language         => $app_language,
    app_language_version => $app_language_version,
  }, $class;
}


sub embed_collector
{
  NewRelic::Agent::FFI::Procedural::newrelic_register_message_handler(
    NewRelic::Agent::FFI::Procedural::newrelic_message_handler
  );
}


sub init
{
  my($self) = @_;
  NewRelic::Agent::FFI::Procedural::newrelic_init(
    $self->get_license_key,
    $self->get_app_name,
    $self->get_app_language,
    $self->get_app_language_version,
  );
}


sub begin_transaction
{
  NewRelic::Agent::FFI::Procedural::newrelic_transaction_begin();
}


sub set_transaction_name
{
  shift @_;
  goto &NewRelic::Agent::FFI::Procedural::newrelic_transaction_set_name;
}

sub set_transaction_request_url
{
  shift @_;
  goto &NewRelic::Agent::FFI::Procedural::newrelic_transaction_set_request_url;
}

sub set_transaction_max_trace_segments
{
  shift @_;
  goto &NewRelic::Agent::FFI::Procedural::newrelic_transaction_set_max_trace_segments;
}

sub set_transaction_category
{
  shift @_;
  goto &NewRelic::Agent::FFI::Procedural::newrelic_transaction_set_category;
}

sub set_transaction_type_web
{



( run in 1.633 second using v1.01-cache-2.11-cpan-5a3173703d6 )