Comments (7)
I don't think there are any special statistic methods for reply channels.
Probably the most useful way will be to run stress test against a real project. Compare how many time was spent inside consumer against total message processing time must give you proper insight.
from channels_redis.
channel_statistics
is particularly unhelpful for response channels, I agree, but we can't list all channels as that in itself might be very slow, especially if things are sharded. If you could give examples of the sort of things you might want to know, we can think about ways to get them semi-efficiently.
from channels_redis.
My wet dreams would be have some kind of channels htop
thing, to see actually everything about performance. Interface servers and their load, workers and their load, channels and their load. But we know how it is with dreams...
Right now I'm receiving tons of channel full messages on "daphne.response" and I realized that I'm totally blind on outgoing messages from channels server.
Current parameters like in channel_statistics
are totally enough for making load charts, or trigger automatic deployment to spawn more traffic lifting, etc. I would love to have a little more sources.
I want to archive ability to know when I'm close to my capacity
and act before error raises and messages are dropped. Anything that can tell me "that daphne instance can't handle more load" or "that websocket connection is way too heavy" would do the job perfectly.
from channels_redis.
I have plans to work on some kind of monitoring tool. I don't know what form it will have at the end. For now, I just have few thoughts.
Probably it will be a collection of predefined alerts for prometheus.io
Maybe this issue can be a sophisticated place to start this discussion.
from channels_redis.
@approxit 👍
Some of the alerts should be triggered when
- Average queuing time of the messages in certain channel is greater than X ms(during some interval)
- Y% (eg: 90%) of the channel capacity reached
- Average time taken by the workers listening to a particular channel is greater than Z ms.
from channels_redis.
@devenbhooshan Can you clarify some conditions for me?
- Is to broad, some channel layers don't expose current message number in the channel. This alert is nice to have, but maybe layer specific.
- What is the purpose of this alert?
from channels_redis.
Statistics have been removed from channels_redis
in version 2.0 as it's no longer used for sending HTTP request/response data and it's meant to be lighter-weight overall (plus the Redis key structure is now a lot simpler and easier to query with external scripts), so closing this.
from channels_redis.
Related Issues (20)
- TimeoutError with pytest-asyncio when `group_discard` is used HOT 1
- In channels-redis==4.1.0, Cannot import BACKEND 'channels_redis.core.RedisChannelLayer' specified for default #2005 HOT 1
- `RedisChannelLayer.receive()` drops events due to `asyncio.shield()` in redis-py 4.5.4 HOT 10
- Failing test caused other tests to fail with RuntimeError: Event loop is closed on pytest HOT 5
- FYI: New Relic Python instrumentation breaks the PubSub layer with async consumers HOT 1
- Connection is None causing TypeError: object NoneType can't be used in 'await' expression HOT 1
- TypeError: AbstractConnection.__init__() got an unexpected keyword argument 'ssl_cert_reqs' HOT 2
- Inconsistent group_send behavior in RedisChannelLayer when called in consumer disconnect() HOT 1
- Connection reset by peer when upgrading redis-py to v5 HOT 6
- Serverless AWS Redis results in `redis.exceptions.ResponseError: Lua scripts without any input keys are not supported.` HOT 2
- Unable to configure AWS elasticache redis with channel_redis HOT 1
- redis.exceptions.ResponseError: unknown command 'BZPOPMIN' HOT 1
- support microsoft entra id for authentication with azure cache for redis HOT 1
- Use group_send() when group is empty. (Outside Of Consumers) HOT 1
- need for Advanced Redis configurations HOT 1
- When restart the server, channel information is not deleted. HOT 1
- Missing tag for 4.2.0 release HOT 1
- channels_redis keeps stale connection to redis HOT 1
- Crash in redis/asyncio/connection.py using Django Channels HOT 1
- NoPermissionError when using AWS ElastiCache HOT 6
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 channels_redis.