Comments (13)
You can only monitor containers with COLLECTD_DOCKER_APP
set to something. So the easiest way of monitoring all containers is to set this variable everywhere. If app name is not set on a docker container, it cannot be monitored.
Can you explain why you want to monitor all containers, but cannot set env variable everywhere?
from collectd-docker.
I actually would like this feature too. Right now, I'm going through all of our apps json for marathon and having to add this. But it would have been nice to just say, monitor everything with no changes to our current deployment setup.
We use mesos and the docker executer for everything (we are adding more and more running containers ever day) and it would be nice to just tell collectd-docker to just monitor everything.
from collectd-docker.
@sherzberg isn't your problem solved with #19?
from collectd-docker.
Yes, for marathon based apps. Unfortunately we have a few non-marathon docker containers deployed so we can't rely on MARATHON_APP_ID
being set all the time. So I think this issue is still a good one to implement.
from collectd-docker.
If we monitor everything, where do we get app name? Do we just take container name?
from collectd-docker.
That might work, the only issue is that it is random. Maybe the image name? It could even be full_image_name.tag
which would be helpful to see metric differences between tags.
from collectd-docker.
Why would it be random? How do you run your containers?
Image and are not unique, it's common to have many containers from the same image on one host.
from collectd-docker.
The container name is randomly generated:
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
0b3e1f06302b alpine "sleep 1000" 2 seconds ago Up 2 seconds boring_colden
d7984b865273 alpine "sleep 1000" 7 seconds ago Up 7 seconds happy_brattain
I guess we always build a new docker image for everything that is run in our environment, so I guess the image name wouldn't be unique. We just never run the same image with different commands.
from collectd-docker.
So I guess I am not sure what the best place to get the name from would be.
from collectd-docker.
Can you set container name in your env? Can you set env variable to use what works right now?
from collectd-docker.
I am fine with that. 99% of our containers run in marathon anyway. Thanks for talking through this though.
from collectd-docker.
@bobrik Would you consider adding the option to enable reading the container name and use that as label?
I maintain a large-ish graphite setup as part of an Ops team, and all of our applications implement a fixed container name. It would be difficult for us to manually label / orchestrate your container on hosts running multiple containers. It would be equally impractical to get the dev teams to modify their container images to include labels for us to use :)
I believe that adding this option would enable people deploying their containers with a fixed name, to easily implement your monitoring container with minimal further intervention/setup.
from collectd-docker.
@xneo64 I can review a PR if you want to do it.
from collectd-docker.
Related Issues (20)
- Binary Release? HOT 6
- metrics identifier question HOT 3
- Can't build collector
- Network metrics not collected HOT 4
- types.db for usage with logstash or influxdb HOT 2
- Feature Request: use Docker TCP deamon. HOT 1
- Can't make ENV variables work HOT 3
- Integrate the plugin in collectd HOT 1
- Fails to collect any data on Ubuntu / docker-machine virtual box HOT 3
- collectd exit after running
- SSL Error? HOT 6
- Can't restart a container HOT 2
- why not build-commands in dockerfile? HOT 2
- Swarm mode feature request HOT 2
- kubernetes?
- read-function of plugin `snmp-graphite-collectd' failed. Will suspend it for 600.000 seconds
- How to configure this container so that it detects other container's services automatically
- COLLECTD_DOCKER_APP_ENV_TRIM_PREFIX COLLECTD_DOCKER_TASK_ENV_TRIM_PREFIX don't seem to work HOT 1
- SEC: read-only Docker socket (w/ haproxy)
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 collectd-docker.