intel / pcm

Intel® Performance Counter Monitor (Intel® PCM)
BSD 3-Clause "New" or "Revised" License
2.83k stars 477 forks source link

seperate dashboard from binary #546

Open jcpunk opened 1 year ago

jcpunk commented 1 year ago

While it is nice to have a builtin way to get a dashboard out of the pcm process, I'd like to have it available in a standalone file as well.

I was going to add it to my grafana deployment process and document the origin via a commit hash. With the dashboard as its own file I can do something like: source : https://github.com/intel/pcm/commit/ec686427572c2d22dab7ab182592649976b07be6/filename to clearly identify the source and version of the chart.

I'd swear the dashboard was in its own set of .json files (one for prometheus, one for influxdb) in the past.

rdementi commented 1 year ago

The dashboards can be downloaded into a stand-alone file: https://github.com/intel/pcm/blob/0cbcdbe3b9b3002b2db4d10a98fcb5b9f2dd4156/scripts/grafana/start-prometheus.sh#L30

I think you can also produce the json file with (a modified version of) https://github.com/intel/pcm/blob/master/src/dashboardtest.cpp locally without http access/http client.

Or did you have something different in mind?

jcpunk commented 1 year ago

The grafana I'm standing up doesn't have direct access to the pcm-daemon - just prometheus. I was hopeful there was a way to get the dashboard json file directly without needing to run the application locally to extract it.

Pulling it from the daemon itself, while helpful in ensuring it matches the running metrics, doesn't give me an unambiguous artifact. When coordinating between various teams it is helpful to be able to say "the default dashboard is file JKL from commit XYZ in repo ABC, if your copy is different you can diff from there". When pulling from the daemon the best I've got it "on date ABC I pulled the dashboard from whatever was running on host XYZ, do you know what version that was?"

Things get slightly more complex since I need to run the daemon as root to extract the dashboard via the API which feels uncomfortable for grabbing a json file...