Filename | /opt/flows/lib/lib/perl5/Search/Elasticsearch/Role/Client/Direct.pm |
Statements | Executed 500 statements in 4.31ms |
Calls | P | F | Exclusive Time |
Inclusive Time |
Subroutine |
---|---|---|---|---|---|
2 | 2 | 2 | 1.69ms | 3.31ms | _install_api | Search::Elasticsearch::Role::Client::Direct::
1 | 1 | 1 | 589µs | 1.77ms | BEGIN@5 | Search::Elasticsearch::Role::Client::Direct::
228 | 1 | 1 | 232µs | 232µs | CORE:match (opcode) | Search::Elasticsearch::Role::Client::Direct::
229 | 2 | 1 | 208µs | 208µs | CORE:regcomp (opcode) | Search::Elasticsearch::Role::Client::Direct::
1 | 1 | 1 | 24µs | 158µs | parse_request | Search::Elasticsearch::Role::Client::Direct::
1 | 1 | 1 | 16µs | 322µs | BEGIN@3 | Search::Elasticsearch::Role::Client::Direct::
1 | 1 | 1 | 15µs | 26µs | BEGIN@7 | Search::Elasticsearch::Role::Client::Direct::
1 | 1 | 1 | 10µs | 46µs | BEGIN@6 | Search::Elasticsearch::Role::Client::Direct::
1 | 1 | 1 | 8µs | 247µs | BEGIN@8 | Search::Elasticsearch::Role::Client::Direct::
1 | 1 | 1 | 7µs | 44µs | __ANON__[:3] | Search::Elasticsearch::Role::Client::Direct::
1 | 1 | 1 | 6µs | 59µs | _parse_path | Search::Elasticsearch::Role::Client::Direct::
1 | 1 | 1 | 6µs | 6.72ms | __ANON__[:102] | Search::Elasticsearch::Role::Client::Direct::
1 | 1 | 1 | 5µs | 5µs | _parse_qs | Search::Elasticsearch::Role::Client::Direct::
1 | 1 | 1 | 3µs | 3µs | _parse_body | Search::Elasticsearch::Role::Client::Direct::
2 | 1 | 1 | 3µs | 3µs | CORE:qr (opcode) | Search::Elasticsearch::Role::Client::Direct::
0 | 0 | 0 | 0s | 0s | analyze | Search::Elasticsearch::Client::2_0::Direct::Indices::
0 | 0 | 0 | 0s | 0s | clear_cache | Search::Elasticsearch::Client::2_0::Direct::Indices::
0 | 0 | 0 | 0s | 0s | close | Search::Elasticsearch::Client::2_0::Direct::Indices::
0 | 0 | 0 | 0s | 0s | create | Search::Elasticsearch::Client::2_0::Direct::Indices::
0 | 0 | 0 | 0s | 0s | delete | Search::Elasticsearch::Client::2_0::Direct::Indices::
0 | 0 | 0 | 0s | 0s | delete_alias | Search::Elasticsearch::Client::2_0::Direct::Indices::
0 | 0 | 0 | 0s | 0s | delete_template | Search::Elasticsearch::Client::2_0::Direct::Indices::
0 | 0 | 0 | 0s | 0s | delete_warmer | Search::Elasticsearch::Client::2_0::Direct::Indices::
0 | 0 | 0 | 0s | 0s | exists | Search::Elasticsearch::Client::2_0::Direct::Indices::
0 | 0 | 0 | 0s | 0s | exists_alias | Search::Elasticsearch::Client::2_0::Direct::Indices::
0 | 0 | 0 | 0s | 0s | exists_template | Search::Elasticsearch::Client::2_0::Direct::Indices::
0 | 0 | 0 | 0s | 0s | exists_type | Search::Elasticsearch::Client::2_0::Direct::Indices::
0 | 0 | 0 | 0s | 0s | flush | Search::Elasticsearch::Client::2_0::Direct::Indices::
0 | 0 | 0 | 0s | 0s | flush_synced | Search::Elasticsearch::Client::2_0::Direct::Indices::
0 | 0 | 0 | 0s | 0s | forcemerge | Search::Elasticsearch::Client::2_0::Direct::Indices::
0 | 0 | 0 | 0s | 0s | get | Search::Elasticsearch::Client::2_0::Direct::Indices::
0 | 0 | 0 | 0s | 0s | get_alias | Search::Elasticsearch::Client::2_0::Direct::Indices::
0 | 0 | 0 | 0s | 0s | get_aliases | Search::Elasticsearch::Client::2_0::Direct::Indices::
0 | 0 | 0 | 0s | 0s | get_field_mapping | Search::Elasticsearch::Client::2_0::Direct::Indices::
0 | 0 | 0 | 0s | 0s | get_mapping | Search::Elasticsearch::Client::2_0::Direct::Indices::
0 | 0 | 0 | 0s | 0s | get_settings | Search::Elasticsearch::Client::2_0::Direct::Indices::
0 | 0 | 0 | 0s | 0s | get_template | Search::Elasticsearch::Client::2_0::Direct::Indices::
0 | 0 | 0 | 0s | 0s | get_upgrade | Search::Elasticsearch::Client::2_0::Direct::Indices::
0 | 0 | 0 | 0s | 0s | get_warmer | Search::Elasticsearch::Client::2_0::Direct::Indices::
0 | 0 | 0 | 0s | 0s | open | Search::Elasticsearch::Client::2_0::Direct::Indices::
0 | 0 | 0 | 0s | 0s | optimize | Search::Elasticsearch::Client::2_0::Direct::Indices::
0 | 0 | 0 | 0s | 0s | put_alias | Search::Elasticsearch::Client::2_0::Direct::Indices::
0 | 0 | 0 | 0s | 0s | put_mapping | Search::Elasticsearch::Client::2_0::Direct::Indices::
0 | 0 | 0 | 0s | 0s | put_settings | Search::Elasticsearch::Client::2_0::Direct::Indices::
0 | 0 | 0 | 0s | 0s | put_template | Search::Elasticsearch::Client::2_0::Direct::Indices::
0 | 0 | 0 | 0s | 0s | put_warmer | Search::Elasticsearch::Client::2_0::Direct::Indices::
0 | 0 | 0 | 0s | 0s | recovery | Search::Elasticsearch::Client::2_0::Direct::Indices::
0 | 0 | 0 | 0s | 0s | refresh | Search::Elasticsearch::Client::2_0::Direct::Indices::
0 | 0 | 0 | 0s | 0s | segments | Search::Elasticsearch::Client::2_0::Direct::Indices::
0 | 0 | 0 | 0s | 0s | shard_stores | Search::Elasticsearch::Client::2_0::Direct::Indices::
0 | 0 | 0 | 0s | 0s | stats | Search::Elasticsearch::Client::2_0::Direct::Indices::
0 | 0 | 0 | 0s | 0s | update_aliases | Search::Elasticsearch::Client::2_0::Direct::Indices::
0 | 0 | 0 | 0s | 0s | upgrade | Search::Elasticsearch::Client::2_0::Direct::Indices::
0 | 0 | 0 | 0s | 0s | validate_query | Search::Elasticsearch::Client::2_0::Direct::Indices::
0 | 0 | 0 | 0s | 0s | bulk | Search::Elasticsearch::Client::2_0::Direct::
0 | 0 | 0 | 0s | 0s | clear_scroll | Search::Elasticsearch::Client::2_0::Direct::
0 | 0 | 0 | 0s | 0s | count | Search::Elasticsearch::Client::2_0::Direct::
0 | 0 | 0 | 0s | 0s | count_percolate | Search::Elasticsearch::Client::2_0::Direct::
0 | 0 | 0 | 0s | 0s | delete | Search::Elasticsearch::Client::2_0::Direct::
0 | 0 | 0 | 0s | 0s | delete_by_query | Search::Elasticsearch::Client::2_0::Direct::
0 | 0 | 0 | 0s | 0s | delete_script | Search::Elasticsearch::Client::2_0::Direct::
0 | 0 | 0 | 0s | 0s | delete_template | Search::Elasticsearch::Client::2_0::Direct::
0 | 0 | 0 | 0s | 0s | exists | Search::Elasticsearch::Client::2_0::Direct::
0 | 0 | 0 | 0s | 0s | explain | Search::Elasticsearch::Client::2_0::Direct::
0 | 0 | 0 | 0s | 0s | field_stats | Search::Elasticsearch::Client::2_0::Direct::
0 | 0 | 0 | 0s | 0s | get | Search::Elasticsearch::Client::2_0::Direct::
0 | 0 | 0 | 0s | 0s | get_script | Search::Elasticsearch::Client::2_0::Direct::
0 | 0 | 0 | 0s | 0s | get_source | Search::Elasticsearch::Client::2_0::Direct::
0 | 0 | 0 | 0s | 0s | get_template | Search::Elasticsearch::Client::2_0::Direct::
0 | 0 | 0 | 0s | 0s | index | Search::Elasticsearch::Client::2_0::Direct::
0 | 0 | 0 | 0s | 0s | info | Search::Elasticsearch::Client::2_0::Direct::
0 | 0 | 0 | 0s | 0s | mget | Search::Elasticsearch::Client::2_0::Direct::
0 | 0 | 0 | 0s | 0s | mpercolate | Search::Elasticsearch::Client::2_0::Direct::
0 | 0 | 0 | 0s | 0s | msearch | Search::Elasticsearch::Client::2_0::Direct::
0 | 0 | 0 | 0s | 0s | mtermvectors | Search::Elasticsearch::Client::2_0::Direct::
0 | 0 | 0 | 0s | 0s | percolate | Search::Elasticsearch::Client::2_0::Direct::
0 | 0 | 0 | 0s | 0s | ping | Search::Elasticsearch::Client::2_0::Direct::
0 | 0 | 0 | 0s | 0s | put_script | Search::Elasticsearch::Client::2_0::Direct::
0 | 0 | 0 | 0s | 0s | put_template | Search::Elasticsearch::Client::2_0::Direct::
0 | 0 | 0 | 0s | 0s | reindex | Search::Elasticsearch::Client::2_0::Direct::
0 | 0 | 0 | 0s | 0s | render_search_template | Search::Elasticsearch::Client::2_0::Direct::
0 | 0 | 0 | 0s | 0s | scroll | Search::Elasticsearch::Client::2_0::Direct::
0 | 0 | 0 | 0s | 0s | search | Search::Elasticsearch::Client::2_0::Direct::
0 | 0 | 0 | 0s | 0s | search_exists | Search::Elasticsearch::Client::2_0::Direct::
0 | 0 | 0 | 0s | 0s | search_shards | Search::Elasticsearch::Client::2_0::Direct::
0 | 0 | 0 | 0s | 0s | search_template | Search::Elasticsearch::Client::2_0::Direct::
0 | 0 | 0 | 0s | 0s | suggest | Search::Elasticsearch::Client::2_0::Direct::
0 | 0 | 0 | 0s | 0s | termvectors | Search::Elasticsearch::Client::2_0::Direct::
0 | 0 | 0 | 0s | 0s | update | Search::Elasticsearch::Client::2_0::Direct::
0 | 0 | 0 | 0s | 0s | update_by_query | Search::Elasticsearch::Client::2_0::Direct::
0 | 0 | 0 | 0s | 0s | __ANON__[:27] | Search::Elasticsearch::Role::Client::Direct::
0 | 0 | 0 | 0s | 0s | __ANON__[:36] | Search::Elasticsearch::Role::Client::Direct::
Line | State ments |
Time on line |
Calls | Time in subs |
Code |
---|---|---|---|---|---|
1 | package Search::Elasticsearch::Role::Client::Direct; | ||||
2 | 1 | 400ns | $Search::Elasticsearch::Role::Client::Direct::VERSION = '2.02'; | ||
3 | 4 | 55µs | 3 | 664µs | # spent 44µs (7+37) within Search::Elasticsearch::Role::Client::Direct::__ANON__[/opt/flows/lib/lib/perl5/Search/Elasticsearch/Role/Client/Direct.pm:3] which was called:
# once (7µs+37µs) by import::into at line 34 of Import/Into.pm
# spent 322µs (16+306) within Search::Elasticsearch::Role::Client::Direct::BEGIN@3 which was called:
# once (16µs+306µs) by Module::Runtime::require_module at line 3 # spent 322µs making 1 call to Search::Elasticsearch::Role::Client::Direct::BEGIN@3
# spent 306µs making 1 call to Moo::Role::import
# spent 37µs making 1 call to strictures::import |
4 | 1 | 1µs | 1 | 1.65ms | with 'Search::Elasticsearch::Role::Client'; # spent 1.65ms making 1 call to Moo::Role::with |
5 | 2 | 128µs | 2 | 1.91ms | # spent 1.77ms (589µs+1.18) within Search::Elasticsearch::Role::Client::Direct::BEGIN@5 which was called:
# once (589µs+1.18ms) by Module::Runtime::require_module at line 5 # spent 1.77ms making 1 call to Search::Elasticsearch::Role::Client::Direct::BEGIN@5
# spent 145µs making 1 call to Sub::Exporter::__ANON__[/opt/flows/lib/lib/perl5/Sub/Exporter.pm:337] |
6 | 2 | 35µs | 2 | 83µs | # spent 46µs (10+36) within Search::Elasticsearch::Role::Client::Direct::BEGIN@6 which was called:
# once (10µs+36µs) by Module::Runtime::require_module at line 6 # spent 46µs making 1 call to Search::Elasticsearch::Role::Client::Direct::BEGIN@6
# spent 36µs making 1 call to Exporter::import |
7 | 3 | 51µs | 2 | 38µs | # spent 26µs (15+12) within Search::Elasticsearch::Role::Client::Direct::BEGIN@7 which was called:
# once (15µs+12µs) by Module::Runtime::require_module at line 7 # spent 26µs making 1 call to Search::Elasticsearch::Role::Client::Direct::BEGIN@7
# spent 12µs making 1 call to UNIVERSAL::VERSION |
8 | 2 | 641µs | 2 | 486µs | # spent 247µs (8+239) within Search::Elasticsearch::Role::Client::Direct::BEGIN@8 which was called:
# once (8µs+239µs) by Module::Runtime::require_module at line 8 # spent 247µs making 1 call to Search::Elasticsearch::Role::Client::Direct::BEGIN@8
# spent 239µs making 1 call to namespace::clean::import |
9 | |||||
10 | #=================================== | ||||
11 | # spent 158µs (24+134) within Search::Elasticsearch::Role::Client::Direct::parse_request which was called:
# once (24µs+134µs) by Search::Elasticsearch::Role::Client::perform_request at line 15 of /opt/flows/lib/lib/perl5/Search/Elasticsearch/Role/Client.pm | ||||
12 | #=================================== | ||||
13 | 1 | 100ns | my $self = shift; | ||
14 | 1 | 300ns | my $defn = shift || {}; | ||
15 | 1 | 1µs | my $params = { ref $_[0] ? %{ shift() } : @_ }; | ||
16 | |||||
17 | 1 | 200ns | my $request; | ||
18 | try { | ||||
19 | 1 | 12µs | 3 | 67µs | $request = { # spent 59µs making 1 call to Search::Elasticsearch::Role::Client::Direct::_parse_path
# spent 5µs making 1 call to Search::Elasticsearch::Role::Client::Direct::_parse_qs
# spent 3µs making 1 call to Search::Elasticsearch::Role::Client::Direct::_parse_body |
20 | ignore => delete $params->{ignore} || [], | ||||
21 | method => $defn->{method} || 'GET', | ||||
22 | serialize => $defn->{serialize} || 'std', | ||||
23 | path => $self->_parse_path( $defn, $params ), | ||||
24 | body => $self->_parse_body( $defn->{body}, $params ), | ||||
25 | qs => $self->_parse_qs( $defn->{qs_handlers}, $params ), | ||||
26 | }; | ||||
27 | } | ||||
28 | catch { | ||||
29 | chomp $_; | ||||
30 | my $name = $defn->{name} || '<unknown method>'; | ||||
31 | $self->logger->throw_error( 'Param', | ||||
32 | "$_ in ($name) request. " | ||||
33 | . "See docs at: http://www.elastic.co/guide/en/elasticsearch/reference/current/" | ||||
34 | . $defn->{doc} | ||||
35 | . '.html' ); | ||||
36 | 1 | 19µs | 2 | 134µs | }; # spent 127µs making 1 call to Try::Tiny::try
# spent 7µs making 1 call to Try::Tiny::catch |
37 | 1 | 4µs | return $request; | ||
38 | } | ||||
39 | |||||
40 | #=================================== | ||||
41 | # spent 59µs (6+53) within Search::Elasticsearch::Role::Client::Direct::_parse_path which was called:
# once (6µs+53µs) by Search::Elasticsearch::Role::Client::Direct::try {...} at line 19 | ||||
42 | #=================================== | ||||
43 | 1 | 600ns | my ( $self, $defn, $params ) = @_; | ||
44 | 1 | 200ns | return delete $params->{path} | ||
45 | if $params->{path}; | ||||
46 | 1 | 9µs | 1 | 53µs | path_handler( $defn, $params ); # spent 53µs making 1 call to Search::Elasticsearch::Util::API::Path::path_handler |
47 | } | ||||
48 | |||||
49 | #=================================== | ||||
50 | # spent 3µs within Search::Elasticsearch::Role::Client::Direct::_parse_body which was called:
# once (3µs+0s) by Search::Elasticsearch::Role::Client::Direct::try {...} at line 19 | ||||
51 | #=================================== | ||||
52 | 1 | 1µs | my ( $self, $defn, $params ) = @_; | ||
53 | 1 | 300ns | if ( defined $defn ) { | ||
54 | die("Missing required param (body)\n") | ||||
55 | if $defn->{required} && !$params->{body}; | ||||
56 | return delete $params->{body}; | ||||
57 | } | ||||
58 | 1 | 200ns | die("Unknown param (body)\n") if $params->{body}; | ||
59 | 1 | 6µs | return undef; | ||
60 | } | ||||
61 | |||||
62 | #=================================== | ||||
63 | # spent 5µs within Search::Elasticsearch::Role::Client::Direct::_parse_qs which was called:
# once (5µs+0s) by Search::Elasticsearch::Role::Client::Direct::try {...} at line 19 | ||||
64 | #=================================== | ||||
65 | 1 | 500ns | my ( $self, $handlers, $params ) = @_; | ||
66 | 1 | 200ns | die "No (qs_handlers) defined\n" unless $handlers; | ||
67 | 1 | 100ns | my %qs; | ||
68 | |||||
69 | 1 | 500ns | if ( my $raw = delete $params->{params} ) { | ||
70 | die("Arg (params) shoud be a hashref\n") | ||||
71 | unless ref $raw eq 'HASH'; | ||||
72 | %qs = %$raw; | ||||
73 | } | ||||
74 | |||||
75 | 1 | 2µs | for my $key ( keys %$params ) { | ||
76 | my $key_defn = $handlers->{$key} | ||||
77 | or die("Unknown param ($key)\n"); | ||||
78 | my $handler = $key_defn->{handler} | ||||
79 | or die "No (handler) defined for ($key)\n"; | ||||
80 | $qs{$key} = $handler->( delete $params->{$key} ); | ||||
81 | } | ||||
82 | 1 | 4µs | return \%qs; | ||
83 | } | ||||
84 | |||||
85 | #=================================== | ||||
86 | # spent 3.31ms (1.69+1.63) within Search::Elasticsearch::Role::Client::Direct::_install_api which was called 2 times, avg 1.66ms/call:
# once (861µs+815µs) by Module::Runtime::require_module at line 6 of /opt/flows/lib/lib/perl5/Search/Elasticsearch/Client/2_0/Direct/Indices.pm
# once (824µs+814µs) by Module::Runtime::require_module at line 10 of /opt/flows/lib/lib/perl5/Search/Elasticsearch/Client/2_0/Direct.pm | ||||
87 | #=================================== | ||||
88 | 2 | 800ns | my ( $class, $group ) = @_; | ||
89 | 2 | 3µs | 2 | 3µs | my $defns = $class->api; # spent 3µs making 2 calls to Search::Elasticsearch::Role::API::2_0::api, avg 1µs/call |
90 | 2 | 20µs | 2 | 14µs | my $stash = Package::Stash->new($class); # spent 14µs making 2 calls to Package::Stash::XS::new, avg 7µs/call |
91 | |||||
92 | 2 | 21µs | 3 | 10µs | my $group_qr = $group ? qr/$group\./ : qr//; # spent 7µs making 1 call to Search::Elasticsearch::Role::Client::Direct::CORE:regcomp
# spent 3µs making 2 calls to Search::Elasticsearch::Role::Client::Direct::CORE:qr, avg 2µs/call |
93 | 2 | 51µs | for my $action ( keys %$defns ) { | ||
94 | 228 | 1.26ms | 456 | 433µs | my ($name) = ( $action =~ /^$group_qr([^.]+)$/ ) # spent 232µs making 228 calls to Search::Elasticsearch::Role::Client::Direct::CORE:match, avg 1µs/call
# spent 200µs making 228 calls to Search::Elasticsearch::Role::Client::Direct::CORE:regcomp, avg 879ns/call |
95 | or next; | ||||
96 | 75 | 437µs | 152 | 339µs | next if $stash->has_symbol( '&' . $name ); # spent 288µs making 75 calls to Package::Stash::XS::has_symbol, avg 4µs/call
# spent 49µs making 75 calls to Package::Stash::XS::namespace, avg 653ns/call
# spent 1µs making 2 calls to Package::Stash::XS::name, avg 650ns/call |
97 | |||||
98 | 75 | 273µs | my %defn = ( name => $name, %{ $defns->{$action} } ); | ||
99 | $stash->add_symbol( | ||||
100 | # spent 6.72ms (6µs+6.71) within Search::Elasticsearch::Role::Client::Direct::__ANON__[/opt/flows/lib/lib/perl5/Search/Elasticsearch/Role/Client/Direct.pm:102] which was called:
# once (6µs+6.71ms) by main::create_es_bulk at line 156 of flows_to_es.pl | ||||
101 | 1 | 6µs | 1 | 6.71ms | shift->perform_request( \%defn, @_ ); # spent 6.71ms making 1 call to Search::Elasticsearch::Role::Client::perform_request |
102 | } | ||||
103 | 75 | 1.25ms | 225 | 969µs | ); # spent 882µs making 75 calls to Package::Stash::XS::add_symbol, avg 12µs/call
# spent 49µs making 75 calls to Package::Stash::XS::namespace, avg 653ns/call
# spent 38µs making 75 calls to Package::Stash::XS::name, avg 511ns/call |
104 | } | ||||
105 | } | ||||
106 | |||||
107 | 1 | 5µs | 1; | ||
108 | |||||
109 | # ABSTRACT: Request parsing for Direct clients | ||||
110 | |||||
111 | 1 | 11µs | 1 | 430µs | __END__ # spent 430µs making 1 call to B::Hooks::EndOfScope::XS::__ANON__[/opt/flows/lib/lib/perl5/B/Hooks/EndOfScope/XS.pm:17] |
# spent 232µs within Search::Elasticsearch::Role::Client::Direct::CORE:match which was called 228 times, avg 1µs/call:
# 228 times (232µs+0s) by Search::Elasticsearch::Role::Client::Direct::_install_api at line 94, avg 1µs/call | |||||
# spent 3µs within Search::Elasticsearch::Role::Client::Direct::CORE:qr which was called 2 times, avg 2µs/call:
# 2 times (3µs+0s) by Search::Elasticsearch::Role::Client::Direct::_install_api at line 92, avg 2µs/call | |||||
# spent 208µs within Search::Elasticsearch::Role::Client::Direct::CORE:regcomp which was called 229 times, avg 907ns/call:
# 228 times (200µs+0s) by Search::Elasticsearch::Role::Client::Direct::_install_api at line 94, avg 879ns/call
# once (7µs+0s) by Search::Elasticsearch::Role::Client::Direct::_install_api at line 92 |