You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
-[][MUST] On success, the server response MUST be a Export<signal>ServiceResponse message.
19
-
-[][MUST] The server MUST leave the partial_success field unset in case of a successful response.
18
+
-[x][MUST] On success, the server response MUST be a Export<signal>ServiceResponse message.
19
+
-[x][MUST] The server MUST leave the partial_success field unset in case of a successful response.
20
20
-[ ][SHOULD] If the server receives an empty request the server SHOULD respond with success.
21
-
- Partial Success
21
+
- Partial Success (NOTE: Currentry, it does not support partially accepting)
22
22
-[ ][MUST] The server response MUST be the same Export<signal>ServiceResponse message as in the Full Success case.
23
23
-[ ][MUST] The server MUST initialize the partial_success field, and it MUST set the respective rejected_spans, rejected_data_points, rejected_log_records or rejected_profiles field with the number of spans/data points/log records/profiles it rejected.
24
24
-[ ][MUST] Servers MAY also use the partial_success field to convey warnings/suggestions to clients even when the server fully accepts the request. The rejected_<signal> field MUST have a value of 0, and the error_message field MUST be non-empty.
-[ ][MUST] Not-retryable errors indicate that telemetry data processing failed, and the client MUST NOT retry sending the same telemetry data. The client MUST drop the telemetry data.
29
29
-[ ][MUST] The server MUST indicate retryable errors using code Unavailable.
30
-
-[ ] Retryable errors indicate that telemetry data processing failed, and the client SHOULD record the error and may retry exporting the same data.
31
-
-[ ] The client SHOULD maintain a counter of such dropped data.
32
-
-[ ] The client SHOULD interpret gRPC status codes as retryable or not-retryable according to the following table.
33
-
-[ ] When retrying, the client SHOULD implement an exponential backoff strategy.
34
-
-[ ] The client SHOULD interpret RESOURCE_EXHAUSTED code as retryable only if the server signals that the recovery from resource exhaustion is possible.
30
+
-[ ][SHOULD]Retryable errors indicate that telemetry data processing failed, and the client SHOULD record the error and may retry exporting the same data.
31
+
-[ ][SHOULD]The client SHOULD maintain a counter of such dropped data.
32
+
-[ ][SHOULD]The client SHOULD interpret gRPC status codes as retryable or not-retryable according to the following table.
33
+
-[ ][SHOULD]When retrying, the client SHOULD implement an exponential backoff strategy.
34
+
-[ ][SHOULD]The client SHOULD interpret RESOURCE_EXHAUSTED code as retryable only if the server signals that the recovery from resource exhaustion is possible.
35
35
36
36
### OTLP/gRPC Throttling
37
37
-[ ][MUST] The client MUST then throttle itself to avoid overwhelming the server.
-[][MUST] All server components MUST support the following transport compression options:
46
-
-[][MUST] No compression, denoted by none.
47
-
-[][MUST] Gzip compression, denoted by gzip.
45
+
-[x][MUST] All server components MUST support the following transport compression options:
46
+
-[x][MUST] No compression, denoted by none.
47
+
-[x][MUST] Gzip compression, denoted by gzip.
48
48
-[ ][SHOULD] Implementations that use HTTP/2 transport SHOULD fallback to HTTP/1.1 transport if HTTP/2 connection cannot be established.
49
49
50
50
### Binary Protobuf Encoding
51
-
-[][MUST] The client and the server MUST set "Content-Type: application/x-protobuf" request and response headers when sending binary Protobuf encoded payload.
51
+
-[x][MUST] The client and the server MUST set "Content-Type: application/x-protobuf" request and response headers when sending binary Protobuf encoded payload.
52
52
53
53
### JSON Protobuf Encoding
54
-
-[][MUST] The client and the server MUST set "Content-Type: application/json" request and response headers when sending JSON Protobuf encoded payload.
55
-
-[][MUST] Values of enum fields MUST be encoded as integer values.
56
-
-[][MUST] OTLP/JSON receivers MUST ignore message fields with unknown names and MUST unmarshal the message as if the unknown field was not present in the payload.
54
+
-[x][MUST] The client and the server MUST set "Content-Type: application/json" request and response headers when sending JSON Protobuf encoded payload.
55
+
-[x][MUST] Values of enum fields MUST be encoded as integer values.
56
+
-[x][MUST] OTLP/JSON receivers MUST ignore message fields with unknown names and MUST unmarshal the message as if the unknown field was not present in the payload.
57
57
58
58
### OTLP/HTTP Request
59
-
-[][MUST] The client MAY gzip the content and in that case MUST include "Content-Encoding: gzip" request header.
59
+
-[x][MUST] The client MAY gzip the content and in that case MUST include "Content-Encoding: gzip" request header.
60
60
61
61
### OTLP/HTTP Response
62
-
-[][MUST] The response body MUST be the appropriate serialized Protobuf message.
63
-
-[][MUST] The server MUST set "Content-Type: application/x-protobuf" header if the response body is binary-encoded Protobuf payload.
64
-
-[][MUST] The server MUST set "Content-Type: application/json" if the response is JSON-encoded Protobuf payload.
65
-
-[][MUST] The server MUST use the same "Content-Type" in the response as it received in the request.
62
+
-[x][MUST] The response body MUST be the appropriate serialized Protobuf message.
63
+
-[x][MUST] The server MUST set "Content-Type: application/x-protobuf" header if the response body is binary-encoded Protobuf payload.
64
+
-[x][MUST] The server MUST set "Content-Type: application/json" if the response is JSON-encoded Protobuf payload.
65
+
-[x][MUST] The server MUST use the same "Content-Type" in the response as it received in the request.
66
66
- Full Success
67
-
-[][MUST] On success, the server MUST respond with HTTP 200 OK
68
-
-[][MUST] The response body MUST be a Protobuf-encoded Export<signal>ServiceResponse message.
69
-
-[][MUST] The server MUST leave the partial_success field unset in case of a successful response.
70
-
-[][SHOULD] If the server receives an empty request the server SHOULD respond with success.
71
-
- Partial Success
67
+
-[x][MUST] On success, the server MUST respond with HTTP 200 OK
68
+
-[x][MUST] The response body MUST be a Protobuf-encoded Export<signal>ServiceResponse message.
69
+
-[x][MUST] The server MUST leave the partial_success field unset in case of a successful response.
70
+
-[x][SHOULD] If the server receives an empty request the server SHOULD respond with success.
71
+
- Partial Success (NOTE: Currentry, it does not support partially accepting)
72
72
-[ ][MUST] If the request is only partially accepted, the server MUST respond with HTTP 200 OK.
73
73
-[ ][MUST] The response body MUST be the same Export<signal>ServiceResponse message as in the Full Success case.
74
74
-[ ][MUST] The server MUST initialize the partial_success field, and it MUST set the respective rejected_spans, rejected_data_points, rejected_log_records or rejected_profiles field with the number of spans/data points/log records it rejected.
75
75
-[ ][MUST] Servers MAY also use the partial_success field to convey warnings/suggestions to clients even when it fully accepts the request. In such cases, the rejected_<signal> field MUST have a value of 0, and the error_message field MUST be non-empty.
76
76
-[ ][MUST] The client MUST NOT retry the request when it receives a partial success response where the partial_success is populated.
77
77
-[ ][SHOULD] The server SHOULD populate the error_message field with a human-readable error message in English.
78
78
- Failures
79
-
-[][MUST] If the processing of the request fails, the server MUST respond with appropriate HTTP 4xx or HTTP 5xx status code.
79
+
-[x][MUST] If the processing of the request fails, the server MUST respond with appropriate HTTP 4xx or HTTP 5xx status code.
80
80
-[ ][MUST] The response body for all HTTP 4xx and HTTP 5xx responses MUST be a Protobuf-encoded Status message that describes the problem.
81
81
-[ ][SHOULD] The Status.message field SHOULD contain a developer-facing error message as defined in Status message schema.
82
82
-[ ][SHOULD] The server SHOULD use HTTP response status codes to indicate retryable and not-retryable errors for a particular erroneous situation.
83
-
-[][SHOULD] The client SHOULD honour HTTP response status codes as retryable or not-retryable.
83
+
-[x][SHOULD] The client SHOULD honour HTTP response status codes as retryable or not-retryable.
84
84
- Retryable Response Codes
85
-
-[][MUST] All other 4xx or 5xx response status codes MUST NOT be retried.
86
-
-[][SHOULD] The requests that receive a response status code listed in following table SHOULD be retried.
85
+
-[x][MUST] All other 4xx or 5xx response status codes MUST NOT be retried.
86
+
-[x][SHOULD] The requests that receive a response status code listed in following table SHOULD be retried.
87
87
- Bad Data
88
-
-[][MUST] If the processing of the request fails because the request contains data that cannot be decoded or is otherwise invalid and such failure is permanent, then the server MUST respond with HTTP 400 Bad Request.
89
-
-[][MUST] The client MUST NOT retry the request when it receives HTTP 400 Bad Request response.
88
+
-[x][MUST] If the processing of the request fails because the request contains data that cannot be decoded or is otherwise invalid and such failure is permanent, then the server MUST respond with HTTP 400 Bad Request.
89
+
-[x][MUST] The client MUST NOT retry the request when it receives HTTP 400 Bad Request response.
90
90
-[ ][SHOULD] The Status.details field in the response SHOULD contain a BadRequest that describes the bad data.
91
91
- OTLP/HTTP Throttling
92
92
-[ ][SHOULD] If the server receives more requests than the client is allowed or the server is overloaded, the server SHOULD respond with HTTP 429 Too Many Requests or HTTP 503 Service Unavailable.
93
93
-[ ][SHOULD] The client SHOULD honour the waiting interval specified in the "Retry-After" header if it is present.
94
94
-[ ][SHOULD] The "Retry-After" header is not present in the response, then the client SHOULD implement an exponential backoff strategy between retries.
95
95
- All Other Responses
96
-
-[][SHOULD] If the server disconnects without returning a response, the client SHOULD retry and send the same request.
97
-
-[][SHOULD] The client SHOULD implement an exponential backoff strategy between retries to avoid overwhelming the server.
96
+
-[x][SHOULD] If the server disconnects without returning a response, the client SHOULD retry and send the same request.
97
+
-[x][SHOULD] The client SHOULD implement an exponential backoff strategy between retries to avoid overwhelming the server.
98
98
99
99
### OTLP/HTTP Connection
100
100
-[ ][SHOULD] If the client cannot connect to the server, the client SHOULD retry the connection using an exponential backoff strategy between retries.
0 commit comments