splunk-otel 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (51) hide show
  1. checksums.yaml +7 -0
  2. data/.github/CODEOWNERS +14 -0
  3. data/.github/workflows/main.yml +48 -0
  4. data/.gitignore +13 -0
  5. data/.gitlab-ci.yml +23 -0
  6. data/.rubocop.yml +27 -0
  7. data/CHANGELOG.md +10 -0
  8. data/CODE_OF_CONDUCT.md +90 -0
  9. data/CONTRIBUTING.md +88 -0
  10. data/Gemfile +6 -0
  11. data/LICENSE +177 -0
  12. data/MIGRATING.md +61 -0
  13. data/README.md +190 -0
  14. data/Rakefile +15 -0
  15. data/SECURITY.md +7 -0
  16. data/conf/otel-collector-config.yaml +21 -0
  17. data/docker-compose.yml +11 -0
  18. data/docs/README.md +3 -0
  19. data/docs/advanced-config.md +52 -0
  20. data/docs/correlating-traces-and-logs.md +23 -0
  21. data/docs/instrumenting-rails.md +7 -0
  22. data/docs/troubleshooting.md +14 -0
  23. data/examples/basic/README.md +94 -0
  24. data/examples/basic/collector_trace.png +0 -0
  25. data/examples/basic/console.rb +63 -0
  26. data/examples/basic/direct_trace.png +0 -0
  27. data/examples/basic/docker-compose.yml +9 -0
  28. data/examples/rails-7-barebones/.bundle/config +2 -0
  29. data/examples/rails-7-barebones/.gitignore +1 -0
  30. data/examples/rails-7-barebones/Dockerfile +16 -0
  31. data/examples/rails-7-barebones/Gemfile +17 -0
  32. data/examples/rails-7-barebones/README.md +24 -0
  33. data/examples/rails-7-barebones/app.ru +34 -0
  34. data/examples/rails-7-barebones/config/initializers/splunk_otel.rb +4 -0
  35. data/examples/rails-7-barebones/docker-compose.yml +34 -0
  36. data/examples/rails-7-barebones/tests-e2e/rails_7_barebones_test.rb +27 -0
  37. data/examples/rails-7-barebones/wait-for.sh +191 -0
  38. data/lib/splunk/otel/common.rb +47 -0
  39. data/lib/splunk/otel/instrumentation/action_pack/instrumentation.rb +41 -0
  40. data/lib/splunk/otel/instrumentation/action_pack/railtie.rb +28 -0
  41. data/lib/splunk/otel/instrumentation/action_pack/version.rb +11 -0
  42. data/lib/splunk/otel/instrumentation/action_pack.rb +14 -0
  43. data/lib/splunk/otel/instrumentation/rack/middleware.rb +25 -0
  44. data/lib/splunk/otel/instrumentation/rack.rb +3 -0
  45. data/lib/splunk/otel/logging.rb +24 -0
  46. data/lib/splunk/otel/version.rb +7 -0
  47. data/lib/splunk/otel.rb +170 -0
  48. data/scripts/install-release-deps.sh +10 -0
  49. data/scripts/release.sh +38 -0
  50. data/splunk-otel.gemspec +51 -0
  51. metadata +316 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: b26ca5033148be9cca92f15da5226356a391db3d3f2da45b144b64381a321b69
4
+ data.tar.gz: c6a6fbb2e6a784bb149654d77a1736f3aab4ba18827a25000561ea05271bf6a1
5
+ SHA512:
6
+ metadata.gz: 9a6156c5569d2dd5a85cbff060c0def7d8fe4c35408b9545b5d1704306bbb945ef0c11273844d9c7ad7fff7079b8b95b3ee3d9101451e4c388bad7c5c0f46bd2
7
+ data.tar.gz: 56b7fd62c64d001e9e60226e7a119f374734a59d984bf21e47056b19b7ee419a79c059059c5d7982175309654ccaed04694218858952eadb06f1249ba65a31ac
@@ -0,0 +1,14 @@
1
+ * @signalfx/gdi-ruby-maintainers @signalfx/gdi-ruby-approvers
2
+
3
+ CODEOWNERS @signalfx/gdi-ruby-maintainers
4
+
5
+ #####################################################
6
+ #
7
+ # Docs reviewers
8
+ #
9
+ #####################################################
10
+
11
+ *.md @signalfx/gdi-ruby-maintainers @signalfx/gdi-ruby-approvers @signalfx/gdi-docs
12
+ *.rst @signalfx/gdi-ruby-maintainers @signalfx/gdi-ruby-approvers @signalfx/gdi-docs
13
+ docs/ @signalfx/gdi-ruby-maintainers @signalfx/gdi-ruby-approvers @signalfx/gdi-docs
14
+ README* @signalfx/gdi-ruby-maintainers @signalfx/gdi-ruby-approvers @signalfx/gdi-docs @signalfx/gdi-specification-approvers @signalfx/gdi-specification-maintainers
@@ -0,0 +1,48 @@
1
+ name: Ruby CI
2
+
3
+ on:
4
+ push:
5
+ branches: [main]
6
+ pull_request:
7
+ branches: [main]
8
+
9
+ jobs:
10
+ test:
11
+ runs-on: ubuntu-latest
12
+
13
+ strategy:
14
+ matrix:
15
+ ruby-version: [3.1, 3.0, 2.7, 2.6]
16
+
17
+ steps:
18
+ - uses: actions/checkout@v2
19
+
20
+ - name: Run Collector
21
+ run: docker-compose up -d
22
+
23
+ - name: Set up Ruby ${{ matrix.ruby-version }}
24
+ uses: ruby/setup-ruby@v1
25
+ with:
26
+ ruby-version: ${{ matrix.ruby-version }}
27
+ bundler-cache: true
28
+ - name: Apply RubyGems fixes
29
+ run: gem update --system
30
+ - name: Install dependencies
31
+ run: bundle install
32
+ - name: Rubocop
33
+ run: bundle exec rubocop
34
+ - name: Run tests
35
+ run: bundle exec rake test
36
+ - name: Run basic example e2e test
37
+ run: ruby console.rb
38
+ working-directory: ./examples/basic/
39
+ env:
40
+ TEST: true
41
+
42
+ test-e2e-rails-7-barebones:
43
+ runs-on: ubuntu-latest
44
+ steps:
45
+ - uses: actions/checkout@v2
46
+ - name: Run e2e tests via Docker
47
+ working-directory: ./examples/rails-7-barebones
48
+ run: docker-compose up --build --exit-code-from tester
data/.gitignore ADDED
@@ -0,0 +1,13 @@
1
+ /.bundle/
2
+ /.yardoc
3
+ /_yardoc/
4
+ /coverage/
5
+ /doc/
6
+ /pkg/
7
+ /spec/reports/
8
+ /tmp/
9
+ coverage
10
+ Gemfile.lock
11
+
12
+ # allow private binstubs
13
+ bin/
data/.gitlab-ci.yml ADDED
@@ -0,0 +1,23 @@
1
+ image:
2
+ name: "docker-hub.repo.splunkdev.net/ruby:3.1.2"
3
+
4
+ stages:
5
+ - build
6
+ - release
7
+
8
+ build:
9
+ stage: build
10
+ script: |
11
+ gem update --system
12
+ bundle install
13
+ bundle exec rubocop
14
+ bundle exec rake test
15
+
16
+ release:
17
+ stage: release
18
+ rules:
19
+ - if: '$CI_COMMIT_TAG =~ /^v[0-9]+\.[0-9]+\.[0-9]+.*/'
20
+ before_script:
21
+ - ./scripts/install-release-deps.sh
22
+ script:
23
+ - ./scripts/release.sh "$CI_COMMIT_TAG"
data/.rubocop.yml ADDED
@@ -0,0 +1,27 @@
1
+ AllCops:
2
+ TargetRubyVersion: 2.6
3
+ NewCops: enable
4
+ Exclude:
5
+ - 'bin/*'
6
+ - 'examples/rails-7-barebones/bin/*'
7
+
8
+ # github actions' weirdness
9
+ # https://github.com/rubocop/rubocop/issues/9832#issuecomment-882111229
10
+ - vendor/bundle/**/*
11
+
12
+ Style/StringLiterals:
13
+ Enabled: true
14
+ EnforcedStyle: double_quotes
15
+
16
+ Style/StringLiteralsInInterpolation:
17
+ Enabled: true
18
+ EnforcedStyle: double_quotes
19
+
20
+ Layout/LineLength:
21
+ Max: 120
22
+
23
+ Metrics/AbcSize:
24
+ Max: 18
25
+
26
+ Metrics/MethodLength:
27
+ Max: 15
data/CHANGELOG.md ADDED
@@ -0,0 +1,10 @@
1
+ # Changelog
2
+
3
+ All notable changes to this repository are documented in this file.
4
+
5
+ The format is based on the [Splunk GDI specification](https://github.com/signalfx/gdi-specification/blob/v1.0.0/specification/repository.md),
6
+ and this repository adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
+
8
+ ## Unreleased
9
+
10
+
@@ -0,0 +1,90 @@
1
+ # Contributor Covenant Code of Conduct
2
+
3
+ ## Our Pledge
4
+
5
+ We as members, contributors, and leaders pledge to make participation in our
6
+ community a harassment-free experience for everyone, regardless of age, body
7
+ size, visible or invisible disability, ethnicity, sex characteristics, gender
8
+ identity and expression, level of experience, education, socio-economic status,
9
+ nationality, personal appearance, race, religion, or sexual identity and
10
+ orientation.
11
+
12
+ We pledge to act and interact in ways that contribute to an open, welcoming,
13
+ diverse, inclusive, and healthy community.
14
+
15
+ ## Our Standards
16
+
17
+ Examples of behavior that contributes to a positive environment for our
18
+ community include:
19
+
20
+ - Demonstrating empathy and kindness toward other people
21
+ - Being respectful of differing opinions, viewpoints, and experiences
22
+ - Giving and gracefully accepting constructive feedback
23
+ - Accepting responsibility and apologizing to those affected by our mistakes,
24
+ and learning from the experience
25
+ - Focusing on what is best not just for us as individuals, but for the overall
26
+ community
27
+
28
+ Examples of unacceptable behavior include:
29
+
30
+ - The use of sexualized language or imagery, and sexual attention or advances
31
+ of any kind
32
+ - Trolling, insulting or derogatory comments, and personal or political attacks
33
+ - Public or private harassment
34
+ - Publishing others’ private information, such as a physical or email address,
35
+ without their explicit permission
36
+ - Other conduct which could reasonably be considered inappropriate in a
37
+ professional setting
38
+
39
+ ## Enforcement Responsibilities
40
+
41
+ Project maintainers are responsible for clarifying and enforcing our standards of
42
+ acceptable behavior and will take appropriate and fair corrective action in
43
+ response to any behavior that they deem inappropriate, threatening, offensive,
44
+ or harmful.
45
+
46
+ Project maintainers have the right and responsibility to remove, edit, or reject
47
+ comments, commits, code, wiki edits, issues, and other contributions that are
48
+ not aligned to this Code of Conduct, and will communicate reasons for
49
+ moderation decisions when appropriate.
50
+
51
+ ## Scope
52
+
53
+ This Code of Conduct applies within all community spaces, and also applies when
54
+ an individual is officially representing the community in public spaces.
55
+ Examples of representing our community include using an official e-mail
56
+ address, posting via an official social media account, or acting as an
57
+ appointed representative at an online or offline event. Representation of a
58
+ project may be further defined and clarified by project maintainers.
59
+
60
+ ## Enforcement
61
+
62
+ Instances of abusive, harassing, or otherwise unacceptable behavior may be
63
+ reported by contacting the project team at splunk-oss-admin@splunk.com. All
64
+ complaints will be reviewed and investigated and will result in a response that
65
+ is deemed necessary and appropriate to the circumstances. The project team is
66
+ obligated to maintain confidentiality with regard to the reporter of an incident.
67
+ Further details of specific enforcement policies may be posted separately.
68
+
69
+ Project maintainers who do not follow or enforce the Code of Conduct in good
70
+ faith may face temporary or permanent repercussions as determined by other
71
+ members of the project's leadership.
72
+
73
+ ## Attribution
74
+
75
+ This Code of Conduct is adapted from the [Contributor Covenant][homepage],
76
+ version 2.0, available at
77
+ [https://www.contributor-covenant.org/version/2/0/code_of_conduct.html][v2.0].
78
+
79
+ Community Impact Guidelines were inspired by
80
+ [Mozilla's code of conduct enforcement ladder][Mozilla CoC].
81
+
82
+ For answers to common questions about this code of conduct, see the FAQ at
83
+ [https://www.contributor-covenant.org/faq][FAQ]. Translations are available
84
+ at [https://www.contributor-covenant.org/translations][translations].
85
+
86
+ [homepage]: https://www.contributor-covenant.org
87
+ [v2.0]: https://www.contributor-covenant.org/version/2/0/code_of_conduct.html
88
+ [Mozilla CoC]: https://github.com/mozilla/diversity
89
+ [FAQ]: https://www.contributor-covenant.org/faq
90
+ [translations]: https://www.contributor-covenant.org/translations
data/CONTRIBUTING.md ADDED
@@ -0,0 +1,88 @@
1
+ # Contributing Guidelines
2
+
3
+ Thank you for your interest in contributing to our repository! Whether it's a bug
4
+ report, new feature, or question, we greatly value feedback and contributions from
5
+ our community. Read through this document before submitting any issues or pull
6
+ requests to ensure we have all the necessary information to effectively respond
7
+ to your bug report or contribution.
8
+
9
+ In addition to this document, review our [Code of Conduct](CODE_OF_CONDUCT.md).
10
+ For any code of conduct questions or comments, send an email to oss@splunk.com.
11
+
12
+ ## Reporting Bugs/Feature Requests
13
+
14
+ We welcome you to use the GitHub issue tracker to report bugs or suggest
15
+ features. When filing an issue, check existing open, or recently closed,
16
+ issues to make sure somebody else hasn't already reported the issue. Try
17
+ to include as much information as you can. Details like these can be useful:
18
+
19
+ - A reproducible test case or series of steps
20
+ - The version of our code being used
21
+ - Any modifications you've made relevant to the bug
22
+ - Anything unusual about your environment or deployment
23
+ - Any known workarounds
24
+
25
+ When filing an issue, do *NOT* include:
26
+
27
+ - Internal identifiers such as Jira tickets
28
+ - Any sensitive information related to your environment, users, etc.
29
+
30
+ ## Reporting Security Issues
31
+
32
+ See [SECURITY.md](SECURITY.md#reporting-security-issues) for instructions.
33
+
34
+ ## Documentation
35
+
36
+ The Splunk Observability documentation is hosted on https://docs.splunk.com/Observability,
37
+ which contains all the prescriptive guidance for Splunk Observability products.
38
+ Prescriptive guidance consists of step-by-step instructions, conceptual material,
39
+ and decision support for customers. Reference documentation and development
40
+ documentation is hosted on this repository.
41
+
42
+ You can send feedback about Splunk Observability docs by clicking the Feedback
43
+ button on any of our documentation pages.
44
+
45
+ ## Contributing via Pull Requests
46
+
47
+ Contributions via Pull Requests (PRs) are much appreciated. Before sending us a
48
+ pull request, make sure that:
49
+
50
+ 1. You are working against the latest source on the `main` branch.
51
+ 2. You check existing open, and recently merged, pull requests to make sure
52
+ someone else hasn't addressed the problem already.
53
+ 3. You open an issue to discuss any significant work - we would hate for your
54
+ time to be wasted.
55
+ 4. You submit PRs that are easy to review and ideally less 500 lines of code.
56
+ Multiple PRs can be submitted for larger contributions.
57
+
58
+ To send us a pull request:
59
+
60
+ 1. Fork the repository.
61
+ 2. Modify the source; a single change per PR is recommended. If you also
62
+ reformat all the code, it will be hard for us to focus on your change.
63
+ 3. Ensure local tests pass and add new tests related to the contribution.
64
+ 4. Commit to your fork using clear commit messages.
65
+ 5. Send us a pull request, answering any default questions in the pull request
66
+ interface.
67
+ 6. Pay attention to any automated CI failures reported in the pull request, and
68
+ stay involved in the conversation.
69
+
70
+ GitHub provides additional documentation on [forking a
71
+ repository](https://help.github.com/articles/fork-a-repo/) and [creating a pull
72
+ request](https://help.github.com/articles/creating-a-pull-request/).
73
+
74
+ ## Finding contributions to work on
75
+
76
+ Looking at the existing issues is a great way to find something to contribute
77
+ on. As our repositories, by default, use the default GitHub issue labels
78
+ (enhancement/bug/duplicate/help wanted/invalid/question/wontfix), looking at
79
+ any 'help wanted' issues is a great place to start.
80
+
81
+ ## Licensing
82
+
83
+ See the [LICENSE](LICENSE) file for our repository's licensing. We will ask you to
84
+ confirm the licensing of your contribution.
85
+
86
+ ### Contributor License Agreement
87
+
88
+ Before contributing, you must sign the [Splunk Contributor License Agreement (CLA)](https://www.splunk.com/en_us/form/contributions.html).
data/Gemfile ADDED
@@ -0,0 +1,6 @@
1
+ # frozen_string_literal: true
2
+
3
+ source "https://rubygems.org"
4
+
5
+ # Specify your gem's dependencies in splunk-otel.gemspec
6
+ gemspec
data/LICENSE ADDED
@@ -0,0 +1,177 @@
1
+
2
+ Apache License
3
+ Version 2.0, January 2004
4
+ http://www.apache.org/licenses/
5
+
6
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
7
+
8
+ 1. Definitions.
9
+
10
+ "License" shall mean the terms and conditions for use, reproduction,
11
+ and distribution as defined by Sections 1 through 9 of this document.
12
+
13
+ "Licensor" shall mean the copyright owner or entity authorized by
14
+ the copyright owner that is granting the License.
15
+
16
+ "Legal Entity" shall mean the union of the acting entity and all
17
+ other entities that control, are controlled by, or are under common
18
+ control with that entity. For the purposes of this definition,
19
+ "control" means (i) the power, direct or indirect, to cause the
20
+ direction or management of such entity, whether by contract or
21
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
22
+ outstanding shares, or (iii) beneficial ownership of such entity.
23
+
24
+ "You" (or "Your") shall mean an individual or Legal Entity
25
+ exercising permissions granted by this License.
26
+
27
+ "Source" form shall mean the preferred form for making modifications,
28
+ including but not limited to software source code, documentation
29
+ source, and configuration files.
30
+
31
+ "Object" form shall mean any form resulting from mechanical
32
+ transformation or translation of a Source form, including but
33
+ not limited to compiled object code, generated documentation,
34
+ and conversions to other media types.
35
+
36
+ "Work" shall mean the work of authorship, whether in Source or
37
+ Object form, made available under the License, as indicated by a
38
+ copyright notice that is included in or attached to the work
39
+ (an example is provided in the Appendix below).
40
+
41
+ "Derivative Works" shall mean any work, whether in Source or Object
42
+ form, that is based on (or derived from) the Work and for which the
43
+ editorial revisions, annotations, elaborations, or other modifications
44
+ represent, as a whole, an original work of authorship. For the purposes
45
+ of this License, Derivative Works shall not include works that remain
46
+ separable from, or merely link (or bind by name) to the interfaces of,
47
+ the Work and Derivative Works thereof.
48
+
49
+ "Contribution" shall mean any work of authorship, including
50
+ the original version of the Work and any modifications or additions
51
+ to that Work or Derivative Works thereof, that is intentionally
52
+ submitted to Licensor for inclusion in the Work by the copyright owner
53
+ or by an individual or Legal Entity authorized to submit on behalf of
54
+ the copyright owner. For the purposes of this definition, "submitted"
55
+ means any form of electronic, verbal, or written communication sent
56
+ to the Licensor or its representatives, including but not limited to
57
+ communication on electronic mailing lists, source code control systems,
58
+ and issue tracking systems that are managed by, or on behalf of, the
59
+ Licensor for the purpose of discussing and improving the Work, but
60
+ excluding communication that is conspicuously marked or otherwise
61
+ designated in writing by the copyright owner as "Not a Contribution."
62
+
63
+ "Contributor" shall mean Licensor and any individual or Legal Entity
64
+ on behalf of whom a Contribution has been received by Licensor and
65
+ subsequently incorporated within the Work.
66
+
67
+ 2. Grant of Copyright License. Subject to the terms and conditions of
68
+ this License, each Contributor hereby grants to You a perpetual,
69
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
70
+ copyright license to reproduce, prepare Derivative Works of,
71
+ publicly display, publicly perform, sublicense, and distribute the
72
+ Work and such Derivative Works in Source or Object form.
73
+
74
+ 3. Grant of Patent License. Subject to the terms and conditions of
75
+ this License, each Contributor hereby grants to You a perpetual,
76
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
77
+ (except as stated in this section) patent license to make, have made,
78
+ use, offer to sell, sell, import, and otherwise transfer the Work,
79
+ where such license applies only to those patent claims licensable
80
+ by such Contributor that are necessarily infringed by their
81
+ Contribution(s) alone or by combination of their Contribution(s)
82
+ with the Work to which such Contribution(s) was submitted. If You
83
+ institute patent litigation against any entity (including a
84
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
85
+ or a Contribution incorporated within the Work constitutes direct
86
+ or contributory patent infringement, then any patent licenses
87
+ granted to You under this License for that Work shall terminate
88
+ as of the date such litigation is filed.
89
+
90
+ 4. Redistribution. You may reproduce and distribute copies of the
91
+ Work or Derivative Works thereof in any medium, with or without
92
+ modifications, and in Source or Object form, provided that You
93
+ meet the following conditions:
94
+
95
+ (a) You must give any other recipients of the Work or
96
+ Derivative Works a copy of this License; and
97
+
98
+ (b) You must cause any modified files to carry prominent notices
99
+ stating that You changed the files; and
100
+
101
+ (c) You must retain, in the Source form of any Derivative Works
102
+ that You distribute, all copyright, patent, trademark, and
103
+ attribution notices from the Source form of the Work,
104
+ excluding those notices that do not pertain to any part of
105
+ the Derivative Works; and
106
+
107
+ (d) If the Work includes a "NOTICE" text file as part of its
108
+ distribution, then any Derivative Works that You distribute must
109
+ include a readable copy of the attribution notices contained
110
+ within such NOTICE file, excluding those notices that do not
111
+ pertain to any part of the Derivative Works, in at least one
112
+ of the following places: within a NOTICE text file distributed
113
+ as part of the Derivative Works; within the Source form or
114
+ documentation, if provided along with the Derivative Works; or,
115
+ within a display generated by the Derivative Works, if and
116
+ wherever such third-party notices normally appear. The contents
117
+ of the NOTICE file are for informational purposes only and
118
+ do not modify the License. You may add Your own attribution
119
+ notices within Derivative Works that You distribute, alongside
120
+ or as an addendum to the NOTICE text from the Work, provided
121
+ that such additional attribution notices cannot be construed
122
+ as modifying the License.
123
+
124
+ You may add Your own copyright statement to Your modifications and
125
+ may provide additional or different license terms and conditions
126
+ for use, reproduction, or distribution of Your modifications, or
127
+ for any such Derivative Works as a whole, provided Your use,
128
+ reproduction, and distribution of the Work otherwise complies with
129
+ the conditions stated in this License.
130
+
131
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
132
+ any Contribution intentionally submitted for inclusion in the Work
133
+ by You to the Licensor shall be under the terms and conditions of
134
+ this License, without any additional terms or conditions.
135
+ Notwithstanding the above, nothing herein shall supersede or modify
136
+ the terms of any separate license agreement you may have executed
137
+ with Licensor regarding such Contributions.
138
+
139
+ 6. Trademarks. This License does not grant permission to use the trade
140
+ names, trademarks, service marks, or product names of the Licensor,
141
+ except as required for reasonable and customary use in describing the
142
+ origin of the Work and reproducing the content of the NOTICE file.
143
+
144
+ 7. Disclaimer of Warranty. Unless required by applicable law or
145
+ agreed to in writing, Licensor provides the Work (and each
146
+ Contributor provides its Contributions) on an "AS IS" BASIS,
147
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
148
+ implied, including, without limitation, any warranties or conditions
149
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
150
+ PARTICULAR PURPOSE. You are solely responsible for determining the
151
+ appropriateness of using or redistributing the Work and assume any
152
+ risks associated with Your exercise of permissions under this License.
153
+
154
+ 8. Limitation of Liability. In no event and under no legal theory,
155
+ whether in tort (including negligence), contract, or otherwise,
156
+ unless required by applicable law (such as deliberate and grossly
157
+ negligent acts) or agreed to in writing, shall any Contributor be
158
+ liable to You for damages, including any direct, indirect, special,
159
+ incidental, or consequential damages of any character arising as a
160
+ result of this License or out of the use or inability to use the
161
+ Work (including but not limited to damages for loss of goodwill,
162
+ work stoppage, computer failure or malfunction, or any and all
163
+ other commercial damages or losses), even if such Contributor
164
+ has been advised of the possibility of such damages.
165
+
166
+ 9. Accepting Warranty or Additional Liability. While redistributing
167
+ the Work or Derivative Works thereof, You may choose to offer,
168
+ and charge a fee for, acceptance of support, warranty, indemnity,
169
+ or other liability obligations and/or rights consistent with this
170
+ License. However, in accepting such obligations, You may act only
171
+ on Your own behalf and on Your sole responsibility, not on behalf
172
+ of any other Contributor, and only if You agree to indemnify,
173
+ defend, and hold each Contributor harmless for any liability
174
+ incurred by, or claims asserted against, such Contributor by reason
175
+ of your accepting any such warranty or additional liability.
176
+
177
+ END OF TERMS AND CONDITIONS
data/MIGRATING.md ADDED
@@ -0,0 +1,61 @@
1
+ # Migrate from the SignalFx Tracing Library for Ruby
2
+
3
+ The SignalFx Tracing Library for Ruby is deprecated. Replace it with the
4
+ agent from the Splunk Distribution of OpenTelemetry Ruby.
5
+
6
+ The agent of the Splunk Distribution of OpenTelemetry Ruby is based on
7
+ the OpenTelemetry Instrumentation for Ruby, an open-source project that
8
+ uses the OpenTelemetry API.
9
+
10
+ Read the following instructions to learn how to migrate to the Splunk
11
+ Ruby OTel agent.
12
+
13
+ ## Compatibility and requirements
14
+
15
+ The Splunk Distribution of OpenTelemetry Ruby requires Ruby 2.6 and
16
+ higher.
17
+
18
+ ## Migrate to the Splunk Distribution of OpenTelemetry Ruby
19
+
20
+ To migrate from the SignalFx Tracing Library for Ruby to the Splunk
21
+ Distribution of OpenTelemetry Ruby, follow these steps:
22
+
23
+ 1. Remove the tracing library packages.
24
+ 2. Deploy the Splunk Distribution of OpenTelemetry Ruby.
25
+ 3. Migrate your existing configuration.
26
+
27
+ > Semantic conventions for span names and attributes change when you
28
+ migrate.
29
+ ### Remove the SignalFx Tracing Library for Ruby
30
+
31
+ Follow these steps to remove the tracing library and its dependencies:
32
+
33
+ 1. Uninstall `signalfx`:
34
+
35
+ ``` bash
36
+ gem uninstall signalfx
37
+ ```
38
+
39
+ 2. Remove `signalfx` from your Gemfile.
40
+
41
+ 3. Remove any additional OpenTracing instrumentation packages you
42
+ installed.
43
+
44
+ ### Deploy the Splunk Ruby agent
45
+
46
+ To install the Splunk Distribution of OpenTelemetry Ruby, see the [README.md](README.md).
47
+
48
+ ### Migrate settings for the Splunk Ruby OTel agent
49
+
50
+ To migrate settings from the SignalFx tracing library to the Splunk
51
+ Distribution of OpenTelemetry Ruby, rename the following environment
52
+ variables:
53
+
54
+ | SignalFx environment variable | OpenTelemetry environment variable |
55
+ |--------------------------------------|------------------------------------------------------------------|
56
+ | `SIGNALFX_ACCESS_TOKEN` | `SPLUNK_ACCESS_TOKEN` |
57
+ | `SIGNALFX_SERVICE_NAME` | `OTEL_SERVICE_NAME` |
58
+ | `SIGNALFX_ENDPOINT_URL` | `OTEL_EXPORTER_JAEGER_ENDPOINT` or `OTEL_EXPORTER_OTLP_ENDPOINT` |
59
+ | `SIGNALFX_RECORDED_VALUE_MAX_LENGTH` | `SPLUNK_MAX_ATTR_LENGTH` |
60
+
61
+ For more information about Splunk Ruby OTel settings, see [advanced-config.md](docs/advanced-config.md).