cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Docker Monitor Plugin in AppMon - no data due to JSON processing error

rene_lindner
Participant

Hi,

this a follow up to Olaf's comments on the plugin page.

We use Asad Ali's's Docker Monitor Plugin (version 1.0.9) in appmon 6.3.19.1011.

The plugin is configured to pull data from the docker deamon via a local
unix socket. As recommended A dynatrace collector is installed on each docker host.

Looking at the logs the plugin seems to able the read performance data, but for some reason the JSON processing fails. Due to the failed JSON processing no data is shown in the dashboards.

{code}

FINER [DockerMonitor@Docker Monitor <DYNATRACE-PROFILE> (Local)_0] socketfile=/var/run/docker.sock
FINER [DockerMonitor@Docker Monitor <DYNATRACE-PROFILE> (Local)_0] statusLIne=HTTP/1.0 200 OK
FINER [DockerMonitor@Docker Monitor <DYNATRACE-PROFILE> (Local)_0] About to convert this JSON
SEVERE [DockerMonitor@Docker Monitor <DYNATRACE-PROFILE> (Local)_0] java.io.EOFException exception occurred. Message = 'No content to map to Object due to end of input'; Stacktrace is 'java.io.EOFException: No content to map to Object due to end of input

{code}

Did anybody experience similiar behavior or has anyone ideas on how to get the plugin working?

@Asad Ali: your input will be much appreciated.

8 REPLIES 8

asad_ali
Advisor

Rene

I looked at your log files and wanted to see if you can run this command on the Docker host machine and let me know the output:

{ echo -e \"GET /containers/dd315b2d06ef5d12534065dd50051c518e110fd8a1c6ee5963252bde15c21c30/stats HTTP/1.0\r\n\";sleep 1;} | sudo /bin/nc -U /var/run/docker.sock

Hi Asad

I sent a request to run the commando to the system admins of the docker host machine. As soon as I get the output I will let you know.

the provided command returned an error ouput (a different container id was used in the suggested command because the old container id was not available any more).

HTTP/1.1
400 Bad Request
Content-Type:
text/plain
Connection:
close
400
Bad Request

The sys admins also tried the following command to query container stats. But this command returned no output in JSON format.

curl
-s --unix-socket /var/run/docker.sock http://localhost/containers/bb319728fb7b0a5235096a3e4c7c9363d935a754150070723aaa1109416a0f0d/stats

Hi Asad

I did some research for the HTTP 400 error. The HTTP 400 could be the result of using different versions for


  • Docker Engine API (Docker Remote API) - Docker Client
  • Docker Deamon - Docker Server

This is not the case on our machine. Version 1.10.3 is installed for both the Docker Client and the Docker server.

Hi Asad

the docker machine admins "played" a little with the provided command and were successful to get a JSON formated output. The following command was working (they changed the command to round brackets and extended the sleep time to 2).

(echo -e "GET 
/containers/14f07fe0dabf8d491d7e012ba1a9266267c6bb62daac757f2e604406bde29d36/stats?stream=0 HTTP/1.0\r\n";sleep 2) | sudo /bin/nc -U /var/run/docker.sock

A sleep time of 1 and the command with the round brackets did not return the desired output.

From my point of view this information could be very helpful.

Rene,

This information is useful. I have to make a special build of this plugin for you. Stay tuned.

Hi Asad,

could you please let us know when you can provide the special build of the plugin? We have planned to finish our tests this week (latest option is next week), as we can't use the test environment exclusively? As mentioned on the phone last week, I guess that we need the stream=0 option or does the plugin really need a stream of the performance data?

thanks & best regards, Olaf

Hi Asad,

do you have any news or a time estimation regarding the new plugin version?

thanks & best regards, Olaf