godstatsdog

command module
v0.0.0-...-453df8b Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 20, 2021 License: MIT Imports: 13 Imported by: 0

README

go docker stats daemon (godstatsdog)

A rewrite and enhancement of dstatsd in Go.

godstatsdog collects the metrics also provided by the docker stats command (see below) from your running containers and exposes them via HTTP in a format scrapable by Prometheus. A multiarch (amd64, arm, arm64) docker image is available at dockerhub.

Supported metrics:

  • CPU %
  • MEM %
  • MEM USAGE
  • MEM LIMIT
  • NET I/O
  • BLOCK I/O
  • PIDS

Usage

$ godstatsdog -help
Usage of godstatsdog:
  -interval int
        The update interval in milliseconds (default 1000)
  -port int
        The port godstatsdog listens on (default 8080)

When running, godstatsdog listens to the specified port and provides the metrics at the /metrics endpoint.

via Docker
docker run -v /var/run/docker.sock:/var/run/docker.sock:ro toolcreator/godstatsdog

The arguments shown above can also be passed, e.g.:

docker run -v /var/run/docker.sock:/var/run/docker.sock:ro toolcreator/godstatsdog -interval 10000 -port 12345

Using the -port option may be particularly useful when running the container with --network=host (i.e., when port mapping is not available). When available, port mapping can of course be used as well, e.g.:

docker run -v /var/run/docker.sock:/var/run/docker.sock:ro -p 12345:8080 toolcreator/godstatsdog
docker-compose
godstatsdog:
  image: toolcreator/godstatsdog
  command:
    - "-interval=10000"
  ports:
    - '12345:8080'
  volumes:
    - '/var/run/docker.sock:/var/run/docker.sock:ro'

Or, with network_mode: "host":

godstatsdog:
  image: toolcreator/godstatsdog
  network_mode: "host"
  command:
    - "-interval=10000"
    - "-port=12345"
  volumes:
    - '/var/run/docker.sock:/var/run/docker.sock:ro'
Without Docker
  1. Download the source code: git clone https://github.com/toolcreator/godstatsdog.git
  2. Enter the root directory: cd godstatsdog
  3. Compile: go build
  4. Install: go install
  5. Run: godstatsdog

You may also skip step 4 and use ./godstatsdog to run the program instead.

Metrics

All metrics are of type gauge and are labeled with container_id and container_name.

Name Description
godstatsdog_cpu_percent The percentage of the host’s CPU the container is using
godstatsdog_memory_usage_bytes The total amount of memory the container is using
godstatsdog_memory_limit_bytes The total amount of memory the container is allowed to use
godstatsdog_memory_percent The percentage of the host’s memory the container is using
godstatsdog_network_received_bytes The amount of data the container has received over its network interface
godstatsdog_network_transmitted_bytes The amount of data the container has transmitted over its network interface
godstatsdog_block_read_bytes The amount of data the container has read from block devices on the host
godstatsdog_block_written_bytes The amount of data the container has written to block devices on the host
godstatsdog_process_ids The number of processes or threads the container has created

Documentation

The Go Gopher

There is no documentation for this package.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL