palantir / rust-zipkin Goto Github PK
View Code? Open in Web Editor NEWA library for logging and propagating Zipkin trace information in Rust
License: Apache License 2.0
A library for logging and propagating Zipkin trace information in Rust
License: Apache License 2.0
We'd be using task locals rather than thread locals.
As discussed on openzipkin/b3-propagation#21 and first implemented here: https://github.com/openzipkin/brave/blob/master/brave/src/main/java/brave/propagation/B3SingleFormat.java https://github.com/openzipkin/brave/blob/master/brave/src/test/java/brave/propagation/B3SingleFormatTest.java
Let's support at least reading "b3" header from a single string, most commonly traceid-spanid-1
It would also be nice to support optionally writing this, especially in message providers or others with constrained environments.
Brave currently has a property like this, but its name could change with feedback:
/**
* When true, only writes a single {@link B3SingleFormat b3 header} for outbound propagation.
*
* <p>Use this to reduce overhead. Note: normal {@link Tracing#propagation()} is used to parse
* incoming headers. The implementation must be able to read "b3" headers.
*/
public Builder b3SingleFormat(boolean b3SingleFormat) {
this.b3SingleFormat = b3SingleFormat;
return this;
}
We need to split the creation of the detached OpenSpan into a separate statement or the attached (and non Send) OpenSpan is considered to be alive across the await and prevents the future from being Send.
I'm reading the structure of this crate to understand the pieces but I feel like I'm missing parts. It may be helpful to provide some cargo /examples application to demonstrate how these pieces fit together
This is a kind of sketchy operation, but it's not all that common to know what your IP is via other means. We basically enumerate all local addresses and look for the first one that "looks right". This can be done with getifaddrs(3)
on Unix and GetAdaptersAddresses
on Windows.
Brave's logic for reference: https://github.com/openzipkin/brave/blob/c83d32531170de2d9e848026e43d5e2020922ee0/brave/src/main/java/brave/internal/Platform.java#L56
There are three sets of trace information that can be communicated to a server: a full TraceContext
, debug/sample flags, or a TraceId
and debug/sample. We currently only support the first case, but we should handle all three.
Brave has a TraceContextOrSamplingFlags
which is just an enum over those three cases. We should have something similar.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.