-
Notifications
You must be signed in to change notification settings - Fork 169
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
multiple profiler support #69
Comments
Yes, working on that problem now actually, since I'm adding support for a few new formats. Nothing formalized yet, but the heatmap seems pretty straight forward, a list of offsets. The flame graph I'm still thinking about the level of abstraction, due to the range filter, but should be similar to the current The ugly bit at this point is the profile type detection, which is pretty terrible right now. I'm not a big fan of the idea, but might need to go in the file extension direction soon. If you already have an idea for the interface definition, send a PR to the README file so we can iterate over it. |
@asiderop For the first approach, we will start recommending the nflxprofile format. Distributing the .proto definition for use in different languages. |
There are 2 parts to this problem. The first, creating a generic format that can be used and create some examples and documentation. This is partially done, with the
|
@spiermar, thanks for referencing my request as something this issue could cover. Per your last update above, I'd like to help with any of the listed 3 efforts. Of course, to add DTrace to the mix, it would be good to know what to produce in the DTrace stack profile output, to have a concrete example to work with for the documentation and converter work/PR. I'm going to start by doing perf traces and see what that conversion to nflxprofile looks like, but can you recommend a course of action beyond that so that we can make progress on this? |
@gmarler I already have a script to convert perf outputs to The function takes a line iterator ( |
I can probably take care of |
Thanks for the pointer to the gist. Now I have to determine how to best produce A couple of things I'm mulling over at the moment when trying to produce similar output in
The point here is to produce initial DTrace output, confirm I can convert then FlameScope/FlameGraph it, then use a few outputs as test input later on. |
This might help. |
Yes, that's what I started with ;>. Making progress on the first pass of DTrace convert, but need to clarify a couple of more things:
|
|
Excellent - now this is starting to make more sense. For DTrace I'm capturing a microsecond level timestamp (nanosecond timestamp divided by 1000) for each stack as well as counting the number of occurrences, so it should be easy to also divide up the stacks into time windows for the heatmap. I'm getting more familiar with the code, and will be able to to check what I've learned against anything you document concerning nflxprofile format. The most useful thing now would be a description of each field in the format. That will lead to further questions as I make my way into the depths. |
@gmarler fields in the nflxprofile format? |
Yes, what I presume you meant by:
Specifically, the purpose/usage of each field defined/listed in Many are self evident from other FlameGraph implementations, but not all. |
Yes, plus documentation and examples for converters and code hooks. |
As has been mentioned elsewhere, a generic data file format would allow for converters to be written to support formats other than
perf
. Has there been any work towards this yet?Another approach seems to be what it being implemented in the source with "native" support of various profilers, with each format having its own parsing routine. I prefer this second approach, but it seems the interface should be formalized a bit more.
Has a decision been made on which approach to take? I would like to start sending some PRs to provide support for other profilers.
The text was updated successfully, but these errors were encountered: