Skip to content

Commit 27e087b

Browse files
authored
Add http metrics yaml (open-telemetry#3158)
* Add http metrics yaml * Update change log * Fix notes * Fix link * Remove unnecessary field
1 parent 9170cca commit 27e087b

File tree

2 files changed

+553
-44
lines changed

2 files changed

+553
-44
lines changed
+283
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,283 @@
1+
groups:
2+
- id: metric.http.server.duration
3+
type: metric
4+
metric_name: http.server.duration
5+
brief: "Measures the duration of inbound HTTP requests."
6+
instrument: histogram
7+
unit: "ms"
8+
attributes:
9+
- ref: http.method
10+
requirement_level: required
11+
- ref: http.scheme
12+
requirement_level: required
13+
- ref: http.route
14+
requirement_level:
15+
conditionally_required: If and only if it's available
16+
- ref: http.status_code
17+
requirement_level:
18+
conditionally_required: If and only if one was received/sent.
19+
- ref: http.flavor
20+
- ref: net.host.name
21+
requirement_level: required
22+
brief: >
23+
Name of the local HTTP server that received the request.
24+
note: |
25+
Determined by using the first of the following that applies
26+
27+
- The [primary server name](../../trace/semantic_conventions/http.md#http-server-definitions) of the matched virtual host. MUST only
28+
include host identifier.
29+
- Host identifier of the [request target](https://www.rfc-editor.org/rfc/rfc9110.html#target.resource)
30+
if it's sent in absolute-form.
31+
- Host identifier of the `Host` header
32+
33+
SHOULD NOT be set if only IP address is available and capturing name would require a reverse DNS lookup.
34+
- ref: net.host.port
35+
requirement_level:
36+
conditionally_required: If not default (`80` for `http` scheme, `443` for `https`).
37+
brief: >
38+
Port of the local HTTP server that received the request.
39+
note: |
40+
Determined by using the first of the following that applies
41+
42+
- Port identifier of the [primary server host](../../trace/semantic_conventions/http.md#http-server-definitions) of the matched virtual host.
43+
- Port identifier of the [request target](https://www.rfc-editor.org/rfc/rfc9110.html#target.resource)
44+
if it's sent in absolute-form.
45+
- Port identifier of the `Host` header
46+
47+
- id: metric.http.server.active_requests
48+
type: metric
49+
metric_name: http.server.active_requests
50+
brief: "Measures the number of concurrent HTTP requests that are currently in-flight."
51+
instrument: updowncounter
52+
unit: "{requests}"
53+
attributes:
54+
- ref: http.method
55+
requirement_level: required
56+
- ref: http.scheme
57+
requirement_level: required
58+
- ref: http.flavor
59+
- ref: net.host.name
60+
requirement_level: required
61+
brief: >
62+
Name of the local HTTP server that received the request.
63+
note: |
64+
Determined by using the first of the following that applies
65+
66+
- The [primary server name](../../trace/semantic_conventions/http.md#http-server-definitions) of the matched virtual host. MUST only
67+
include host identifier.
68+
- Host identifier of the [request target](https://www.rfc-editor.org/rfc/rfc9110.html#target.resource)
69+
if it's sent in absolute-form.
70+
- Host identifier of the `Host` header
71+
72+
SHOULD NOT be set if only IP address is available and capturing name would require a reverse DNS lookup.
73+
- ref: net.host.port
74+
requirement_level:
75+
conditionally_required: If not default (`80` for `http` scheme, `443` for `https`).
76+
brief: >
77+
Port of the local HTTP server that received the request.
78+
note: |
79+
Determined by using the first of the following that applies
80+
81+
- Port identifier of the [primary server host](../../trace/semantic_conventions/http.md#http-server-definitions) of the matched virtual host.
82+
- Port identifier of the [request target](https://www.rfc-editor.org/rfc/rfc9110.html#target.resource)
83+
if it's sent in absolute-form.
84+
- Port identifier of the `Host` header
85+
86+
- id: metric.http.server.request.size
87+
type: metric
88+
metric_name: http.server.request.size
89+
brief: "Measures the size of HTTP request messages (compressed)."
90+
instrument: histogram
91+
unit: "By"
92+
# TODO (trask) below attributes are identical to above in metric.http.server.duration
93+
attributes:
94+
- ref: http.method
95+
requirement_level: required
96+
- ref: http.scheme
97+
requirement_level: required
98+
- ref: http.route
99+
requirement_level:
100+
conditionally_required: If and only if it's available
101+
- ref: http.status_code
102+
requirement_level:
103+
conditionally_required: If and only if one was received/sent.
104+
- ref: http.flavor
105+
- ref: net.host.name
106+
requirement_level: required
107+
brief: >
108+
Name of the local HTTP server that received the request.
109+
note: |
110+
Determined by using the first of the following that applies
111+
112+
- The [primary server name](../../trace/semantic_conventions/http.md#http-server-definitions) of the matched virtual host. MUST only
113+
include host identifier.
114+
- Host identifier of the [request target](https://www.rfc-editor.org/rfc/rfc9110.html#target.resource)
115+
if it's sent in absolute-form.
116+
- Host identifier of the `Host` header
117+
118+
SHOULD NOT be set if only IP address is available and capturing name would require a reverse DNS lookup.
119+
- ref: net.host.port
120+
requirement_level:
121+
conditionally_required: If not default (`80` for `http` scheme, `443` for `https`).
122+
brief: >
123+
Port of the local HTTP server that received the request.
124+
note: |
125+
Determined by using the first of the following that applies
126+
127+
- Port identifier of the [primary server host](../../trace/semantic_conventions/http.md#http-server-definitions) of the matched virtual host.
128+
- Port identifier of the [request target](https://www.rfc-editor.org/rfc/rfc9110.html#target.resource)
129+
if it's sent in absolute-form.
130+
- Port identifier of the `Host` header
131+
132+
- id: metric.http.server.response.size
133+
type: metric
134+
metric_name: http.server.response.size
135+
brief: "Measures the size of HTTP response messages (compressed)."
136+
instrument: histogram
137+
unit: "By"
138+
# TODO (trask) below attributes are identical to above in metric.http.server.duration
139+
attributes:
140+
- ref: http.method
141+
requirement_level: required
142+
- ref: http.scheme
143+
requirement_level: required
144+
- ref: http.route
145+
requirement_level:
146+
conditionally_required: If and only if it's available
147+
- ref: http.status_code
148+
requirement_level:
149+
conditionally_required: If and only if one was received/sent.
150+
- ref: http.flavor
151+
- ref: net.host.name
152+
requirement_level: required
153+
brief: >
154+
Name of the local HTTP server that received the request.
155+
note: |
156+
Determined by using the first of the following that applies
157+
158+
- The [primary server name](../../trace/semantic_conventions/http.md#http-server-definitions) of the matched virtual host. MUST only
159+
include host identifier.
160+
- Host identifier of the [request target](https://www.rfc-editor.org/rfc/rfc9110.html#target.resource)
161+
if it's sent in absolute-form.
162+
- Host identifier of the `Host` header
163+
164+
SHOULD NOT be set if only IP address is available and capturing name would require a reverse DNS lookup.
165+
- ref: net.host.port
166+
requirement_level:
167+
conditionally_required: If not default (`80` for `http` scheme, `443` for `https`).
168+
brief: >
169+
Port of the local HTTP server that received the request.
170+
note: |
171+
Determined by using the first of the following that applies
172+
173+
- Port identifier of the [primary server host](../../trace/semantic_conventions/http.md#http-server-definitions) of the matched virtual host.
174+
- Port identifier of the [request target](https://www.rfc-editor.org/rfc/rfc9110.html#target.resource)
175+
if it's sent in absolute-form.
176+
- Port identifier of the `Host` header
177+
178+
- id: metric.http.client.duration
179+
type: metric
180+
metric_name: http.client.duration
181+
brief: "Measures the duration of outbound HTTP requests."
182+
instrument: histogram
183+
unit: "ms"
184+
attributes:
185+
- ref: http.method
186+
requirement_level: required
187+
- ref: http.status_code
188+
requirement_level:
189+
conditionally_required: If and only if one was received/sent.
190+
- ref: http.flavor
191+
- ref: net.peer.name
192+
requirement_level: required
193+
brief: >
194+
Host identifier of the ["URI origin"](https://www.rfc-editor.org/rfc/rfc9110.html#name-uri-origin) HTTP request is sent to.
195+
note: |
196+
Determined by using the first of the following that applies
197+
198+
- Host identifier of the [request target](https://www.rfc-editor.org/rfc/rfc9110.html#target.resource)
199+
if it's sent in absolute-form
200+
- Host identifier of the `Host` header
201+
202+
SHOULD NOT be set if capturing it would require an extra DNS lookup.
203+
- ref: net.peer.port
204+
requirement_level:
205+
conditionally_required: If not default (`80` for `http` scheme, `443` for `https`).
206+
brief: >
207+
Port identifier of the ["URI origin"](https://www.rfc-editor.org/rfc/rfc9110.html#name-uri-origin) HTTP request is sent to.
208+
note: >
209+
When [request target](https://www.rfc-editor.org/rfc/rfc9110.html#target.resource) is absolute URI, `net.peer.name` MUST match
210+
URI port identifier, otherwise it MUST match `Host` header port identifier.
211+
- ref: net.sock.peer.addr
212+
213+
- id: metric.http.client.request.size
214+
type: metric
215+
metric_name: http.client.request.size
216+
brief: "Measures the size of HTTP request messages (compressed)."
217+
instrument: histogram
218+
unit: "By"
219+
# TODO (trask) below attributes are identical to above in metric.http.client.duration
220+
attributes:
221+
- ref: http.method
222+
requirement_level: required
223+
- ref: http.status_code
224+
requirement_level:
225+
conditionally_required: If and only if one was received/sent.
226+
- ref: http.flavor
227+
- ref: net.peer.name
228+
requirement_level: required
229+
brief: >
230+
Host identifier of the ["URI origin"](https://www.rfc-editor.org/rfc/rfc9110.html#name-uri-origin) HTTP request is sent to.
231+
note: |
232+
Determined by using the first of the following that applies
233+
234+
- Host identifier of the [request target](https://www.rfc-editor.org/rfc/rfc9110.html#target.resource)
235+
if it's sent in absolute-form
236+
- Host identifier of the `Host` header
237+
238+
SHOULD NOT be set if capturing it would require an extra DNS lookup.
239+
- ref: net.peer.port
240+
requirement_level:
241+
conditionally_required: If not default (`80` for `http` scheme, `443` for `https`).
242+
brief: >
243+
Port identifier of the ["URI origin"](https://www.rfc-editor.org/rfc/rfc9110.html#name-uri-origin) HTTP request is sent to.
244+
note: >
245+
When [request target](https://www.rfc-editor.org/rfc/rfc9110.html#target.resource) is absolute URI, `net.peer.name` MUST match
246+
URI port identifier, otherwise it MUST match `Host` header port identifier.
247+
- ref: net.sock.peer.addr
248+
249+
- id: metric.http.client.response.size
250+
type: metric
251+
metric_name: http.client.response.size
252+
brief: "Measures the size of HTTP response messages (compressed)."
253+
instrument: histogram
254+
unit: "By"
255+
# TODO (trask) below attributes are identical to above in metric.http.client.duration
256+
attributes:
257+
- ref: http.method
258+
requirement_level: required
259+
- ref: http.status_code
260+
requirement_level:
261+
conditionally_required: If and only if one was received/sent.
262+
- ref: http.flavor
263+
- ref: net.peer.name
264+
requirement_level: required
265+
brief: >
266+
Host identifier of the ["URI origin"](https://www.rfc-editor.org/rfc/rfc9110.html#name-uri-origin) HTTP request is sent to.
267+
note: |
268+
Determined by using the first of the following that applies
269+
270+
- Host identifier of the [request target](https://www.rfc-editor.org/rfc/rfc9110.html#target.resource)
271+
if it's sent in absolute-form
272+
- Host identifier of the `Host` header
273+
274+
SHOULD NOT be set if capturing it would require an extra DNS lookup.
275+
- ref: net.peer.port
276+
requirement_level:
277+
conditionally_required: If not default (`80` for `http` scheme, `443` for `https`).
278+
brief: >
279+
Port identifier of the ["URI origin"](https://www.rfc-editor.org/rfc/rfc9110.html#name-uri-origin) HTTP request is sent to.
280+
note: >
281+
When [request target](https://www.rfc-editor.org/rfc/rfc9110.html#target.resource) is absolute URI, `net.peer.name` MUST match
282+
URI port identifier, otherwise it MUST match `Host` header port identifier.
283+
- ref: net.sock.peer.addr

0 commit comments

Comments
 (0)