pyroscope 0.3.1-aarch64-linux → 0.3.2-aarch64-linux

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ee2c1dba441e9d5a2b56b8c43e1dd161ad3bfdcb8182f65162e048505e2c8caf
4
- data.tar.gz: 276b3292df0609fdca21471d188a4a79b6aa7dcbbcbc3e8c64674d4c5d46621a
3
+ metadata.gz: d961eb1511f2da0db538f6d6667bdec6450fc7984d7cd8bc3ae22215b2fa47f8
4
+ data.tar.gz: 2f791e0636fc5515ce490db4516a02fe82baf50341e1c9c8199a949385a65320
5
5
  SHA512:
6
- metadata.gz: fcd551822fb88c6959bbb15421730af6f103c291c62e39359acf4236e1aff57a0393c3156d86071fd066dd9ebd2f7fc64e77f3259b9e81f1d3de0c400f10a735
7
- data.tar.gz: 33389934d411b0440e6ad28aefbe4850e9f27d5e9cecb236c9d37845ba0fdd2e6c9acad48f4fa994b230cdeb5606f10b8f4e90a4a2ae23b80b34db7df12bd275
6
+ metadata.gz: c2f61b99809331a28411b914f785b2fdde2bad19bdf5d0538a5a001c837854253191ad7cf3687a41e93e55ca3e3e117476ddaa41fecdcbbbcec76f4dd50299c1
7
+ data.tar.gz: cb6e1f024f6e7a2b12ccb973b1ab8f5e051f9f5faab1e03a93facbef405e02f21b059e174fc16d93bc7508c27395ab8afdd022f22b583741304fa083a17be2a9
data/ext/rbspy/src/lib.rs CHANGED
@@ -1,11 +1,80 @@
1
1
  use ffikit::Signal;
2
- use pyroscope::backend::Tag;
2
+ use pyroscope::backend::{Report, StackFrame, Tag};
3
3
  use pyroscope::PyroscopeAgent;
4
4
  use pyroscope_rbspy::{rbspy_backend, RbspyConfig};
5
5
  use std::collections::hash_map::DefaultHasher;
6
6
  use std::ffi::CStr;
7
7
  use std::hash::Hasher;
8
8
  use std::os::raw::c_char;
9
+ use std::env;
10
+
11
+ pub fn transform_report(report: Report) -> Report {
12
+ let cwd = env::current_dir().unwrap();
13
+ let cwd = cwd.to_str().unwrap_or("");
14
+
15
+ let data = report
16
+ .data
17
+ .iter()
18
+ .map(|(stacktrace, count)| {
19
+ let new_frames = stacktrace
20
+ .frames
21
+ .iter()
22
+ .map(|frame| {
23
+ let frame = frame.to_owned();
24
+ let mut s = frame.filename.unwrap();
25
+ match s.find(cwd) {
26
+ Some(i) => {
27
+ s = s[(i+cwd.len()+1)..].to_string();
28
+ }
29
+ None => {
30
+ match s.find("/gems/") {
31
+ Some(i) => {
32
+ s = s[(i+1)..].to_string();
33
+ }
34
+ None => {
35
+ match s.find("/ruby/") {
36
+ Some(i) => {
37
+ s = s[(i+6)..].to_string();
38
+ match s.find("/") {
39
+ Some(i) => {
40
+ s = s[(i+1)..].to_string();
41
+ }
42
+ None => {
43
+ }
44
+ }
45
+ }
46
+ None => {
47
+ }
48
+ }
49
+ }
50
+ }
51
+ }
52
+ }
53
+
54
+ // something
55
+ StackFrame::new(
56
+ frame.module,
57
+ frame.name,
58
+ Some(s.to_string()),
59
+ frame.relative_path,
60
+ frame.absolute_path,
61
+ frame.line,
62
+ )
63
+ })
64
+ .collect();
65
+
66
+ let mut mystack = stacktrace.to_owned();
67
+
68
+ mystack.frames = new_frames;
69
+
70
+ (mystack, count.to_owned())
71
+ })
72
+ .collect();
73
+
74
+ let new_report = Report::new(data).metadata(report.metadata.clone());
75
+
76
+ new_report
77
+ }
9
78
 
10
79
  #[no_mangle]
11
80
  pub extern "C" fn initialize_agent(
@@ -52,6 +121,7 @@ pub extern "C" fn initialize_agent(
52
121
 
53
122
  let mut agent_builder = PyroscopeAgent::builder(server_address, application_name)
54
123
  .backend(rbspy)
124
+ .func(transform_report)
55
125
  .tags(tags);
56
126
 
57
127
  if auth_token != "" {
@@ -1,3 +1,3 @@
1
1
  module Pyroscope
2
- VERSION = '0.3.1'.freeze
2
+ VERSION = '0.3.2'.freeze
3
3
  end
data/lib/rbspy/rbspy.so CHANGED
Binary file
Binary file
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pyroscope
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.1
4
+ version: 0.3.2
5
5
  platform: aarch64-linux
6
6
  authors:
7
7
  - Pyroscope Team
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-07-19 00:00:00.000000000 Z
11
+ date: 2022-07-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: ffi