-
Notifications
You must be signed in to change notification settings - Fork 178
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
Analyze the overlap between OpenTelemetry tracing attributes and ECS attributes #1012
Comments
I want to call out two differences for FaaS that were just very recently introduced in OTel:
The first two points, I noted above open-telemetry/opentelemetry-specification#3188 (comment) but it was understood then that there is no wider overhaul of OTel semconvs for ECS alignment? |
@Oberon00 thx for calling out the ECS alignment issue in open-telemetry/opentelemetry-specification#3188, sorry I missed that @cartersocha @tylerbenson we do intend to factor in ECS alignment across all semantic conventions (open-telemetry/oteps#222) where there are conflicts, there's no blanket rule about which side (or mix) we will adopt going forward, and so we need to analyze these conflicts on a case-by-case basis, factoring in a few things (among potentially others):
this is what we need to gather in this issue so that we can make these case-by-case decisions |
I think the naming is clearer on our side. These were very recent changes because we felt the naming was clearer. Also, I don't think |
HTTP is not mentioned. Note that in open-telemetry/opentelemetry-specification#3378 it was noted that our faas.invocation_id might not be suitable for a (job) execution_id, I imagine this might have been different with the old name. So maybe there is indeed space for both an execution(_id) and an invocation_id/request ID |
@trask the OTel version is slightly more up to date and vendor neutral (although still Lambda skewed). @Oberon00 called out most of the changes already and presciently mentioned ECS previously. I believe ECS is missing the faas.max_memory field and ECS uses a lambda specific faas.id like we used to. Personally I think there's also a lot of value in having a unique cloud.resource_id that is consistent for all cloud resources. The AWS ARN is already that but it's currently restricted to just being a faas specific field. |
This is not Lambda-specific, it has definitions for Azure and Google Cloud Functions as well +1 on the other parts |
Yeah I misspoke (wrote?). main point is it's not a faas specific field but a general cloud resource attribute that functions also have! |
@Oberon00 HTTP is one of the trigger types. |
@tsloughter There is a separate http.request.id. https://www.elastic.co/guide/en/ecs/current/ecs-http.html#field-http-request-id |
@Oberon00 right, seems redundant. Unless it has some other meaning, it doesn't make it clear and the example is just a number. |
Why do you think that faas.trigger.request_id is specific to HTTP? I could also be used for any other request ID that is used to trigger the Lambda / FaaS function. But I agree that it is very hard to interpret. Someone from ECS needs to tell us what this is meant to be. Or we just drop it and use our own conventions for FaaS |
@AlexanderWert can you or someone on the ECS side provide clarity on |
The intention of In general, the If we adopt |
ECS
👍
👍
👍
That's correct that there are no cloud events fields in ECS. Though, there is a more generic field set for
👍 |
Is this done? |
I suspect it can be closed. I'll transfer it to semconv repo and let maintainers there decide. |
Closing as we'll track the individual areas while working on SemConv / continuously contributing ECS fields to SemConv |
HTTP
http.url
,http.scheme
, andhttp.target
attributes tourl.*
(aligning with ECS) opentelemetry-specification#3181http.*
attributes to align with ECS opentelemetry-specification#3182Exceptions
exception.*
toerror.*
(aligning with ECS) opentelemetry-specification#3198General remote service attributes
@AlexanderWert to confirm that ECS doesn't have an equivalent to
peer.service
.General identity attributes
enduser.id
user.id
enduser.role
,enduser.scope
user.roles
(?)General thread attributes
thread.id
process.thread.id
thread.name
process.thread.name
Source code attributes
code.function
log.origin.function
code.namespace
code.filepath
log.origin.file.name
code.lineno
log.origin.file.line
code.column
Messaging
This is also discussed/tracked at open-telemetry/opentelemetry-specification#3196.
Only impacted by network attribute changes above (#3199 and open-telemetry/opentelemetry-specification#3371).
(ECS doesn't have any messaging-specific attributes, @AlexanderWert to confirm)
Could also be impacted by conflict with
source.*
anddestination.*
namespace, see open-telemetry/opentelemetry-specification#3407Database
Only impacted by network attribute changes above (#3199 and open-telemetry/opentelemetry-specification#3371).
(ECS doesn't have any database-specific attributes, @AlexanderWert to confirm).
RPC
Only impacted by network attribute changes above (#3199 and open-telemetry/opentelemetry-specification#3371).
(ECS doesn't have any RPC-specific attributes, @AlexanderWert to confirm).
FaaS tracing and resources
faas.coldstart
faas.coldstart
faas.invocation_id
faas.execution
cloud.resource_id
faas.id
faas.name
faas.name
faas.trigger.request_id
faas.trigger
faas.trigger.type
faas.version
faas.version
CloudEvents
ECS doesn't have any cloud event specific attributes (@AlexanderWert to confirm)
Feature Flags
ECS doesn't have any feature flag specific attributes (@AlexanderWert to confirm)
The text was updated successfully, but these errors were encountered: