-
Notifications
You must be signed in to change notification settings - Fork 291
Description
The current FaaS metric semantic conventions list several metrics, and then lists the attributes .
I'm working on moving the metrics to YAML, and it is not clear which attributes should be added to each metric.
Before the attribute table, it is stated:
Below is a table of the attributes to be included on FaaS metric events
then after, there's this statement:
Outgoing FaaS invocations are identified using the faas.invoked_* attributes above. faas.trigger SHOULD be included in all metric events while faas.invoked_* attributes apply on outgoing FaaS invocation events only.
It says the attributes faas.invoked_* should be included in "outgoing FaaS invocation events only" but then it says "Outgoing FaaS invocations are identified using the faas.invoked_*". The metric table does not list what attributes are to be added, so it's unclear which metric is "outgoing" and which are not.
In the FaaS span semconv we have more info:
This section describes incoming FaaS invocations as they are reported by the FaaS instance itself.
For incoming FaaS spans, the span kind MUST be Server.
This section describes outgoing FaaS invocations as they are reported by a client calling a FaaS instance.
For outgoing FaaS spans, the span kind MUST be Client
I looked at the existing metrics and after reading all, my "gut feeling" is:
- Outgoing
faas.invoke_duration: the client invoking the function knows how long it took - Incoming
faas.init_duration,faas.coldstarts,faas.errors: It seems to me these are "server" information, meaning the FaaS itself know this info about itself? - ?
faas.invocations: Is this the client counting how many times it invoked the function? Or is the function counting how many times it was invoked? 🤔 - ?
faas.timeouts: Is this the client reporting how many times invocations timed out? Or is it the server/function itself while doing other things?
CC @skonto since you were the original author, could you shed some light on this?