-
Notifications
You must be signed in to change notification settings - Fork 8.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[APM] JVM list and individual JVM metrics page #43765
Comments
Pinging @elastic/apm-ui |
did we align on this? e.g. if you have chosen 24h (default) and one JVM has been acting out for 30m you'll probably not see it because it will be averaging for the full 24h. If possible, it think it's better to show the most recent data point in the time range, or the avg. over the last minute of the time range and then we'd need to clearly state it next to the table |
Apparently not. As far as I remember, @sqren mentioned that this is the current solution. That is why I have been proposing this approach. |
I am here to nag again- what are If there is an agreement on |
I don't think we have ultimately decided what identifies a jvm. It was my understanding that this was something you and @felixbarny would come up with. I don't have any strong opinions. @felixbarny previously suggestions:
And it sounded like you both agreed that it should be overwritable by a user-defined id. |
Automatic name discovery would be awesome but not easy to come up with (and maybe impossible in some cases), so not something we want to go into at this point. The user-defined name is something we can do as part of this feature- I added an APM issue for that. Maybe not related directly to this issue, but worth mentioning- keep this manually set name in mind for the drop-down filters. If a user invests time in setting those, they are guaranteed to be unique and meaningful so the corresponding field should be a filtering criterion. Not sure if the fact that it is optional would complicate that. |
I'd prefer this logic residing in the agent so the UI can always rely on a single field as the identifier. That'll make aggregations a lot simpler. |
Yes, this came up in the discussion we had. The are several reasons why I think we shouldn't go this way:
|
If the logic between all agents is exactly the same, I can see your concerns. However this will require users making custom dashboards to implement this logic too. And as mentioned above, the aggregations are going to be a lot more complex. If everyone else agrees this is a better approach we can ofc find a way to make it work. |
This is exactly why this is important:
Users setting up dashboards on a field they see documented as a service instance unique name will be surprised to discover it is not really such- not a name and not unique... |
What about documenting that it's only guaranteed to be unique if the user comes up with a name themselves. If not we'll provide a best-effort name. |
It is not guaranteed to be unique if the user comes up with the name, it is more of a description of the requirements of what should be stored in this field. So we can say: "use this field to store a meaningful/human-readable unique name for the service instance, otherwise this field will contain a best-effort string which is not guaranteed to be unique nor meaningful". As long as we use a I expect the logic of determining the name to be pretty simple, so implementing it in the agents is not a big concern. @roncohen I think there is enough info here to decide either way. You shared the same rationale with @sqren as well. Please make a decision and either way- suggest logic for the automatic name generation. |
OK, sounds like the best thing we can do at the moment is:
to move the UI forward, I suggest we use |
@roncohen I'm not sure what that filter would do. The table is already showing jvm names (based on the instance name decided in elastic/ecs#538). Clicking on a jvm in the list is essentially the same as filtering by that jvm. I'm probably missing something. |
true, not very useful.. EDIT: it you have 100+ and they don't all fit in the table on the page and you want the specific JVM you've named, it would probably be useful, but we can start without |
@sqren @roncohen I agree it is not needed for the metrics, given that the landing page is this table. Nevertheless, this is a separate discussion and should be done within the filtering feature probably. Maybe we can focus here only on the aggregation criterion for metrics presentation. |
Decision: |
Sorry for being thick, what is "this optional config"? |
@sqren Sorry, wrote that during a meeting, so not the most clear... |
After more discussions, updated the suggested approach to the |
@formgeist @katrin-freihofner I've opened a PR (#46779), just need to add metadata, but not sure what the status is. Is there going to be a design update for the display of metadata, or should I implement the panel? |
We need a design update for the metadata display. The main use case of this page is not filtering, but one of the biggest reason a person would land on the page is because they are investigating a single JVM. The metadata associated with the JVM is important and should feature up top. |
I’ll come back with a proposed design for showing the metadata up top |
Thanks Casper!
…On Mon, Sep 30, 2019 at 3:05 PM Casper Hübertz ***@***.***> wrote:
Here's a proposed design for adding the metadata up top. I believe we'd
need to truncate the container ID in order for it to remain somewhat
readable. We can display the full ID in a tooltip upon hover.
[image: 02 JVM details]
<https://user-images.githubusercontent.com/4104278/65881369-9621b580-e393-11e9-82a0-66dd37132a0e.png>
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#43765?email_source=notifications&email_token=AACWDXAZUHXT3SBTKQVPKATQMH2RDA5CNFSM4IOUWGKKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD75R72I#issuecomment-536551401>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AACWDXATJWKJZE4YXY675K3QMH2RDANCNFSM4IOUWGKA>
.
|
@formgeist I was missing the local UI filters on your mockup, and now I am wondering if they even should be there at all. AFAIK, host/container/pod will only have one value anyway? |
@dgieselaar AFAIK the JVM detail page (pictured above) doesn't have local UI filters, similar to our error group detail page. I agree, they would only have 1 value in them. |
I agree, the jvm details page doesn't need the local UI filters. |
* [APM] JVM List view & JVM metrics page Closes #43765. * Add service node metadata * Use service node terminology * Use asPercent for CPU * Tooltip for truncated elements * Add processor.event filters * Use service.node.name * Sort client-side only * Add processor.event filter to service nodes projection
* [APM] JVM List view & JVM metrics page Closes elastic#43765. * Add service node metadata * Use service node terminology * Use asPercent for CPU * Tooltip for truncated elements * Add processor.event filters * Use service.node.name * Sort client-side only * Add processor.event filter to service nodes projection
* [APM] JVM List view & JVM metrics page Closes #43765. * Add service node metadata * Use service node terminology * Use asPercent for CPU * Tooltip for truncated elements * Add processor.event filters * Use service.node.name * Sort client-side only * Add processor.event filter to service nodes projection
For Java services we want to provide a table showing all JVMs for that service. From there a drill-down to individual JVM pages should be possible.
Todos:
Metrics
tab for aJVMs
tabsystem.process.cpu.total.norm.pct
(avg),jvm.memory.heap.used
(avg),jvm.memory.non_heap.used
(avg),jvm.thread.count
(max)Metrics
tab)Meta data
panel for container ID infoNotes:
service.node.name
should be used for metrics aggregations (instead ofephemeral_id
), and for the label in the JVM tableMarvel prototype:
https://marvelapp.com/63fejha/screen/60465020
Related design/discussion issue: #43009
#36320 depends on this
The text was updated successfully, but these errors were encountered: