cryostatio / cryostat-grafana-dashboard

Apache License 2.0
0 stars 6 forks source link

[Task] Redesign Grafana Dashboard #11

Closed tthvo closed 1 year ago

tthvo commented 1 year ago

The Grafana Dashboard has't been updated and needs redesigning to support new events. Here are some of the things to look into:

Datasource task:

tthvo commented 1 year ago

Here is my latest design:

Grafana image: quay.io/thvo/cryostat-grafana-dashboard:redesign

Source: Dashboard.json.txt

I could not include a screenshot since the Dashboard does not fit into a single screen. Category might not be entirely accurate. Any thoughts on this @andrewazores?

andrewazores commented 1 year ago

The layout looks nice, I like it. The different categories are a good idea to make this more extensible in the future.

Should I still be able to see data on this new layout right now? I tried it out with a sample recording and everything is empty.

tthvo commented 1 year ago

Great! I will go on to the filter issues. And yes, I think so! It showed on my end. Not sure why not there?

Editted: I think you might need to change the time frame as some recordings are older. Maybe this helps?

andrewazores commented 1 year ago

Oh, yea, the timeframe was just way out of whack. Wonder why that is? I had to click the "zoom out" button several times to get the data within visible range and then zoom back in on it.

andrewazores commented 1 year ago

image image image recording.zip

Here's a sample recording and what the dashboard looks like when it's loaded. Looks great! Though I can't help but notice that my physical memory usage is ~23 PETAbytes :D

tthvo commented 1 year ago

Oh, yea, the timeframe was just way out of whack. Wonder why that is? I had to click the "zoom out" button several times to get the data within visible range and then zoom back in on it.

Right I think it was my setup in the dashboard that set the overall time to:

  "time": {
    "from": "2022-09-21T18:32:04.907Z",
    "to": "2022-09-21T19:07:14.062Z"
  },

I should remove this when done tho :D

Here's a sample recording and what the dashboard looks like when it's loaded. Looks great! Though I can't help but notice that my physical memory usage is ~23 PETAbytes :D

Right! I think we have not checked unit conversion in datasource. Not sure if the library converts all to bytes but my guess now is probably not, seeing this. Related to https://github.com/cryostatio/jfr-datasource/issues/129

tthvo commented 1 year ago

See original comments: https://github.com/cryostatio/jfr-datasource/issues/62#issuecomment-1255409007

Current look for overall panel for Object.AllocationSample event:

Screenshot from 2022-09-23 03-30-33 Screenshot from 2022-09-23 03-36-52

A Dashboard for Object.AllocationSample event (screen-cast): Editted: somehow screencast broke at the time of the dynamically created panels. What happened is panel with selected filter is hidden and shown accordingly.

Screencast from 09-23-2022 07:09:40 AM.webm

tthvo commented 1 year ago

I still need to correct the units and add link in original full panel to this new more granular dashboard. Seems like adding a link on panel requires url, which fortunately allows omitting host:port parts. Though, the path seems auto-generated. Maybe, we could preconfigure the path somehow. What do you think?

andrewazores commented 1 year ago

This is awesome work. Really makes our Grafana dashboard so much more valuable.

The dashboard in the screencast is implemented as an entirely separate dashbard from the main/original one, and you're talking about adding a link from the main one to the Object.AllocationSample one, right? Does that link need to be an absolute URL or can it be simply a relative URL to the other dashboard's name? If it must be absolute, is it possible to reference an environment variable or system property within the URL string?

andrewazores commented 1 year ago

Oh, by "omitting host:port parts" I think you mean a relative URL is OK, right? As in no scheme://user@host:port is needed, the link can be just /some/path?query#fragment?

andrewazores commented 1 year ago

https://grafana.com/docs/grafana/latest/administration/provisioning/#reusable-dashboard-urls

https://github.com/cryostatio/cryostat-grafana-dashboard/blob/a2b63e81332b0877bd08cbf713f2a738534a08a6/dashboard.json#L1801

I think what this is saying is that if we just set this uid property on the dashboard definitions then the path to them is statically known, not randomly generated by the instance. Then we can just assume a relative URL between the two dashboards.

tthvo commented 1 year ago

https://grafana.com/docs/grafana/latest/administration/provisioning/#reusable-dashboard-urls

https://github.com/cryostatio/cryostat-grafana-dashboard/blob/a2b63e81332b0877bd08cbf713f2a738534a08a6/dashboard.json#L1801

I think what this is saying is that if we just set this uid property on the dashboard definitions then the path to them is statically known, not randomly generated by the instance. Then we can just assume a relative URL between the two dashboards.

Ah niceee! Then, that makes sense! Then the process should be much simpler. Thanks for explaining this. I will finish some final touches.