{"source":"semconv","version":"1.44.0","attribute":{"id":"http.request.method","type":"enum","enumMembers":[{"id":"connect","value":"CONNECT","stability":"stable","brief":"CONNECT method."},{"id":"delete","value":"DELETE","stability":"stable","brief":"DELETE method."},{"id":"get","value":"GET","stability":"stable","brief":"GET method."},{"id":"head","value":"HEAD","stability":"stable","brief":"HEAD method."},{"id":"options","value":"OPTIONS","stability":"stable","brief":"OPTIONS method."},{"id":"patch","value":"PATCH","stability":"stable","brief":"PATCH method."},{"id":"post","value":"POST","stability":"stable","brief":"POST method."},{"id":"put","value":"PUT","stability":"stable","brief":"PUT method."},{"id":"trace","value":"TRACE","stability":"stable","brief":"TRACE method."},{"id":"query","value":"QUERY","stability":"development","brief":"QUERY method."},{"id":"other","value":"_OTHER","stability":"stable","brief":"Any HTTP method that the instrumentation has no prior knowledge of."}],"stability":"stable","brief":"HTTP request method.","note":"HTTP request method value SHOULD be \"known\" to the instrumentation.\nBy default, this convention defines \"known\" methods as the ones listed in [RFC9110](https://www.rfc-editor.org/rfc/rfc9110.html#name-methods),\nthe PATCH method defined in [RFC5789](https://www.rfc-editor.org/rfc/rfc5789.html)\nand the QUERY method defined in [httpbis-safe-method-w-body](https://datatracker.ietf.org/doc/draft-ietf-httpbis-safe-method-w-body/?include_text=1).\n\nIf the HTTP request method is not known to instrumentation, it MUST set the `http.request.method` attribute to `_OTHER`.\n\nIf the HTTP instrumentation could end up converting valid HTTP request methods to `_OTHER`, then it MUST provide a way to override\nthe list of known HTTP methods. If this override is done via environment variable, then the environment variable MUST be named\nOTEL_INSTRUMENTATION_HTTP_KNOWN_METHODS and support a comma-separated list of case-sensitive known HTTP methods.\n\n![Development](https://img.shields.io/badge/-development-blue)\nIf this override is done via declarative configuration, then the list MUST be configurable via the `known_methods` property\n(an array of case-sensitive strings with minimum items 0) under `.instrumentation/development.general.http.client` and/or\n`.instrumentation/development.general.http.server`.\n\nIn either case, this list MUST be a full override of the default known methods,\nit is not a list of known methods in addition to the defaults.\n\nHTTP method names are case-sensitive and `http.request.method` attribute value MUST match a known HTTP method name exactly.\nInstrumentations for specific web frameworks that consider HTTP methods to be case insensitive, SHOULD populate a canonical equivalent.\nTracing instrumentations that do so, MUST also set `http.request.method_original` to the original value.","examples":["GET","POST","HEAD"],"namespace":"http","definedIn":"model/http/registry.yaml","usedBy":[{"groupId":"attributes.http.client","groupType":"attribute_group","requirementLevel":"required"},{"groupId":"attributes.http.common","groupType":"attribute_group","requirementLevel":"required"},{"groupId":"attributes.http.server","groupType":"attribute_group","requirementLevel":"required"},{"groupId":"metric_attributes.http.client","groupType":"attribute_group","requirementLevel":"required"},{"groupId":"metric_attributes.http.client.experimental","groupType":"attribute_group","requirementLevel":"required"},{"groupId":"metric_attributes.http.server","groupType":"attribute_group","requirementLevel":"required"},{"groupId":"metric.http.client.active_requests","groupType":"metric","signalName":"http.client.active_requests","requirementLevel":"recommended"},{"groupId":"metric.http.client.request.body.size","groupType":"metric","signalName":"http.client.request.body.size","requirementLevel":"required"},{"groupId":"metric.http.client.request.duration","groupType":"metric","signalName":"http.client.request.duration","requirementLevel":"required"},{"groupId":"metric.http.client.response.body.size","groupType":"metric","signalName":"http.client.response.body.size","requirementLevel":"required"},{"groupId":"metric.http.server.active_requests","groupType":"metric","signalName":"http.server.active_requests","requirementLevel":"required"},{"groupId":"metric.http.server.request.body.size","groupType":"metric","signalName":"http.server.request.body.size","requirementLevel":"required"},{"groupId":"metric.http.server.request.duration","groupType":"metric","signalName":"http.server.request.duration","requirementLevel":"required"},{"groupId":"metric.http.server.response.body.size","groupType":"metric","signalName":"http.server.response.body.size","requirementLevel":"required"},{"groupId":"span.db.elasticsearch.client","groupType":"span","requirementLevel":"required"},{"groupId":"span.http.client","groupType":"span","requirementLevel":"recommended"},{"groupId":"span.http.client","groupType":"span","requirementLevel":"required"},{"groupId":"span.http.server","groupType":"span","requirementLevel":"recommended"},{"groupId":"span.http.server","groupType":"span","requirementLevel":"required"}]},"history":[{"version":"1.30.0","publishedAt":"2025-01-24T19:11:42Z","kind":"first-seen","detail":"Already present at v1.30.0, the oldest release tracked here (stable)."},{"version":"1.38.0","publishedAt":"2025-10-29T20:23:26Z","kind":"enum-members-changed","detail":"Enum members changed (10 to 11).","severity":"notable"}],"replaces":["http.method"]}