Coder Social home page Coder Social logo

Comments (7)

proofit404 avatar proofit404 commented on August 30, 2024

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.

andrewgodwin avatar andrewgodwin commented on August 30, 2024

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.

approxit avatar approxit commented on August 30, 2024

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.

proofit404 avatar proofit404 commented on August 30, 2024

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.

devenbhooshan avatar devenbhooshan commented on August 30, 2024

@approxit 👍
Some of the alerts should be triggered when

  1. Average queuing time of the messages in certain channel is greater than X ms(during some interval)
  2. Y% (eg: 90%) of the channel capacity reached
  3. Average time taken by the workers listening to a particular channel is greater than Z ms.

from channels_redis.

proofit404 avatar proofit404 commented on August 30, 2024

@devenbhooshan Can you clarify some conditions for me?

  1. 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.
  2. What is the purpose of this alert?

from channels_redis.

andrewgodwin avatar andrewgodwin commented on August 30, 2024

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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.