-
Notifications
You must be signed in to change notification settings - Fork 234
[docs] Documentation restructure #617
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
Conversation
docs/getting-started.asciidoc
Outdated
| [[how-it-works]] | ||
| === How does the Agent work? | ||
|
|
||
| Welcome to the APM Python agent docs. | ||
| The agent auto-instruments <<supported-technologies,supported technologies>> and records interesting events, | ||
| like HTTP requests and database queries. To do this, it {CONTENT_HERE} | ||
| This means that for the supported technologies, there are no code changes required. | ||
|
|
||
| The Elastic APM Python agent sends performance metrics and error logs to the APM Server. | ||
| It has built-in support for Django and Flask performance metrics and error logging, as well as generic support of other WSGI frameworks for error logging. | ||
| The Agent automatically {CONTENT_HERE} | ||
|
|
||
| These events, called Transactions and Spans, are sent to the APM Server. | ||
| The APM Server converts them to a format suitable for Elasticsearch, and sends them to an Elasticsearch cluster. | ||
| You can then use the APM app in Kibana to gain insight into latency issues and error culprits within your application. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
One of the things this PR aims to do is add in a section on how the agent does instrumentation. I've added some boilerplate text here to hopefully assist with this. There are two {CONTENT_HERE} sections above that I'll need one of you to fill out. Feel free to write something different or amend this as necessary.
I've also updated elastic/apm#146 with links to examples in other Agent's docs.
|
@beniwohli, think you'll have time for a review on this one and #619 at some point next week? |
|
@bmorelli25 I'll take a look today, and try to carve out some time tomorrow to write the "how we instrument" section. |
beniwohli
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LalmostGTM, awesome!
basepi
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Once bmorelli25#1 is merged this looks great.
43de296 to
ee53814
Compare
|
Moving the conversation to this PR: @beniwohli, I moved the majority of your content to the Advanced topics section. I kept just few high-level paragraphs in the getting started section. Here's what I kept (feel free to edit) [[how-it-works]]
=== How does the Agent work?
The Python Agent instruments your application to collect APM events in a few different ways:
To collect data about incoming requests and background tasks, the Agent integrates with <<supported-technologies,supported technologies>> to make use of hooks and signals provided by the framework.
These framework integrations require limited code changes in your application.
To collect data from database drivers, HTTP libraries etc.,
we instrument certain functions and methods in these libraries.
Instrumentations are set up automatically and do not require any code changes.
In addition to APM and error data,
the Python agent also collects system and application metrics in regular intervals.
This collection happens in a background thread that is started by the agent.
More detailed information on how the Agent works can be found in <<link-here>>.
cc @basepi |
|
@bmorelli25 I think your changes are 👍 👍 -- it was definitely too technical for a Getting Started page, but valuable for a click-through, so this is perfect.
This is the only piece I'm unsure on -- technically you do need code changes, you have to import our library or add us to the INSTALLED_APPS -- maybe something like this?
^ I don't love that but I'm trying to stay succinct. Or maybe I'm being too picky on the details? |
|
That's a good point @basepi. I had originally copied the "Instrumentations are set up automatically and do not require any code changes." sentece directly from Beni's PR. I like the change here though. I'll make it tomorrow unless @beniwohli has any objections. |
|
Follow up question -- anything I can do to get the |
beniwohli
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks great! Regarding windows tests, those are unfortunately somewhat flakey. I gave them another go, it's all green now.
For #616. Demo available here.
I'd like to backport this to
4.x. For5.x, I'm guessing the best way is to just wait for the next release?apm-app-ref: Add APM app attribute docs#1276