-
Notifications
You must be signed in to change notification settings - Fork 182
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
Looking for clarity on Process Metrics #821
Comments
tagging the owners - @open-telemetry/semconv-system-approvers, could you please take a look? |
I'm continuing to investigate what metrics are available in other languages and it seems that "physical bytes" is consistently available. .NET
Python
Node
|
* Extend attribute naming rules to metric labels We earlier defined naming rules for attributes, however we do not have similar rules for metric labels. This commit extends the exact same set of rules to metric labels. This was brought up in this comment open-telemetry/opentelemetry-specification#807 (comment) * Address PR comments
* Extend attribute naming rules to metric labels We earlier defined naming rules for attributes, however we do not have similar rules for metric labels. This commit extends the exact same set of rules to metric labels. This was brought up in this comment open-telemetry/opentelemetry-specification#807 (comment) * Address PR comments
Discussed on the 2024-12-19 meeting. We feel like the current names make sense and are reasonably platform agnostic. We may add support for reporting the working set or private memory in the future as independent metrics, possibly Windows-specific (tbd). Removing from GA blockers since we don't intend to make changes on the existing metrics and we do not consider this a 'core' metric to have available. |
I'm looking for some clarity on the Process Metrics.
Specifically, why is "process.memory.usage" defined as "physical memory"?
https://github.com/open-telemetry/semantic-conventions/blob/main/docs/system/process-metrics.md#metric-processmemoryusage
It seems to me that "memory.usage" is vague, and it's not clear to me why this was assigned "physical memory".
I found the original PR and I can see from the conversation that this was originally:
And then and some point the PR was changed to:
Proposal
As this spec is still Experimental, is there appetite to make changes?
I propose for consideration:
Example for Discussion
I'm a .NET developer and I'm specifically interested in the Private Bytes. This is the value that various other tools show me, but it also seems to be more representative of the total memory currently allocated.
Sample code to generate memory pressure (CLICK TO EXPAND)
Visual Studio's debugger Diagnostic Tools shows me Private Bytes.
Process Explorer shows me Private Bytes
Terminology
While investigating this, it seems that there are conflicting definitions depending on where you read.
If someone has some preferred definitions of the different types of memory, or examples from other languages please share in the comments! :)
.NET provides some metrics with their own definitions:
The amount of memory, in bytes, allocated for the associated process that cannot be shared with other processes.
The property value is equivalent to the Private Bytes performance counter for the process.
The amount of physical memory, in bytes, allocated for the associated process.
The working set of a process is the set of memory pages currently visible to the process in physical RAM memory. These pages are resident and available for an application to use without triggering a page fault.
The property value is equivalent to the Working Set performance counter for the process.
The amount of virtual memory, in bytes, allocated for the associated process.
The operating system maps the virtual address space for each process either to pages loaded in physical memory, or to pages stored in the virtual memory paging file on disk.
This property can be used to monitor memory usage on computers with 32-bit processors or 64-bit processors. The property value is equivalent to the Virtual Bytes performance counter for the process.
Asking ChatGPT to define (CLICK TO EXPAND)
You
Can you provide a comparison/contrast of the following types of memory: public, private, committed, and virtual
ChatGPT
Certainly! Let's compare and contrast the following types of memory: public, private, committed, and virtual memory.
Comparison:
Contrast:
The text was updated successfully, but these errors were encountered: