-
Notifications
You must be signed in to change notification settings - Fork 32
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #32 from pyroscope-io/0.5.3
0.5.3
- Loading branch information
Showing
50 changed files
with
875 additions
and
2,513 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
<!-- | ||
Thanks for helping out! | ||
Please link the appropriate issue from your PR. | ||
If you don't have an issue, we'd recommend starting with one first so the PR can focus on the | ||
implementation (unless its an obvious bug or documentation fix that will have | ||
little conversation). | ||
--> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
version: 2 | ||
updates: | ||
- package-ecosystem: cargo | ||
directory: "/" | ||
schedule: | ||
interval: weekly | ||
time: "07:00" | ||
open-pull-requests-limit: 10 | ||
labels: | ||
- C-dependencies | ||
- package-ecosystem: "github-actions" | ||
directory: "/" | ||
schedule: | ||
interval: weekly | ||
open-pull-requests-limit: 10 | ||
labels: | ||
- "C-dependencies" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
# Contributing to Pyroscope | ||
|
||
Thank you for your interest in contributing to Pyroscope! We welcome all people who want to contribute in a healthy and constructive manner within our community. To help us create a safe and positive community experience for all, we require all participants to adhere to the [Code of Conduct](CODE_OF_CONDUCT.md). | ||
|
||
This document is a guide to help you through the process of contributing to Pyroscope. | ||
|
||
## Where do I start | ||
|
||
* Set up your [development environment](https://pyroscope.io/docs/developer-guide). | ||
* Read the [style guides](https://pyroscope.io/docs/style-guide) we use. | ||
* Check out the list of [good first issues](https://github.com/pyroscope-io/pyroscope/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22). |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -5,7 +5,7 @@ Pyroscope Profiler Agent for continuous profiling of Rust, Python and Ruby appli | |
""" | ||
keywords = ["pyroscope", "profiler", "profiling", "pprof"] | ||
authors = ["Abid Omar <[email protected]>"] | ||
version = "0.5.2" | ||
version = "0.5.3" | ||
edition = "2021" | ||
license = "Apache-2.0" | ||
homepage = "https://pyroscope.io/docs/rust" | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,128 @@ | ||
extern crate pyroscope; | ||
|
||
use pyroscope::{PyroscopeAgent, Result}; | ||
use pyroscope_pprofrs::{pprof_backend, PprofConfig}; | ||
use std::{ | ||
collections::hash_map::DefaultHasher, | ||
hash::{Hash, Hasher}, | ||
thread, | ||
}; | ||
|
||
fn hash_rounds1(n: u64) -> u64 { | ||
let hash_str = "Some string to hash"; | ||
let mut default_hasher = DefaultHasher::new(); | ||
|
||
for _ in 0..n { | ||
for _ in 0..1000 { | ||
default_hasher.write(hash_str.as_bytes()); | ||
} | ||
hash_str.hash(&mut default_hasher); | ||
} | ||
|
||
n | ||
} | ||
|
||
fn hash_rounds2(n: u64) -> u64 { | ||
let hash_str = "Some string to hash"; | ||
let mut default_hasher = DefaultHasher::new(); | ||
|
||
for _ in 0..n { | ||
for _ in 0..1000 { | ||
default_hasher.write(hash_str.as_bytes()); | ||
} | ||
hash_str.hash(&mut default_hasher); | ||
} | ||
|
||
n | ||
} | ||
|
||
fn extra_rounds1(n: u64) -> u64 { | ||
let hash_str = "Some string to hash"; | ||
let mut default_hasher = DefaultHasher::new(); | ||
|
||
for _ in 0..n { | ||
for _ in 0..1000 { | ||
default_hasher.write(hash_str.as_bytes()); | ||
} | ||
hash_str.hash(&mut default_hasher); | ||
} | ||
|
||
n | ||
} | ||
|
||
fn extra_rounds2(n: u64) -> u64 { | ||
let hash_str = "Some string to hash"; | ||
let mut default_hasher = DefaultHasher::new(); | ||
|
||
for _ in 0..n { | ||
for _ in 0..1000 { | ||
default_hasher.write(hash_str.as_bytes()); | ||
} | ||
hash_str.hash(&mut default_hasher); | ||
} | ||
|
||
n | ||
} | ||
|
||
fn main() -> Result<()> { | ||
let agent = PyroscopeAgent::builder("http://localhost:4040", "example.multithread.report") | ||
.tags([("Host", "Rust")].to_vec()) | ||
.backend(pprof_backend( | ||
PprofConfig::new() | ||
.sample_rate(100) | ||
.report_thread_id() | ||
.report_thread_name(), | ||
)) | ||
.build()?; | ||
|
||
// Show start time | ||
let start = std::time::SystemTime::now() | ||
.duration_since(std::time::UNIX_EPOCH) | ||
.unwrap() | ||
.as_secs(); | ||
println!("Start Time: {}", start); | ||
|
||
// Start Agent | ||
let agent_running = agent.start()?; | ||
|
||
let (add_tag, remove_tag) = agent_running.tag_wrapper(); | ||
|
||
let handle_1 = thread::Builder::new() | ||
.name("thread-1".to_string()) | ||
.spawn(move || { | ||
hash_rounds1(300_000); | ||
add_tag("extra".to_string(), "round-1".to_string()).unwrap(); | ||
extra_rounds1(200_000); | ||
remove_tag("extra".to_string(), "round-1".to_string()).unwrap(); | ||
})?; | ||
|
||
let (add_tag, remove_tag) = agent_running.tag_wrapper(); | ||
|
||
let handle_2 = thread::Builder::new() | ||
.name("thread-2".to_string()) | ||
.spawn(move || { | ||
add_tag("extra".to_string(), "round-2".to_string()).unwrap(); | ||
extra_rounds2(100_000); | ||
remove_tag("extra".to_string(), "round-2".to_string()).unwrap(); | ||
hash_rounds2(500_000); | ||
})?; | ||
|
||
// Wait for the threads to complete | ||
handle_1.join().unwrap(); | ||
handle_2.join().unwrap(); | ||
|
||
// Stop Agent | ||
let agent_ready = agent_running.stop()?; | ||
|
||
// Shutdown the Agent | ||
agent_ready.shutdown(); | ||
|
||
// Show program exit time | ||
let exit = std::time::SystemTime::now() | ||
.duration_since(std::time::UNIX_EPOCH) | ||
.unwrap() | ||
.as_secs(); | ||
println!("Exit Time: {}", exit); | ||
|
||
Ok(()) | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.