Skip to content

Commit

Permalink
Adds better local-run instructions for misbehaving-jmx-server in docker
Browse files Browse the repository at this point in the history
  • Loading branch information
scottopell committed Sep 21, 2023
1 parent 6e32b6e commit 33e7606
Show file tree
Hide file tree
Showing 3 changed files with 29 additions and 37 deletions.
27 changes: 0 additions & 27 deletions tools/misbehaving-jmx-server/Dockerfile.local

This file was deleted.

20 changes: 13 additions & 7 deletions tools/misbehaving-jmx-server/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -52,9 +52,18 @@ There are a couple of ways you can get the Agent to pull metrics from this test
Copy `misbehaving-jmxfetch-conf.yaml` to `/etc/datadog-agent/conf.d/` and just run the `with-dependencies` jar created by Maven.
You will need to restart the Agent to pick up the config.

### Using Docker Compose

```shell
$ docker compose up
```

The Agent will auto discover the container and begin to collect metrics from it.

### Using Docker

After building the `misbehaving-jmx-server` you can simply run:
If your container's IP is directly
accessible by your Agent, you can use the following run command and use AD.

```shell
$ docker run \
Expand All @@ -66,10 +75,7 @@ misbehaving-jmx-server

The Agent will auto discover the container and begin to collect metrics from it.

### Using Docker Compose
Note that this implicitly sets the `RMI_HOSTNAME` to `localhost` which is where
the host port mapping comes into play. If this is giving you trouble, consider
using the docker-compose setup above.

```shell
$ docker compose up
```

The Agent will auto discover the container and begin to collect metrics from it.
19 changes: 16 additions & 3 deletions tools/misbehaving-jmx-server/docker-compose.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,24 @@
version: "3.9"

services:

test-server:
# The docker compose service name is used as the hostname for the misbehaving-jmx-server
# Note it is in the entrypoint as the --rmi-host and in the AD label as the hostname
# that the Agent should reach out to.
jmx-test-server:
build:
context: .
# Override entrypoint to specify the docker-compose service name as the RMI host
entrypoint: ["java", "-cp", "misbehavingjmxserver-1.0-SNAPSHOT-jar-with-dependencies.jar", "org.datadog.misbehavingjmxserver.App", "--rmi-host", "jmx-test-server"]
ports:
- "1099:1099"
labels:
com.datadoghq.ad.checks: '{"misbehaving":{"init_config":{"is_jmx":true},"instances":[{"host":"%%host%%","port":"1099","collect_default_jvm_metrics":false,"max_returned_metrics":300000,"conf":[{"include":{"domain":"Bohnanza"}}]}]}}'
com.datadoghq.ad.checks: '{"misbehaving":{"init_config":{"is_jmx":true},"instances":[{"host":"jmx-test-server","port":"1099","collect_default_jvm_metrics":false,"max_returned_metrics":300000,"conf":[{"include":{"domain":"Bohnanza"}}]}]}}'
datadog:
image: datadog/agent:7-jmx
pid: host
environment:
- DD_API_KEY=000000001
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /proc/:/host/proc/:ro
- /sys/fs/cgroup:/host/sys/fs/cgroup:ro

0 comments on commit 33e7606

Please sign in to comment.