Skip to content
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

Make sure #240 (class name instead of file name) did not break future integration with Elastic code search #265

Closed
SergeyKleyman opened this issue Jun 7, 2019 · 2 comments

Comments

@SergeyKleyman
Copy link
Contributor

Derived from #240 (comment)

@SergeyKleyman SergeyKleyman changed the title Make sure #240 did not break integration with Elastic code search Make sure #240 (class name instead file name) did not break future integration with Elastic code search Jun 7, 2019
@SergeyKleyman SergeyKleyman changed the title Make sure #240 (class name instead file name) did not break future integration with Elastic code search Make sure #240 (class name instead of file name) did not break future integration with Elastic code search Jun 7, 2019
@axw
Copy link
Member

axw commented Jun 10, 2019

From the linked PR:

@axw Do you think the planned integrations will use information sent by agent as part of error stack trace?

Yes, definitely. VCS info + filename + line number gives us sufficient information to link to code. We could do the same with assembly + class + method name, but that requires semantic code analysis, whereas filename + line does not.

Let's please keep the field definitions consistent across agents: the filename field should hold the filename, and not the class name. We can potentially change how we render the stack frames in the UI, but changing the meaning of the data is going to lead to problems down the line.

For reference, here's what the Go agent records in stack frames:

  • absolute path is the absolute file path, which may or may not be available (could be stripped from the binary), e.g. "/my/source/path/tracer.go"
  • filename is the filename, e.g. "tracer.go"
  • line is the line number, e.g. 42
  • module is set to the package path, e.g. "go.elastic.co/apm"
  • function is the function or method name, e.g. "TopLevelFunction" or "SomeType.MethodName"

For .NET, I think the only thing I'd change would be to set module to the namespace, like "System.Net.Http".

@gregkalapos
Copy link
Contributor

Closing due to changes in code search.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants