Comments (11)
Another question: Can we only send data the time is bigger than 100ms
. Because there are so many request and I only care about the slow request. so the span with little delay(such as 1ms
) may don't need to send to the collector (which is also a service need resource to hold all the request). The rate
option may be different with what I want.
from aiozipkin.
Hi. For such specific tasks it is better to override the transport class i think. But implementation of the filtering of the spans by their parameters seems to me a good idea.
It can be combined with #39.
@jettify what do you think about this?
from aiozipkin.
it seems to me that the call asyncio.sleep at the end is also superfluous. because tracer.close() calling transport._send()
from aiozipkin.
Good catch! I have not updated this example, after implementing transport more properly, also agree on asyncio.sleep
should be removed.
@jiamo would you like to create PR with fix?
from aiozipkin.
As for question, I am not sure how to implement time filtering, consider following scenario:
We have 3 chained spans with times 1ms, 1ms and 101ms, we leave only third span due to filter, as result we also loose important information a full chain of calls that leaded to this particular span.
If you want to see response time of one particular endpoint, than other statistics and monitoring tools are more suitable (like https://github.com/graphite-project). Value of distributed tracing in seeing chain of calls and all interactions with other services.
from aiozipkin.
In this case We have 3 chained spans with times 1ms, 1ms and 101ms
What I wish is to collect them all because the total cast = 1 + 1 + 101
is big. (I don't looked into the source code. If it send data to collector at the close
(will always be called at my on_response
middleware in sanic) Then the filter is meaningful.
from aiozipkin.
from aiozipkin.
Example fixed in 326e966
from aiozipkin.
@konstantin-stepanov what do you think about context manger API around az.create
?
async with az.create(zipkin_address, endpoint, sample_rate=1.0) as tracer
with tracer.new_trace(sampled=True) as span:
span.name('root_span')
I just wondering if it is useful outside test...
from aiozipkin.
I like this idea. This simplifies the code and it looks more readable.
As for useful, it depends on applicatuon architecture. I think It will be perfect in MVP
from aiozipkin.
Created issue to track this idea #99
from aiozipkin.
Related Issues (20)
- Add contextvars support since this module can be installed on python3.6 HOT 1
- URL zipkin_address HOT 7
- Allow for specifying full path to zipkin endpoint HOT 3
- Move docstrings into code HOT 1
- implement "b3 single" header format HOT 3
- Resolve warning from aiohttp related to new middleware API HOT 1
- example/queue: Application.make_handler(...) is deprecated HOT 2
- Tornado Instrumentation HOT 1
- Add retries to send spans HOT 6
- Unknown-service-name Jaegar v1 HOT 2
- Release with latest commits HOT 1
- Span's context manager marks aiohttp.HTTPException as an error HOT 6
- Loop argument deprecated in Python 3.8 HOT 1
- aiozipkin 0.5.0 does not work with python 3.5.3 and aiohttp >= 3.0 , < 3.1 HOT 1
- Microservices Demo: no services interconnection in Zipkin UI HOT 1
- Dependabot couldn't authenticate with https://pypi.python.org/simple/
- Support fastapi HOT 6
- exception raised for 404s HOT 4
- Support @trace decorator using contextvars (similar to starlette-zipkin)
- Let's put `aiozipkin` under the `aio-libs` org on PyPI
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from aiozipkin.