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.
- checksums.yaml +4 -4
- data/README.md +2 -1
- data/lib/instana/base.rb +4 -2
- data/lib/instana/instrumentation/action_cable.rb +8 -4
- data/lib/instana/instrumentation/action_controller.rb +2 -4
- data/lib/instana/instrumentation/action_mailer.rb +1 -1
- data/lib/instana/instrumentation/action_view.rb +4 -4
- data/lib/instana/instrumentation/active_job.rb +20 -5
- data/lib/instana/instrumentation/active_record.rb +1 -1
- data/lib/instana/instrumentation/aws_sdk_dynamodb.rb +1 -1
- data/lib/instana/instrumentation/aws_sdk_lambda.rb +1 -1
- data/lib/instana/instrumentation/aws_sdk_s3.rb +1 -1
- data/lib/instana/instrumentation/aws_sdk_sns.rb +1 -1
- data/lib/instana/instrumentation/aws_sdk_sqs.rb +1 -1
- data/lib/instana/instrumentation/dalli.rb +1 -1
- data/lib/instana/instrumentation/excon.rb +2 -2
- data/lib/instana/instrumentation/graphql.rb +3 -3
- data/lib/instana/instrumentation/grpc.rb +14 -13
- data/lib/instana/instrumentation/mongo.rb +3 -3
- data/lib/instana/instrumentation/net-http.rb +5 -4
- data/lib/instana/instrumentation/rack.rb +36 -4
- data/lib/instana/instrumentation/redis.rb +1 -1
- data/lib/instana/instrumentation/resque.rb +10 -8
- data/lib/instana/instrumentation/rest-client.rb +4 -4
- data/lib/instana/instrumentation/sequel.rb +3 -3
- data/lib/instana/instrumentation/shoryuken.rb +4 -1
- data/lib/instana/instrumentation/sidekiq-client.rb +21 -19
- data/lib/instana/instrumentation/sidekiq-worker.rb +22 -21
- data/lib/instana/instrumented_logger.rb +1 -1
- data/lib/instana/samplers/result.rb +32 -0
- data/lib/instana/samplers/samplers.rb +76 -0
- data/lib/instana/serverless.rb +4 -2
- data/lib/instana/setup.rb +5 -5
- data/lib/instana/span_filtering/condition.rb +134 -0
- data/lib/instana/span_filtering/configuration.rb +262 -0
- data/lib/instana/span_filtering/filter_rule.rb +31 -0
- data/lib/instana/span_filtering.rb +62 -0
- data/lib/instana/trace/export.rb +36 -0
- data/lib/instana/{tracing → trace}/processor.rb +19 -15
- data/lib/instana/trace/span.rb +534 -0
- data/lib/instana/{tracing → trace}/span_context.rb +17 -8
- data/lib/instana/trace/span_kind.rb +51 -0
- data/lib/instana/trace/span_limits.rb +63 -0
- data/lib/instana/{tracer.rb → trace/tracer.rb} +106 -54
- data/lib/instana/trace/tracer_provider.rb +198 -0
- data/lib/instana/trace.rb +74 -0
- data/lib/instana/util.rb +11 -0
- data/lib/instana/version.rb +1 -1
- metadata +89 -267
- data/.circleci/config.yml +0 -485
- data/.codeclimate.yml +0 -23
- data/.editorconfig +0 -10
- data/.fasterer.yml +0 -23
- data/.github/ISSUE_TEMPLATE/bug.yml +0 -39
- data/.github/ISSUE_TEMPLATE/config.yml +0 -8
- data/.github/workflows/pr_commits_signed_off.yml +0 -16
- data/.github/workflows/release-notification-on-slack.yml +0 -34
- data/.gitignore +0 -19
- data/.rubocop.yml +0 -34
- data/.rubocop_todo.yml +0 -1140
- data/.tekton/.currency/docs/report.md +0 -20
- data/.tekton/.currency/resources/requirements.txt +0 -4
- data/.tekton/.currency/resources/table.json +0 -100
- data/.tekton/.currency/scripts/generate_report.py +0 -136
- data/.tekton/README.md +0 -278
- data/.tekton/github-interceptor-secret.yaml +0 -8
- data/.tekton/github-pr-eventlistener.yaml +0 -104
- data/.tekton/github-pr-pipeline.yaml.part +0 -38
- data/.tekton/github-set-status-task.yaml +0 -43
- data/.tekton/github-webhook-ingress.yaml +0 -20
- data/.tekton/pipeline.yaml +0 -571
- data/.tekton/pipelinerun.yaml +0 -21
- data/.tekton/ruby-tracer-prepuller.yaml +0 -87
- data/.tekton/run_unittests.sh +0 -87
- data/.tekton/scheduled-eventlistener.yaml +0 -108
- data/.tekton/task.yaml +0 -449
- data/.tekton/tekton-triggers-eventlistener-serviceaccount.yaml +0 -29
- data/Appraisals +0 -124
- data/CONTRIBUTING.md +0 -86
- data/Gemfile +0 -17
- data/LICENSE +0 -22
- data/MAINTAINERS.md +0 -3
- data/Rakefile +0 -49
- data/bin/announce_release_on_slack.py +0 -103
- data/docker-compose.yml +0 -20
- data/download.sh +0 -85
- data/examples/opentracing.rb +0 -35
- data/examples/tracing.rb +0 -84
- data/extras/license_header.rb +0 -44
- data/gemfiles/.bundle/config +0 -2
- data/gemfiles/aws_30.gemfile +0 -21
- data/gemfiles/aws_60.gemfile +0 -16
- data/gemfiles/cuba_30.gemfile +0 -16
- data/gemfiles/cuba_40.gemfile +0 -13
- data/gemfiles/dalli_20.gemfile +0 -15
- data/gemfiles/dalli_30.gemfile +0 -12
- data/gemfiles/dalli_32.gemfile +0 -12
- data/gemfiles/excon_0100.gemfile +0 -14
- data/gemfiles/excon_021.gemfile +0 -17
- data/gemfiles/excon_079.gemfile +0 -17
- data/gemfiles/excon_100.gemfile +0 -14
- data/gemfiles/graphql_10.gemfile +0 -16
- data/gemfiles/graphql_20.gemfile +0 -15
- data/gemfiles/grpc_10.gemfile +0 -15
- data/gemfiles/mongo_216.gemfile +0 -15
- data/gemfiles/mongo_219.gemfile +0 -12
- data/gemfiles/net_http_01.gemfile +0 -17
- data/gemfiles/rack_16.gemfile +0 -15
- data/gemfiles/rack_20.gemfile +0 -15
- data/gemfiles/rack_30.gemfile +0 -13
- data/gemfiles/rails_42.gemfile +0 -18
- data/gemfiles/rails_50.gemfile +0 -19
- data/gemfiles/rails_52.gemfile +0 -19
- data/gemfiles/rails_60.gemfile +0 -19
- data/gemfiles/rails_61.gemfile +0 -20
- data/gemfiles/rails_70.gemfile +0 -17
- data/gemfiles/rails_71.gemfile +0 -17
- data/gemfiles/rails_80.gemfile +0 -17
- data/gemfiles/redis_40.gemfile +0 -15
- data/gemfiles/redis_50.gemfile +0 -13
- data/gemfiles/redis_51.gemfile +0 -13
- data/gemfiles/resque_122.gemfile +0 -16
- data/gemfiles/resque_1274_3scale.gemfile +0 -17
- data/gemfiles/resque_20.gemfile +0 -16
- data/gemfiles/rest_client_16.gemfile +0 -17
- data/gemfiles/rest_client_20.gemfile +0 -17
- data/gemfiles/roda_20.gemfile +0 -16
- data/gemfiles/roda_30.gemfile +0 -16
- data/gemfiles/rubocop_162.gemfile +0 -6
- data/gemfiles/sequel_56.gemfile +0 -16
- data/gemfiles/sequel_57.gemfile +0 -16
- data/gemfiles/sequel_58.gemfile +0 -16
- data/gemfiles/shoryuken_50.gemfile +0 -16
- data/gemfiles/shoryuken_60.gemfile +0 -13
- data/gemfiles/sidekiq_42.gemfile +0 -15
- data/gemfiles/sidekiq_50.gemfile +0 -15
- data/gemfiles/sidekiq_60.gemfile +0 -12
- data/gemfiles/sidekiq_65.gemfile +0 -12
- data/gemfiles/sidekiq_70.gemfile +0 -12
- data/gemfiles/sinatra_14.gemfile +0 -15
- data/gemfiles/sinatra_22.gemfile +0 -12
- data/gemfiles/sinatra_30.gemfile +0 -12
- data/gemfiles/sinatra_40.gemfile +0 -12
- data/instana.gemspec +0 -48
- data/lib/instana/open_tracing/carrier.rb +0 -7
- data/lib/instana/open_tracing/instana_tracer.rb +0 -99
- data/lib/instana/tracing/span.rb +0 -431
- data/lib/opentracing.rb +0 -32
- data/log/.keep +0 -0
- data/sonar-project.properties +0 -9
- data/test/activator_test.rb +0 -50
- data/test/backend/agent_test.rb +0 -80
- data/test/backend/gc_snapshot_test.rb +0 -11
- data/test/backend/host_agent_activation_observer_test.rb +0 -73
- data/test/backend/host_agent_lookup_test.rb +0 -78
- data/test/backend/host_agent_reporting_observer_test.rb +0 -276
- data/test/backend/host_agent_test.rb +0 -89
- data/test/backend/process_info_test.rb +0 -83
- data/test/backend/request_client_test.rb +0 -39
- data/test/backend/serverless_agent_test.rb +0 -83
- data/test/benchmarks/bench_id_generation.rb +0 -15
- data/test/benchmarks/bench_opentracing.rb +0 -16
- data/test/config_test.rb +0 -34
- data/test/frameworks/cuba_test.rb +0 -61
- data/test/frameworks/roda_test.rb +0 -60
- data/test/frameworks/sinatra_test.rb +0 -71
- data/test/instana_test.rb +0 -37
- data/test/instrumentation/aws_test.rb +0 -241
- data/test/instrumentation/dalli_test.rb +0 -325
- data/test/instrumentation/excon_test.rb +0 -204
- data/test/instrumentation/graphql_test.rb +0 -289
- data/test/instrumentation/grpc_test.rb +0 -420
- data/test/instrumentation/mongo_test.rb +0 -68
- data/test/instrumentation/net_http_test.rb +0 -220
- data/test/instrumentation/rack_instrumented_request_test.rb +0 -211
- data/test/instrumentation/rack_test.rb +0 -415
- data/test/instrumentation/rails_action_cable_test.rb +0 -135
- data/test/instrumentation/rails_action_controller_test.rb +0 -218
- data/test/instrumentation/rails_action_mailer_test.rb +0 -66
- data/test/instrumentation/rails_action_view_test.rb +0 -154
- data/test/instrumentation/rails_active_job_test.rb +0 -65
- data/test/instrumentation/rails_active_record_database_missing_test.rb +0 -45
- data/test/instrumentation/rails_active_record_test.rb +0 -115
- data/test/instrumentation/redis_test.rb +0 -152
- data/test/instrumentation/resque_test.rb +0 -188
- data/test/instrumentation/rest_client_test.rb +0 -107
- data/test/instrumentation/sequel_test.rb +0 -105
- data/test/instrumentation/shoryuken_test.rb +0 -47
- data/test/instrumentation/sidekiq-client_test.rb +0 -169
- data/test/instrumentation/sidekiq-worker_test.rb +0 -180
- data/test/secrets_test.rb +0 -112
- data/test/serverless_test.rb +0 -369
- data/test/snapshot/deltable_test.rb +0 -17
- data/test/snapshot/docker_container_test.rb +0 -82
- data/test/snapshot/fargate_container_test.rb +0 -82
- data/test/snapshot/fargate_process_test.rb +0 -35
- data/test/snapshot/fargate_task_test.rb +0 -49
- data/test/snapshot/google_cloud_run_instance_test.rb +0 -74
- data/test/snapshot/google_cloud_run_process_test.rb +0 -33
- data/test/snapshot/lambda_function_test.rb +0 -37
- data/test/snapshot/ruby_process_test.rb +0 -32
- data/test/support/apps/active_record/active_record.rb +0 -24
- data/test/support/apps/grpc/boot.rb +0 -23
- data/test/support/apps/grpc/grpc_server.rb +0 -84
- data/test/support/apps/http_endpoint/boot.rb +0 -28
- data/test/support/apps/rails/boot.rb +0 -219
- data/test/support/apps/rails/models/block.rb +0 -21
- data/test/support/apps/rails/models/block6.rb +0 -21
- data/test/support/apps/resque/boot.rb +0 -5
- data/test/support/apps/resque/jobs/resque_error_job.rb +0 -22
- data/test/support/apps/resque/jobs/resque_fast_job.rb +0 -23
- data/test/support/apps/sidekiq/boot.rb +0 -25
- data/test/support/apps/sidekiq/jobs/sidekiq_job_1.rb +0 -9
- data/test/support/apps/sidekiq/jobs/sidekiq_job_2.rb +0 -10
- data/test/support/apps/sidekiq/worker.rb +0 -37
- data/test/support/helpers.rb +0 -85
- data/test/support/mock_timer.rb +0 -20
- data/test/test_helper.rb +0 -69
- data/test/tracing/custom_test.rb +0 -226
- data/test/tracing/id_management_test.rb +0 -80
- data/test/tracing/instrumented_logger_test.rb +0 -39
- data/test/tracing/opentracing_test.rb +0 -382
- data/test/tracing/processor_test.rb +0 -58
- data/test/tracing/span_context_test.rb +0 -22
- data/test/tracing/span_test.rb +0 -179
- data/test/tracing/tracer_async_test.rb +0 -230
- data/test/tracing/tracer_test.rb +0 -352
- 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
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('&', '&')
|
62
|
-
#s = s.replace('<', '<')
|
63
|
-
#s = s.replace('>', '>')
|
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."
|
data/examples/opentracing.rb
DELETED
@@ -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)
|
data/extras/license_header.rb
DELETED
@@ -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
|
data/gemfiles/.bundle/config
DELETED
data/gemfiles/aws_30.gemfile
DELETED
@@ -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: "../"
|
data/gemfiles/aws_60.gemfile
DELETED
@@ -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: "../"
|
data/gemfiles/cuba_30.gemfile
DELETED
@@ -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: "../"
|
data/gemfiles/cuba_40.gemfile
DELETED
data/gemfiles/dalli_20.gemfile
DELETED
@@ -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: "../"
|
data/gemfiles/dalli_30.gemfile
DELETED
data/gemfiles/dalli_32.gemfile
DELETED
data/gemfiles/excon_0100.gemfile
DELETED
@@ -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: "../"
|
data/gemfiles/excon_021.gemfile
DELETED
@@ -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: "../"
|
data/gemfiles/excon_079.gemfile
DELETED
@@ -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: "../"
|
data/gemfiles/excon_100.gemfile
DELETED
@@ -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: "../"
|
data/gemfiles/graphql_10.gemfile
DELETED
@@ -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: "../"
|
data/gemfiles/graphql_20.gemfile
DELETED
@@ -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: "../"
|