pyroscope 0.5.2-x86_64-linux → 0.5.4-x86_64-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 +4 -4
- data/ext/rbspy/Cargo.lock +20 -173
- data/ext/rbspy/Cargo.toml +1 -0
- data/ext/rbspy/src/lib.rs +63 -4
- data/lib/pyroscope/version.rb +1 -1
- data/lib/pyroscope.rb +20 -2
- data/lib/rbspy/rbspy.so +0 -0
- metadata +2 -11
- data/lib/rbspy.libs/libcom_err-f79b9776.so.2.1 +0 -0
- data/lib/rbspy.libs/libcrypto-142cf8a3.so.1.0.1e +0 -0
- data/lib/rbspy.libs/libgssapi_krb5-bb73e344.so.2.2 +0 -0
- data/lib/rbspy.libs/libk5crypto-ab4ddf4c.so.3.1 +0 -0
- data/lib/rbspy.libs/libkeyutils-68db41cc.so.1.3 +0 -0
- data/lib/rbspy.libs/libkrb5-7e4170ab.so.3.3 +0 -0
- data/lib/rbspy.libs/libkrb5support-2ce1fd50.so.0.1 +0 -0
- data/lib/rbspy.libs/libselinux-d72a37e2.so.1 +0 -0
- data/lib/rbspy.libs/libssl-09014658.so.1.0.1e +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: cb925832eab2121b5ae0fea9786fc1863bbcc7a3e593235bb5238e1e8d375097
|
4
|
+
data.tar.gz: 94c7c54e1c83df743f9a4b9aab3fa358aa69dadfa1012345c6afd00a8d45be63
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b61ee5478814ff245186ab5840bf818796e13931e5d1c7a5bd13822ab5e931aca9d2024a2c43055720f81206ffdac260950dd760a17e1a4fc272c15bfa6aa0cc
|
7
|
+
data.tar.gz: bdfecd81c173059c98d630f094a28c7370ee3a5d31aceef24b99b58cb075148f39db170b18422e13c8dfbe662cb65b6c6dd912bee9a154e81b68ad134a996fea
|
data/ext/rbspy/Cargo.lock
CHANGED
@@ -373,16 +373,6 @@ dependencies = [
|
|
373
373
|
"crossbeam-utils",
|
374
374
|
]
|
375
375
|
|
376
|
-
[[package]]
|
377
|
-
name = "core-foundation"
|
378
|
-
version = "0.9.3"
|
379
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
380
|
-
checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146"
|
381
|
-
dependencies = [
|
382
|
-
"core-foundation-sys",
|
383
|
-
"libc",
|
384
|
-
]
|
385
|
-
|
386
376
|
[[package]]
|
387
377
|
name = "core-foundation-sys"
|
388
378
|
version = "0.8.3"
|
@@ -636,21 +626,6 @@ version = "1.0.7"
|
|
636
626
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
637
627
|
checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
|
638
628
|
|
639
|
-
[[package]]
|
640
|
-
name = "foreign-types"
|
641
|
-
version = "0.3.2"
|
642
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
643
|
-
checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1"
|
644
|
-
dependencies = [
|
645
|
-
"foreign-types-shared",
|
646
|
-
]
|
647
|
-
|
648
|
-
[[package]]
|
649
|
-
name = "foreign-types-shared"
|
650
|
-
version = "0.1.1"
|
651
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
652
|
-
checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
|
653
|
-
|
654
629
|
[[package]]
|
655
630
|
name = "form_urlencoded"
|
656
631
|
version = "1.1.0"
|
@@ -917,19 +892,6 @@ dependencies = [
|
|
917
892
|
"tokio-rustls",
|
918
893
|
]
|
919
894
|
|
920
|
-
[[package]]
|
921
|
-
name = "hyper-tls"
|
922
|
-
version = "0.5.0"
|
923
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
924
|
-
checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905"
|
925
|
-
dependencies = [
|
926
|
-
"bytes",
|
927
|
-
"hyper",
|
928
|
-
"native-tls",
|
929
|
-
"tokio",
|
930
|
-
"tokio-native-tls",
|
931
|
-
]
|
932
|
-
|
933
895
|
[[package]]
|
934
896
|
name = "iana-time-zone"
|
935
897
|
version = "0.1.53"
|
@@ -1085,6 +1047,12 @@ dependencies = [
|
|
1085
1047
|
"wasm-bindgen",
|
1086
1048
|
]
|
1087
1049
|
|
1050
|
+
[[package]]
|
1051
|
+
name = "json"
|
1052
|
+
version = "0.12.4"
|
1053
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
1054
|
+
checksum = "078e285eafdfb6c4b434e0d31e8cfcb5115b651496faca5749b88fafd4f23bfd"
|
1055
|
+
|
1088
1056
|
[[package]]
|
1089
1057
|
name = "lazy_static"
|
1090
1058
|
version = "0.1.16"
|
@@ -1285,24 +1253,6 @@ dependencies = [
|
|
1285
1253
|
"rand 0.8.5",
|
1286
1254
|
]
|
1287
1255
|
|
1288
|
-
[[package]]
|
1289
|
-
name = "native-tls"
|
1290
|
-
version = "0.2.11"
|
1291
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
1292
|
-
checksum = "07226173c32f2926027b63cce4bcd8076c3552846cbe7925f3aaffeac0a3b92e"
|
1293
|
-
dependencies = [
|
1294
|
-
"lazy_static 1.4.0",
|
1295
|
-
"libc",
|
1296
|
-
"log",
|
1297
|
-
"openssl",
|
1298
|
-
"openssl-probe",
|
1299
|
-
"openssl-sys",
|
1300
|
-
"schannel",
|
1301
|
-
"security-framework",
|
1302
|
-
"security-framework-sys",
|
1303
|
-
"tempfile",
|
1304
|
-
]
|
1305
|
-
|
1306
1256
|
[[package]]
|
1307
1257
|
name = "nix"
|
1308
1258
|
version = "0.25.1"
|
@@ -1394,51 +1344,6 @@ version = "1.17.1"
|
|
1394
1344
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
1395
1345
|
checksum = "b7e5500299e16ebb147ae15a00a942af264cf3688f47923b8fc2cd5858f23ad3"
|
1396
1346
|
|
1397
|
-
[[package]]
|
1398
|
-
name = "openssl"
|
1399
|
-
version = "0.10.45"
|
1400
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
1401
|
-
checksum = "b102428fd03bc5edf97f62620f7298614c45cedf287c271e7ed450bbaf83f2e1"
|
1402
|
-
dependencies = [
|
1403
|
-
"bitflags",
|
1404
|
-
"cfg-if",
|
1405
|
-
"foreign-types",
|
1406
|
-
"libc",
|
1407
|
-
"once_cell",
|
1408
|
-
"openssl-macros",
|
1409
|
-
"openssl-sys",
|
1410
|
-
]
|
1411
|
-
|
1412
|
-
[[package]]
|
1413
|
-
name = "openssl-macros"
|
1414
|
-
version = "0.1.0"
|
1415
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
1416
|
-
checksum = "b501e44f11665960c7e7fcf062c7d96a14ade4aa98116c004b2e37b5be7d736c"
|
1417
|
-
dependencies = [
|
1418
|
-
"proc-macro2",
|
1419
|
-
"quote",
|
1420
|
-
"syn",
|
1421
|
-
]
|
1422
|
-
|
1423
|
-
[[package]]
|
1424
|
-
name = "openssl-probe"
|
1425
|
-
version = "0.1.5"
|
1426
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
1427
|
-
checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf"
|
1428
|
-
|
1429
|
-
[[package]]
|
1430
|
-
name = "openssl-sys"
|
1431
|
-
version = "0.9.80"
|
1432
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
1433
|
-
checksum = "23bbbf7854cd45b83958ebe919f0e8e516793727652e27fda10a8384cfc790b7"
|
1434
|
-
dependencies = [
|
1435
|
-
"autocfg",
|
1436
|
-
"cc",
|
1437
|
-
"libc",
|
1438
|
-
"pkg-config",
|
1439
|
-
"vcpkg",
|
1440
|
-
]
|
1441
|
-
|
1442
1347
|
[[package]]
|
1443
1348
|
name = "os_str_bytes"
|
1444
1349
|
version = "6.4.1"
|
@@ -1488,12 +1393,6 @@ version = "0.1.0"
|
|
1488
1393
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
1489
1394
|
checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
|
1490
1395
|
|
1491
|
-
[[package]]
|
1492
|
-
name = "pkg-config"
|
1493
|
-
version = "0.3.26"
|
1494
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
1495
|
-
checksum = "6ac9a59f73473f1b8d852421e59e64809f025994837ef743615c6d0c5b305160"
|
1496
|
-
|
1497
1396
|
[[package]]
|
1498
1397
|
name = "plain"
|
1499
1398
|
version = "0.2.3"
|
@@ -1611,8 +1510,9 @@ dependencies = [
|
|
1611
1510
|
|
1612
1511
|
[[package]]
|
1613
1512
|
name = "pyroscope"
|
1614
|
-
version = "0.5.
|
1513
|
+
version = "0.5.5"
|
1615
1514
|
dependencies = [
|
1515
|
+
"json",
|
1616
1516
|
"libc",
|
1617
1517
|
"libflate",
|
1618
1518
|
"log",
|
@@ -1626,7 +1526,7 @@ dependencies = [
|
|
1626
1526
|
|
1627
1527
|
[[package]]
|
1628
1528
|
name = "pyroscope_rbspy"
|
1629
|
-
version = "0.2.
|
1529
|
+
version = "0.2.5"
|
1630
1530
|
dependencies = [
|
1631
1531
|
"anyhow",
|
1632
1532
|
"inferno",
|
@@ -1725,6 +1625,7 @@ dependencies = [
|
|
1725
1625
|
"cbindgen",
|
1726
1626
|
"ffikit",
|
1727
1627
|
"inferno",
|
1628
|
+
"log",
|
1728
1629
|
"pretty_env_logger",
|
1729
1630
|
"pyroscope",
|
1730
1631
|
"pyroscope_rbspy",
|
@@ -1875,29 +1776,26 @@ dependencies = [
|
|
1875
1776
|
"http-body",
|
1876
1777
|
"hyper",
|
1877
1778
|
"hyper-rustls",
|
1878
|
-
"hyper-tls",
|
1879
1779
|
"ipnet",
|
1880
1780
|
"js-sys",
|
1881
1781
|
"log",
|
1882
1782
|
"mime",
|
1883
|
-
"native-tls",
|
1884
1783
|
"once_cell",
|
1885
1784
|
"percent-encoding",
|
1886
1785
|
"pin-project-lite",
|
1887
1786
|
"rustls",
|
1888
|
-
"rustls-native-certs",
|
1889
1787
|
"rustls-pemfile",
|
1890
1788
|
"serde",
|
1891
1789
|
"serde_json",
|
1892
1790
|
"serde_urlencoded",
|
1893
1791
|
"tokio",
|
1894
|
-
"tokio-native-tls",
|
1895
1792
|
"tokio-rustls",
|
1896
1793
|
"tower-service",
|
1897
1794
|
"url",
|
1898
1795
|
"wasm-bindgen",
|
1899
1796
|
"wasm-bindgen-futures",
|
1900
1797
|
"web-sys",
|
1798
|
+
"webpki-roots",
|
1901
1799
|
"winreg",
|
1902
1800
|
]
|
1903
1801
|
|
@@ -1978,18 +1876,6 @@ dependencies = [
|
|
1978
1876
|
"webpki",
|
1979
1877
|
]
|
1980
1878
|
|
1981
|
-
[[package]]
|
1982
|
-
name = "rustls-native-certs"
|
1983
|
-
version = "0.6.2"
|
1984
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
1985
|
-
checksum = "0167bac7a9f490495f3c33013e7722b53cb087ecbe082fb0c6387c96f634ea50"
|
1986
|
-
dependencies = [
|
1987
|
-
"openssl-probe",
|
1988
|
-
"rustls-pemfile",
|
1989
|
-
"schannel",
|
1990
|
-
"security-framework",
|
1991
|
-
]
|
1992
|
-
|
1993
1879
|
[[package]]
|
1994
1880
|
name = "rustls-pemfile"
|
1995
1881
|
version = "1.0.2"
|
@@ -2005,15 +1891,6 @@ version = "1.0.12"
|
|
2005
1891
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2006
1892
|
checksum = "7b4b9743ed687d4b4bcedf9ff5eaa7398495ae14e61cba0a295704edbc7decde"
|
2007
1893
|
|
2008
|
-
[[package]]
|
2009
|
-
name = "schannel"
|
2010
|
-
version = "0.1.21"
|
2011
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2012
|
-
checksum = "713cfb06c7059f3588fb8044c0fad1d09e3c01d225e25b9220dbfdcf16dbb1b3"
|
2013
|
-
dependencies = [
|
2014
|
-
"windows-sys 0.42.0",
|
2015
|
-
]
|
2016
|
-
|
2017
1894
|
[[package]]
|
2018
1895
|
name = "scopeguard"
|
2019
1896
|
version = "1.1.0"
|
@@ -2056,29 +1933,6 @@ dependencies = [
|
|
2056
1933
|
"untrusted",
|
2057
1934
|
]
|
2058
1935
|
|
2059
|
-
[[package]]
|
2060
|
-
name = "security-framework"
|
2061
|
-
version = "2.8.2"
|
2062
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2063
|
-
checksum = "a332be01508d814fed64bf28f798a146d73792121129962fdf335bb3c49a4254"
|
2064
|
-
dependencies = [
|
2065
|
-
"bitflags",
|
2066
|
-
"core-foundation",
|
2067
|
-
"core-foundation-sys",
|
2068
|
-
"libc",
|
2069
|
-
"security-framework-sys",
|
2070
|
-
]
|
2071
|
-
|
2072
|
-
[[package]]
|
2073
|
-
name = "security-framework-sys"
|
2074
|
-
version = "2.8.0"
|
2075
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2076
|
-
checksum = "31c9bb296072e961fcbd8853511dd39c2d8be2deb1e17c6860b1d30732b323b4"
|
2077
|
-
dependencies = [
|
2078
|
-
"core-foundation-sys",
|
2079
|
-
"libc",
|
2080
|
-
]
|
2081
|
-
|
2082
1936
|
[[package]]
|
2083
1937
|
name = "semver"
|
2084
1938
|
version = "1.0.16"
|
@@ -2359,16 +2213,6 @@ dependencies = [
|
|
2359
2213
|
"windows-sys 0.42.0",
|
2360
2214
|
]
|
2361
2215
|
|
2362
|
-
[[package]]
|
2363
|
-
name = "tokio-native-tls"
|
2364
|
-
version = "0.3.1"
|
2365
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2366
|
-
checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2"
|
2367
|
-
dependencies = [
|
2368
|
-
"native-tls",
|
2369
|
-
"tokio",
|
2370
|
-
]
|
2371
|
-
|
2372
2216
|
[[package]]
|
2373
2217
|
name = "tokio-rustls"
|
2374
2218
|
version = "0.23.4"
|
@@ -2485,12 +2329,6 @@ dependencies = [
|
|
2485
2329
|
"percent-encoding",
|
2486
2330
|
]
|
2487
2331
|
|
2488
|
-
[[package]]
|
2489
|
-
name = "vcpkg"
|
2490
|
-
version = "0.2.15"
|
2491
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2492
|
-
checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426"
|
2493
|
-
|
2494
2332
|
[[package]]
|
2495
2333
|
name = "vec_map"
|
2496
2334
|
version = "0.8.2"
|
@@ -2623,6 +2461,15 @@ dependencies = [
|
|
2623
2461
|
"untrusted",
|
2624
2462
|
]
|
2625
2463
|
|
2464
|
+
[[package]]
|
2465
|
+
name = "webpki-roots"
|
2466
|
+
version = "0.22.6"
|
2467
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2468
|
+
checksum = "b6c71e40d7d2c34a5106301fb632274ca37242cd0c9d3e64dbece371a40a2d87"
|
2469
|
+
dependencies = [
|
2470
|
+
"webpki",
|
2471
|
+
]
|
2472
|
+
|
2626
2473
|
[[package]]
|
2627
2474
|
name = "which"
|
2628
2475
|
version = "4.4.0"
|
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/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.so
CHANGED
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-linux
|
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
|
@@ -87,15 +87,6 @@ files:
|
|
87
87
|
- ext/thread_id/src/lib.rs
|
88
88
|
- lib/pyroscope.rb
|
89
89
|
- lib/pyroscope/version.rb
|
90
|
-
- lib/rbspy.libs/libcom_err-f79b9776.so.2.1
|
91
|
-
- lib/rbspy.libs/libcrypto-142cf8a3.so.1.0.1e
|
92
|
-
- lib/rbspy.libs/libgssapi_krb5-bb73e344.so.2.2
|
93
|
-
- lib/rbspy.libs/libk5crypto-ab4ddf4c.so.3.1
|
94
|
-
- lib/rbspy.libs/libkeyutils-68db41cc.so.1.3
|
95
|
-
- lib/rbspy.libs/libkrb5-7e4170ab.so.3.3
|
96
|
-
- lib/rbspy.libs/libkrb5support-2ce1fd50.so.0.1
|
97
|
-
- lib/rbspy.libs/libselinux-d72a37e2.so.1
|
98
|
-
- lib/rbspy.libs/libssl-09014658.so.1.0.1e
|
99
90
|
- lib/rbspy/rbspy.so
|
100
91
|
- lib/thread_id/thread_id.so
|
101
92
|
- pyroscope.gemspec
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|