Git Product home page Git Product logo

Comments (6)

keitwb avatar keitwb commented on August 13, 2024

That sendListLengths config option is only used to configure the sending of list length metrics. You are saying to send the gauge.key_llen metric for every list value in database 2, but it doesn't prevent the general stats for the keyspace 0 from being sent. Are you seeing gauge.key_llen metrics for db 0 as well? If so, that is definitely a bug. You should only see those for db 2.

Most of the metrics sent are derived from the INFO command. If you want to exclude keyspace metrics about db0 (e.g. gauge.db0_keys, gauge.db0_expires, and gauge.db0_avg_ttl) you can just use this filter in your monitor config:

monitors:
  - type: collectd/redis
    host: {"#from": "env:REDIS_HOST"}
    port: {"#from": "env:REDIS_PORT", default: 6379}
    sendListLengths:
      - databaseIndex: 2
        keyPattern: '*'
    disableHostDimensions: true
    extraDimensions:
      deploy: {"#from": "env:DEPLOY"}
    metricsToExclude:
      - metricName: *db0_*

from signalfx-agent.

joshma avatar joshma commented on August 13, 2024

Are you seeing gauge.key_llen metrics for db 0 as well? If so, that is definitely a bug. You should only see those for db 2.

Yes, that's what I meant sorry - we're primarily interested in gauge.key_llen, because we're using it to measure celery queue lengths.

We're seeing the list lengths from db 0 and not 2 (and a bunch of errors since * matches a lot of non-lists).

from signalfx-agent.

keitwb avatar keitwb commented on August 13, 2024

I am not able to reproduce this. I used this config:

monitors:
  - type: collectd/redis
    discoveryRule: 'container_image =~ "redis"'
    sendListLengths:
     - keyPattern: '*'
       databaseIndex: 2

And created two lists, one in database 0 and one in database 2, and only got gauge.key_llen metrics for the one in db 2. If I change databaseIndex to 0 then I stop getting then metric for db 2 and only for db 0.

What version of the agent are you using? I am testing against the latest but this could have possibly been a bug that was fixed a while back.

from signalfx-agent.

joshma avatar joshma commented on August 13, 2024

We have a custom Docker image, but the binary is 3.9.5:

bash-4.3# /bin/signalfx-agent --version
agent-version: 3.9.5, built-time: 2018-12-31T16:22:09+0000

Is there any way to inspect a running agent to see what the actual generated collectd config is? Is this being passed over a pipe to the collectd plugin? (I tried looking for the generated XML on disk but can't find it.)

Also, we're doing it over host/port and not discovery, does that affect anything? I'll continue to look into it on our end, but let me know if you have any ideas. :)

from signalfx-agent.

joshma avatar joshma commented on August 13, 2024

Okay, I actually think there's something else going on here that isn't the agent. Some of our dashboards are showing up correctly and others aren't. I'm going to close this for now. Sorry for the noise @keitwb and appreciate the help.

from signalfx-agent.

keitwb avatar keitwb commented on August 13, 2024

Most useful tool is the status output: signalfx-agent status. This Redis plugin is actually not run by collectd per se (since version 3.7.0) but rather a Python shim that we wrote that mocks the collectd Python interface, so there isn't any real collectd config file being used for that part. But status output will tell you everything about config and state that hopefully you need to know.

Using host/port manually shouldn't make any difference. In the end, basically all the discovery mechanism does is provide a host/port config option (along with some additional metadata dimensions usually).

from signalfx-agent.

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.