-
Notifications
You must be signed in to change notification settings - Fork 35
Fetch Lambda Platform Metrics #127
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
Following our discussions, I have enriched and brought several modifications to the initial implementation : Metrics namingThe metrics are now named as follows (consistency with the Metricbeat Lambda integration) :
MetadataMetadata is obtained by decompressing the very first transaction received (during cold start). Aside from the standard metadata obtained from this initial transaction, the following fields have been modified :
While changing these fields to reflect the features of the extension is great of consistency, it confuses the APM UI, as the language used is not recognized (the language badge is thus an empty hexagon). One of the objectives of this work was also to introduce the ECS
The steps for testing remain the same as the initial post, except that step 4 can be skipped - adding the fields manually to the index pattern is, in fact, not required. |
Superseded by #202. |
Motivation / Summary
Following issue #108, the goal of this pull request is to send the following metrics to Elasticsearch through the AWS Lambda APM extension :
This information is typically provided by the Lambda Platform Logs API as follows :
Current demo dashboard :

Memory usage is also displayed in the APM UI :

Files / Added Elements
process_metrics.go
has been added to the extension (as well as the corresponding test file). This file contains thestructs
required to implements the Metrics model. Most of the code comes from the Go Agent codebase, with some simplifications (most notably at the Metrics aggregation level).logs_api
folder, theclient
and thehttp_listener
have been modified to take events of typeReport
into account.process_metrics
functions upon dedication of aReport
event.Limitations / Elements to discuss
Checklist
How to test
faas.metrics.duration.init.ms
, Typedouble
, FormatDuration
(Milliseconds)faas.metrics.duration.measured.ms
, Typedouble
, FormatDuration
(Milliseconds)faas.metrics.duration.billed.ms
, Typelong
, FormatDuration
(Milliseconds)faas.metrics.memory.maxUsed.bytes
, Typelong
, FormatBytes
(b - Binary)faas.metrics.memory.total.bytes
, Typelong
, FormatBytes
(b - Binary)