instana 1.217.1 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (228) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +2 -1
  3. data/lib/instana/base.rb +4 -2
  4. data/lib/instana/instrumentation/action_cable.rb +8 -4
  5. data/lib/instana/instrumentation/action_controller.rb +2 -4
  6. data/lib/instana/instrumentation/action_mailer.rb +1 -1
  7. data/lib/instana/instrumentation/action_view.rb +4 -4
  8. data/lib/instana/instrumentation/active_job.rb +20 -5
  9. data/lib/instana/instrumentation/active_record.rb +1 -1
  10. data/lib/instana/instrumentation/aws_sdk_dynamodb.rb +1 -1
  11. data/lib/instana/instrumentation/aws_sdk_lambda.rb +1 -1
  12. data/lib/instana/instrumentation/aws_sdk_s3.rb +1 -1
  13. data/lib/instana/instrumentation/aws_sdk_sns.rb +1 -1
  14. data/lib/instana/instrumentation/aws_sdk_sqs.rb +1 -1
  15. data/lib/instana/instrumentation/dalli.rb +1 -1
  16. data/lib/instana/instrumentation/excon.rb +2 -2
  17. data/lib/instana/instrumentation/graphql.rb +3 -3
  18. data/lib/instana/instrumentation/grpc.rb +14 -13
  19. data/lib/instana/instrumentation/mongo.rb +3 -3
  20. data/lib/instana/instrumentation/net-http.rb +5 -4
  21. data/lib/instana/instrumentation/rack.rb +36 -4
  22. data/lib/instana/instrumentation/redis.rb +1 -1
  23. data/lib/instana/instrumentation/resque.rb +10 -8
  24. data/lib/instana/instrumentation/rest-client.rb +4 -4
  25. data/lib/instana/instrumentation/sequel.rb +3 -3
  26. data/lib/instana/instrumentation/shoryuken.rb +4 -1
  27. data/lib/instana/instrumentation/sidekiq-client.rb +21 -19
  28. data/lib/instana/instrumentation/sidekiq-worker.rb +22 -21
  29. data/lib/instana/instrumented_logger.rb +1 -1
  30. data/lib/instana/samplers/result.rb +32 -0
  31. data/lib/instana/samplers/samplers.rb +76 -0
  32. data/lib/instana/serverless.rb +4 -2
  33. data/lib/instana/setup.rb +5 -5
  34. data/lib/instana/span_filtering/condition.rb +134 -0
  35. data/lib/instana/span_filtering/configuration.rb +262 -0
  36. data/lib/instana/span_filtering/filter_rule.rb +31 -0
  37. data/lib/instana/span_filtering.rb +62 -0
  38. data/lib/instana/trace/export.rb +36 -0
  39. data/lib/instana/{tracing → trace}/processor.rb +19 -15
  40. data/lib/instana/trace/span.rb +534 -0
  41. data/lib/instana/{tracing → trace}/span_context.rb +17 -8
  42. data/lib/instana/trace/span_kind.rb +51 -0
  43. data/lib/instana/trace/span_limits.rb +63 -0
  44. data/lib/instana/{tracer.rb → trace/tracer.rb} +106 -54
  45. data/lib/instana/trace/tracer_provider.rb +198 -0
  46. data/lib/instana/trace.rb +74 -0
  47. data/lib/instana/util.rb +11 -0
  48. data/lib/instana/version.rb +1 -1
  49. metadata +89 -267
  50. data/.circleci/config.yml +0 -485
  51. data/.codeclimate.yml +0 -23
  52. data/.editorconfig +0 -10
  53. data/.fasterer.yml +0 -23
  54. data/.github/ISSUE_TEMPLATE/bug.yml +0 -39
  55. data/.github/ISSUE_TEMPLATE/config.yml +0 -8
  56. data/.github/workflows/pr_commits_signed_off.yml +0 -16
  57. data/.github/workflows/release-notification-on-slack.yml +0 -34
  58. data/.gitignore +0 -19
  59. data/.rubocop.yml +0 -34
  60. data/.rubocop_todo.yml +0 -1140
  61. data/.tekton/.currency/docs/report.md +0 -20
  62. data/.tekton/.currency/resources/requirements.txt +0 -4
  63. data/.tekton/.currency/resources/table.json +0 -100
  64. data/.tekton/.currency/scripts/generate_report.py +0 -136
  65. data/.tekton/README.md +0 -278
  66. data/.tekton/github-interceptor-secret.yaml +0 -8
  67. data/.tekton/github-pr-eventlistener.yaml +0 -104
  68. data/.tekton/github-pr-pipeline.yaml.part +0 -38
  69. data/.tekton/github-set-status-task.yaml +0 -43
  70. data/.tekton/github-webhook-ingress.yaml +0 -20
  71. data/.tekton/pipeline.yaml +0 -571
  72. data/.tekton/pipelinerun.yaml +0 -21
  73. data/.tekton/ruby-tracer-prepuller.yaml +0 -87
  74. data/.tekton/run_unittests.sh +0 -87
  75. data/.tekton/scheduled-eventlistener.yaml +0 -108
  76. data/.tekton/task.yaml +0 -449
  77. data/.tekton/tekton-triggers-eventlistener-serviceaccount.yaml +0 -29
  78. data/Appraisals +0 -124
  79. data/CONTRIBUTING.md +0 -86
  80. data/Gemfile +0 -17
  81. data/LICENSE +0 -22
  82. data/MAINTAINERS.md +0 -3
  83. data/Rakefile +0 -49
  84. data/bin/announce_release_on_slack.py +0 -103
  85. data/docker-compose.yml +0 -20
  86. data/download.sh +0 -85
  87. data/examples/opentracing.rb +0 -35
  88. data/examples/tracing.rb +0 -84
  89. data/extras/license_header.rb +0 -44
  90. data/gemfiles/.bundle/config +0 -2
  91. data/gemfiles/aws_30.gemfile +0 -21
  92. data/gemfiles/aws_60.gemfile +0 -16
  93. data/gemfiles/cuba_30.gemfile +0 -16
  94. data/gemfiles/cuba_40.gemfile +0 -13
  95. data/gemfiles/dalli_20.gemfile +0 -15
  96. data/gemfiles/dalli_30.gemfile +0 -12
  97. data/gemfiles/dalli_32.gemfile +0 -12
  98. data/gemfiles/excon_0100.gemfile +0 -14
  99. data/gemfiles/excon_021.gemfile +0 -17
  100. data/gemfiles/excon_079.gemfile +0 -17
  101. data/gemfiles/excon_100.gemfile +0 -14
  102. data/gemfiles/graphql_10.gemfile +0 -16
  103. data/gemfiles/graphql_20.gemfile +0 -15
  104. data/gemfiles/grpc_10.gemfile +0 -15
  105. data/gemfiles/mongo_216.gemfile +0 -15
  106. data/gemfiles/mongo_219.gemfile +0 -12
  107. data/gemfiles/net_http_01.gemfile +0 -17
  108. data/gemfiles/rack_16.gemfile +0 -15
  109. data/gemfiles/rack_20.gemfile +0 -15
  110. data/gemfiles/rack_30.gemfile +0 -13
  111. data/gemfiles/rails_42.gemfile +0 -18
  112. data/gemfiles/rails_50.gemfile +0 -19
  113. data/gemfiles/rails_52.gemfile +0 -19
  114. data/gemfiles/rails_60.gemfile +0 -19
  115. data/gemfiles/rails_61.gemfile +0 -20
  116. data/gemfiles/rails_70.gemfile +0 -17
  117. data/gemfiles/rails_71.gemfile +0 -17
  118. data/gemfiles/rails_80.gemfile +0 -17
  119. data/gemfiles/redis_40.gemfile +0 -15
  120. data/gemfiles/redis_50.gemfile +0 -13
  121. data/gemfiles/redis_51.gemfile +0 -13
  122. data/gemfiles/resque_122.gemfile +0 -16
  123. data/gemfiles/resque_1274_3scale.gemfile +0 -17
  124. data/gemfiles/resque_20.gemfile +0 -16
  125. data/gemfiles/rest_client_16.gemfile +0 -17
  126. data/gemfiles/rest_client_20.gemfile +0 -17
  127. data/gemfiles/roda_20.gemfile +0 -16
  128. data/gemfiles/roda_30.gemfile +0 -16
  129. data/gemfiles/rubocop_162.gemfile +0 -6
  130. data/gemfiles/sequel_56.gemfile +0 -16
  131. data/gemfiles/sequel_57.gemfile +0 -16
  132. data/gemfiles/sequel_58.gemfile +0 -16
  133. data/gemfiles/shoryuken_50.gemfile +0 -16
  134. data/gemfiles/shoryuken_60.gemfile +0 -13
  135. data/gemfiles/sidekiq_42.gemfile +0 -15
  136. data/gemfiles/sidekiq_50.gemfile +0 -15
  137. data/gemfiles/sidekiq_60.gemfile +0 -12
  138. data/gemfiles/sidekiq_65.gemfile +0 -12
  139. data/gemfiles/sidekiq_70.gemfile +0 -12
  140. data/gemfiles/sinatra_14.gemfile +0 -15
  141. data/gemfiles/sinatra_22.gemfile +0 -12
  142. data/gemfiles/sinatra_30.gemfile +0 -12
  143. data/gemfiles/sinatra_40.gemfile +0 -12
  144. data/instana.gemspec +0 -48
  145. data/lib/instana/open_tracing/carrier.rb +0 -7
  146. data/lib/instana/open_tracing/instana_tracer.rb +0 -99
  147. data/lib/instana/tracing/span.rb +0 -431
  148. data/lib/opentracing.rb +0 -32
  149. data/log/.keep +0 -0
  150. data/sonar-project.properties +0 -9
  151. data/test/activator_test.rb +0 -50
  152. data/test/backend/agent_test.rb +0 -80
  153. data/test/backend/gc_snapshot_test.rb +0 -11
  154. data/test/backend/host_agent_activation_observer_test.rb +0 -73
  155. data/test/backend/host_agent_lookup_test.rb +0 -78
  156. data/test/backend/host_agent_reporting_observer_test.rb +0 -276
  157. data/test/backend/host_agent_test.rb +0 -89
  158. data/test/backend/process_info_test.rb +0 -83
  159. data/test/backend/request_client_test.rb +0 -39
  160. data/test/backend/serverless_agent_test.rb +0 -83
  161. data/test/benchmarks/bench_id_generation.rb +0 -15
  162. data/test/benchmarks/bench_opentracing.rb +0 -16
  163. data/test/config_test.rb +0 -34
  164. data/test/frameworks/cuba_test.rb +0 -61
  165. data/test/frameworks/roda_test.rb +0 -60
  166. data/test/frameworks/sinatra_test.rb +0 -71
  167. data/test/instana_test.rb +0 -37
  168. data/test/instrumentation/aws_test.rb +0 -241
  169. data/test/instrumentation/dalli_test.rb +0 -325
  170. data/test/instrumentation/excon_test.rb +0 -204
  171. data/test/instrumentation/graphql_test.rb +0 -289
  172. data/test/instrumentation/grpc_test.rb +0 -420
  173. data/test/instrumentation/mongo_test.rb +0 -68
  174. data/test/instrumentation/net_http_test.rb +0 -220
  175. data/test/instrumentation/rack_instrumented_request_test.rb +0 -211
  176. data/test/instrumentation/rack_test.rb +0 -415
  177. data/test/instrumentation/rails_action_cable_test.rb +0 -135
  178. data/test/instrumentation/rails_action_controller_test.rb +0 -218
  179. data/test/instrumentation/rails_action_mailer_test.rb +0 -66
  180. data/test/instrumentation/rails_action_view_test.rb +0 -154
  181. data/test/instrumentation/rails_active_job_test.rb +0 -65
  182. data/test/instrumentation/rails_active_record_database_missing_test.rb +0 -45
  183. data/test/instrumentation/rails_active_record_test.rb +0 -115
  184. data/test/instrumentation/redis_test.rb +0 -152
  185. data/test/instrumentation/resque_test.rb +0 -188
  186. data/test/instrumentation/rest_client_test.rb +0 -107
  187. data/test/instrumentation/sequel_test.rb +0 -105
  188. data/test/instrumentation/shoryuken_test.rb +0 -47
  189. data/test/instrumentation/sidekiq-client_test.rb +0 -169
  190. data/test/instrumentation/sidekiq-worker_test.rb +0 -180
  191. data/test/secrets_test.rb +0 -112
  192. data/test/serverless_test.rb +0 -369
  193. data/test/snapshot/deltable_test.rb +0 -17
  194. data/test/snapshot/docker_container_test.rb +0 -82
  195. data/test/snapshot/fargate_container_test.rb +0 -82
  196. data/test/snapshot/fargate_process_test.rb +0 -35
  197. data/test/snapshot/fargate_task_test.rb +0 -49
  198. data/test/snapshot/google_cloud_run_instance_test.rb +0 -74
  199. data/test/snapshot/google_cloud_run_process_test.rb +0 -33
  200. data/test/snapshot/lambda_function_test.rb +0 -37
  201. data/test/snapshot/ruby_process_test.rb +0 -32
  202. data/test/support/apps/active_record/active_record.rb +0 -24
  203. data/test/support/apps/grpc/boot.rb +0 -23
  204. data/test/support/apps/grpc/grpc_server.rb +0 -84
  205. data/test/support/apps/http_endpoint/boot.rb +0 -28
  206. data/test/support/apps/rails/boot.rb +0 -219
  207. data/test/support/apps/rails/models/block.rb +0 -21
  208. data/test/support/apps/rails/models/block6.rb +0 -21
  209. data/test/support/apps/resque/boot.rb +0 -5
  210. data/test/support/apps/resque/jobs/resque_error_job.rb +0 -22
  211. data/test/support/apps/resque/jobs/resque_fast_job.rb +0 -23
  212. data/test/support/apps/sidekiq/boot.rb +0 -25
  213. data/test/support/apps/sidekiq/jobs/sidekiq_job_1.rb +0 -9
  214. data/test/support/apps/sidekiq/jobs/sidekiq_job_2.rb +0 -10
  215. data/test/support/apps/sidekiq/worker.rb +0 -37
  216. data/test/support/helpers.rb +0 -85
  217. data/test/support/mock_timer.rb +0 -20
  218. data/test/test_helper.rb +0 -69
  219. data/test/tracing/custom_test.rb +0 -226
  220. data/test/tracing/id_management_test.rb +0 -80
  221. data/test/tracing/instrumented_logger_test.rb +0 -39
  222. data/test/tracing/opentracing_test.rb +0 -382
  223. data/test/tracing/processor_test.rb +0 -58
  224. data/test/tracing/span_context_test.rb +0 -22
  225. data/test/tracing/span_test.rb +0 -179
  226. data/test/tracing/tracer_async_test.rb +0 -230
  227. data/test/tracing/tracer_test.rb +0 -352
  228. data/test/util_test.rb +0 -10
data/LICENSE DELETED
@@ -1,22 +0,0 @@
1
- MIT License
2
-
3
- Copyright (c) Copyright IBM Corp. 2021
4
- Copyright (c) 2017 Instana, Inc. https://www.instana.com/
5
-
6
- Permission is hereby granted, free of charge, to any person obtaining a copy
7
- of this software and associated documentation files (the "Software"), to deal
8
- in the Software without restriction, including without limitation the rights
9
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10
- copies of the Software, and to permit persons to whom the Software is
11
- furnished to do so, subject to the following conditions:
12
-
13
- The above copyright notice and this permission notice shall be included in all
14
- copies or substantial portions of the Software.
15
-
16
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22
- SOFTWARE.
data/MAINTAINERS.md DELETED
@@ -1,3 +0,0 @@
1
- # MAINTAINERS
2
-
3
- [instana/eng-ruby](https://github.com/orgs/instana/teams/eng-ruby) can be reached with @instana/eng-ruby
data/Rakefile DELETED
@@ -1,49 +0,0 @@
1
- # (c) Copyright IBM Corp. 2021
2
- # (c) Copyright Instana Inc. 2016
3
-
4
- require 'bundler/gem_tasks'
5
- require 'rake/testtask'
6
-
7
- require 'json'
8
-
9
- Rake::TestTask.new(:test) do |t|
10
- t.verbose = false
11
- t.warning = false
12
- t.ruby_opts = ["--parser=parse.y"] if Gem::Version.new(RUBY_VERSION) > Gem::Version.new('3.3')
13
-
14
- t.libs << "test"
15
- t.libs << "lib"
16
-
17
- if ENV['APPRAISAL_INITIALIZED']
18
- appraised_group = File.basename(ENV['BUNDLE_GEMFILE']).split(/_[0-9]+\./).first
19
- suite_files = Dir['test/{instrumentation,frameworks}/*_test.rb']
20
-
21
- t.test_files = suite_files.select { |f| File.basename(f).start_with?(appraised_group) }
22
- else
23
- t.test_files = Dir[
24
- 'test/*_test.rb',
25
- 'test/{agent,tracing,backend,snapshot}/*_test.rb'
26
- ]
27
- end
28
- end
29
-
30
- namespace :coverage do
31
- task :merge_reports do
32
- require 'simplecov'
33
- require 'simplecov_json_formatter'
34
-
35
- SimpleCov.start do
36
- enable_coverage :branch
37
- SimpleCov.collate Dir["partial_coverage_results/.resultset-*.json"] do
38
- formatter SimpleCov::Formatter::MultiFormatter.new(
39
- [
40
- SimpleCov::Formatter::SimpleFormatter,
41
- SimpleCov::Formatter::JSONFormatter
42
- ]
43
- )
44
- end
45
- end
46
- end
47
- end
48
-
49
- task :default => :test
@@ -1,103 +0,0 @@
1
- #!/usr/bin/env python3
2
-
3
- # (c) Copyright IBM Corp. 2023
4
-
5
- import json
6
- import logging
7
- import os
8
- import re
9
- import requests
10
- import sys
11
-
12
- from github import Github
13
-
14
-
15
- def ensure_environment_variables_are_present():
16
- required_env_vars = ('GITHUB_RELEASE_TAG', 'GITHUB_TOKEN',
17
- 'SLACK_BOT_TOKEN', 'SLACK_CHANNEL_ID_RELEASES')
18
-
19
- for v in required_env_vars:
20
- if not os.environ.get(v):
21
- logging.fatal("A required environment variable is missing: %s", v)
22
- sys.exit(1)
23
-
24
-
25
- def get_gh_release_info_text_with_token(release_tag, access_token):
26
- g = Github(access_token)
27
- repo_name = "instana/ruby-sensor"
28
- repo = g.get_repo(repo_name)
29
- release = repo.get_release(release_tag)
30
-
31
- logging.info("GH Release fetched successfully %s", release)
32
-
33
- msg = (
34
- f":mega: :package: A new version is released in {repo_name}\n"
35
- f"Name: {release.title}\n"
36
- f"Tag: {release.tag_name}\n"
37
- f"Created at: {release.created_at}\n"
38
- f"Published at: {release.published_at}\n"
39
- f"{release.body}\n")
40
-
41
- logging.info(msg)
42
- return msg
43
-
44
-
45
- def reformat_github_md_to_slack_markup(msg):
46
- # Based on:
47
- # https://github.com/atomist/slack-messages/blob
48
- # /c938c67e957345ba6a0015ca3ace1fd779d0979c/lib/Markdown.ts#LL111C1-L116C44
49
-
50
- msg = re.sub(r'^(\s*)[-*](\s+)', r'\1•\2', msg, flags=re.MULTILINE)
51
- msg = re.sub(r'(\*|_)\1(\S|\S.*?\S)\1\1(?!\1)', r'<bdmkd>\2</bdmkd>', msg)
52
- msg = re.sub(r'(\*|_)(?!\1)(\S|\S.*?\S)\1(?!\1)', r'<itmkd>\2</itmkd>', msg)
53
- msg = msg.replace('<bdmkd>', '*').replace('<itmkd>', '_')
54
- msg = re.sub(r'^([#]+)\s+([\S ]+)$', r'*\2*', msg, flags=re.MULTILINE)
55
-
56
- # TODO: The message text has to have a partial entity encoding
57
- # https://api.slack.com/reference/surfaces/formatting#escaping
58
- # Validate it if we can?
59
- # A naive replace like this is not enough, because
60
- # it might already be encoded and then we would encode again.
61
- #s = s.replace('&', '&amp;')
62
- #s = s.replace('<', '&lt;')
63
- #s = s.replace('>', '&gt;')
64
-
65
- # Use the tester here:
66
- # https://api.slack.com/methods/chat.postMessage/test
67
- return msg
68
-
69
-
70
- def post_on_slack_channel(slack_token, slack_channel_id, message_text):
71
- api_url = "https://slack.com/api/chat.postMessage"
72
-
73
- headers = {"Authorization": f"Bearer {slack_token}",
74
- "Content-Type": "application/json"}
75
- body = {"channel": slack_channel_id, "text": message_text}
76
-
77
- response = requests.post(api_url, headers=headers, data=json.dumps(body))
78
- response_data = json.loads(response.text)
79
-
80
- if response_data["ok"]:
81
- logging.info("Message sent successfully!")
82
- else:
83
- logging.fatal("Error sending message: %s", response_data['error'])
84
-
85
-
86
- def main():
87
- # Setting this globally to DEBUG will also debug PyGithub,
88
- # which will produce even more log output
89
- logging.basicConfig(level=logging.INFO)
90
- ensure_environment_variables_are_present()
91
-
92
- msg = get_gh_release_info_text_with_token(os.environ['GITHUB_RELEASE_TAG'],
93
- os.environ['GITHUB_TOKEN'])
94
-
95
- slack_formatted_msg = reformat_github_md_to_slack_markup(msg)
96
-
97
- post_on_slack_channel(os.environ['SLACK_BOT_TOKEN'],
98
- os.environ['SLACK_CHANNEL_ID_RELEASES'],
99
- slack_formatted_msg)
100
-
101
-
102
- if __name__ == "__main__":
103
- main()
data/docker-compose.yml DELETED
@@ -1,20 +0,0 @@
1
- version: '3'
2
- services:
3
- sns:
4
- image: s12v/sns
5
- ports:
6
- - "9911:9911"
7
- s3:
8
- image: minio/minio:latest
9
- command: ["server", "/data"]
10
- ports:
11
- - "9000:9000"
12
- dynamodb:
13
- image: circleci/dynamodb
14
- ports:
15
- - "8000:8000"
16
- sqs:
17
- image: softwaremill/elasticmq-native
18
- ports:
19
- - "9324:9324"
20
- - "9325:9325"
data/download.sh DELETED
@@ -1,85 +0,0 @@
1
- #!/usr/bin/env bash
2
-
3
- if [[ -z ${CIRCLE_TOKEN} ]]
4
- then
5
- echo "ERROR: The CIRCLE_TOKEN variable is missing"
6
- exit 255
7
- fi
8
-
9
- PROJECT_SLUG='https://circleci.com/api/v2/project/gh/instana/ruby-sensor'
10
- PIPELINE_SLUG='https://circleci.com/api/v2/pipeline/'
11
- WORKFLOW_SLUG='https://circleci.com/api/v2/workflow/'
12
-
13
- echo "Getting Pipeline ID"
14
- PIPELINE_ID=$(curl -s \
15
- -H "Circle-Token: ${CIRCLE_TOKEN}" \
16
- "${PROJECT_SLUG}/job/${CIRCLE_BUILD_NUM}" \
17
- | jq -rj '.pipeline.id')
18
-
19
-
20
- echo "Received Pipeline ID is: ${PIPELINE_ID}"
21
-
22
- echo "Getting Workflows for Pipeline ID"
23
- WORKFLOW_IDS=$(curl -s \
24
- -H "Circle-Token: ${CIRCLE_TOKEN}" \
25
- "${PIPELINE_SLUG}/${PIPELINE_ID}/workflow" \
26
- | jq -r '.items[] | select(.name!="report_coverage") | .id')
27
-
28
- echo "Received Workflow IDs are: ${WORKFLOW_IDS}"
29
-
30
- for workflow_id in ${WORKFLOW_IDS}
31
- do
32
- echo "Waiting for workflow ${workflow_id} to finish"
33
- while true
34
- do
35
- STATUS=$(curl -s \
36
- -H "Circle-Token: ${CIRCLE_TOKEN}" \
37
- "${WORKFLOW_SLUG}/${workflow_id}" \
38
- | jq -r '.status')
39
- if [[ ${STATUS} != "running" && ${STATUS} != "on_hold" ]]
40
- then
41
- break
42
- else
43
- echo "Workflow ${workflow_id} has not finished yet. Status is: ${STATUS}"
44
- sleep 10
45
- fi
46
- done
47
-
48
- if [[ "${STATUS}" != "success" ]]
49
- then
50
- echo "ERROR: Workflow ${workflow_id} did not succeed! Status is: ${STATUS}"
51
- exit 254
52
- else
53
- echo "Workflow ${workflow_id} has finished successfully! Status is: ${STATUS}"
54
- fi
55
- done
56
-
57
-
58
- echo "All workflows have successfully finished, downloading artifacts."
59
-
60
- mkdir partial_coverage_results
61
- for workflow_id in ${WORKFLOW_IDS}
62
- do
63
- JOB_NUMBERS=$(curl -s \
64
- -H "Circle-Token: ${CIRCLE_TOKEN}" \
65
- "${WORKFLOW_SLUG}/${workflow_id}/job" \
66
- | jq -r '.items[] | .job_number' \
67
- | tr '\n' ' ')
68
-
69
- for job in ${JOB_NUMBERS}
70
- do
71
- ARTIFACT_DOWNLOAD_LINK=$(curl -s \
72
- -H "Circle-Token: ${CIRCLE_TOKEN}" \
73
- "${PROJECT_SLUG}/${job}/artifacts" \
74
- | jq -r \
75
- '.items[] | select(.path=="coverage/.resultset.json") | .url')
76
- #'.items[] | select(.path=="coverage/coverage.json" or .path=="coverage/.resultset.json") | .url')
77
- curl -s \
78
- -L \
79
- -H "Circle-Token: ${CIRCLE_TOKEN}" \
80
- "${ARTIFACT_DOWNLOAD_LINK}" \
81
- -o partial_coverage_results/.resultset-${job}.json
82
- done
83
- done
84
-
85
- echo "All artifacts have been successfully downloaded."
@@ -1,35 +0,0 @@
1
- # This file contains a basic OpenTracing example.
2
- #
3
- # Note: The instana gem automatically sets the Instana tracer
4
- # to `OpenTracing.global_tracer`. Once the gem is loaded, you can
5
- # immediately start making OpenTracing calls.
6
- #
7
-
8
- # (c) Copyright IBM Corp. 2021
9
- # (c) Copyright Instana Inc. 2018
10
-
11
- require "opentracing"
12
-
13
- entry_span = OpenTracing.start_span("HandMadeRackServer")
14
-
15
- entry_span.set_tag(:'http.method', :get)
16
- entry_span.set_tag(:'http.url', "/users")
17
- entry_span.set_tag(:'span.kind', "entry")
18
-
19
- intermediate_span = OpenTracing.start_span("myintermediate", :child_of => entry_span)
20
- intermediate_span.finish()
21
-
22
- db_span = OpenTracing.start_span('mydbspan', :child_of => entry_span)
23
- db_span.set_tag(:'db.instance', "users")
24
- db_span.set_tag(:'db.statement', "SELECT * FROM user_table")
25
- db_span.set_tag(:'db.type', "mysql")
26
- db_span.set_tag(:'db.user', "mysql_login")
27
- db_span.set_tag(:'span.kind', "exit")
28
- db_span.finish()
29
-
30
- intermediate_span = OpenTracing.start_span("myintermediate", :child_of => entry_span)
31
- intermediate_span.log("ALLOK", :message => "All seems ok")
32
- intermediate_span.finish()
33
-
34
- entry_span.set_tag(:'http.status_code', 200)
35
- entry_span.finish()
data/examples/tracing.rb DELETED
@@ -1,84 +0,0 @@
1
- # This file outlines the Instana Ruby Tracing API.
2
- #
3
- # This same tracer also supports OpenTracing. See `opentracing.rb` for
4
- # separate documentation.
5
-
6
- # This API is also documented on rubydoc:
7
- # http://www.rubydoc.info/gems/instana/1.7.8/Instana/Tracer
8
-
9
- #######################################
10
- ## Block tracing
11
- #######################################
12
-
13
- #Instana::Tracer.start_or_continue_trace(name, kvs, incoming_context) - Initiates tracing
14
- #Instana::Tracer.trace(name, kvs) - starts a new span in an existing Trace
15
-
16
- # <start_or_continue_trace> will initiate a new trace. Often used at entry
17
- # points in webservers (e.g. rack), it will initialize tracing and instrument the passed
18
- # block. <incoming_id> is a hash for continuing remote traces (remote in terms
19
- # of service calls, or message queues).
20
-
21
- # (c) Copyright IBM Corp. 2021
22
- # (c) Copyright Instana Inc. 2016
23
-
24
- Instana::Tracer.start_or_continue_trace(:my_block_name, {}, incoming_context) do
25
- # Code block
26
- end
27
-
28
- # <trace> will instrument a block of code in an already running trace.
29
- # This is the most common use case (instead of initiating new
30
- # traces).
31
- Instana::Tracer.trace(:postgres, {:user => 'postgres'}) do
32
- @postgres.select(1)
33
- end
34
-
35
- #######################################
36
- ## Lower level logging
37
- #######################################
38
-
39
- # <log_start_or_continue_trace> will initiate a new trace. Often used at entry
40
- # points in webservers, it will establish a new trace (for web request,
41
- # background jobs etc.).
42
- # <incoming_context> is a hash for continuing remote traces (remote in terms
43
- # of service calls, or message queues).
44
- Instana::Tracer.log_start_or_continue(:rack, {}, incoming_context)
45
-
46
- # <log_entry> will start a new span from the current span within
47
- # a trace.
48
- Instana::Tracer.log_entry(name, kvs)
49
-
50
- # <log_exit> will close out the current span
51
- Instana::Tracer.log_exit(name, kvs)
52
-
53
- # <log_info> will append information to the current span in the
54
- # trace. Examples could be redis options, contextual data, user
55
- # login status etc...
56
- Instana::Tracer.log_info({:some_key => 'some_value'})
57
-
58
- # <log_error> will log an exception to the current span in the
59
- # trace.
60
- Instana::Tracer.log_error(Exception)
61
-
62
- # <log_end> closes out the current span, finishes
63
- # the trace and adds it to ::Instana.processor
64
- # for reporting.
65
- Instana::Tracer.log_end(:rack, {})
66
-
67
- #######################################
68
- # Lower level API Example
69
- ######################################
70
-
71
- # Full Tracing Lifecycle example
72
- #
73
- Instana::Tracer.log_start_or_continue(:mywebserver, {:user_id => @user_id})
74
-
75
- begin
76
- Instana::Tracer.log_entry(:redis_lookup, {:redisdb => @redisdb.url})
77
- @redisdb.get(@user_id.session_id)
78
- rescue => e
79
- Instana::Tracer.log_error(e)
80
- ensure
81
- Instana::Tracer.log_exit(:redis_lookup)
82
- end
83
-
84
- Instana::Tracer.log_end(:mywebserver)
@@ -1,44 +0,0 @@
1
- # (c) Copyright IBM Corp. 2021
2
- # (c) Copyright Instana Inc. 2021
3
-
4
- require 'time'
5
-
6
- module RuboCop
7
- module Cop
8
- module Instana
9
- # Ensures the license header is present in each ruby file
10
- class LicenseHeader < Base
11
- extend AutoCorrector
12
-
13
- MSG = 'The license header should be present in each file.'.freeze
14
- HEADER = '(c) Copyright IBM Corp.'.freeze
15
- HEADER_TEMPLATE = <<~HERE.freeze
16
- # (c) Copyright IBM Corp. %d
17
- # (c) Copyright Instana Inc. %d
18
- HERE
19
-
20
- def on_new_investigation
21
- first_statement = processed_source.tokens.detect { |t| t.type != :tCOMMENT }
22
- file_name = first_statement.pos.source_buffer.name
23
- header_comment = processed_source.comments.detect do |comment|
24
- first_statement_line = first_statement.pos.line
25
- comment_line = comment.loc.line
26
-
27
- (comment_line < first_statement_line) && comment.text.include?(HEADER)
28
- end
29
-
30
- return if header_comment
31
-
32
- add_offense(first_statement.pos) do |corrector|
33
- current_year = Time.now.year
34
- created_time = `git log --diff-filter=A --follow --format=%aD -1 -- #{file_name}`
35
- created_year = created_time.empty? ? current_year : Time.parse(created_time).year
36
-
37
- header_text = format(HEADER_TEMPLATE, current_year, created_year)
38
- corrector.insert_before(first_statement.pos, "\n#{header_text}\n")
39
- end
40
- end
41
- end
42
- end
43
- end
44
- end
@@ -1,2 +0,0 @@
1
- ---
2
- BUNDLE_RETRY: "1"
@@ -1,21 +0,0 @@
1
- # This file was generated by Appraisal
2
-
3
- # (c) Copyright IBM Corp. 2021
4
- # (c) Copyright Instana Inc. 2021
5
-
6
- source "https://rubygems.org"
7
-
8
- gem "minitest-reporters"
9
- gem "webmock"
10
- gem "webrick"
11
- gem "puma"
12
- gem "rack-test"
13
- gem "simplecov", "~> 0.21.2"
14
- gem "aws-sdk-core", "= 3.191.6"
15
- gem "aws-sdk-dynamodb", ">= 1.59", "< 1.99"
16
- gem "aws-sdk-s3", ">= 1.59", "< 1.60"
17
- gem "aws-sdk-sns", ">= 1.38", "< 1.59"
18
- gem "aws-sdk-sqs", ">= 1.36", "< 1.59"
19
- gem "aws-sdk-lambda", ">= 1.62", "< 1.80"
20
-
21
- gemspec path: "../"
@@ -1,16 +0,0 @@
1
- # (c) Copyright IBM Corp. 2023
2
-
3
- source "https://rubygems.org"
4
-
5
- gem "minitest-reporters"
6
- gem "webmock"
7
- gem "puma"
8
- gem "rack-test"
9
- gem "simplecov", "~> 0.21.2"
10
- gem "aws-sdk-dynamodb", ">= 1.90"
11
- gem "aws-sdk-s3", ">= 1.127"
12
- gem "aws-sdk-sns", ">= 1.63"
13
- gem "aws-sdk-sqs", ">= 1.59"
14
- gem "aws-sdk-lambda", ">= 1.101"
15
-
16
- gemspec path: "../"
@@ -1,16 +0,0 @@
1
- # This file was generated by Appraisal
2
-
3
- # (c) Copyright IBM Corp. 2021
4
- # (c) Copyright Instana Inc. 2021
5
-
6
- source "https://rubygems.org"
7
-
8
- gem "rack", "<3.0.0"
9
- gem "minitest-reporters"
10
- gem "webmock"
11
- gem "puma"
12
- gem "rack-test"
13
- gem "simplecov", "~> 0.21.2"
14
- gem "cuba", ">= 3.0", "< 4.0"
15
-
16
- gemspec path: "../"
@@ -1,13 +0,0 @@
1
- # (c) Copyright IBM Corp. 2023
2
-
3
- source "https://rubygems.org"
4
-
5
- gem "rack", ">=3.0.0"
6
- gem "minitest-reporters"
7
- gem "webmock"
8
- gem "puma"
9
- gem "rack-test"
10
- gem "simplecov", "~> 0.21.2"
11
- gem "cuba", ">= 4.0.1"
12
-
13
- gemspec path: "../"
@@ -1,15 +0,0 @@
1
- # This file was generated by Appraisal
2
-
3
- # (c) Copyright IBM Corp. 2021
4
- # (c) Copyright Instana Inc. 2021
5
-
6
- source "https://rubygems.org"
7
-
8
- gem "minitest-reporters"
9
- gem "webmock"
10
- gem "puma"
11
- gem "rack-test"
12
- gem "simplecov", "~> 0.21.2"
13
- gem "dalli", ">= 2.0", "< 3.0"
14
-
15
- gemspec path: "../"
@@ -1,12 +0,0 @@
1
- # (c) Copyright IBM Corp. 2023
2
-
3
- source "https://rubygems.org"
4
-
5
- gem "minitest-reporters"
6
- gem "webmock"
7
- gem "puma"
8
- gem "rack-test"
9
- gem "simplecov", "~> 0.21.2"
10
- gem "dalli", "< 3.1.3"
11
-
12
- gemspec path: "../"
@@ -1,12 +0,0 @@
1
- # (c) Copyright IBM Corp. 2023
2
-
3
- source "https://rubygems.org"
4
-
5
- gem "minitest-reporters"
6
- gem "webmock"
7
- gem "puma"
8
- gem "rack-test"
9
- gem "simplecov", "~> 0.21.2"
10
- gem "dalli", ">= 3.2.5"
11
-
12
- gemspec path: "../"
@@ -1,14 +0,0 @@
1
- # (c) Copyright IBM Corp. 2023
2
-
3
- source "https://rubygems.org"
4
-
5
- gem "rack"
6
- gem "rackup"
7
- gem "minitest-reporters"
8
- gem "webmock"
9
- gem "puma"
10
- gem "rack-test"
11
- gem "simplecov", "~> 0.21.2"
12
- gem "excon", ">= 0.100.0", "< 1.0"
13
-
14
- gemspec path: "../"
@@ -1,17 +0,0 @@
1
- # This file was generated by Appraisal
2
-
3
- # (c) Copyright IBM Corp. 2021
4
- # (c) Copyright Instana Inc. 2021
5
-
6
- source "https://rubygems.org"
7
-
8
- gem "rack"
9
- gem "rackup"
10
- gem "minitest-reporters"
11
- gem "webmock"
12
- gem "puma"
13
- gem "rack-test"
14
- gem "simplecov", "~> 0.21.2"
15
- gem "excon", "0.21.0"
16
-
17
- gemspec path: "../"
@@ -1,17 +0,0 @@
1
- # This file was generated by Appraisal
2
-
3
- # (c) Copyright IBM Corp. 2021
4
- # (c) Copyright Instana Inc. 2021
5
-
6
- source "https://rubygems.org"
7
-
8
- gem "rack"
9
- gem "rackup"
10
- gem "minitest-reporters"
11
- gem "webmock"
12
- gem "puma"
13
- gem "rack-test"
14
- gem "simplecov", "~> 0.21.2"
15
- gem "excon", "0.79.0"
16
-
17
- gemspec path: "../"
@@ -1,14 +0,0 @@
1
- # (c) Copyright IBM Corp. 2024
2
-
3
- source "https://rubygems.org"
4
-
5
- gem "rack"
6
- gem "rackup"
7
- gem "minitest-reporters"
8
- gem "webmock"
9
- gem "puma"
10
- gem "rack-test"
11
- gem "simplecov", "~> 0.21.2"
12
- gem "excon", ">= 1.0.0", "< 2.0"
13
-
14
- gemspec path: "../"
@@ -1,16 +0,0 @@
1
- # This file was generated by Appraisal
2
-
3
- # (c) Copyright IBM Corp. 2021
4
- # (c) Copyright Instana Inc. 2021
5
-
6
- source "https://rubygems.org"
7
-
8
- gem "minitest-reporters"
9
- gem "webmock"
10
- gem "puma"
11
- gem "rack-test"
12
- gem "racc"
13
- gem "simplecov", "~> 0.21.2"
14
- gem "graphql", ">= 1.0", "< 2.0"
15
-
16
- gemspec path: "../"
@@ -1,15 +0,0 @@
1
- # This file was generated by Appraisal
2
-
3
- # (c) Copyright IBM Corp. 2021
4
- # (c) Copyright Instana Inc. 2021
5
-
6
- source "https://rubygems.org"
7
-
8
- gem "minitest-reporters"
9
- gem "webmock"
10
- gem "puma"
11
- gem "rack-test"
12
- gem "simplecov", "~> 0.21.2"
13
- gem "graphql", ">= 2.0.21", "< 3.0"
14
-
15
- gemspec path: "../"