Skip to content

Commit 6eb2aa6

Browse files
committed
Update checklist
Signed-off-by: Shizuo Fujita <fujita@clear-code.com>
1 parent 54f9813 commit 6eb2aa6

File tree

1 file changed

+33
-33
lines changed

1 file changed

+33
-33
lines changed

TODO.md

Lines changed: 33 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,10 @@ Ref. https://github.com/open-telemetry/opentelemetry-proto/blob/main/docs/specif
1515

1616
### OTLP/gRPC Response
1717
- Full Success
18-
- [ ] [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.
2020
- [ ] [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)
2222
- [ ] [MUST] The server response MUST be the same Export<signal>ServiceResponse message as in the Full Success case.
2323
- [ ] [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.
2424
- [ ] [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.
@@ -27,11 +27,11 @@ Ref. https://github.com/open-telemetry/opentelemetry-proto/blob/main/docs/specif
2727
- Failures
2828
- [ ] [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.
2929
- [ ] [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.
3535

3636
### OTLP/gRPC Throttling
3737
- [ ] [MUST] The client MUST then throttle itself to avoid overwhelming the server.
@@ -42,59 +42,59 @@ Ref. https://github.com/open-telemetry/opentelemetry-proto/blob/main/docs/specif
4242

4343

4444
## OTLP/HTTP
45-
- [ ] [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.
4848
- [ ] [SHOULD] Implementations that use HTTP/2 transport SHOULD fallback to HTTP/1.1 transport if HTTP/2 connection cannot be established.
4949

5050
### 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.
5252

5353
### 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.
5757

5858
### 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.
6060

6161
### 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.
6666
- 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)
7272
- [ ] [MUST] If the request is only partially accepted, the server MUST respond with HTTP 200 OK.
7373
- [ ] [MUST] The response body MUST be the same Export<signal>ServiceResponse message as in the Full Success case.
7474
- [ ] [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.
7575
- [ ] [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.
7676
- [ ] [MUST] The client MUST NOT retry the request when it receives a partial success response where the partial_success is populated.
7777
- [ ] [SHOULD] The server SHOULD populate the error_message field with a human-readable error message in English.
7878
- 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.
8080
- [ ] [MUST] The response body for all HTTP 4xx and HTTP 5xx responses MUST be a Protobuf-encoded Status message that describes the problem.
8181
- [ ] [SHOULD] The Status.message field SHOULD contain a developer-facing error message as defined in Status message schema.
8282
- [ ] [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.
8484
- 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.
8787
- 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.
9090
- [ ] [SHOULD] The Status.details field in the response SHOULD contain a BadRequest that describes the bad data.
9191
- OTLP/HTTP Throttling
9292
- [ ] [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.
9393
- [ ] [SHOULD] The client SHOULD honour the waiting interval specified in the "Retry-After" header if it is present.
9494
- [ ] [SHOULD] The "Retry-After" header is not present in the response, then the client SHOULD implement an exponential backoff strategy between retries.
9595
- 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.
9898

9999
### OTLP/HTTP Connection
100100
- [ ] [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

Comments
 (0)