Skip to content

Commit 1ef12bc

Browse files
authored
Merge pull request #13 from joostlek/readme
Readme
2 parents 9087bc6 + c0ba1f5 commit 1ef12bc

File tree

1 file changed

+140
-0
lines changed

1 file changed

+140
-0
lines changed

README.md

+140
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,140 @@
1+
# OpenTelemetry stacktrace processor
2+
3+
[![GitHub Release][releases-shield]][releases]
4+
[![Go Reference](https://pkg.go.dev/badge/github.com/joostlek/opentelemetry-stacktrace-processor.svg)](https://pkg.go.dev/github.com/joostlek/opentelemetry-stacktrace-processor)
5+
![Project Stage][project-stage-shield]
6+
![Project Maintenance][maintenance-shield]
7+
[![License][license-shield]](LICENSE.md)
8+
9+
[![Build Status][build-shield]][build]
10+
[![Code Coverage][codecov-shield]][codecov]
11+
[![Code Smells][code-smells]][sonarcloud]
12+
13+
Transform stacktraces from javascript into readable stacktraces to improve OpenTelemetry usability.
14+
15+
## About
16+
17+
When collecting stacktraces from javascript based application, the stacktraces are usually based on minified or compiled code.
18+
19+
Example:
20+
```
21+
padStart@http://localhost:4203/lineSlicer.min.js:1:228
22+
padStart@http://localhost:4203/cubeSlicer.min.js:1:228
23+
```
24+
25+
To be able to know where the actual problem is, you should combine this with a source map.
26+
Commercial tracing solutions provide ways to upload source maps to their dashboard, and they figure it out.
27+
28+
This processor is made so the generic OpenTelemetry collector can have the same functionality.
29+
Place the source maps in a directory and the processor will read them at startup.
30+
The end result:
31+
32+
```
33+
padStart@lib/lineSlicer.js:11:53
34+
padStart@http://localhost:4203/cubeSlicer.min.js:1:228
35+
```
36+
In this example the map for lineSlicer.js is available, but not for cubeSlicer.
37+
In that case the line is ignored, so there's always a full picture of the flow present.
38+
39+
## Installation
40+
41+
Install as [described in the OpenTelemetry docs](https://opentelemetry.io/docs/collector/custom-collector/)
42+
43+
## Changelog & Releases
44+
45+
This repository keeps a change log using [GitHub's releases][releases]
46+
functionality. The format of the log is based on
47+
[Keep a Changelog][keepchangelog].
48+
49+
Releases are based on [Semantic Versioning][semver], and use the format
50+
of ``MAJOR.MINOR.PATCH``. In a nutshell, the version will be incremented
51+
based on the following:
52+
53+
- ``MAJOR``: Incompatible or major changes.
54+
- ``MINOR``: Backwards-compatible new features and enhancements.
55+
- ``PATCH``: Backwards-compatible bugfixes and package updates.
56+
57+
## Contributing
58+
59+
This is an active open-source project. We are always open to people who want to
60+
use the code or contribute to it.
61+
62+
We've set up a separate document for our
63+
[contribution guidelines](.github/CONTRIBUTING.md).
64+
65+
Thank you for being involved! :heart_eyes:
66+
67+
## Setting up development environment
68+
69+
This Go project relies on Go. For development improvements, Python is used.
70+
71+
You need at least:
72+
73+
- Go 1.19
74+
- Python 3.10+
75+
- [Poetry][poetry-install]
76+
77+
```bash
78+
poetry install
79+
```
80+
81+
As this repository uses the [pre-commit][pre-commit] framework, all changes
82+
are linted and tested with each commit. You can run all checks and tests
83+
manually, using the following command:
84+
85+
```bash
86+
poetry run pre-commit run --all-files
87+
```
88+
89+
## Authors & contributors
90+
91+
The original setup of this repository is by [Joost Lekkerkerker][joostlek]
92+
93+
For a full list of all authors and contributors,
94+
check [the contributor's page][contributors].
95+
96+
## License
97+
98+
MIT License
99+
100+
Copyright (c) 2023 Joost Lekkerkerker
101+
102+
Permission is hereby granted, free of charge, to any person obtaining a copy
103+
of this software and associated documentation files (the "Software"), to deal
104+
in the Software without restriction, including without limitation the rights
105+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
106+
copies of the Software, and to permit persons to whom the Software is
107+
furnished to do so, subject to the following conditions:
108+
109+
The above copyright notice and this permission notice shall be included in all
110+
copies or substantial portions of the Software.
111+
112+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
113+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
114+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
115+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
116+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
117+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
118+
SOFTWARE.
119+
120+
[build-shield]: https://github.com/joostlek/opentelemetry-stacktrace-processor/actions/workflows/tests.yaml/badge.svg
121+
[build]: https://github.com/joostlek/opentelemetry-stacktrace-processor/actions
122+
[code-smells]: https://sonarcloud.io/api/project_badges/measure?project=joostlek_opentelemetry-stacktrace-processor&metric=code_smells
123+
[codecov-shield]: https://codecov.io/gh/joostlek/opentelemetry-stacktrace-processor/branch/master/graph/badge.svg
124+
[codecov]: https://codecov.io/gh/joostlek/opentelemetry-stacktrace-processor
125+
[commits-shield]: https://img.shields.io/github/commit-activity/y/joostlek/opentelemetry-stacktrace-processor.svg
126+
[commits]: https://github.com/joostlek/opentelemetry-stacktrace-processor/commits/master
127+
[contributors]: https://github.com/joostlek/opentelemetry-stacktrace-processor/graphs/contributors
128+
[joostlek]: https://github.com/joostlek
129+
[keepchangelog]: http://keepachangelog.com/en/1.0.0/
130+
[license-shield]: https://img.shields.io/github/license/joostlek/opentelemetry-stacktrace-processor.svg
131+
[maintenance-shield]: https://img.shields.io/maintenance/yes/2023.svg
132+
[poetry-install]: https://python-poetry.org/docs/#installation
133+
[poetry]: https://python-poetry.org
134+
[pre-commit]: https://pre-commit.com/
135+
[project-stage-shield]: https://img.shields.io/badge/project%20stage-experimental-yellow.svg
136+
[python-versions-shield]: https://img.shields.io/pypi/pyversions/opentelemetry-stacktrace-processor
137+
[releases-shield]: https://img.shields.io/github/release/joostlek/opentelemetry-stacktrace-processor.svg
138+
[releases]: https://github.com/joostlek/opentelemetry-stacktrace-processor/releases
139+
[semver]: http://semver.org/spec/v2.0.0.html
140+
[sonarcloud]: https://sonarcloud.io/summary/new_code?id=joostlek_opentelemetry-stacktrace-processor

0 commit comments

Comments
 (0)