Python HTTP server to record traces from the browser.
Project description
jaeger-browser
This repo is to help you submit Jaeger traces from your browser. It is a workaround until a browser client is implemented.
It contains a Python package that runs a REST API which submits traces locally.
It also contains a TypeScript library that connects to this REST API.
If you want to use this alongside your Jupyter server, check out
jupyter-jaeger
. There is an example in that repo of starting a span in a kernel server side and then continueing it on the clien side.
In turn, we use that to instrument plotting interactive Vega visualizations with a Python backend.
Limitations
- Doesn't implement full Jaeger API just a subset I needed. PRs welcome.
- Hard coded to connect to a local Jaeger server. PRs welcome.
- No sampling implemented, it will collect all traces. PRs welcome.
Usage
First get the REST server installed and started:
# install jaeger-all-in-one
conda -c conda-forge install jaeger
# Install the REST server
pip install jaeger_browser
# Start jaeger all in one
jaeger-all-in-one
# Start the REST server
env PORT=8080 jaeger-browser
Then install the client side library and connect to it:
yarn add jaeger-browser
import {Client} from 'jaeger-browser';
const client = new Client(new URL('http://localhost:8080/'))
async function doThings(originalExtractedScan: object): Promise<object> {
// Start a span based on some text-map encoded data
const span = await client.startSpanExtract({
name: 'new-span',
reference: originalExtractedScan,
relationship: 'child_of'
});
// create a new span under it
const newSpan = await client.startSpan({
name: 'other-span',
reference: span,
relationship: 'child_of'
})
// Finish this inner span
await client.finishSpan(newSpan);
// return the span we started text-map encoded
return await client.injectSpan(span);
}
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for jaeger_browser-1.0.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 176442772510bedb46e47a4db1a24429a406b612165d2db25fe18e7619182f4b |
|
MD5 | b367ffb6f939e759f6880ed3d3a04bf8 |
|
BLAKE2b-256 | 669978e6692a0cc1b01821d2895fc182c4ed3c5b67c66d7a81918d2eab4add15 |