-
Notifications
You must be signed in to change notification settings - Fork 889
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
Generalize the http.url
, http.scheme
, and http.target
attributes to url.*
(aligning with ECS)
#3181
Comments
http.url
, http.scheme
, and http.target
attributeshttp.url
, http.scheme
, and http.target
attributes to url.*
@open-telemetry/specs-approvers I know our conventions are not declared stable. However I think people built a lot of stuff that depends on these conventions already. Are we ready for such breaking changes? http conventions are pretty important for people, they are widely used, so I want to make sure we understand that this can result in a lot of backlash. |
+1 Changing the |
http.url
, http.scheme
, and http.target
attributes to url.*
http.url
, http.scheme
, and http.target
attributes to url.*
(and align with ECS)
http.url
, http.scheme
, and http.target
attributes to url.*
(and align with ECS)http.url
, http.scheme
, and http.target
attributes to url.*
(aligning with ECS)
This split seems needed. Currently, by including the query in an attribute value a malicious user can overload HTTP servers with attributes just by changing the query parameter. |
While I understand it would be frustrating and might cause extra work, the HTTP semantic conventions are still marked as experimental. If people think that this change makes sense, I'd vote for making it while the conventions are still unstable. I don't think there would be much stopping people continuing with their existing Equally, once the conventions are marked as stable, breaking changes should be taken very seriously. |
I don't understand what you mean, maybe you are talking about metric attributes? If so, this "attack" could probably also work by changing the URL path (since 404s are probably also included in metrics). "http.target -> split into url.path + url.query" Also note that the HTTP target https://httpwg.org/specs/rfc9110.html#target.resource is typically what is mentioned above, but can also theoretically be:
|
I think that example is a bit weak. They could still put everything into a single table and the software would check http.url or ftp.url, whichever is present. It is also a bit questionable if we would even introduce ftp.url, or maybe use net.peer.name + ftp.filepath or something That said, I think using url.full or maybe request.url or something else that can generically be used everywhere would also go into the same direction as the previous changes to the net conventions we did for protocols, and it would seem a better approach. But I also feel like it is not worth the disruption. At least we'd need to keep http.url et. al as deprecated attribute. |
I support this proposed change. Nesting all these under |
So we really want to rename the probably most-used attribute of all semantic conventions? |
Because of how widely http attributes are used I think we need to make an effort to reduce the impact if we decide to go ahead with this change. For example we can set an "effective from version" for the change to give enough time for users and vendors to prepare for the upcoming changes. This probably requires changes to semconv generator tool in the spec repo and in all languages. |
@tigrannajaryan here’s an initial proposal for what “effective from version” could look like: #3362 |
What are you trying to achieve?
Generalize the
http.url
,http.scheme
, andhttp.target
attributes so they can be used by different semantic conventions.See @reyang's #2489 (comment):
Additional context.
ECS already has
url.*
namespace: https://www.elastic.co/guide/en/ecs/current/ecs-url.htmlIf we want to follow ECS naming, we could rename:
http.scheme
->url.scheme
http.url
->url.full
http.target
-> split intourl.path
+url.query
The text was updated successfully, but these errors were encountered: