pyroscope 0.5.2-x86_64-darwin → 0.5.4-x86_64-darwin
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/ext/rbspy/Cargo.lock +325 -389
- data/ext/rbspy/Cargo.toml +1 -0
- data/ext/rbspy/src/lib.rs +63 -4
- data/ext/thread_id/Cargo.lock +233 -36
- data/lib/pyroscope/version.rb +1 -1
- data/lib/pyroscope.rb +20 -2
- data/lib/rbspy/rbspy.bundle +0 -0
- data/lib/thread_id/thread_id.bundle +0 -0
- metadata +2 -2
data/ext/rbspy/Cargo.toml
CHANGED
data/ext/rbspy/src/lib.rs
CHANGED
@@ -8,10 +8,14 @@ use std::str::FromStr;
|
|
8
8
|
use ffikit::Signal;
|
9
9
|
use pyroscope_rbspy::{rbspy_backend, RbspyConfig};
|
10
10
|
|
11
|
+
use pyroscope;
|
11
12
|
use pyroscope::{pyroscope::Compression, PyroscopeAgent};
|
12
13
|
use pyroscope::backend::{Report, StackFrame, Tag};
|
13
14
|
use pyroscope::pyroscope::ReportEncoding;
|
14
15
|
|
16
|
+
const LOG_TAG: &str = "Pyroscope::rbspy::ffi";
|
17
|
+
|
18
|
+
|
15
19
|
pub fn transform_report(report: Report) -> Report {
|
16
20
|
let cwd = env::current_dir().unwrap();
|
17
21
|
let cwd = cwd.to_str().unwrap_or("");
|
@@ -106,10 +110,21 @@ pub extern "C" fn initialize_logging(logging_level: u32) -> bool {
|
|
106
110
|
|
107
111
|
#[no_mangle]
|
108
112
|
pub extern "C" fn initialize_agent(
|
109
|
-
application_name: *const c_char,
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
+
application_name: *const c_char,
|
114
|
+
server_address: *const c_char,
|
115
|
+
auth_token: *const c_char,
|
116
|
+
basic_auth_user: *const c_char,
|
117
|
+
basic_auth_password: *const c_char,
|
118
|
+
sample_rate: u32,
|
119
|
+
detect_subprocesses: bool,
|
120
|
+
oncpu: bool,
|
121
|
+
report_pid: bool,
|
122
|
+
report_thread_id: bool,
|
123
|
+
tags: *const c_char,
|
124
|
+
compression: *const c_char,
|
125
|
+
report_encoding: *const c_char,
|
126
|
+
scope_org_id: *const c_char,
|
127
|
+
http_headers_json: *const c_char,
|
113
128
|
) -> bool {
|
114
129
|
// Initialize FFIKit
|
115
130
|
let recv = ffikit::initialize_ffi().unwrap();
|
@@ -129,6 +144,16 @@ pub extern "C" fn initialize_agent(
|
|
129
144
|
.unwrap()
|
130
145
|
.to_string();
|
131
146
|
|
147
|
+
let basic_auth_user = unsafe { CStr::from_ptr(basic_auth_user) }
|
148
|
+
.to_str()
|
149
|
+
.unwrap()
|
150
|
+
.to_string();
|
151
|
+
|
152
|
+
let basic_auth_password = unsafe { CStr::from_ptr(basic_auth_password) }
|
153
|
+
.to_str()
|
154
|
+
.unwrap()
|
155
|
+
.to_string();
|
156
|
+
|
132
157
|
let tags_string = unsafe { CStr::from_ptr(tags) }
|
133
158
|
.to_str()
|
134
159
|
.unwrap()
|
@@ -144,6 +169,16 @@ pub extern "C" fn initialize_agent(
|
|
144
169
|
.unwrap()
|
145
170
|
.to_string();
|
146
171
|
|
172
|
+
let scope_org_id = unsafe { CStr::from_ptr(scope_org_id) }
|
173
|
+
.to_str()
|
174
|
+
.unwrap()
|
175
|
+
.to_string();
|
176
|
+
|
177
|
+
let http_headers_json = unsafe { CStr::from_ptr(http_headers_json) }
|
178
|
+
.to_str()
|
179
|
+
.unwrap()
|
180
|
+
.to_string();
|
181
|
+
|
147
182
|
let compression = Compression::from_str(&compression_string);
|
148
183
|
let report_encoding = ReportEncoding::from_str(&report_encoding)
|
149
184
|
.unwrap_or(ReportEncoding::FOLDED);
|
@@ -170,6 +205,30 @@ pub extern "C" fn initialize_agent(
|
|
170
205
|
|
171
206
|
if auth_token != "" {
|
172
207
|
agent_builder = agent_builder.auth_token(auth_token);
|
208
|
+
} else if basic_auth_user != "" && basic_auth_password != "" {
|
209
|
+
agent_builder = agent_builder.basic_auth(basic_auth_user, basic_auth_password);
|
210
|
+
}
|
211
|
+
|
212
|
+
if scope_org_id != "" {
|
213
|
+
agent_builder = agent_builder.scope_org_id(scope_org_id);
|
214
|
+
}
|
215
|
+
|
216
|
+
let http_headers = pyroscope::pyroscope::parse_http_headers_json(http_headers_json);
|
217
|
+
match http_headers {
|
218
|
+
Ok(http_headers) => {
|
219
|
+
agent_builder = agent_builder.http_headers(http_headers);
|
220
|
+
}
|
221
|
+
Err(e) => {
|
222
|
+
match e {
|
223
|
+
pyroscope::PyroscopeError::Json(e) => {
|
224
|
+
log::error!(target: LOG_TAG, "parse_http_headers_json error {}", e);
|
225
|
+
}
|
226
|
+
pyroscope::PyroscopeError::AdHoc(e) => {
|
227
|
+
log::error!(target: LOG_TAG, "parse_http_headers_json {}", e);
|
228
|
+
}
|
229
|
+
_ => {}
|
230
|
+
}
|
231
|
+
}
|
173
232
|
}
|
174
233
|
|
175
234
|
if let Ok(compression) = compression {
|
data/ext/thread_id/Cargo.lock
CHANGED
@@ -17,7 +17,7 @@ version = "0.2.14"
|
|
17
17
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
18
18
|
checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
|
19
19
|
dependencies = [
|
20
|
-
"hermit-abi",
|
20
|
+
"hermit-abi 0.1.19",
|
21
21
|
"libc",
|
22
22
|
"winapi",
|
23
23
|
]
|
@@ -48,11 +48,17 @@ dependencies = [
|
|
48
48
|
"quote",
|
49
49
|
"serde",
|
50
50
|
"serde_json",
|
51
|
-
"syn",
|
51
|
+
"syn 1.0.109",
|
52
52
|
"tempfile",
|
53
53
|
"toml",
|
54
54
|
]
|
55
55
|
|
56
|
+
[[package]]
|
57
|
+
name = "cc"
|
58
|
+
version = "1.0.79"
|
59
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
60
|
+
checksum = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f"
|
61
|
+
|
56
62
|
[[package]]
|
57
63
|
name = "cfg-if"
|
58
64
|
version = "1.0.0"
|
@@ -74,6 +80,27 @@ dependencies = [
|
|
74
80
|
"vec_map",
|
75
81
|
]
|
76
82
|
|
83
|
+
[[package]]
|
84
|
+
name = "errno"
|
85
|
+
version = "0.3.1"
|
86
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
87
|
+
checksum = "4bcfec3a70f97c962c307b2d2c56e358cf1d00b558d74262b5f929ee8cc7e73a"
|
88
|
+
dependencies = [
|
89
|
+
"errno-dragonfly",
|
90
|
+
"libc",
|
91
|
+
"windows-sys 0.48.0",
|
92
|
+
]
|
93
|
+
|
94
|
+
[[package]]
|
95
|
+
name = "errno-dragonfly"
|
96
|
+
version = "0.1.2"
|
97
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
98
|
+
checksum = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf"
|
99
|
+
dependencies = [
|
100
|
+
"cc",
|
101
|
+
"libc",
|
102
|
+
]
|
103
|
+
|
77
104
|
[[package]]
|
78
105
|
name = "fastrand"
|
79
106
|
version = "1.9.0"
|
@@ -107,11 +134,17 @@ dependencies = [
|
|
107
134
|
"libc",
|
108
135
|
]
|
109
136
|
|
137
|
+
[[package]]
|
138
|
+
name = "hermit-abi"
|
139
|
+
version = "0.3.1"
|
140
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
141
|
+
checksum = "fed44880c466736ef9a5c5b5facefb5ed0785676d0c02d612db14e54f0d84286"
|
142
|
+
|
110
143
|
[[package]]
|
111
144
|
name = "indexmap"
|
112
|
-
version = "1.9.
|
145
|
+
version = "1.9.3"
|
113
146
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
114
|
-
checksum = "
|
147
|
+
checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99"
|
115
148
|
dependencies = [
|
116
149
|
"autocfg",
|
117
150
|
"hashbrown",
|
@@ -126,17 +159,34 @@ dependencies = [
|
|
126
159
|
"cfg-if",
|
127
160
|
]
|
128
161
|
|
162
|
+
[[package]]
|
163
|
+
name = "io-lifetimes"
|
164
|
+
version = "1.0.10"
|
165
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
166
|
+
checksum = "9c66c74d2ae7e79a5a8f7ac924adbe38ee42a859c6539ad869eb51f0b52dc220"
|
167
|
+
dependencies = [
|
168
|
+
"hermit-abi 0.3.1",
|
169
|
+
"libc",
|
170
|
+
"windows-sys 0.48.0",
|
171
|
+
]
|
172
|
+
|
129
173
|
[[package]]
|
130
174
|
name = "itoa"
|
131
|
-
version = "1.0.
|
175
|
+
version = "1.0.6"
|
132
176
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
133
|
-
checksum = "
|
177
|
+
checksum = "453ad9f582a441959e5f0d088b02ce04cfe8d51a8eaf077f12ac6d3e94164ca6"
|
134
178
|
|
135
179
|
[[package]]
|
136
180
|
name = "libc"
|
137
|
-
version = "0.2.
|
181
|
+
version = "0.2.142"
|
138
182
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
139
|
-
checksum = "
|
183
|
+
checksum = "6a987beff54b60ffa6d51982e1aa1146bc42f19bd26be28b0586f252fccf5317"
|
184
|
+
|
185
|
+
[[package]]
|
186
|
+
name = "linux-raw-sys"
|
187
|
+
version = "0.3.4"
|
188
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
189
|
+
checksum = "36eb31c1778188ae1e64398743890d0877fef36d11521ac60406b42016e8c2cf"
|
140
190
|
|
141
191
|
[[package]]
|
142
192
|
name = "log"
|
@@ -149,71 +199,76 @@ dependencies = [
|
|
149
199
|
|
150
200
|
[[package]]
|
151
201
|
name = "proc-macro2"
|
152
|
-
version = "1.0.
|
202
|
+
version = "1.0.56"
|
153
203
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
154
|
-
checksum = "
|
204
|
+
checksum = "2b63bdb0cd06f1f4dedf69b254734f9b45af66e4a031e42a7480257d9898b435"
|
155
205
|
dependencies = [
|
156
206
|
"unicode-ident",
|
157
207
|
]
|
158
208
|
|
159
209
|
[[package]]
|
160
210
|
name = "quote"
|
161
|
-
version = "1.0.
|
211
|
+
version = "1.0.26"
|
162
212
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
163
|
-
checksum = "
|
213
|
+
checksum = "4424af4bf778aae2051a77b60283332f386554255d722233d09fbfc7e30da2fc"
|
164
214
|
dependencies = [
|
165
215
|
"proc-macro2",
|
166
216
|
]
|
167
217
|
|
168
218
|
[[package]]
|
169
219
|
name = "redox_syscall"
|
170
|
-
version = "0.
|
220
|
+
version = "0.3.5"
|
171
221
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
172
|
-
checksum = "
|
222
|
+
checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29"
|
173
223
|
dependencies = [
|
174
224
|
"bitflags",
|
175
225
|
]
|
176
226
|
|
177
227
|
[[package]]
|
178
|
-
name = "
|
179
|
-
version = "0.
|
228
|
+
name = "rustix"
|
229
|
+
version = "0.37.15"
|
180
230
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
181
|
-
checksum = "
|
231
|
+
checksum = "a0661814f891c57c930a610266415528da53c4933e6dea5fb350cbfe048a9ece"
|
182
232
|
dependencies = [
|
183
|
-
"
|
233
|
+
"bitflags",
|
234
|
+
"errno",
|
235
|
+
"io-lifetimes",
|
236
|
+
"libc",
|
237
|
+
"linux-raw-sys",
|
238
|
+
"windows-sys 0.48.0",
|
184
239
|
]
|
185
240
|
|
186
241
|
[[package]]
|
187
242
|
name = "ryu"
|
188
|
-
version = "1.0.
|
243
|
+
version = "1.0.13"
|
189
244
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
190
|
-
checksum = "
|
245
|
+
checksum = "f91339c0467de62360649f8d3e185ca8de4224ff281f66000de5eb2a77a79041"
|
191
246
|
|
192
247
|
[[package]]
|
193
248
|
name = "serde"
|
194
|
-
version = "1.0.
|
249
|
+
version = "1.0.160"
|
195
250
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
196
|
-
checksum = "
|
251
|
+
checksum = "bb2f3770c8bce3bcda7e149193a069a0f4365bda1fa5cd88e03bca26afc1216c"
|
197
252
|
dependencies = [
|
198
253
|
"serde_derive",
|
199
254
|
]
|
200
255
|
|
201
256
|
[[package]]
|
202
257
|
name = "serde_derive"
|
203
|
-
version = "1.0.
|
258
|
+
version = "1.0.160"
|
204
259
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
205
|
-
checksum = "
|
260
|
+
checksum = "291a097c63d8497e00160b166a967a4a79c64f3facdd01cbd7502231688d77df"
|
206
261
|
dependencies = [
|
207
262
|
"proc-macro2",
|
208
263
|
"quote",
|
209
|
-
"syn",
|
264
|
+
"syn 2.0.15",
|
210
265
|
]
|
211
266
|
|
212
267
|
[[package]]
|
213
268
|
name = "serde_json"
|
214
|
-
version = "1.0.
|
269
|
+
version = "1.0.96"
|
215
270
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
216
|
-
checksum = "
|
271
|
+
checksum = "057d394a50403bcac12672b2b18fb387ab6d289d957dab67dd201875391e52f1"
|
217
272
|
dependencies = [
|
218
273
|
"itoa",
|
219
274
|
"ryu",
|
@@ -228,9 +283,20 @@ checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a"
|
|
228
283
|
|
229
284
|
[[package]]
|
230
285
|
name = "syn"
|
231
|
-
version = "1.0.
|
286
|
+
version = "1.0.109"
|
287
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
288
|
+
checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
|
289
|
+
dependencies = [
|
290
|
+
"proc-macro2",
|
291
|
+
"quote",
|
292
|
+
"unicode-ident",
|
293
|
+
]
|
294
|
+
|
295
|
+
[[package]]
|
296
|
+
name = "syn"
|
297
|
+
version = "2.0.15"
|
232
298
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
233
|
-
checksum = "
|
299
|
+
checksum = "a34fcf3e8b60f57e6a14301a2e916d323af98b0ea63c599441eec8558660c822"
|
234
300
|
dependencies = [
|
235
301
|
"proc-macro2",
|
236
302
|
"quote",
|
@@ -239,16 +305,15 @@ dependencies = [
|
|
239
305
|
|
240
306
|
[[package]]
|
241
307
|
name = "tempfile"
|
242
|
-
version = "3.
|
308
|
+
version = "3.5.0"
|
243
309
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
244
|
-
checksum = "
|
310
|
+
checksum = "b9fbec84f381d5795b08656e4912bec604d162bff9291d6189a78f4c8ab87998"
|
245
311
|
dependencies = [
|
246
312
|
"cfg-if",
|
247
313
|
"fastrand",
|
248
|
-
"libc",
|
249
314
|
"redox_syscall",
|
250
|
-
"
|
251
|
-
"
|
315
|
+
"rustix",
|
316
|
+
"windows-sys 0.45.0",
|
252
317
|
]
|
253
318
|
|
254
319
|
[[package]]
|
@@ -279,9 +344,9 @@ dependencies = [
|
|
279
344
|
|
280
345
|
[[package]]
|
281
346
|
name = "unicode-ident"
|
282
|
-
version = "1.0.
|
347
|
+
version = "1.0.8"
|
283
348
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
284
|
-
checksum = "
|
349
|
+
checksum = "e5464a87b239f13a63a501f2701565754bae92d243d4bb7eb12f6d57d2269bf4"
|
285
350
|
|
286
351
|
[[package]]
|
287
352
|
name = "unicode-segmentation"
|
@@ -322,3 +387,135 @@ name = "winapi-x86_64-pc-windows-gnu"
|
|
322
387
|
version = "0.4.0"
|
323
388
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
324
389
|
checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
|
390
|
+
|
391
|
+
[[package]]
|
392
|
+
name = "windows-sys"
|
393
|
+
version = "0.45.0"
|
394
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
395
|
+
checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0"
|
396
|
+
dependencies = [
|
397
|
+
"windows-targets 0.42.2",
|
398
|
+
]
|
399
|
+
|
400
|
+
[[package]]
|
401
|
+
name = "windows-sys"
|
402
|
+
version = "0.48.0"
|
403
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
404
|
+
checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
|
405
|
+
dependencies = [
|
406
|
+
"windows-targets 0.48.0",
|
407
|
+
]
|
408
|
+
|
409
|
+
[[package]]
|
410
|
+
name = "windows-targets"
|
411
|
+
version = "0.42.2"
|
412
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
413
|
+
checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071"
|
414
|
+
dependencies = [
|
415
|
+
"windows_aarch64_gnullvm 0.42.2",
|
416
|
+
"windows_aarch64_msvc 0.42.2",
|
417
|
+
"windows_i686_gnu 0.42.2",
|
418
|
+
"windows_i686_msvc 0.42.2",
|
419
|
+
"windows_x86_64_gnu 0.42.2",
|
420
|
+
"windows_x86_64_gnullvm 0.42.2",
|
421
|
+
"windows_x86_64_msvc 0.42.2",
|
422
|
+
]
|
423
|
+
|
424
|
+
[[package]]
|
425
|
+
name = "windows-targets"
|
426
|
+
version = "0.48.0"
|
427
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
428
|
+
checksum = "7b1eb6f0cd7c80c79759c929114ef071b87354ce476d9d94271031c0497adfd5"
|
429
|
+
dependencies = [
|
430
|
+
"windows_aarch64_gnullvm 0.48.0",
|
431
|
+
"windows_aarch64_msvc 0.48.0",
|
432
|
+
"windows_i686_gnu 0.48.0",
|
433
|
+
"windows_i686_msvc 0.48.0",
|
434
|
+
"windows_x86_64_gnu 0.48.0",
|
435
|
+
"windows_x86_64_gnullvm 0.48.0",
|
436
|
+
"windows_x86_64_msvc 0.48.0",
|
437
|
+
]
|
438
|
+
|
439
|
+
[[package]]
|
440
|
+
name = "windows_aarch64_gnullvm"
|
441
|
+
version = "0.42.2"
|
442
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
443
|
+
checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8"
|
444
|
+
|
445
|
+
[[package]]
|
446
|
+
name = "windows_aarch64_gnullvm"
|
447
|
+
version = "0.48.0"
|
448
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
449
|
+
checksum = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc"
|
450
|
+
|
451
|
+
[[package]]
|
452
|
+
name = "windows_aarch64_msvc"
|
453
|
+
version = "0.42.2"
|
454
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
455
|
+
checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43"
|
456
|
+
|
457
|
+
[[package]]
|
458
|
+
name = "windows_aarch64_msvc"
|
459
|
+
version = "0.48.0"
|
460
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
461
|
+
checksum = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3"
|
462
|
+
|
463
|
+
[[package]]
|
464
|
+
name = "windows_i686_gnu"
|
465
|
+
version = "0.42.2"
|
466
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
467
|
+
checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f"
|
468
|
+
|
469
|
+
[[package]]
|
470
|
+
name = "windows_i686_gnu"
|
471
|
+
version = "0.48.0"
|
472
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
473
|
+
checksum = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241"
|
474
|
+
|
475
|
+
[[package]]
|
476
|
+
name = "windows_i686_msvc"
|
477
|
+
version = "0.42.2"
|
478
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
479
|
+
checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060"
|
480
|
+
|
481
|
+
[[package]]
|
482
|
+
name = "windows_i686_msvc"
|
483
|
+
version = "0.48.0"
|
484
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
485
|
+
checksum = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00"
|
486
|
+
|
487
|
+
[[package]]
|
488
|
+
name = "windows_x86_64_gnu"
|
489
|
+
version = "0.42.2"
|
490
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
491
|
+
checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36"
|
492
|
+
|
493
|
+
[[package]]
|
494
|
+
name = "windows_x86_64_gnu"
|
495
|
+
version = "0.48.0"
|
496
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
497
|
+
checksum = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1"
|
498
|
+
|
499
|
+
[[package]]
|
500
|
+
name = "windows_x86_64_gnullvm"
|
501
|
+
version = "0.42.2"
|
502
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
503
|
+
checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3"
|
504
|
+
|
505
|
+
[[package]]
|
506
|
+
name = "windows_x86_64_gnullvm"
|
507
|
+
version = "0.48.0"
|
508
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
509
|
+
checksum = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953"
|
510
|
+
|
511
|
+
[[package]]
|
512
|
+
name = "windows_x86_64_msvc"
|
513
|
+
version = "0.42.2"
|
514
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
515
|
+
checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0"
|
516
|
+
|
517
|
+
[[package]]
|
518
|
+
name = "windows_x86_64_msvc"
|
519
|
+
version = "0.48.0"
|
520
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
521
|
+
checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a"
|
data/lib/pyroscope/version.rb
CHANGED
data/lib/pyroscope.rb
CHANGED
@@ -2,13 +2,14 @@
|
|
2
2
|
# frozen_string_literal: true
|
3
3
|
|
4
4
|
require 'ffi'
|
5
|
+
require 'json'
|
5
6
|
|
6
7
|
module Pyroscope
|
7
8
|
module Rust
|
8
9
|
extend FFI::Library
|
9
10
|
ffi_lib File.expand_path(File.dirname(__FILE__)) + "/rbspy/rbspy.#{RbConfig::CONFIG["DLEXT"]}"
|
10
11
|
attach_function :initialize_logging, [:int], :bool
|
11
|
-
attach_function :initialize_agent, [:string, :string, :string, :int, :bool, :bool, :bool, :bool, :string, :string, :string], :bool
|
12
|
+
attach_function :initialize_agent, [:string, :string, :string, :string, :string, :int, :bool, :bool, :bool, :bool, :string, :string, :string, :string, :string], :bool
|
12
13
|
attach_function :add_thread_tag, [:uint64, :string, :string], :bool
|
13
14
|
attach_function :remove_thread_tag, [:uint64, :string, :string], :bool
|
14
15
|
attach_function :add_global_tag, [:string, :string], :bool
|
@@ -37,6 +38,8 @@ module Pyroscope
|
|
37
38
|
:app_name,
|
38
39
|
:server_address,
|
39
40
|
:auth_token,
|
41
|
+
:basic_auth_username,
|
42
|
+
:basic_auth_password,
|
40
43
|
:log_level,
|
41
44
|
:sample_rate,
|
42
45
|
:detect_subprocesses,
|
@@ -47,6 +50,8 @@ module Pyroscope
|
|
47
50
|
:compression,
|
48
51
|
:report_encoding,
|
49
52
|
:autoinstrument_rails,
|
53
|
+
:scope_org_id,
|
54
|
+
:http_headers,
|
50
55
|
) do
|
51
56
|
def initialize(*)
|
52
57
|
super
|
@@ -54,6 +59,8 @@ module Pyroscope
|
|
54
59
|
self.application_name = ''
|
55
60
|
self.server_address = 'http://localhost:4040'
|
56
61
|
self.auth_token = ''
|
62
|
+
self.basic_auth_username = ''
|
63
|
+
self.basic_auth_password = ''
|
57
64
|
self.sample_rate = 100
|
58
65
|
self.detect_subprocesses = false
|
59
66
|
self.oncpu = true
|
@@ -64,6 +71,8 @@ module Pyroscope
|
|
64
71
|
self.compression = 'gzip'
|
65
72
|
self.report_encoding = 'pprof'
|
66
73
|
self.autoinstrument_rails = true
|
74
|
+
self.scope_org_id = ''
|
75
|
+
self.http_headers = {}
|
67
76
|
end
|
68
77
|
end
|
69
78
|
|
@@ -101,6 +110,8 @@ module Pyroscope
|
|
101
110
|
@config.app_name || @config.application_name || "",
|
102
111
|
@config.server_address || "",
|
103
112
|
@config.auth_token || "",
|
113
|
+
@config.basic_auth_username || "",
|
114
|
+
@config.basic_auth_password || "",
|
104
115
|
@config.sample_rate || 100,
|
105
116
|
@config.detect_subprocesses || false,
|
106
117
|
@config.oncpu || false,
|
@@ -108,7 +119,9 @@ module Pyroscope
|
|
108
119
|
@config.report_thread_id || false,
|
109
120
|
tags_to_string(@config.tags || {}),
|
110
121
|
@config.compression || "",
|
111
|
-
@config.report_encoding || "pprof"
|
122
|
+
@config.report_encoding || "pprof",
|
123
|
+
@config.scope_org_id || "",
|
124
|
+
http_headers_to_json(@config.http_headers || {})
|
112
125
|
)
|
113
126
|
end
|
114
127
|
|
@@ -170,5 +183,10 @@ module Pyroscope
|
|
170
183
|
def tags_to_string(tags)
|
171
184
|
tags.map { |k, v| "#{k}=#{v}" }.join(',')
|
172
185
|
end
|
186
|
+
|
187
|
+
def http_headers_to_json(http_headers)
|
188
|
+
JSON.dump(http_headers)
|
189
|
+
end
|
190
|
+
|
173
191
|
end
|
174
192
|
end
|
data/lib/rbspy/rbspy.bundle
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.5.
|
4
|
+
version: 0.5.4
|
5
5
|
platform: x86_64-darwin
|
6
6
|
authors:
|
7
7
|
- Pyroscope Team
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-
|
11
|
+
date: 2023-04-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: ffi
|