Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Azure: Add Storage Table spy #999

Merged
merged 22 commits into from
Jul 6, 2021
Merged

Azure: Add Storage Table spy #999

merged 22 commits into from
Jul 6, 2021

Conversation

mikker
Copy link
Contributor

@mikker mikker commented Apr 9, 2021

Closes #948
Closes #947 (Storage Table and CosmosDB use the same lib in Ruby)
Closes #1022

ALSO:

This PR…

  • Changes all span.context.destination.service fields per this change (only setting service.resource)
  • Introduces BasicObject for making it easier to create "dumb" objects that mostly hold values

@mikker mikker self-assigned this Apr 9, 2021
@apmmachine
Copy link
Contributor

apmmachine commented Apr 9, 2021

❕ Build Aborted

There is a new build on-going so the previous on-going builds have been aborted.

the below badges are clickable and redirect to their specific view in the CI or DOCS
Pipeline View Test View Changes Artifacts

Expand to view the summary

Build stats

  • Build Cause: Pull request #999 updated

  • Reason: Aborted from #14

  • Start Time: 2021-06-16T08:40:21.492+0000

  • Duration: 24 min 31 sec

  • Commit: 42a9b1c

Test stats 🧪

Test Results
Failed 54
Passed 32881
Skipped 42
Total 32977

Trends 🧪

Image of Build Times

Image of Tests

Test errors 54

Expand to view the tests failures

> Show only the first 10 test failures

Tests / Master Tests frameworks / Ruby:ruby:3.0#grape-master / Spy: Azure Storage Table spans operations – Spy: Azure Storage Table
    Expand to view the error details

     failed Spy: Azure Storage Table spans operations 
    

    Expand to view the stacktrace

     
            undefined method `escape' for URI:Module
    ["/usr/local/bundle/gems/azure-storage-table-2.0.2/lib/azure/storage/table/table_service.rb:749:in `encodeODataUriValue'", "/usr/local/bundle/gems/azure-storage-table-2.0.2/lib/azure/storage/table/table_service.rb:709:in `entities_uri'", "/usr/local/bundle/gems/azure-storage-table-2.0.2/lib/azure/storage/table/table_service.rb:434:in `query_entities'", "/usr/local/bundle/gems/azure-storage-table-2.0.2/lib/azure/storage/table/table_service.rb:667:in `get_entity'", "./lib/elastic_apm/spies/azure_storage_table.rb:79:in `block (3 levels) in get_entity'", "./lib/elastic_apm/spies.rb:74:in `block in without_net_http'", "./lib/elastic_apm/spies/net_http.rb:42:in `disable_in'", "./lib/elastic_apm/spies.rb:73:in `without_net_http'", "./lib/elastic_apm/spies/azure_storage_table.rb:78:in `block (2 levels) in get_entity'", "./lib/elastic_apm/spies.rb:64:in `block in without_faraday'", "./lib/elastic_apm/spies/faraday.rb:42:in `disable_in'", "./lib/elastic_apm/spies.rb:63:in `without_faraday'", "./lib/elastic_apm/spies/azure_storage_table.rb:77:in `block in get_entity'", "./lib/elastic_apm.rb:298:in `with_span'", "./lib/elastic_apm/spies/azure_storage_table.rb:76:in `get_entity'", "./spec/elastic_apm/spies/azure_storage_table_spec.rb:49:in `block (4 levels) in <module:ElasticAPM>'", "./lib/elastic_apm.rb:189:in `with_transaction'", "./spec/elastic_apm/spies/azure_storage_table_spec.rb:48:in `block (3 levels) in <module:ElasticAPM>'", "./spec/support/with_agent.rb:32:in `with_agent'", "./spec/elastic_apm/spies/azure_storage_table_spec.rb:47:in `block (2 levels) in <module:ElasticAPM>'", "/usr/local/bundle/gems/webmock-3.13.0/lib/webmock/rspec.rb:37:in `block (2 levels) in <top (required)>'"]
           
    

Tests / Master Tests frameworks / Ruby:ruby:3.0#grape-master / ElasticAPM::Transport::Serializers::SpanSerializer#build with a destination adds destination object – with a destination
    Expand to view the error details

     failed ElasticAPM::Transport::Serializers::SpanSerializer#build with a destination adds destination object 
    

    Expand to view the stacktrace

     
            expected {:address=>"d", :cloud=>{:region=>nil}, :port=>8080, :service=>{:name=>"a", :resource=>"b", :type=>"c"}} to match {:service=>{:name=>"a", :resource=>"b", :type=>"c"}, :address=>"d", :port=>8080}
    Diff:
    @@ -1,2 +1,3 @@
     :address => "d",
    +:cloud => {:region=>nil},
     :port => 8080,
    
    ["./spec/elastic_apm/transport/serializers/span_serializer_spec.rb:163:in `block (4 levels) in <module:Serializers>'", "/usr/local/bundle/gems/webmock-3.13.0/lib/webmock/rspec.rb:37:in `block (2 levels) in <top (required)>'"]
           
    

Tests / Tests / Ruby:ruby:3.0#sinatra-2.0 / Spy: Azure Storage Table spans operations – Spy: Azure Storage Table
    Expand to view the error details

     failed Spy: Azure Storage Table spans operations 
    

    Expand to view the stacktrace

     
            undefined method `escape' for URI:Module
    ["/usr/local/bundle/gems/azure-storage-table-2.0.2/lib/azure/storage/table/table_service.rb:749:in `encodeODataUriValue'", "/usr/local/bundle/gems/azure-storage-table-2.0.2/lib/azure/storage/table/table_service.rb:709:in `entities_uri'", "/usr/local/bundle/gems/azure-storage-table-2.0.2/lib/azure/storage/table/table_service.rb:434:in `query_entities'", "/usr/local/bundle/gems/azure-storage-table-2.0.2/lib/azure/storage/table/table_service.rb:667:in `get_entity'", "./lib/elastic_apm/spies/azure_storage_table.rb:79:in `block (3 levels) in get_entity'", "./lib/elastic_apm/spies.rb:74:in `block in without_net_http'", "./lib/elastic_apm/spies/net_http.rb:42:in `disable_in'", "./lib/elastic_apm/spies.rb:73:in `without_net_http'", "./lib/elastic_apm/spies/azure_storage_table.rb:78:in `block (2 levels) in get_entity'", "./lib/elastic_apm/spies.rb:64:in `block in without_faraday'", "./lib/elastic_apm/spies/faraday.rb:42:in `disable_in'", "./lib/elastic_apm/spies.rb:63:in `without_faraday'", "./lib/elastic_apm/spies/azure_storage_table.rb:77:in `block in get_entity'", "./lib/elastic_apm.rb:298:in `with_span'", "./lib/elastic_apm/spies/azure_storage_table.rb:76:in `get_entity'", "./spec/elastic_apm/spies/azure_storage_table_spec.rb:49:in `block (4 levels) in <module:ElasticAPM>'", "./lib/elastic_apm.rb:189:in `with_transaction'", "./spec/elastic_apm/spies/azure_storage_table_spec.rb:48:in `block (3 levels) in <module:ElasticAPM>'", "./spec/support/with_agent.rb:32:in `with_agent'", "./spec/elastic_apm/spies/azure_storage_table_spec.rb:47:in `block (2 levels) in <module:ElasticAPM>'", "/usr/local/bundle/gems/webmock-3.13.0/lib/webmock/rspec.rb:37:in `block (2 levels) in <top (required)>'"]
           
    

Tests / Tests / Ruby:ruby:3.0#sinatra-2.0 / ElasticAPM::Transport::Serializers::SpanSerializer#build with a destination adds destination object – with a destination
    Expand to view the error details

     failed ElasticAPM::Transport::Serializers::SpanSerializer#build with a destination adds destination object 
    

    Expand to view the stacktrace

     
            expected {:address=>"d", :cloud=>{:region=>nil}, :port=>8080, :service=>{:name=>"a", :resource=>"b", :type=>"c"}} to match {:service=>{:name=>"a", :resource=>"b", :type=>"c"}, :address=>"d", :port=>8080}
    Diff:
    @@ -1,2 +1,3 @@
     :address => "d",
    +:cloud => {:region=>nil},
     :port => 8080,
    
    ["./spec/elastic_apm/transport/serializers/span_serializer_spec.rb:163:in `block (4 levels) in <module:Serializers>'", "/usr/local/bundle/gems/webmock-3.13.0/lib/webmock/rspec.rb:37:in `block (2 levels) in <top (required)>'"]
           
    

Tests / Tests / Ruby:ruby:2.5#sinatra-1.4 / ElasticAPM::Transport::Serializers::SpanSerializer#build with a destination adds destination object – with a destination
    Expand to view the error details

     failed ElasticAPM::Transport::Serializers::SpanSerializer#build with a destination adds destination object 
    

    Expand to view the stacktrace

     
            expected {:address=>"d", :cloud=>{:region=>nil}, :port=>8080, :service=>{:name=>"a", :resource=>"b", :type=>"c"}} to match {:service=>{:name=>"a", :resource=>"b", :type=>"c"}, :address=>"d", :port=>8080}
    Diff:
    @@ -1,2 +1,3 @@
     :address => "d",
    +:cloud => {:region=>nil},
     :port => 8080,
    
    ["./spec/elastic_apm/transport/serializers/span_serializer_spec.rb:163:in `block (4 levels) in <module:Serializers>'", "/usr/local/bundle/gems/webmock-3.13.0/lib/webmock/rspec.rb:37:in `block (2 levels) in <top (required)>'"]
           
    

Tests / Tests / Ruby:ruby:3.0#rails-6.1 / ElasticAPM::Transport::Serializers::SpanSerializer#build with a destination adds destination object – with a destination
    Expand to view the error details

     failed ElasticAPM::Transport::Serializers::SpanSerializer#build with a destination adds destination object 
    

    Expand to view the stacktrace

     
            expected {:address=>"d", :cloud=>{:region=>nil}, :port=>8080, :service=>{:name=>"a", :resource=>"b", :type=>"c"}} to match {:service=>{:name=>"a", :resource=>"b", :type=>"c"}, :address=>"d", :port=>8080}
    Diff:
    @@ -1,2 +1,3 @@
     :address => "d",
    +:cloud => {:region=>nil},
     :port => 8080,
    
    ["./spec/elastic_apm/transport/serializers/span_serializer_spec.rb:163:in `block (4 levels) in <module:Serializers>'", "/usr/local/bundle/gems/webmock-3.13.0/lib/webmock/rspec.rb:37:in `block (2 levels) in <top (required)>'"]
           
    

Tests / Tests / Ruby:ruby:3.0#rails-6.1 / Spy: Azure Storage Table spans operations – Spy: Azure Storage Table
    Expand to view the error details

     failed Spy: Azure Storage Table spans operations 
    

    Expand to view the stacktrace

     
            undefined method `escape' for URI:Module
    ["/usr/local/bundle/gems/azure-storage-table-2.0.2/lib/azure/storage/table/table_service.rb:749:in `encodeODataUriValue'", "/usr/local/bundle/gems/azure-storage-table-2.0.2/lib/azure/storage/table/table_service.rb:709:in `entities_uri'", "/usr/local/bundle/gems/azure-storage-table-2.0.2/lib/azure/storage/table/table_service.rb:434:in `query_entities'", "/usr/local/bundle/gems/azure-storage-table-2.0.2/lib/azure/storage/table/table_service.rb:667:in `get_entity'", "./lib/elastic_apm/spies/azure_storage_table.rb:79:in `block (3 levels) in get_entity'", "./lib/elastic_apm/spies.rb:74:in `block in without_net_http'", "./lib/elastic_apm/spies/net_http.rb:42:in `disable_in'", "./lib/elastic_apm/spies.rb:73:in `without_net_http'", "./lib/elastic_apm/spies/azure_storage_table.rb:78:in `block (2 levels) in get_entity'", "./lib/elastic_apm/spies.rb:64:in `block in without_faraday'", "./lib/elastic_apm/spies/faraday.rb:42:in `disable_in'", "./lib/elastic_apm/spies.rb:63:in `without_faraday'", "./lib/elastic_apm/spies/azure_storage_table.rb:77:in `block in get_entity'", "./lib/elastic_apm.rb:298:in `with_span'", "./lib/elastic_apm/spies/azure_storage_table.rb:76:in `get_entity'", "./spec/elastic_apm/spies/azure_storage_table_spec.rb:49:in `block (4 levels) in <module:ElasticAPM>'", "./lib/elastic_apm.rb:189:in `with_transaction'", "./spec/elastic_apm/spies/azure_storage_table_spec.rb:48:in `block (3 levels) in <module:ElasticAPM>'", "./spec/support/with_agent.rb:32:in `with_agent'", "./spec/elastic_apm/spies/azure_storage_table_spec.rb:47:in `block (2 levels) in <module:ElasticAPM>'", "/usr/local/bundle/gems/webmock-3.13.0/lib/webmock/rspec.rb:37:in `block (2 levels) in <top (required)>'"]
           
    

Tests / Tests / Ruby:ruby:2.6#sinatra-1.4 / ElasticAPM::Transport::Serializers::SpanSerializer#build with a destination adds destination object – with a destination
    Expand to view the error details

     failed ElasticAPM::Transport::Serializers::SpanSerializer#build with a destination adds destination object 
    

    Expand to view the stacktrace

     
            expected {:address=>"d", :cloud=>{:region=>nil}, :port=>8080, :service=>{:name=>"a", :resource=>"b", :type=>"c"}} to match {:service=>{:name=>"a", :resource=>"b", :type=>"c"}, :address=>"d", :port=>8080}
    Diff:
    @@ -1,2 +1,3 @@
     :address => "d",
    +:cloud => {:region=>nil},
     :port => 8080,
    
    ["./spec/elastic_apm/transport/serializers/span_serializer_spec.rb:163:in `block (4 levels) in <module:Serializers>'", "/usr/local/bundle/gems/webmock-3.13.0/lib/webmock/rspec.rb:37:in `block (2 levels) in <top (required)>'"]
           
    

Tests / Tests / Ruby:ruby:2.7#sinatra-2.0 / ElasticAPM::Transport::Serializers::SpanSerializer#build with a destination adds destination object – with a destination
    Expand to view the error details

     failed ElasticAPM::Transport::Serializers::SpanSerializer#build with a destination adds destination object 
    

    Expand to view the stacktrace

     
            expected {:address=>"d", :cloud=>{:region=>nil}, :port=>8080, :service=>{:name=>"a", :resource=>"b", :type=>"c"}} to match {:service=>{:name=>"a", :resource=>"b", :type=>"c"}, :address=>"d", :port=>8080}
    Diff:
    @@ -1,2 +1,3 @@
     :address => "d",
    +:cloud => {:region=>nil},
     :port => 8080,
    
    ["./spec/elastic_apm/transport/serializers/span_serializer_spec.rb:163:in `block (4 levels) in <module:Serializers>'", "/usr/local/bundle/gems/webmock-3.13.0/lib/webmock/rspec.rb:37:in `block (2 levels) in <top (required)>'"]
           
    

Tests / Tests / Ruby:ruby:2.4#rails-4.2 / ElasticAPM::Transport::Serializers::SpanSerializer#build with a destination adds destination object – with a destination
    Expand to view the error details

     failed ElasticAPM::Transport::Serializers::SpanSerializer#build with a destination adds destination object 
    

    Expand to view the stacktrace

     
            expected {:address=>"d", :cloud=>{:region=>nil}, :port=>8080, :service=>{:name=>"a", :resource=>"b", :type=>"c"}} to match {:service=>{:name=>"a", :resource=>"b", :type=>"c"}, :address=>"d", :port=>8080}
    Diff:
    @@ -1,4 +1,5 @@
     :address => "d",
    +:cloud => {:region=>nil},
     :port => 8080,
     :service => {:name=>"a", :resource=>"b", :type=>"c"},
    
    ["./spec/elastic_apm/transport/serializers/span_serializer_spec.rb:163:in `block (4 levels) in <module:Serializers>'", "/usr/local/bundle/gems/webmock-3.13.0/lib/webmock/rspec.rb:37:in `block (2 levels) in <top (required)>'"]
           
    

Steps errors 103

Expand to view the steps failures

Show only the first 10 steps failures

Shell Script
  • Took 1 min 52 sec . View more details on here
  • Description: ./spec/scripts/spec.sh ruby:3.0 sinatra-master
Shell Script
  • Took 2 min 50 sec . View more details on here
  • Description: ./spec/scripts/spec.sh ruby:3.0 grape-master
Shell Script
  • Took 1 min 46 sec . View more details on here
  • Description: ./spec/scripts/spec.sh ruby:3.0 grape-master
Shell Script
  • Took 2 min 36 sec . View more details on here
  • Description: ./spec/scripts/spec.sh ruby:2.7 rails-main
Shell Script
  • Took 2 min 41 sec . View more details on here
  • Description: ./spec/scripts/spec.sh ruby:2.7 rails-main
Shell Script
  • Took 1 min 7 sec . View more details on here
  • Description: ./spec/scripts/spec.sh ruby:2.7 sinatra-master
Shell Script
  • Took 1 min 9 sec . View more details on here
  • Description: ./spec/scripts/spec.sh ruby:2.7 sinatra-master
Shell Script
  • Took 1 min 16 sec . View more details on here
  • Description: ./spec/scripts/spec.sh ruby:2.7 grape-master
Shell Script
  • Took 1 min 15 sec . View more details on here
  • Description: ./spec/scripts/spec.sh ruby:2.7 grape-master
Error signal
  • Took 0 min 0 sec . View more details on here
  • Description: Ruby:ruby:3.0#rails-6.1 tests failed : hudson.AbortException: script returned exit code 1

Log output

Expand to view the last 100 lines of log output

[2021-06-16T09:03:26.188Z] script returned exit code 1
[2021-06-16T09:03:26.662Z] ........................................................................................................................*..........................................................................................................................................................................................................................................................F..............................................................................................................................................................Sending interrupt signal to process
[2021-06-16T09:03:26.914Z] Aborting.
[2021-06-16T09:03:26.921Z] script returned exit code 1
[2021-06-16T09:03:27.582Z] Sending interrupt signal to process
[2021-06-16T09:03:27.582Z] Aborting.
[2021-06-16T09:03:27.589Z] script returned exit code 1
[2021-06-16T09:03:28.058Z] Recording test results
[2021-06-16T09:03:28.069Z] Recording test results
[2021-06-16T09:03:28.081Z] Recording test results
[2021-06-16T09:03:28.094Z] Recording test results
[2021-06-16T09:03:28.110Z] Recording test results
[2021-06-16T09:03:28.128Z] Recording test results
[2021-06-16T09:03:28.149Z] Recording test results
[2021-06-16T09:03:28.162Z] Recording test results
[2021-06-16T09:03:28.181Z] Recording test results
[2021-06-16T09:03:28.207Z] Recording test results
[2021-06-16T09:03:28.216Z] Recording test results
[2021-06-16T09:03:28.241Z] Recording test results
[2021-06-16T09:03:28.296Z] Recording test results
[2021-06-16T09:03:28.345Z] No test report files were found. Configuration error?
[2021-06-16T09:03:28.369Z] Failed in branch Ruby:docker.elastic.co/observability-ci/jruby:9.2-11-jdk#grape-1.5
[2021-06-16T09:03:28.404Z] No test report files were found. Configuration error?
[2021-06-16T09:03:28.429Z] Failed in branch Ruby:docker.elastic.co/observability-ci/jruby:9.2-13-jdk#rails-6.0
[2021-06-16T09:03:28.466Z] No test report files were found. Configuration error?
[2021-06-16T09:03:28.471Z] No test report files were found. Configuration error?
[2021-06-16T09:03:28.481Z] No test report files were found. Configuration error?
[2021-06-16T09:03:28.489Z] Failed in branch Ruby:docker.elastic.co/observability-ci/jruby:9.2-13-jdk#grape-1.5
[2021-06-16T09:03:28.504Z] Failed in branch Ruby:docker.elastic.co/observability-ci/jruby:9.2-11-jdk#rails-6.1
[2021-06-16T09:03:32.956Z] [Checks API] No suitable checks publisher found.
[2021-06-16T09:03:34.082Z] [Checks API] No suitable checks publisher found.
[2021-06-16T09:03:35.394Z] [Checks API] No suitable checks publisher found.
[2021-06-16T09:03:36.848Z] [Checks API] No suitable checks publisher found.
[2021-06-16T09:03:40.007Z] [Checks API] No suitable checks publisher found.
[2021-06-16T09:03:41.410Z] [Checks API] No suitable checks publisher found.
[2021-06-16T09:03:42.883Z] [Checks API] No suitable checks publisher found.
[2021-06-16T09:03:46.937Z] [Checks API] No suitable checks publisher found.
[2021-06-16T09:03:46.949Z] Failed in branch Ruby:docker.elastic.co/observability-ci/jruby:9.2-11-jdk#rails-6.0
[2021-06-16T09:03:46.973Z] Running in /var/lib/jenkins/workspace/t-ruby_apm-agent-ruby-mbp_PR-999/src/github.com/elastic/apm-agent-ruby
[2021-06-16T09:03:46.981Z] Running in /var/lib/jenkins/workspace/t-ruby_apm-agent-ruby-mbp_PR-999/src/github.com/elastic/apm-agent-ruby
[2021-06-16T09:03:46.989Z] Running in /var/lib/jenkins/workspace/t-ruby_apm-agent-ruby-mbp_PR-999/src/github.com/elastic/apm-agent-ruby
[2021-06-16T09:03:47.000Z] Running in /var/lib/jenkins/workspace/t-ruby_apm-agent-ruby-mbp_PR-999/src/github.com/elastic/apm-agent-ruby
[2021-06-16T09:03:47.008Z] Running in /var/lib/jenkins/workspace/t-ruby_apm-agent-ruby-mbp_PR-999/src/github.com/elastic/apm-agent-ruby
[2021-06-16T09:03:47.016Z] Running in /var/lib/jenkins/workspace/t-ruby_apm-agent-ruby-mbp_PR-999/src/github.com/elastic/apm-agent-ruby
[2021-06-16T09:03:47.024Z] Running in /var/lib/jenkins/workspace/t-ruby_apm-agent-ruby-mbp_PR-999/src/github.com/elastic/apm-agent-ruby
[2021-06-16T09:03:47.032Z] Running in /var/lib/jenkins/workspace/t-ruby_apm-agent-ruby-mbp_PR-999/src/github.com/elastic/apm-agent-ruby
[2021-06-16T09:03:47.046Z] Archiving artifacts
[2021-06-16T09:03:47.057Z] Archiving artifacts
[2021-06-16T09:03:47.066Z] Archiving artifacts
[2021-06-16T09:03:47.076Z] Archiving artifacts
[2021-06-16T09:03:47.087Z] Archiving artifacts
[2021-06-16T09:03:47.098Z] Archiving artifacts
[2021-06-16T09:03:47.108Z] ‘coverage/matrix_results/’ doesn’t match anything, but ‘’ does. Perhaps that’s what you mean?
[2021-06-16T09:03:47.114Z] Archiving artifacts
[2021-06-16T09:03:47.115Z] ‘coverage/matrix_results/’ doesn’t match anything, but ‘’ does. Perhaps that’s what you mean?
[2021-06-16T09:03:47.117Z] ‘coverage/matrix_results/’ doesn’t match anything, but ‘’ does. Perhaps that’s what you mean?
[2021-06-16T09:03:47.130Z] Archiving artifacts
[2021-06-16T09:03:47.135Z] ‘coverage/matrix_results/’ doesn’t match anything, but ‘’ does. Perhaps that’s what you mean?
[2021-06-16T09:03:47.167Z] ‘coverage/matrix_results/’ doesn’t match anything, but ‘’ does. Perhaps that’s what you mean?
[2021-06-16T09:03:47.186Z] ‘coverage/matrix_results/’ doesn’t match anything, but ‘’ does. Perhaps that’s what you mean?
[2021-06-16T09:03:47.260Z] Failed in branch Ruby:jruby:9.2#rails-6.1
[2021-06-16T09:03:47.261Z] Failed in branch Ruby:jruby:9.2#sinatra-2.0
[2021-06-16T09:03:47.262Z] Failed in branch Ruby:docker.elastic.co/observability-ci/jruby:9.2-13-jdk#rails-6.1
[2021-06-16T09:03:47.262Z] Failed in branch Ruby:docker.elastic.co/observability-ci/jruby:9.2-13-jdk#sinatra-2.0
[2021-06-16T09:03:47.394Z] Failed in branch Ruby:docker.elastic.co/observability-ci/jruby:9.2-13-jdk#rails-5.2
[2021-06-16T09:03:47.415Z] Failed in branch Ruby:docker.elastic.co/observability-ci/jruby:9.2-8-jdk#rails-6.1
[2021-06-16T09:03:47.554Z] Stashed 32 file(s)
[2021-06-16T09:03:47.562Z] Stashed 32 file(s)
[2021-06-16T09:03:47.602Z] Failed in branch Ruby:jruby:9.2#rails-6.0
[2021-06-16T09:03:47.620Z] Failed in branch Ruby:docker.elastic.co/observability-ci/jruby:9.2-11-jdk#rails-5.2
[2021-06-16T09:03:48.851Z] Post stage
[2021-06-16T09:03:49.201Z] Running in /var/lib/jenkins/workspace/t-ruby_apm-agent-ruby-mbp_PR-999/src/github.com/elastic/apm-agent-ruby
[2021-06-16T09:03:50.802Z] Error when executing always post condition:
[2021-06-16T09:03:50.808Z] hudson.AbortException: No such saved stash ‘coverage-jruby-9.2-rails-6.1’
[2021-06-16T09:03:50.808Z] 	at org.jenkinsci.plugins.workflow.flow.StashManager.unstash(StashManager.java:159)
[2021-06-16T09:03:50.808Z] 	at org.jenkinsci.plugins.workflow.support.steps.stash.UnstashStep$Execution.run(UnstashStep.java:76)
[2021-06-16T09:03:50.808Z] 	at org.jenkinsci.plugins.workflow.support.steps.stash.UnstashStep$Execution.run(UnstashStep.java:63)
[2021-06-16T09:03:50.808Z] 	at org.jenkinsci.plugins.workflow.steps.SynchronousNonBlockingStepExecution.lambda$start$0(SynchronousNonBlockingStepExecution.java:47)
[2021-06-16T09:03:50.808Z] 	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
[2021-06-16T09:03:50.808Z] 	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
[2021-06-16T09:03:50.808Z] 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
[2021-06-16T09:03:50.808Z] 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
[2021-06-16T09:03:50.808Z] 	at java.lang.Thread.run(Thread.java:748)
[2021-06-16T09:03:50.808Z] 
[2021-06-16T09:03:50.917Z] Failed in branch Tests
[2021-06-16T09:03:51.005Z] Stage "Benchmarks" skipped due to earlier failure(s)
[2021-06-16T09:03:51.022Z] Stage "Benchmarks" skipped due to earlier failure(s)
[2021-06-16T09:03:51.085Z] Stage "Benchmarks" skipped due to earlier failure(s)
[2021-06-16T09:03:51.181Z] Stage "Release" skipped due to earlier failure(s)
[2021-06-16T09:03:51.200Z] Stage "Release" skipped due to earlier failure(s)
[2021-06-16T09:03:51.251Z] Stage "Release" skipped due to earlier failure(s)
[2021-06-16T09:03:51.311Z] Stage "Release" skipped due to earlier failure(s)
[2021-06-16T09:03:51.372Z] Stage "Release" skipped due to earlier failure(s)
[2021-06-16T09:03:51.941Z] Running on Jenkins in /var/lib/jenkins/workspace/t-ruby_apm-agent-ruby-mbp_PR-999
[2021-06-16T09:03:51.983Z] [INFO] getVaultSecret: Getting secrets
[2021-06-16T09:03:52.034Z] Masking supported pattern matches of $VAULT_ADDR or $VAULT_ROLE_ID or $VAULT_SECRET_ID
[2021-06-16T09:03:52.732Z] + chmod 755 generate-build-data.sh
[2021-06-16T09:03:52.733Z] + ./generate-build-data.sh https://apm-ci.elastic.co/blue/rest/organizations/jenkins/pipelines/apm-agent-ruby/apm-agent-ruby-mbp/PR-999/ https://apm-ci.elastic.co/blue/rest/organizations/jenkins/pipelines/apm-agent-ruby/apm-agent-ruby-mbp/PR-999/runs/13 ABORTED 1410976
[2021-06-16T09:03:52.733Z] INFO: curl https://apm-ci.elastic.co/blue/rest/organizations/jenkins/pipelines/apm-agent-ruby/apm-agent-ruby-mbp/PR-999/runs/13/steps/?limit=10000 -o steps-info.json
[2021-06-16T09:04:00.758Z] INFO: curl https://apm-ci.elastic.co/blue/rest/organizations/jenkins/pipelines/apm-agent-ruby/apm-agent-ruby-mbp/PR-999/runs/13/tests/?status=FAILED -o tests-errors.json

@gregkalapos
Copy link

gregkalapos commented Apr 12, 2021

We use a built-in library called Diagnostic Source to get info for Azure storage. For each operation we get a start and an end event - here is the code for it.

Are there common operation names? Or are they only defined by HTTP method? Do we call the spans by their HTTP operation rather than their Ruby method name then?

What we do here is that we just use the operation name from the name of the event that we get - So if the diagnostic source event is called BlobBaseClient.Delete.Start then it's a Delete operation which will be part of the span name and we also set action to Delete in this case. All that can be seen in the linked code. Unfortunately I don't know how DiagnosticSource generates those event names - I suspect it's based on the URL pattern, let me know if you want I can dig into the C# library to figure this out.

How do we get region info? From the storage url?

I think we don't collect region info, but what we do is that we indeed pars the URL and get things like ResourceName - see here

@russcam knows more about this.

@gregkalapos
Copy link

Oh, and just to be on the same page :)

Azure Storage and CosmosDb are different things - what I linked above is about Azure Storage.

@gregkalapos
Copy link

Another update :)

actually the diagnostic source way I describe above works only for newer libraries. @russcam works on a PR to parse out everything purely from the URLs which will work with older versions as well - I think this will be closer to what you can do in Ruby.

Here you can see the URL parsing logic.

@apmmachine
Copy link
Contributor

apmmachine commented Jun 16, 2021

💚 Build Succeeded

the below badges are clickable and redirect to their specific view in the CI or DOCS
Pipeline View Test View Changes Artifacts preview

Expand to view the summary

Build stats

  • Build Cause: Pull request #999 updated

  • Start Time: 2021-06-30T08:55:34.791+0000

  • Duration: 28 min 19 sec

  • Commit: 5eff08b

Test stats 🧪

Test Results
Failed 0
Passed 46111
Skipped 84
Total 46195

Trends 🧪

Image of Build Times

Image of Tests

lib/elastic_apm/basic_object.rb Outdated Show resolved Hide resolved
lib/elastic_apm/basic_object.rb Outdated Show resolved Hide resolved
lib/elastic_apm/span.rb Outdated Show resolved Hide resolved
@mikker mikker marked this pull request as ready for review June 16, 2021 09:26
@mikker mikker requested a review from estolfo June 16, 2021 09:26
@mikker mikker changed the title Azure: Add Storage Table spy (WIP) Azure: Add Storage Table spy Jun 16, 2021
Copy link
Contributor

@estolfo estolfo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I added some minor comments but otherwise it looks good to me.

spec/elastic_apm/spies/net_http_spec.rb Show resolved Hide resolved
spec/elastic_apm/spies/dynamo_db_spec.rb Show resolved Hide resolved
@@ -68,4 +68,4 @@ Feature: Extracting Metadata for Azure App Service
| WEBSITE_RESOURCE_GROUP | resource_group |
| WEBSITE_SITE_NAME | site_name |
When cloud metadata is collected
Then cloud metadata is null
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I guess we should open an issue to write the step definitions for this.

lib/elastic_apm/basic_object.rb Outdated Show resolved Hide resolved
@estolfo
Copy link
Contributor

estolfo commented Jun 17, 2021

looks good!

@mikker mikker requested a review from estolfo June 22, 2021 10:16
@mikker
Copy link
Contributor Author

mikker commented Jun 22, 2021

@estolfo Added instrumentation to a bunch more methods 😊

@mikker
Copy link
Contributor Author

mikker commented Jun 24, 2021

This is ready for a new look-through @estolfo 😊

lib/elastic_apm/span.rb Show resolved Hide resolved
@mikker mikker merged commit a96aea3 into elastic:master Jul 6, 2021
@mikker mikker deleted the azure-storage-table branch July 6, 2021 11:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
4 participants